定义(“_ JEXEC”),或在的Joomla插件死

问题描述:

海兰定义(“_ 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.phpprocessor.php,而无需通过Joomla的index.php。由于执行不会在Joomla的代码碰到这些文件之前通过,所以_JEXEC没有被定义,因此进程die s。

有两种解决方案。

  1. 不检查_JEXEC。如果你的modal.php和processor.php没有访问数据库或者需要Joomla的其他部分,那么没有必要通过Joomla框架。简而言之:如果你没有在代码的那一部分包含任何Joomla文件,我不会看到这个问题。但我不确定,但是如果JED编辑同意这种观点的话。

  2. 以正确的方式浏览Joomla框架。创建一个组件,给它一个视图,将modal.php登录到该视图。从editor-xtd插件调用该视图。与processor.php做等价(根据任何代码段的实际情况)