ControllerController.class.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace Common\Controller;
  3. /**
  4. * 公共控制器
  5. *
  6. */
  7. class ControllerController extends \Think\Controller
  8. {
  9. /**
  10. * 模板显示 调用内置的模板引擎显示方法,
  11. * @access protected
  12. * @param string $templateFile 指定要调用的模板文件
  13. * 默认为空 由系统自动定位模板文件
  14. * @param string $charset 输出编码
  15. * @param string $contentType 输出类型
  16. * @param string $content 输出内容
  17. * @param string $prefix 模板缓存前缀
  18. * @return void
  19. */
  20. protected function display($template = '', $charset = '', $contentType = '', $content = '', $prefix = '')
  21. {
  22. if (!is_file($template)) {
  23. $depr = C('TMPL_FILE_DEPR');
  24. if ('' == $template) {
  25. // 如果模板文件名为空 按照默认规则定位
  26. $template = CONTROLLER_NAME . $depr . ACTION_NAME;
  27. } elseif (false === strpos($template, $depr)) {
  28. $template = CONTROLLER_NAME . $depr . $template;
  29. }
  30. } else {
  31. $file = $template;
  32. }
  33. // 获取所有模块配置的用户导航
  34. $mod_con['status'] = 1;
  35. $_user_nav_main = array();
  36. $_user_nav_list = D('Admin/Module')->where($mod_con)->getField('user_nav', true);
  37. foreach ($_user_nav_list as $key => $val) {
  38. if ($val) {
  39. $val = json_decode($val, true);
  40. if (isset($val['main'])) {
  41. $_user_nav_main = array_merge_recursive($_user_nav_main, $val['main']);
  42. }
  43. }
  44. }
  45. // 开启默认模块并且开启默认布局
  46. if (C('DEFAULT_MODULE_LAYOUT') && C('DEFAULT_PUBLIC_LAYOUT') && is_file(C('DEFAULT_PUBLIC_LAYOUT'))) {
  47. C('HOME_PUBLIC_LAYOUT', C('DEFAULT_PUBLIC_LAYOUT'));
  48. }
  49. $this->assign('meta_description', C('WEB_SITE_DESCRIPTION'));
  50. $this->assign('_new_message', cookie('_new_message')); // 获取用户未读消息数量
  51. $this->assign('_user_auth', session('user_auth')); // 用户登录信息
  52. $this->assign('_user_nav_main', $_user_nav_main); // 用户导航信息
  53. $this->assign('_admin_public_layout', C('ADMIN_PUBLIC_LAYOUT')); // 页面公共继承模版
  54. $this->assign('_home_public_layout', C('HOME_PUBLIC_LAYOUT')); // 页面公共继承模版
  55. $this->assign('_home_public_modal', C('HOME_PUBLIC_MODAL')); // 页面公共继承模版
  56. $this->assign('_listbuilder_layout', C('LISTBUILDER_LAYOUT')); // ListBuilder继承模版
  57. $this->assign('_formbuilder_layout', C('FORMBUILDER_LAYOUT')); // FormBuilder继承模版
  58. // 提示页面继承模板
  59. if (MODULE_MARK == 'Admin') {
  60. $this->assign('_info_layout', C('ADMIN_PUBLIC_LAYOUT'));
  61. } else {
  62. $this->assign('_info_layout', C('HOME_PUBLIC_LAYOUT'));
  63. }
  64. $this->assign('_page_name', strtolower(MODULE_NAME . '_' . CONTROLLER_NAME . '_' . ACTION_NAME));
  65. $_current_module = D('Admin/Module')->getFieldByName(MODULE_NAME, 'title'); // 当前模块标题
  66. $this->assign('_current_module', $_current_module);
  67. $this->view->display($template);
  68. }
  69. }