Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian 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
carlos
Продвинутый
 
Регистрация: 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>&nbsp;|</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]);
...
}

}
carlos вне форума   Ответить с цитированием
Старый 27.01.2006, 10:07   #3
carlos
Продвинутый
 
Регистрация: 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

carlos вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория