Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
05.03.2007, 14:14 | #1 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Динамическое меню из PHP в TYPO3
Требуется в меню отобразить все подразделы 3-го уровня.
Главная -> Раздел -> Подраздел 1 ... Подраздел N С Главной и Разделом вопросов нет, а для подразделов есть только 1 страница-шаблон "Подраздел", где подраздел задаётся через GET-параметр, а надо отобразить все подразделы. Как вы генерите меню в таких случаях? Заполняете $GLOBALS["TSFE"] данными в PHP или как-то иначе? Заранее благодарю за помощь |
05.03.2007, 14:18 | #2 |
Senior Member
|
Не понятнаааа.... (С)
|
05.03.2007, 14:24 | #3 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
1. В TYPO3 у меня только 1 страница-подраздел (шаблон), которая обрабатывает много подразделов по их id (подразделы плавающие, берутся из другой БД). То есть при генерации HMENU TS ничего о них не знает, пока ему не сунуть их список из PHP. Вопрос - как правильно совать ))
Например, вот так будет верно? temp.page_menu = HMENU temp.page_menu { special = userfunction special.wrap = ... special.userFunc = subsections->generate ... } 2. Возможно ли что-то аналогичное с помощью USER? |
05.03.2007, 16:59 | #4 |
Senior Member
|
посмотрите еще itemArrayProcFunc
|
05.03.2007, 17:30 | #5 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Спасибо... время читать TSref... всё откладываю.... А можно привести пример использования, а то с ходу мне сложно писать на TS правильно
2. И ещё вопрос по вышеприведённому: temp.page_menu = HMENU temp.page_menu { special = userfunction special.wrap = ... special.userFunc = subsections->generate ... } В классе php имеем: function generate($aMenu, $aConf) { ... } У неё есть два параметра, но в TS-setup на этот счёт тишина. Вопрос экспертам: где указываются real-time параметры в эту функцию? Где-то в PHP искать или возможно в TS? Спасибо. Последний раз редактировалось c0d3r; 05.03.2007 в 18:17 |
05.03.2007, 21:57 | #6 |
Senior Member
|
А PHP то зачем??? Почему нельзя стандартным функционалом HMENU обойтись?
|
05.03.2007, 22:48 | #7 |
Senior Member
|
|
06.03.2007, 10:44 | #8 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Pavel Antonov:
PHP затем, что я не знаю как или HMENU не может конфить данные из сторонней таблицы, для этого конфигурируется через (см. выше) special = userfunction special.wrap = ... special.userFunc = subsections->generate Что-то не так? PhilD: спасибо, пошёл читать там часть меню дёргается из плагина, у меня не плагин Ну и для полного счастья - в один прекрасный момент всё перестало работать То есть меню подразделов через special перестало выводиться. На выходе функции оно есть, через дебуг отображается. Но на сайте перестало появляться. Не могу понять, где оно теряется... может быть, есть у кого идеи кроме залазанья в дебри сырцов... буду очень признателен Последний раз редактировалось c0d3r; 06.03.2007 в 10:58 |
06.03.2007, 12:25 | #9 |
Продвинутый
|
Вот пример
temp.extraMenu = HMENU
temp.extraMenu { special = userdefined special.file = fileadmin/scripts/menu.php # дальше идут собственные параметры, основываясь на которых выводится меню special.pid = {$plugin.tx_ladymanager_pi1.listPid} special.singlePid = {$plugin.tx_ladymanager_pi1.singlePid} special.townStore = {$plugin.tx_ladymanager_pi1.pid} 1 { wrap = <UL>|</UL> NO.allWrap = <LI>|</LI> CUR = 1 CUR.allWrap = <LI>|</LI> CUR.linkWrap = <b>|</b> ACT = 1 ACT.allWrap = <LI>|</LI> } } fileadmin/scripts/menu.php <?php $townPid = intval($conf['pid']); $singlePid = intval($conf['singlePid']); $val = t3lib_div::_GP('tx_ladymanager_pi1'); $actTown = intval($val['city']); $townStore = intval($conf['townStore']); // в массиве с именем menuItemsArray должны хранится пункты меню $menuItemsArray = array(); $selectSetup = Array( 'pidInList'=>$townStore, 'orderBy'=>'sorting', ); $res = $GLOBALS['TSFE']->cObj->exec_getQuery('tx_ladymanager_city', $selectSetup); while( $row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res) ) { if( is_array($row) ) { $menuItemsArray[] = array( 'title'=>$row['name'], '_OVERRIDE_HREF'=>$this->parent_cObj->getTypoLink_URL( $townPid, array( 'tx_ladymanager_pi1[city]' => $row['uid'] ) ), 'ITEM_STATE' => ($actTown==$row['uid'] && ($GLOBALS['TSFE']->id == $townPid || $GLOBALS['TSFE']->id == $singlePid) ) ? 'CUR' : '', ); } } ?> |
06.03.2007, 15:49 | #10 |
Senior Member
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
|
Спасибо, буду разбираться, с ходу не понял.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
typo3 и PHP 5 | dapissarenko | Общие вопросы | 1 | 16.11.2006 19:56 |
18-й номер PHP Inside пишет о TYPO3 | Valery Romanchev | TYPO3: маркетинг и PR | 0 | 20.07.2006 17:22 |
Динамическое меню и рисунок | Мельничук Сергей | Общие вопросы | 1 | 17.10.2005 12:55 |
TYPO3, PHP разработчик в Москве (full time) | Valery Romanchev | Работа и заказы / Job Offer and Request | 0 | 07.07.2005 01:26 |
MySQL & TYPO3 +PHP! Pomogite!!!!! | Artem Boldyrev | Общие вопросы | 2 | 30.06.2005 16:45 |