我为Joomla 3.0开发了一个前端系统插件,用于替换HTML格式对象的关键字。这在我的本地实验室环境中完美运行,但是当安装在托管站点(WHM / cPanel)上时,它会导致管理区域出现问题,并阻止管理员编辑文章。
当管理员点击某篇文章来编辑试图加载的页面时,似乎会返回到同一页面。我已经将它开发为前端插件,因此我不应该影响管理区域。
问题还在于阻止管理员创建任何新内容(新闻,博客,内容,菜单项等)。
由于在我的实验室中没有发生这种情况,我只能假设问题出在我可能需要启用/禁用的某些服务器设置中。我对WHM,cPanel和Joomla都有完全的管理访问权限,因此可以根据需要更改设置...
我观察到的事情:
文章网址更改为:
/administrator/index.php?option=com_content&view=article&layout=edit&id=7
为:
/administrator/index.php?option=com_content&view=article&layout=edit&id=7
启用插件时请注意,&符号已更改为amp;
。这让我觉得它可能与MySQL中设置的UTF-8字符编码有关utf8general_ci
。
我可能需要更改任何有关配置的指针。
问题:如何防止这种情况发生(不删除我的基本插件)。
答案 0 :(得分:0)
如果您创建仅适用于前端的系统插件,则必须在当前页面为前端时检入插件。您可以使用此功能执行此操作:JFactory::getApplication()->isSite()
或JFactory::getApplication()->isAdmin()
示例用法(我假设您使用 onAfterRender 事件):
function onAfterRender() {
// Exit if current page is from Administration panel
if( JFactory::getApplication()->isAdmin() ) return;
/* your plugin main code goes here*/
}
它会阻止您的插件修改管理面板输出。如果你已经完成它并且它确实应该检查,那么你的问题的原因就不是插件了。