PDA

Просмотр полной версии : FE: подключение расширений


c0d3r
09.08.2007, 15:46
Подскажите, где рыть в коде 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 есть строка t3lib_extMgm::addPItoST43($_EXTKEY,'pi1/class.tx_templavoila_pi1.php','_pi1','CType',1);
Которая, если посмотреть в исходники, включает в стандартный статический шаблон несколько строк, в том числе
$pluginContent = trim('
includeLibs.'.$cN.$prefix.' = '.$TYPO3_LOADED_EXT[$key]['siteRelPath'].$classFile.'

То есть добавляет плагин в includeLibs.
Затем в EXT:cms/tslib/pagegen.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
Да, Typo3 юзается для нескольких проектов на разных доменах. Все расширения, соответственно, глобальные.

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

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