Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   FE: подключение расширений (http://forum.typo3.ru/showthread.php?t=4260)

c0d3r 09.08.2007 15:46

FE: подключение расширений
 
Подскажите, где рыть в коде TYPO3 подключение расширений в FE или инициализацию их классов?

У меня подозрение, что TV в FE перестала работать, а отладить не получается. FE всё работает, отладочное сообщение генерится, но не работает TV. В самом классе плагина TV поставил отладку, но она не срабатывает, значит, класс, не вызывается. Думаю, какие-то проблемы с путями и инклудами, я вчера менял структуру каталогов сайта и были проблемы, но всё, что нашёл, пофиксил. BE работает, TV там действует.

Заранее спасибо за помощь.

void 09.08.2007 16:01

Если имеется в виду создание объектов классов плагинов, и вызов у них их userFunc, то смотреть надо в EXT:cms/tslib/class.tslib_content.php на функцию USER()

c0d3r 09.08.2007 16:07

Большое спасибо, смотрю.

Интересует обработка вот этого TS:
Код:

page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page

То есть нужен метод, где он подключает класс tx_templavoila_pi1.
Где-то должен иклудиться файл класса.
По-моему, он не инклудится... хотя никаких ошибок я нигде не вижу - ни в браузере, ни в логах.

Да, отладка USER показывает, что не существует класс tx_templavoila_pi1.

void 09.08.2007 16:35

В EXT:templavoila/ext_localconf.php есть строка
PHP код:

t3lib_extMgm::addPItoST43($_EXTKEY,'pi1/class.tx_templavoila_pi1.php','_pi1','CType',1); 

Которая, если посмотреть в исходники, включает в стандартный статический шаблон несколько строк, в том числе
PHP код:

            $pluginContent trim('
includeLibs.'
.$cN.$prefix.' = '.$TYPO3_LOADED_EXT[$key]['siteRelPath'].$classFile.

То есть добавляет плагин в includeLibs.
Затем в EXT:cms/tslib/pagegen.php эти файлы включаются:
PHP код:

$temp_incFiles=TSpagegen::getIncFiles();
reset($temp_incFiles);
while(list(,
$temp_file)=each($temp_incFiles))    {
    include_once(
'./'.$temp_file);



c0d3r 09.08.2007 16:52

Большое спасибо!
Отладка грит массив $temp_incFiles пустой %/

О, вшил отладку в t3lib_timeTrack::setTSlogMessage и вылезло:
Код:

typo3/ext/templavoila/pi1/class.tx_templavoila_pi1.php" is not a file (non-uploads/.. resource, did not exist).
Это ругается t3lib_TStemplate::getFileName.

Похоже где-то косой путь к расширениям.

PS. Кстати, эти сообщения setTSlogMessage НЕ появляются в adm_Panel, хотя сообщения метода push появляются. Можно ли настроить появление setTSlogMessage? ПО-моему, должно такое быть, очень логично выглядит да и в комментах к методу написано - типа логирование.

c0d3r 09.08.2007 17:24

Подвожу итог:
требуется установка t3lib_TStemplate->getFileName_backPath
// Set from the backend - used to set an absolute path (PATH_site) so that relative resources are properly found with getFileName()

что и требовалось доказать... блин... я несколько часов потерял, копаясь в проблеме :(

Огромное спасибо, void!!!

Осталось понять, что как же сделать этот "Set from the backend"...

В приницпе, решил проблему и без этого... но всё равно интересно, можно ли устанавливать где-то в TS эту getFileName_backPath.

Dutchak Vitaly 10.08.2007 00:21

А вы поставили TV как глобальный модуль?

c0d3r 10.08.2007 09:23

Да, Typo3 юзается для нескольких проектов на разных доменах. Все расширения, соответственно, глобальные.

Dutchak Vitaly 10.08.2007 12:37

Цитата:

Сообщение от c0d3r (Сообщение 14166)
Да, Typo3 юзается для нескольких проектов на разных доменах. Все расширения, соответственно, глобальные.

и только на одном сайте такая проблема?

c0d3r 10.08.2007 13:28

Да проблема-то уже решена, я вчера отписал в теме.
Да и пока в работе только один сайт :)


Часовой пояс GMT +4, время: 11:19.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot