定义('_ JEXEC')或死在Joomla插件中

时间:2017-08-07 11:16:56

标签: joomla

HY

我们有以下问题: 我们的editors-xtd插件包含以下文件:

pluginname.php
pluginname.xml
modal.php
processor.php

出于安全原因和JED中的列表,我们必须包括`

defined('_JEXEC') or die;

因为没有办法在joomla中调用modal.php和processor.php,我们该如何处理呢。 要构建一个通过模态iframe调用文件的组件,这是我们目前看到的唯一方法。但是要编写一个组件,调用一个模态iframe是一个“过度”的小点。

所以如果有人有想法,请告诉我们!

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,你会得到以下信息:

一个editor-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 Framework。创建一个组件,给它一个视图,将modal.php登录放入该视图中。从editor-xtd插件调用该视图。使用processor.php执行等效操作(根据代码实际执行的任何内容)