У меня есть рабочее расширение 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!
Это не отключает кеширование, а только отключает проверку параметра cHash.
Хотя ваш ответ правильный, всегда лучше не изменять файлы классов php расширения. Либо попробуйте изменить его с помощью функции XCLASS, либо используйте (анонимный) метод ниже, изменив только файл ext_localconf.php.
Когда вы создали свое расширение с помощью 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);
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);
Точно. «Если $ cached установлен как объект содержимого USER (cObject), создается - в противном случае создается объект USER_INT».
Самый простой способ решить вашу проблему - вернуться в Extension Maganer, выбрать свое расширение, выбрать «Редактировать на Kickstarter» в раскрывающемся меню, а затем выбрать соответствующий плагин Frontend для редактирования его свойств.
Установите первый флажок, что означает, что вы хотите, чтобы ваши плагины отображались как объекты USER_INT cObjects. После этого нажмите кнопку «Просмотреть результат», снимите флажки со всех пользовательских файлов PHP (ваш собственный код, такие как модули и плагины) справа и нажмите кнопку «ЗАПИСАТЬ». Пожалуйста, будь осторожен. Если вы не снимите флажки у собственных файлов, они будут перезаписаны фиктивными файлами.
Правильный и полный способ сделать это - комбинация ответов @arturh и @Mehdi Guermazi:
addPItoST43() в ext_localconf.php с 1 на 0var $pi_checkCHash = true; из определений свойств в заголовке класса pi1.$this->pi_USER_INT_obj=1; в начало функции main () в pi1.Эти изменения идентичны тем, что вы получите при использовании метода kickstarter, описанного в решении @bencuss.
Отредактируйте файл setup.txt вашего расширения myext. Измените «USER» на «USER_INT».
plugin.tx_myext = USER_INT
plugin.tx_myxt {
Это расширение никогда не будет кэшироваться.
Сейчас я работаю над другим проектом, и у меня нет среды, чтобы проверить это, но это будет полезная информация для других людей, у которых есть такая же проблема. Благодарю за ваш ответ.