Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Доступ к переменным TS из PHP (http://forum.typo3.ru/showthread.php?t=10508)

ms9 14.12.2012 14:52

Доступ к переменным TS из PHP
 
День добрый!

При помощи KickStarter создал расширение, которое отвечает за экспорт данных, добавляемых на страницу другим самопальным экстеншином на основе fluid&extbase. Экспортирующий экстеншн смотрит, есть ли изменения и если есть предлагает экспортировать данные.

Проблема обнаружила себя, когда была удалена страница: данные в базе при этом остались, просто в бэкэнде перестала быть доступна удаленная страница.

Для того, чтобы не удалять данные из базы вижу возможность указания экспортирующему эксту какие страницы смотреть, т.е. в задать константу с перечислением id страниц в template, затем читать эти данные в php. Подскажите, пожалуйста, как это сделать?

Что-то типо такого не помогло:

plugin.extension_key {
show_submit = 1
submit_text = Submit
}

global $TSFE;
$defaultConf = array(
'show_submit'=>0,
'submit_text'=>'search'
);
foreach ($defaultConf as $key => $defaultValue) {
if (isset($TSFE->tmpl->setup['plugin.'][$this->extKey.'.'][$key])) {
$this->{$key} = $TSFE->tmpl->setup['plugin.'][$this->extKey.'.'][$key];
} else {
$this->{$key} = $defaultValue;
}
}
echo $this->show_submit; // shows 1 (from typoscript)

ms9 14.12.2012 15:17

Вот это сработало.

В константы добавил это:
Код:

my_variable = 123
В setup это:
Код:

plugin.tx_meineext_pi1 {
my_variable = {$my_variable}
}

В экстеншн это:
PHP код:

require_once (PATH_t3lib.'class.t3lib_tstemplate.php'); 
require_once (
PATH_t3lib.'class.t3lib_page.php'); 

// Initialize the page selector 
$sysPage t3lib_div::makeInstance('t3lib_pageSelect'); 
$sysPage->init(true); 

// Initialize the TS template 
$template t3lib_div::makeInstance('t3lib_TStemplate'); 
$template->init(); 

// Avoid an error 
$template->tt_track 0

// Get rootline for current PID 
$rootline $sysPage->getRootLine(1); 

// Start TS template 
$template->start($rootline); 

// Generate config 
$template->generateConfig(); 

print_r($template->flatSetup); 

Вопрос закрыт. Спасибо за внимание!


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

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