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

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

Ответ
 
Опции темы Опции просмотра
Старый 01.08.2011, 15:48   #1
elezeo
Продвинутый
 
Аватар для elezeo
 
Регистрация: 05.07.2011
Адрес: Россия, Интернет
Сообщений: 69
По умолчанию Меню с условиями

Ребята подскажите как реализовать через TS меню с разделителем:
[item 1 | item 2 | item 3 | item 4]
где [ и ] - это общее обрамление
| - это дополнительный разделитель
в коде бы это выглядело так
<div class="menu">
<div class="item">item 1</div>
<div class="divitem"></div>
<div class="item">item 2</div>
<div class="divitem"></div>
<div class="item">item 3</div>
<div class="divitem"></div>
<div class="item">item 4</div>
</div>
---------------------------
у меня в TS написано так
wrapItemAndSub = <div class="item"> | </div>
По идее можно в конце или в начале добавить разделитель
wrapItemAndSub = <div class="item"> | </div><div class="divitem"></div>
Но тогда надо поставить условие, что так надо делать если это не последний элемент.

Вот я и не могу понять как сделать условие для wrap/
Поздскажите, пожалуйста
elezeo вне форума   Ответить с цитированием
Старый 01.08.2011, 19:02   #2
elezeo
Продвинутый
 
Аватар для elezeo
 
Регистрация: 05.07.2011
Адрес: Россия, Интернет
Сообщений: 69
По умолчанию

Задача не простая, но решаемая.
Вот код ее реализации
Код:
lib.field_topmenu = HMENU
lib.field_topmenu.maxItems = 6 // Ограничиваю 6-ю элементами
lib.field_topmenu.1 = TMENU  // Первый уровень
lib.field_topmenu.1 {
  expAll=1  // Показать подменю
  noBlur=1
  NO { // Нормал
    stdWrap.cObject = COA  // Переопределяю значение в контейнере
    stdWrap.cObject {
      10 = LOAD_REGISTER   // Объект регистрации (ничего не выводит)
      10{
        topmenuitemindex1.cObject = TEXT   //Счетчик элементов меню
        topmenuitemindex1.cObject.data = register:topmenuitemindex1
        topmenuitemindex1.cObject.wrap = |+1
        topmenuitemindex1.prioriCalc = intval
      }
      20 = TEXT   // Титле страницы (пункта меню)
      20.field = title // subtitle
    }
    linkWrap = |
    ATagTitle.field = title // subtitle
    ATagParams = class="topmenu"
    stdWrap.htmlSpecialChars = 1
    wrapItemAndSub.stdWrap.cObject = COA // переопределяю это обрамление в контейнере
    wrapItemAndSub.stdWrap.cObject{
      10 = TEXT  // это обрамление будет выводиться всегда
      10.value = <div class="item"> | </div>
      20 = TEXT  // а это добавляется в конце
      // при выполнении условия (не последний пункт меню)
      20.insertData = 1
      //20.value = {register:topmenuitemindex1}?={register:count_menuItems}
      20.value = <div class="divitem"></div>
      20.if {
        value.data = register:topmenuitemindex1
        equals.data = register:count_menuItems  // это переменная генерируется автоматически и равна количеству элементов в меню
        negate=1  // Обратить в Ложь
      }
    }

  }
}
Надеюсь кому-то этот пример пригодиться =)
elezeo вне форума   Ответить с цитированием
Старый 02.08.2011, 09:22   #3
Андрей Аксенов
Senior Member
 
Регистрация: 12.04.2008
Адрес: Россия, Москва
Сообщений: 706
Отправить сообщение для Андрей Аксенов с помощью ICQ Отправить сообщение для Андрей Аксенов с помощью Skype™
По умолчанию

По-моему можно и проще, воспользовавшись "хитрым" optionSplit:
Код:
lib.field_topmenu = HMENU
lib.field_topmenu.wrap = <div class="menu">|</div>
lib.field_topmenu.1 = TMENU  // Первый уровень
lib.field_topmenu.1 {
	NO.before = <div class="item">
	NO.after = </div><div class="divitem"></div>|*|</div><div class="divitem"></div>|*|</div>
}
Андрей Аксенов вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двухуровневое меню в разных div vip1321 Общие вопросы 5 03.05.2011 10:54
Рендеринг меню в таблицу AleXUnder Общие вопросы 3 26.03.2009 17:55
Создать ещё одно меню, как? djolejek Общие вопросы 6 03.12.2008 17:29
Разметка каскадного вложенного меню в TemplaVoila maaboo Общие вопросы 7 27.07.2008 17:11
Меню из подстраниц Grank Общие вопросы 6 31.01.2005 18:46


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


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

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