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

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 12.09.2005, 18:20   #1
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию PHP variables in TS stdWrap

Коллеги, перерыл все, что только можно и никак не могу решить передачу переменных из 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>
}
}
Lato Sergey вне форума   Ответить с цитированием
Старый 12.09.2005, 18:26   #2
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

Нет такого понятия - передача переменных из PHP в TS, это нужно делать как то по-другому. Что именно ты хочешь передать?
Andreas Schwarzkopf вне форума   Ответить с цитированием
Старый 12.09.2005, 18:33   #3
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию

Предполагается для каждого меню делать свой заголовок, который назначается через PHP.
Lato Sergey вне форума   Ответить с цитированием
Старый 12.09.2005, 18:43   #4
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

1) Почему не делать этого внутри конфигурации TYPO3 или сохранять в заголовке какой-либо страницы, например в поле $GLOBALS['TSFE']->page['subttitle']?

2) почему не делать этого с помощью дополнительной функции, например
stdWrap.prepend = USER
stdWrap.prepend.userFunc = user_SectionMenu->write

Принцип работы должен быть такой - работай вместе с системой и используй ее преимущества по максимуму, а не работай против нее. Т.е. свести количество внешних блоков на минимум. Конечно, иногда это не удается. Я все-таки подозреваю, что у тебя какая-то концепциональная ошибка.
Andreas Schwarzkopf вне форума   Ответить с цитированием
Старый 12.09.2005, 18:51   #5
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию

1) Хорошо. Но как значение этой переменной передать в
stdWrap.wrap (
<div>
{$menu_title}
<br>|
</div>
)

2) ищу пример реализации
Lato Sergey вне форума   Ответить с цитированием
Старый 12.09.2005, 18:59   #6
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

1)
stdWrap.prepend = TEXT
stdWrap.prepend.data = page:subtitle
stdWrap.prepend.wrap = <div>|<br>
stdWrap.outerWrap = |</div>
Andreas Schwarzkopf вне форума   Ответить с цитированием
Старый 12.09.2005, 19:08   #7
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию

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>
)

Можно конечно еще дробить код. Но это очень некрасиво.

Спасибо за быстрый ответ.
Lato Sergey вне форума   Ответить с цитированием
Старый 12.09.2005, 19:14   #8
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

\"Хорошо, даже если явно указать GLOBALS['TSFE']->page['subttitle'] в подгружаемом методе\"
Да нет, я имел в виду реальную страницу в бэкенде. Открываешь страницу, вводишь там текст в поле subtitle. Он выводится моим кодом над меню. А почему не дробить stdWrap? Я теперь совсем не понимаю, что за menu_title ты там выводишь. Какая вообще цель? Что это за заголовки? Откуда они появляются изначально?
Andreas Schwarzkopf вне форума   Ответить с цитированием
Старый 12.09.2005, 19:25   #9
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию

Приведем простой пример:

<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 может браться из тойже базы динамически/

Благодарю.
Lato Sergey вне форума   Ответить с цитированием
Старый 12.09.2005, 19:33   #10
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

Тогда мне кажется, что объект HMENU сюда не подходит. HMENU подходит оптимально только к страницам. На все остальное лучше брать или CONTENT или же программировать полностью свой плагин, который выдает готовый список с ссылками. А что, tt_news не подходит?
Andreas Schwarzkopf вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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