我有一个有效的 TYPO3 扩展。它附在这个 wiki 页面上。如何更改此扩展程序的代码,使其属于 USER_INT 类型?即,我不希望 TYPO3 缓存此插件的输出,并且希望 TYPO3 每次使用扩展名的页面都调用扩展名,即禁用此扩展名的缓存。
6 回答
要为您的扩展禁用缓存,请转到您的 piX/class.tx_XXX_piX.php 文件并删除以下行(在您的类声明下方):
var $pi_checkCHash = true;
您还需要在 main 方法中添加以下行(在 $this->pi_loadLL(); 下方):
$this->pi_USER_INT_obj=1; // Configuring so caching is not expected. This value means that no cHash params are ever set. We do this, because it's a USER_INT object!
grunwalski 相反,你必须改变它:
t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',1);
对此:
t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',0);
解决问题的最简单方法是返回 Extension Maganer,选择您的扩展程序,从下拉菜单中选择“在 Kickstarter 中编辑”,然后选择相应的前端插件来编辑它的属性。
选中第一个复选框,这意味着您希望将插件呈现为 USER_INT cObjects。之后单击查看结果按钮,取消选中右侧的所有自定义 PHP 文件(您自己的代码,如模块和插件),然后单击 WRITE 按钮。请小心。如果您不取消选中您自己文件的复选框,它们将被虚拟文件覆盖。
正确和完整的方法是结合@arturh 和@Mehdi Guermazi 的答案:
addPItoST43()
将ext_localconf.php中调用的最后一个参数从 1 更改为 0var $pi_checkCHash = true;
从 pi1 类头部的属性定义中删除该行。- 将该行添加
$this->pi_USER_INT_obj=1;
到 pi1 中 main() 函数的开头。
这些更改与您使用@bencuss 解决方案中解释的kickstarter 方法时所获得的相同。
当您使用 Kickstarter 创建扩展程序后,您还必须转到文件 [yourextension]/ext_localconf.php 并更改此行
t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',0);
对此:
t3lib_extMgm::addPItoST43($_EXTKEY,'piX/class.tx_yourextension_piX.php','_piX','list_type',1);
编辑扩展“myext”的文件 setup.txt。将“USER”更改为“USER_INT”。
plugin.tx_myext = USER_INT
plugin.tx_myxt {
这个扩展永远不会被缓存。