Просмотр полной версии : Создать меню 2 уровня с такой структурой:
Как создать меню такой структуры (в 2 уровня)? Перепробовал уже все докумментированые методы, но не получаеться.
Помогите пожалуйста
<ul id="Menu1" class="MM">
<li><a href="http://www.smartmenus.org/">Home</a></li>
<li><a href="http://www.smartmenus.org/about/">About</a>
<ul>
<li><a href="http://www.smartmenus.org/about/introduction/">Introduction to SmartMenus</a></li>
<li><a href="http://www.smartmenus.org/about/compatibility/">Browser compatibility</a></li>
<li><a href="http://www.smartmenus.org/about/vasil-dinkov/">The author</a></li>
<li><a href="http://www.smartmenus.org/about/promote/">SmartMenus buttons</a></li>
</ul>
</li>
<li><a href="http://www.smartmenus.org/samples6/">Online Samples</a></li>
<li><a href="http://www.smartmenus.org/download/">Download</a></li>
<li><a href="http://www.smartmenus.org/license/">Licensing</a>
<ul>
<li><a href="http://www.smartmenus.org/license/types/">License</a></li>
<li><a href="http://www.smartmenus.org/license/purchase/">Purchase</a></li>
<li><a href="http://www.smartmenus.org/license/eula/">EULA</a></li>
</ul>
</li>
привожу пример примерно такого меню
идея взята с typo3-snippets
yacbddm = COA
yacbddm.wrap = <ul class="primary"> | </ul>
yacbddm.10 = HMENU
yacbddm.10 {
special = list
special.value = 13
}
yacbddm.10.1 = TMENU
yacbddm.10.1 {
noBlur = 1
expAll = 1
NO.wrapItemAndSub = <li class="home"> | </li>
ACT=1
ACT.wrapItemAndSub = <li class="home active"> | </li>
}
yacbddm.20 = HMENU
yacbddm.20 {
special = directory
excludeUidList = 13
special.value = 3
}
yacbddm.20.1 = TMENU
yacbddm.20.1 {
noBlur = 1
expAll = 1
NO.wrapItemAndSub = <li> | </li>
ACT=1
ACT.wrapItemAndSub = <li class="active"> | </li>
IFSUB=1
IFSUB {
wrapItemAndSub = <li> | </li>
}
ACTIFSUB=1
ACTIFSUB {
wrapItemAndSub = <li class="active"> | </li>
}
}
# First dropdown Menu configuration
yacbddm.10.2 = TMENU
yacbddm.10.2 {
noBlur = 1
expAll = 1
wrap = <ul> | </ul>
NO.wrapItemAndSub = <li> | </li>
IFSUB=1
IFSUB {
wrapItemAndSub = <li> | </li>
}
}
yacbddm.20.2 < yacbddm.10.2
yacbddm.30.2 < yacbddm.10.2
Спасибо, я немного переделал под свое меню, закомментировал несколько строк, и все прекрасно работает (TemplaVoila)
Может кому-то пригодится:
lib.mainMenu = COA
lib.mainMenu.wrap = <ul id="Menu1" class="MM"> | </ul>
lib.mainMenu.10 = HMENU
lib.mainMenu.10 {
#special = list
#special.value = 13
}
lib.mainMenu.10.1 = TMENU
lib.mainMenu.10.1 {
noBlur = 1
expAll = 1
NO.wrapItemAndSub = <li class="home"> | </li>
ACT=1
ACT.wrapItemAndSub = <li class="home active"> | </li>
}
lib.mainMenu.20 = HMENU
lib.mainMenu.20 {
special = directory
#excludeUidList = 13
special.value = 3
}
lib.mainMenu.20.1 = TMENU
lib.mainMenu.20.1 {
noBlur = 1
expAll = 1
NO.wrapItemAndSub = <li> | </li>
ACT=1
ACT.wrapItemAndSub = <li class="active"> | </li>
IFSUB=1
IFSUB {
wrapItemAndSub = <li> | </li>
}
ACTIFSUB=1
ACTIFSUB {
wrapItemAndSub = <li class="active"> | </li>
}
}
# First dropdown Menu configuration
lib.mainMenu.10.2 = TMENU
lib.mainMenu.10.2 {
noBlur = 1
expAll = 1
wrap = <ul> | </ul>
NO.wrapItemAndSub = <li> | </li>
IFSUB=1
IFSUB {
wrapItemAndSub = <li> | </li>
}
}
lib.mainMenu.20.2 < lib.mainMenu.10.2
lib.mainMenu.30.2 < lib.mainMenu.10.2
Привет.
Помогите разобраться с простенькой менюшкой. В шаблоне разместил меню:
<div id="menu_1">
<div class="menu1-level1-no"><a href="#">Menu item 1</a></div>
<div class="menu1-level1-no"><a href="#">Menu item 2</a></div>
<div class="menu1-level1-act"><a href="#">Menu item 3 (act)</a></div>
<div class="menu1-level2-no"><a href="#">Level 2 item</a></div>
<div class="menu1-level2-no"><a href="#">Level 2 item</a></div>
<div class="menu1-level2-act"><a href="#">Level 2 item (act)</a></div>
<div class="menu1-level1-no"><a href="#">Menu item 2</a></div>
</div>
В TypoScript шаблона страницы указал следующее:
# Menu 1 cObject
lib.menu_1 = HMENU
# First level menu-object, textual
lib.menu_1.1 = TMENU
lib.menu_1.1 {
# Normal state properties
NO.allWrap = <div class="menu1-level1-no"> | </div>
NO.stdWrap.htmlSpecialChars = 1
# Enable active state and set properties:
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <div class="menu1-level1-act"> | </div>
}
# Second level menu-object, textual
lib.menu_1.2 = TMENU
lib.menu_1.2 {
# Normal state properties
NO.allWrap = <div class="menu1-level2-no"> | </div>
NO.stdWrap.htmlSpecialChars = 1
# Enable active state and set properties:
ACT = 1
ACT.stdWrap.htmlSpecialChars = 1
ACT.allWrap = <div class="menu1-level2-act"> | </div>
}
На странице все равно отображается шаблонное меню, а не фактическая структура страниц сайта:
Menu item 1
Menu item 2
Menu item 3 (act)
Level 2 item
Level 2 item
Level 2 item (act)
Menu item 2
Что у меня неверно указано?
cherkatel
23.10.2009, 17:15
Судя по lib. ... вы используете TV. Проверяйте маппинг. Если же автопарсер, то давайте весь код.
Alex Podusov
23.10.2009, 17:15
ошибка в разметке области под это меню. чтобы сказать точнее - мало информации. используется TV? если да - пожалуста XML структуры данных - в студию
Судя по lib. ... вы используете TV. Проверяйте маппинг. Если же автопарсер, то давайте весь код.
не факт... код взят из на шару из руководства...
ошибка в разметке области под это меню. чтобы сказать точнее - мало информации. используется TV? если да - пожалуста XML структуры данных - в студию
не факт... код взят из на шару из руководства...
Использую TV. Код меню взял из руководства. Хочу запустить пример у себя, а потом доработать под себя.
Какую XML структуры данных Вы имеете в виду? Где мне ее взять?
(пардон за такие вопросы :) )
Alex Podusov
24.10.2009, 03:29
Левая колонка: Web - Templavoila; Средняя колонка - системная папка с шаблонами TV; в правом поле - клик по иконке DS шаблона, в выпавшей меню - Правка. Откроется структура DS, с блоком textarea - XML структуры данных.
Или так: в выпавшем меню после клика по иконке DS пункт Templavoila, затем отметить чекбокс Show XML, после чего отобразится таже структура DS (для просмотра, с подсветкой кода)
Для меню должен быть примерно такой код:
<field_menu type="array">
<tx_templavoila type="array">
<title>Динамическое меню</title>
<sample_data type="array">
<numIndex index="0"></numIndex>
</sample_data>
<eType>TypoScriptObject</eType>
<TypoScriptObjPath>lib.menu_1</TypoScriptObjPath>
</tx_templavoila>
</field_menu>
Отмеченное красным - обратить внимание. field_menu - заменить на название области, каким вы её назвали при разметке
Левая колонка: Web - Templavoila; Средняя колонка - системная папка с шаблонами TV; в правом поле - клик по иконке DS шаблона, в выпавшей меню - Правка. Откроется структура DS, с блоком textarea - XML структуры данных.
Спасибо за подробное разъяснение!
Вот XML
<?xml version="1.0" encoding="windows-1251" standalone="yes" ?>
<T3DataStructure>
<meta type="array">
<langDisable>1</langDisable>
</meta>
<ROOT type="array">
<tx_templavoila type="array">
<title>ROOT</title>
<description>Select the HTML element on the page which you want to be the overall container element for the template.</description>
</tx_templavoila>
<type>array</type>
<el type="array">
<field_menu type="array">
<tx_templavoila>
<title>Main menu</title>
<sample_data type="array">
<numIndex index="0">This is menu!</numIndex>
</sample_data>
<eType>TypoScriptObject</eType>
<tags>*:inner</tags>
<TypoScriptObjPath>lib.menu_1</TypoScriptObjPath>
</tx_templavoila>
</field_menu>
<field_content type="array">
<tx_templavoila type="array">
<title>Paje content</title>
<sample_data type="array">
<numIndex index="0">Page content here!</numIndex>
</sample_data>
<eType>ce</eType>
<TypoScript><![CDATA[
10= RECORDS
10.source.current=1
10.tables = tt_content
10.wrap = <!--TYPO3SEARCH_begin--> | <!--TYPO3SEARCH_end-->
]]></TypoScript>
<oldStyleColumnNumber type="integer">0</oldStyleColumnNumber>
</tx_templavoila>
<TCEforms type="array">
<config type="array">
<type>group</type>
<internal_type>db</internal_type>
<allowed>tt_content</allowed>
<size>5</size>
<maxitems>200</maxitems>
<minitems>0</minitems>
<multiple>1</multiple>
<show_thumbs>1</show_thumbs>
</config>
<label>Paje content</label>
</TCEforms>
</field_content>
</el>
</ROOT>
</T3DataStructure>
Alex Podusov
24.10.2009, 03:42
Всё верно... а в область контента вставка происходит?
Всё верно... а в область контента вставка происходит?
да, контент отображается
Alex Podusov
24.10.2009, 03:48
значит всё таки проблема с разметкой. какой блок указывался для области меню? <div id="menu_1">...</div> INNER ?
значит всё таки проблема с разметкой. какой блок указывался для области меню? <div id="menu_1">...</div> INNER ?
Приложил скрин маппинга шаблона. Элемент меню связан со слоем <div id="menu_1"> (*:inner)
Перемапил элемент меню, он у меня до этого к другому id-шнику цеплялся, очистил кеш - все заработало.
Alex, спасибо большое за наводку ;)
Alex Podusov
24.10.2009, 04:07
а что показывает при предпросмотре при разметке? замещает текст меню замещаемым текстом? (Кнопка Preview)
Alex Podusov
24.10.2009, 04:19
Вобщем-то причин может быть сколько угодно, вплоть до банальных. Я однажды до умопомрачения бился над подобной задачей, а причина была элементарная: при разметке в названии TSObjectPath iib.copiright буква "с" оказалась в русской раскладке, а TS Setup прописал его правильно англоязычно, что является разными именами. Так что перепроверь шаблон, переразметь в TV...
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot