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

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

Ответ
 
Опции темы Опции просмотра
Старый 12.09.2005, 19:08   #1
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   #2
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

\"Хорошо, даже если явно указать GLOBALS['TSFE']->page['subttitle'] в подгружаемом методе\"
Да нет, я имел в виду реальную страницу в бэкенде. Открываешь страницу, вводишь там текст в поле subtitle. Он выводится моим кодом над меню. А почему не дробить stdWrap? Я теперь совсем не понимаю, что за menu_title ты там выводишь. Какая вообще цель? Что это за заголовки? Откуда они появляются изначально?
Andreas Schwarzkopf вне форума   Ответить с цитированием
Старый 12.09.2005, 19:25   #3
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   #4
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

Тогда мне кажется, что объект HMENU сюда не подходит. HMENU подходит оптимально только к страницам. На все остальное лучше брать или CONTENT или же программировать полностью свой плагин, который выдает готовый список с ссылками. А что, tt_news не подходит?
Andreas Schwarzkopf вне форума   Ответить с цитированием
Старый 13.09.2005, 10:02   #5
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию

Это довольно упрощеный вариант, т.к. структура меню изначально повторяет структуру разделов на сайте, поэтому использование HMENU необходимо.

Lato Sergey вне форума   Ответить с цитированием
Старый 13.09.2005, 11:26   #6
Lato Sergey
Продвинутый
 
Регистрация: 19.08.2005
Сообщений: 39
По умолчанию

Пришлось пойти обходным путем:

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]);
...
}

}
Lato Sergey вне форума   Ответить с цитированием
Старый 13.09.2005, 14:41   #7
Andreas Schwarzkopf
Senior Member
 
Регистрация: 14.08.2003
Сообщений: 416
По умолчанию

Да, довольно оригинально, хотя может быть и не на 100% элегантно.
Andreas Schwarzkopf вне форума   Ответить с цитированием
Ответ


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

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

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


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


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

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