定义(“_ JEXEC”),或在的Joomla插件死
问题描述:
我们有以下问题: 我们的编辑-XTD插件具有下列文件:
pluginname.php
pluginname.xml
modal.php
processor.php
出于安全原因,并在上市JED,我们必须包括`
defined('_JEXEC') or die;
因为没有办法叫modal.php和里面的Joomla的processor.php,我们如何能处理这个问题。 要构建一个通过模态iframe调用文件的组件,将是我们目前看到的唯一方法。但是要编写一个组件,调用一个模态iframe是一个“过度动力”的小动作。
所以如果有人有一个想法,请告诉我们!
答
如果我理解你的问题,你有以下几点:
的主编XTD插件pluginname.php
产生一些HTML/CSS/JS输出。这又会直接调用(通过AJAX?)其他php文件modal.php
和processor.php
,而无需通过Joomla的index.php。由于执行不会在Joomla的代码碰到这些文件之前通过,所以_JEXEC没有被定义,因此进程die
s。
有两种解决方案。
不检查_JEXEC。如果你的modal.php和processor.php没有访问数据库或者需要Joomla的其他部分,那么没有必要通过Joomla框架。简而言之:如果你没有在代码的那一部分包含任何Joomla文件,我不会看到这个问题。但我不确定,但是如果JED编辑同意这种观点的话。
以正确的方式浏览Joomla框架。创建一个组件,给它一个视图,将modal.php登录到该视图。从editor-xtd插件调用该视图。与
processor.php
做等价(根据任何代码段的实际情况)