|  | Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community | 
|  | 
|  06.01.2012, 04:14 | #1 | 
| Senior Member Регистрация: 15.02.2006 Адрес: Петербург 
					Сообщений: 462
				 |  Как получить значение из TS setup в php контроллере? 
			
			Привет, возникла необходимость немного изменить расширение (а ля tt_news), а именно получить значение для single страницы. Имеем такую структуру в дереве: Page1 (тут хранятся сами новости и есть шаблон TS setup) - PID 5 - Page2 (для single страницы) - PID 6 В TS setup Page1 нечто такое: Код: plugin.tx_extname_pi1.single_pid = 6 В php обработчике могу получить значение pid для каждой из новости (для ссылки на single новость), примерно так: Код: $_link_conf = array( 'parameter' => $row['pid'], ) То есть в итоге получить в качестве 'parameter' = 6 Надеюсь, что не очень путано все объяснил. Всем спасибо!.. | 
|   |   | 
|  06.01.2012, 15:37 | #2 | 
| Senior Member |   
			
			Можете описать задачу более высокого уровня? Может попробовать видоизменить задачу и найти другое решение? Так как что бы получить этот pid из любого места вам нужно: 1. инициализировать ядро TSFE 2. сделать вид что текущая страница #5 3. вызрать парсер TS скриптов, который соберет и "скомпилирует" все TS скрипты от 5 до корня сайта 4. потом в $TSFE->config[..] вы сможете найти нужное значение. Но во-первых это медленно, во вторых если вы уже в режиме FE на странице скажем 7, то это и вовсе не получится. Как инициализировать TSFE в режиме eID можете посмотреть тут: http://typo3.org/extensions/reposito...epath/current/ Чаще всего для получения подобного single pid используют такой прием. Новость привязывается к категории, а в записи категории указывается pid станицы на которой должны показываться новости этой категории. Тогда получение single pid для новости сводится к одному дополнительному запросу к БД. Если подойти со стороны БД, то можно придумать еще варианты - добавить специальное поле в pages и на странице 5 указать страницу 6 в этом поле. | 
|   |   | 
|  06.01.2012, 17:50 | #3 | 
| Senior Member Регистрация: 15.02.2006 Адрес: Петербург 
					Сообщений: 462
				 |   
			
			Благодарю за ответ! Действительно, новости НЕ привязаны к категориям, а просто хранятся в разных страницах. Самих категорий как-таковых нет... Здесь не tt_news в чистом виде, и поэтому такие извращения и приходится использовать  По вашим пунктам 1-4 - похоже на правду, про скорость догадываюсь  Про страницу 7 не очень понял, думаю что все будет ок, т.к. структура страниц для всех продуктов одинакова, т.е. имеем Page1 (тут хранятся сами новости и есть шаблон TS setup) - PID 5 - Page2 (для single страницы) - PID 6 Page3 (тут хранятся сами новости и есть шаблон TS setup) - PID 7 - Page4 (для single страницы) - PID 8 и так далее... Доп. поле в БД - думаю что крайний вариант, т.к. не очень удобно будет редакторам сайта, да и правильнее указать это значение в родительской странице, а не во всех новостях... | 
|   |   | 
|  06.01.2012, 18:04 | #4 | |
| Senior Member |   
			
			Страницу 7 я упомянул в том смысле, что если вы в FE на странице (7) другой ветки сайта (то есть не на странице 5 или 6, где нужный TS уже и так в TSFE), то инициализировать TSFE заново с другим pid вряд ли получиться. И я как раз и пишу, что надо добавить на родительской странице настройку, а не в каждой новости: Цитата: 
 А чем вызвана необходимость отдельной страницы для single в вашем случае? Ведь по наличию GET переменной в TYPO3 можно сделать все что угодно с TS шаблоном - вывести другой шаблон страницы, по другому его напонить, поменять режим tt_news с list на single и т.п. | |
|   |   | 
|  06.01.2012, 18:10 | #5 | 
| Senior Member Регистрация: 15.02.2006 Адрес: Петербург 
					Сообщений: 462
				 |   
			
			А вот искать потомков в pages - это может быть выход!.. Отдельная страница для single -это то, что сразу пришло в голову и в принципе работает как надо. Думаю, что через GET это можно было бы сделать более элегантно, но это заняло бы у меня больше времени... Буду копать в сторону pages и получения данных из этой таблицы | 
|   |   | 
|  09.01.2012, 04:51 | #6 | 
| Senior Member Регистрация: 15.02.2006 Адрес: Петербург 
					Сообщений: 462
				 |   
			
			dmartynenko Действительно, через pages удалось добраться до нужных данных, как то так: Код: $pid_n = $row['pid']; $single_pid_product = "SELECT uid FROM pages where pid='".$pid_n."'"; $result_select_url = mysql_query($single_pid_product); | 
|   |   | 
|  | 
| 
 | 
 | 
|  Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение | 
| Как вставить php код в шаблон сайта на typo3 | givemesomedrugs | Общие вопросы | 3 | 11.11.2010 18:40 | 
| Как указать место вставки результата из PHP? | ScorpionGhost | Общие вопросы | 4 | 11.07.2009 21:02 | 
| php 5.2.4 как cgi и templavoila | Manas | Общие вопросы | 2 | 17.11.2007 20:54 | 
| Как получить pid страницы в TS? | z0r1k | TypoScript практикум | 3 | 21.07.2006 20:23 | 
| Как в BE-модуле получить имя активного в данный момент FE-user? | KortS | Разработка расширений / TYPO3 extension development | 1 | 11.03.2005 21:00 |