English 中文(简体)
TYPO3:将插件从USER类型更改为USER_INT类型。
原标题:
  • 时间:2008-11-15 20:34:14
  •  标签:

我有一个可用的TYPO3扩展。它附在这个维基页面上。我怎样才能改变这个扩展的代码,使它成为USER_INT类型?也就是说,我不希望TYPO3缓存这个插件的输出,并希望TYPO3每次调用使用该扩展的页面时调用该扩展,即禁用该扩展的缓存。

问题回答

禁用您的扩展缓存,请转到您的piX/class.tx_XXX_piX.php文件并删除以下行(在您的类声明下面):

var $pi_checkCHash = true;

你还需要在主方法中添加以下行(在 $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!

格朗瓦尔斯基,这恰恰相反,你需要改变这一点:

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);

解决您的问题最简单的方法是返回到扩展管理器,选择您的扩展,从下拉菜单中选择“在Kickstarter中编辑”,然后选择相应的前端插件以编辑其属性。

勾选第一个复选框,表示您希望将您的插件渲染为USER_INT cObjects。然后点击 查看结果 按钮,在右侧取消勾选所有自定义PHP文件(例如模块和插件),然后点击 写入 按钮。请小心,如果您不取消勾选自己文件的复选框,它们将被覆盖为虚拟文件。

做这件事情的正确和完整方法是将@arturh和@Mehdi Guermazi的回答结合起来:

  1. change the last parameter in the addPItoST43() call in ext_localconf.php from 1 to 0
  2. remove the var $pi_checkCHash = true; line from the property definitions in the head of the pi1 class.
  3. add the $this->pi_USER_INT_obj=1; line to the start of the main() function in pi1.

这些改变与@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 {

这个扩展将永远不会被缓存。





相关问题
热门标签