FecController.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. /**
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. namespace fec\controllers;
  10. use Yii;
  11. use yii\helpers\Url;
  12. use yii\web\Controller;
  13. /**
  14. * @author Terry Zhao <2358269014@qq.com>
  15. * @since 1.0
  16. */
  17. class FecController extends Controller
  18. {
  19. #
  20. public function getBlock($blockname=''){
  21. $_currentNameSpace = \fec\helpers\CModule::param("_currentNameSpace");
  22. if(empty($_currentNameSpace)){
  23. $message = "Modules Param '_currentNameSpace' is not set , you can set like fecadmin\\Module";
  24. throw new \yii\web\HttpException(406,$message);
  25. }
  26. $modulesDir = "\\".$_currentNameSpace."\\block\\";
  27. $url_key = \fec\helpers\CUrl::getUrlKey();
  28. $url_key = trim($url_key,"/");
  29. $url_key = substr($url_key,strpos($url_key,"/")+1 );
  30. $url_key_arr = explode("/",$url_key);
  31. if(!isset($url_key_arr[1])) $url_key_arr[1] = 'index';
  32. if($blockname){
  33. $url_key_arr[count($url_key_arr)-1] = ucfirst($blockname);
  34. }else{
  35. $url_key_arr[count($url_key_arr)-1] = ucfirst($url_key_arr[count($url_key_arr)-1]);
  36. }
  37. $block_space = implode("\\",$url_key_arr);
  38. $blockFile = $modulesDir.$block_space;
  39. //echo $blockFile;exit;
  40. return new $blockFile;
  41. }
  42. }