PDA

Просмотр полной версии : Доступ к переменным TS из PHP


ms9
14.12.2012, 14:52
День добрый!

При помощи 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}
}

В экстеншн это:
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);

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