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

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

Ответ
 
Опции темы Опции просмотра
Старый 05.03.2007, 14:14   #1
c0d3r
Senior Member
 
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
По умолчанию Динамическое меню из PHP в TYPO3

Требуется в меню отобразить все подразделы 3-го уровня.
Главная -> Раздел -> Подраздел 1 ... Подраздел N

С Главной и Разделом вопросов нет, а для подразделов есть только 1 страница-шаблон "Подраздел", где подраздел задаётся через GET-параметр, а надо отобразить все подразделы.

Как вы генерите меню в таких случаях?
Заполняете $GLOBALS["TSFE"] данными в PHP или как-то иначе?

Заранее благодарю за помощь
c0d3r вне форума   Ответить с цитированием
Старый 05.03.2007, 14:18   #2
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Не понятнаааа.... (С)
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 05.03.2007, 14:24   #3
c0d3r
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?
c0d3r вне форума   Ответить с цитированием
Старый 05.03.2007, 16:59   #4
PhilD
Senior Member
 
Регистрация: 10.03.2006
Адрес: Moscow, Russia
Сообщений: 429
Отправить сообщение для PhilD с помощью ICQ Отправить сообщение для PhilD с помощью Yahoo
По умолчанию

посмотрите еще itemArrayProcFunc
PhilD вне форума   Ответить с цитированием
Старый 05.03.2007, 17:30   #5
c0d3r
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
c0d3r вне форума   Ответить с цитированием
Старый 05.03.2007, 21:57   #6
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

А PHP то зачем??? Почему нельзя стандартным функционалом HMENU обойтись?
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 06.03.2007, 12:25   #7
Дмитрий Самойлов
Продвинутый
 
Регистрация: 28.03.2005
Сообщений: 78
Отправить сообщение для Дмитрий Самойлов с помощью ICQ Отправить сообщение для Дмитрий Самойлов с помощью Skype™
По умолчанию Вот пример

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   #8
c0d3r
Senior Member
 
Регистрация: 13.12.2006
Адрес: ~msk
Сообщений: 277
По умолчанию

Спасибо, буду разбираться, с ходу не понял.
c0d3r вне форума   Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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


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


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

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