thinkcmf高级应用之分离前台及管理模块
发布于 作者:苏南大叔 来源:程序如此灵动~可能是由于历史原因,thinkcmf的后台管理模块中的请求,url地址是以portal
开头的。而我们知道:从模块划分角度上来说,/admin/
是后台管理模块,/portal/
是前台展示模块。当苏南大叔试图对不同的模块,使用不同的域名后,就发现:在某些情况下,一部分后台功能不能使用了。这是个悲伤的故事,不是么?let's fix it. 还是要坚信:太阳光会暖暖地照射在你的小PP上的,对吧?
前言
本文的前置阅读内容是:《thinkcmf高级应用之多模块自定义域名及入口文件》https://newsn.net/say/thinkcmf-module-domain.html 。请认真阅读这篇前置文章,本文描述的是第一种方案的后续事项。
话说,在不同域名下,自定义不同入口文件的时候,对于后台的nginx设置,如果拦截/portal/
开头的url请求的话,会导致后台的一部分功能不能使用。
server{
# ...
location ^~ /portal/ {
rewrite ^(.*)$ http://<pc站的域名>/$1 permanent;
}
# ...
}
下面是可能的问题截图:
出问题的范围是:后台管理的"门户管理"的几个小分类功能。比如"文章管理、分类管理、页面管理"等等。
修复之移动皮肤模板
在/themes/admin/portal/
下的所有html文件,移动到/themes/admin/admin/
下面。
修复之移动controller文件
如果,上述几个模板文件的位置,还是能接受的话,这几个功能对应的controller文件位置是不能接受。标准版本的位置是:/app/portal/controller/
,需要把这几个admin*Controller.php
文件移动到文件夹/app/admin/controller/
下面。
修复之修改命名空间
这几个admin*Controller.php
文件移动到新的位置后,需要修改命名空间。原来的命名空间是:
namespace app\portal\controller;
苏南大叔把它修改为:
namespace app\admin\controller;
修复之修复后台菜单
这一步操作,其实就是修改后台的菜单链接,苏南大叔直接修改的是数据库里面的数据。数据表是:<prefix>_admin_menu
,执行的sql语句如下:
update cmf_admin_menu set app='admin' where app='portal'
清除runtime缓存
最后一步,清除服务器缓存。嘿嘿,不解释,直接删除runtime
文件夹。
关联文章
结论
上述N步骤设置后,就可以从nginx层面,完全把admin
和portal
这两个模块分开了。愉快的使用不同的域名访问不同的模块吧。nginx设置,还可以根据url进行拦截跳转了。本文的内容加上上一篇文章中的第二个方案,放在一起,就是完美的方案了。
更多苏南大叔带来的thinkcmf
的经验文章,请点击这里查看。https://newsn.net/tag/thinkcmf/ 。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。