【问题标题】:Unable to Edit Article After System Plugin Install系统插件安装后无法编辑文章
【发布时间】:2013-02-22 15:04:56
【问题描述】:

我为 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 有关。

任何关于我可能需要更改的配置的建议都会受到欢迎。

问题:如何防止这种情况发生(不删除我的基本插件)。

【问题讨论】:

  • 您如何阻止它在管理员中运行?插件响应什么事件?被编码的 & 符号与 utf8 无关,这与 & 符号和所有被编码的​​特殊字符有关,以便它们验证。您可能需要显示一些代码以获得帮助。
  • @Elin,我在调用类之前添加了一个检查,以确保 IsAdmin() === false;这阻止了插件破坏 Joomla 框架,但奇怪的是这只发生在托管环境而不是本地。
  • 这绝对很奇怪,我想不出为什么会发生这种情况,除非您的 php 版本略有不同?

标签: plugins cpanel whm joomla3.0


【解决方案1】:

如果您创建的系统插件只能在前端工作,您必须检查您的插件是否当前页面是前端。您可以使用此功能: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*/
}

它将阻止您的插件修改管理面板输出。如果您已经完成了它并且它确实按照应有的方式进行了检查,那么您的问题的原因就不可能是那个插件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多