Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
Опции темы | Опции просмотра |
26.01.2006, 20:51 | #1 |
Продвинутый
Регистрация: 11.02.2004
Сообщений: 50
|
Можно ли задать переменную в Template Setup, что бы потом использовать в PHP_SCRIPT ?
Можно ли задать переменную в Template Setup, что бы потом использовать в PHP_SCRIPT ?
Подозреваю, что можно! Но как это сделать? Буду благодарен за ссылку или пример. |
27.01.2006, 10:02 | #2 |
Продвинутый
Регистрация: 03.03.2006
Сообщений: 58
|
re: Можно ли задать переменную в Template Setup, что бы потом использовать в PHP_SCRIPT ?
вот проблема - здесь поиск работает не так как хотелось бы - выдает записи - а ссылки на само обсуждение нет
Было обсуждение по теме на этом форуме - найти не могу Привожу то что у меня было скачано - если кто объяснит как просмотреть весь thread - буду благодарен PHP variables in TS stdWrap Lato Sergey Коллеги, перерыл все, что только можно и никак не могу решить передачу переменных из PHP в TS. Существует меню, схема которого описана ниже. Требуется назначить переменную $menu_title из метода user_SectionMenu->write. Каким образом можно это сделать? temp.page_menu = HMENU temp.page_menu { special = userfunction special.userFunc = user_SectionMenu->write stdWrap.wrap ( <div> {$menu_title} <br>| </div> ) 1 = TMENU 1 { noBlur = 1 NO = 1 NO.linkWrap = <div>|</div> } } 12-09-05 15:26:04 Андрей Шварцкопф Нет такого понятия - передача переменных из PHP в TS, это нужно делать как то по-другому. Что именно ты хочешь передать? 12-09-05 15:33:15 Lato Sergey Предполагается для каждого меню делать свой заголовок, который назначается через PHP. 12-09-05 15:43:08 Андрей Шварцкопф 1) Почему не делать этого внутри конфигурации TYPO3 или сохранять в заголовке какой-либо страницы, например в поле $GLOBALS['TSFE']->page['subttitle']? 2) почему не делать этого с помощью дополнительной функции, например stdWrap.prepend = USER stdWrap.prepend.userFunc = user_SectionMenu->write Принцип работы должен быть такой - работай вместе с системой и используй ее преимущества по максимуму, а не работай против нее. Т.е. свести количество внешних блоков на минимум. Конечно, иногда это не удается. Я все-таки подозреваю, что у тебя какая-то концепциональная ошибка. 12-09-05 15:51:25 Lato Sergey 1) Хорошо. Но как значение этой переменной передать в stdWrap.wrap ( <div> {$menu_title} <br>| </div> ) 2) ищу пример реализации 12-09-05 15:59:52 Андрей Шварцкопф 1) stdWrap.prepend = TEXT stdWrap.prepend.data = page:subtitle stdWrap.prepend.wrap = <div>|<br> stdWrap.outerWrap = |</div> 12-09-05 16:08:49 Lato Sergey 1) Хорошо, даже если явно указать GLOBALS['TSFE']->page['subttitle'] в подгружаемом методе: special = userfunction special.userFunc = user_SectionMenu->write то переменная назначается. но ведь дробить общий шаблон stdWrap.wrap на несколько частей не хорошо - малоли таких переменных будет несколько? скажем, stdWrap.wrap ( <div> {$menu_super_title} : {$menu_title} <br> {$menu_href} <br>| </div> ) Можно конечно еще дробить код. Но это очень некрасиво. Спасибо за быстрый ответ. 12-09-05 16:14:36 Андрей Шварцкопф "Хорошо, даже если явно указать GLOBALS['TSFE']->page['subttitle'] в подгружаемом методе" Да нет, я имел в виду реальную страницу в бэкенде. Открываешь страницу, вводишь там текст в поле subtitle. Он выводится моим кодом над меню. А почему не дробить stdWrap? Я теперь совсем не понимаю, что за menu_title ты там выводишь. Какая вообще цель? Что это за заголовки? Откуда они появляются изначально? 12-09-05 16:25:26 Lato Sergey Приведем простой пример: <a href="news.html">НОВОСТИ</a> сайта SITE.RU <ul> <li>новость 1</li> <li>новость 2</li> </ul> TS: temp.page_menu = HMENU temp.page_menu { special = userfunction special.userFunc = user_SectionMenu->write stdWrap.wrap ( <a href="{$MENU_HREF}">{$MENU_HEADER}</a> сайта SITE.RU <ul>|</ul> ) 1 = TMENU 1.noBlur = 1 1.NO = 1 1.NO.linkWrap = <li> |</li> 1.NO.doNotLinkIt=1 } Можно представить, что <li>новость 1</li> берется из БД. Разумеется, что массив меню мы дописываем с помощью user_SectionMenu->write Но встает вопрос, как формировать {$MENU_HREF} и {$MENU_HEADER}? Если учесть, что $MENU_HEADER может браться из тойже базы динамически/ Благодарю. 12-09-05 16:33:54 Андрей Шварцкопф Тогда мне кажется, что объект HMENU сюда не подходит. HMENU подходит оптимально только к страницам. На все остальное лучше брать или CONTENT или же программировать полностью свой плагин, который выдает готовый список с ссылками. А что, tt_news не подходит? 13-09-05 07:02:31 Lato Sergey Это довольно упрощеный вариант, т.к. структура меню изначально повторяет структуру разделов на сайте, поэтому использование HMENU необходимо. 13-09-05 08:26:45 Lato Sergey Пришлось пойти обходным путем: TS ===================== temp.page_menu = HMENU temp.page_menu { special = userfunction special.wrap = <a href="{$MENU_HREF}">{$MENU_HEADER}</a> сайта SITE.RU special.userFunc = user_SectionMenu->write stdWrap.prepend = TEXT stdWrap.prepend.data = page:img_menu_title stdWrap.prepend.wrap = |<ul> stdWrap.outerWrap = |</ul> ... } PHP===================== class user_SectionMenu { function set_menu_title($title, $url, $template) { $template = str_replace('{$MENU_HREF}', $title, $template); $template = str_replace('{$MENU_HEADER}', $href, $template); $GLOBALS['TSFE']->page['img_menu_title'] = $template; return true; } function write($content, $conf) { ... $this->set_menu_title($some_title, $some_url, $conf[wrap]); ... } } |
27.01.2006, 10:07 | #3 |
Продвинутый
Регистрация: 03.03.2006
Сообщений: 58
|
re: Можно ли задать переменную в Template Setup, что бы потом использовать в PHP_SCRIPT ?
Тема конечно не та, а наоборот - передача из PHP в TS
Теперь понял как искать thread-ы - надо в поиске внизу выбрать не список сообщений, а список тем. Привожу ссылку http://typo3.ru/forum.html?&cat_uid=1&conf_uid=1&thread_uid=3022&v iew=single_thread |