Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何进行后期处理<;jdoc:include type=";标题「/&燃气轮机;在PHP中_Php_Joomla_Joomla3.0_Joomla Extensions - Fatal编程技术网

如何进行后期处理<;jdoc:include type=";标题「/&燃气轮机;在PHP中

如何进行后期处理<;jdoc:include type=";标题「/&燃气轮机;在PHP中,php,joomla,joomla3.0,joomla-extensions,Php,Joomla,Joomla3.0,Joomla Extensions,初始问题: 我正在使用一个特别的Joomla插件,它在很多方面都非常好。然而,它向我的元素添加了一堆Javascript,这是我不想要的。(从哲学上讲,我决不反对使用Javascript的插件。只是插件的Javascript输出不好。一般情况下可能不坏,但它破坏了我试图对我的网站所做的。无论如何,我正在偏离正轨。我会控制住它…) 因此,我的解决方案是,我希望控制页面中包含的内容。我想去掉这段糟糕的Javascript代码。但是怎么做呢 我的第一次尝试: 如果不是Joomla,我对PHP相当了解,

初始问题:

我正在使用一个特别的Joomla插件,它在很多方面都非常好。然而,它向我的
元素添加了一堆Javascript,这是我不想要的。(从哲学上讲,我决不反对使用Javascript的插件。只是插件的Javascript输出不好。一般情况下可能不坏,但它破坏了我试图对我的网站所做的。无论如何,我正在偏离正轨。我会控制住它…)

因此,我的解决方案是,我希望控制页面中包含的内容。我想去掉这段糟糕的Javascript代码。但是怎么做呢

我的第一次尝试:

如果不是Joomla,我对PHP相当了解,我最初的想法是。。。“啊哈!输出缓冲!”

我在
之前将
添加到我的模板中,然后做了一点
ob\u get\u contents()
的工作。但当然,这只是字面上捕获字符串
'
。只是后来,;在模板完成运行后,将处理jdoc包含的内容。我真傻


那么我该如何去掉这个积垢呢?

为了防止javascript标记的输出,您必须在
之前在模板中取消设置
$this->\u scripts
的正确成员。 例如,如果Joomla头添加了
,则在其前面添加以下php代码:

unset($this->_scripts['/media/jui/js/jquery.min.js']);

尝试
var_dump($this->_scripts
);要查看其中的所有成员。

要防止javascript标记的输出,必须在
之前在模板中取消设置
$this->\u scripts
的正确成员。 例如,如果Joomla头添加了
,则在其前面添加以下php代码:

unset($this->_scripts['/media/jui/js/jquery.min.js']);

尝试
var_dump($this->_scripts
);看到里面的所有成员。

回答我自己的问题;我在用一些东西

首先,将
/libraries/joomla/document/html/renderer/head.php
复制到
/templates/MYTEMPLATE/renderer\u head.php

然后更改
/templates/MYTEMPLATE/renderer\u head.php
中的
fetchHead
方法,以抑制我不想要的部分

最后,在
/templates/MYTEMPLATE/index.php
中,在顶部附近添加以下行:

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'renderer_head.php';

回答我自己的问题;我在用一些东西

首先,将
/libraries/joomla/document/html/renderer/head.php
复制到
/templates/MYTEMPLATE/renderer\u head.php

然后更改
/templates/MYTEMPLATE/renderer\u head.php
中的
fetchHead
方法,以抑制我不想要的部分

最后,在
/templates/MYTEMPLATE/index.php
中,在顶部附近添加以下行:

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'renderer_head.php';
鉴于您“了解PHP”,我建议您不要使用这样的黑客,因为它可能会在Joomla的未来更新中被破坏

所有插件都是
php
,您可以对其进行编辑,而不是创建替代相当核心的文件的覆盖

如果您不想编辑原始插件,那么创建一个能够捕获各种系统的插件也非常容易。有一个完整的类别

我想象一个处理渲染或头部事件的
系统
插件将是捕获它的地方,即
onAfterRender
onBeforeRender
onBeforeCompileHead

或者,您也可以尝试类似于“”的插件,可在中找到

鉴于您“了解PHP”,我建议您不要使用这样的黑客,因为它可能会在Joomla的未来更新中被破坏

所有插件都是
php
,您可以对其进行编辑,而不是创建替代相当核心的文件的覆盖

如果您不想编辑原始插件,那么创建一个能够捕获各种系统的插件也非常容易。有一个完整的类别

我想象一个处理渲染或头部事件的
系统
插件将是捕获它的地方,即
onAfterRender
onBeforeRender
onBeforeCompileHead


或者,您也可以尝试类似于“”的插件,可在中找到

不幸的是,它不是
元素,而是
..
元素。它不会出现在
$this->\u脚本中,或者至少在执行模板
index.php
时不会出现。然后检查
$this->\u脚本
而不是
$this->\u脚本
(尾部s已删除)对不起,我应该提到我做了完整的
打印($this)
并且在执行模板的
index.php
时,脚本不会出现在任何地方。稍后可能会将它添加到
$this
,但我不知道在运行模板后如何操作
$this
。不幸的是,它不是
元素,而是
..
元素。它不会出现在
$this->\u脚本中,或者至少在执行模板
index.php
时不会出现。然后检查
$this->\u脚本
而不是
$this->\u脚本
(尾部s已删除)对不起,我应该提到我做了完整的
打印($this)
并且在执行模板的
index.php
时,脚本不会出现在任何地方。稍后可能会将其添加到
$this
,但我不知道在运行模板后如何操作
$this