Просмотр полной версии : Константы шаблона TS в BE модулях
Uruguaygrep
28.01.2008, 14:46
Пишу BE модуль. Задался вопросом. Как получить значения констант заданых в шаблоне сайта (Template->Constants) в BE модуле?
Возможно ли это в принципе?
Через дебуг пересмотрел все массивы которые передаются в модуль по-умолчанию ($BE_USER,$LANG,$BACK_PATH,$TCA_DESCR,$TCA,$CLIENT ,$TYPO3_CONF_VARS), ничего похожего не нашел.
Буду благодарен за помощь или хотябы за подсказку/идею где рыть.
В бекенде нет никакого фронтэнда. Поэтому часто приходится использовать некий фейк фронтэнда... Пример можно посмотреть в timtab, как там берутся в BE настройки из фронтэнда.
Uruguaygrep
28.01.2008, 21:37
Спасибо,
Посмотрю.
Uruguaygrep
31.01.2008, 16:38
Этот же вопрос задал в рассылке typo3.dev
Сначала мне тоже сказали что это невозможно.
Но потом Ingo Renner подкинул один вкусный фокус.
Цитирую:
----------------------------------------------------------------
in BE you can simply initialize a TSFE instance yourself like this:
// get a TS parser instance
$template = t3lib_div::makeInstance('t3lib_tsparser_ext');
$template->tt_track = 0;
$template->init();
$sysPage = t3lib_div::makeInstance('t3lib_pageSelect');
$rootLine = $sysPage->getRootLine($pageId);
// generate the constants config + hierarchy info for the template.
$template->runThroughTemplates($rootLine);
$template->generateConfig();
return $template->setup;
----------------------------------------------------------------
Попробовал, действительно, можно получить сетап шаблона в бекенд таким образом.
Что бы получить константы, соответственно обращаемся через
$template->constants
P.S. Ну и конечно нужно подключить соответствуюющие библиотеки:
require_once(PATH_t3lib.'class.t3lib_tsparser_ext. php');
require_once(PATH_t3lib.'class.t3lib_page.php');
Я именно это и имел в виду. Писал абсолютно такой же код, один в один.
Еще иногда требуется определить в бекенде константу PATH_tslib.
Кстати, главная сложность вот в этом фейковом FE - это узнать $pageId.
Ну и вообще, сложности возникают при желании использовать фе-шные либы - приходится делать фейковый TSFE и пр... достаточно муторное занятие.
Uruguaygrep
31.01.2008, 21:09
Да, с PATH_tslib я как то тоже возился, и встречал в какихто модулях переопределение этой константы (по моему даже в ср_фрикап).
Вообще, конечно, такой фокус вполне приемлем для специфического модуля для определенного сайта, где уже точно известно какие страницы с какими идентификаторами, и что структура дерева, в идеале, меняться не будет.
Для чего-нибудь более-менее универсального нужно будет повозится.
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot