Меню. Как узнать при выводе меню 2-го уровня, k
Меню. Как узнать при выводе меню 2-го уровня, k
Задача банальна, но как решить не знаю.
При активном меню 2-го уровня должно показываться подменю, причем не как список, а как листбокс.
Есди меню неактивно, листбокс должен скрываться
ПРимер здесь
http://www.berkemann.com/
Щелкаем Bestseller->Wood
------------
Я попытался сделать так. Но меню 3-го уровня показывается всегда. Т.е. мне нужен какой-нибудь флажок, типа активен ли предок у текущего меню. Долго и упорно ковыряюсь в коде процедуры FillNode (MenuManager.module.php)
Скорее всего задача банальна, а я не знаю, как ее решить
{* CSS classes used in this template:
.currentpage - The active/current page
.bullet_sectionheader - To style section header
hr.separator - To style the ruler for the separator *}
{if $count > 0}
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{if $node->origdepth ==2}
-- выбор --
{else}
{repeat string="" times=$node->depth-$node->prevdepth}
{/if}
{elseif $node->depth prevdepth}
{if $node->origdepth ==2}
{else}
{repeat string="" times=$node->prevdepth-$node->depth}
{/if}
{elseif $node->index > 0}
{if $node->origdepth ==2}
{else}
{/if}
{/if}
{if $node->current == true}
{if $node->depth ==2}
id}>
{else}
{/if}
url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}
{elseif $node->parent == true && $node->depth == 1}
{if $node->depth ==2}
id}>
{else}
{/if}
url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}
{elseif $node->type == 'sectionheader'}
{$node->menutext}
{elseif $node->type == 'separator'}
{else}
{if $node->depth ==2}
id}>
{else}
{/if}
url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}
{/if}
{/foreach}
{repeat string="" times=$node->depth-1}
{/if}
При активном меню 2-го уровня должно показываться подменю, причем не как список, а как листбокс.
Есди меню неактивно, листбокс должен скрываться
ПРимер здесь
http://www.berkemann.com/
Щелкаем Bestseller->Wood
------------
Я попытался сделать так. Но меню 3-го уровня показывается всегда. Т.е. мне нужен какой-нибудь флажок, типа активен ли предок у текущего меню. Долго и упорно ковыряюсь в коде процедуры FillNode (MenuManager.module.php)
Скорее всего задача банальна, а я не знаю, как ее решить
{* CSS classes used in this template:
.currentpage - The active/current page
.bullet_sectionheader - To style section header
hr.separator - To style the ruler for the separator *}
{if $count > 0}
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{if $node->origdepth ==2}
-- выбор --
{else}
{repeat string="" times=$node->depth-$node->prevdepth}
{/if}
{elseif $node->depth prevdepth}
{if $node->origdepth ==2}
{else}
{repeat string="" times=$node->prevdepth-$node->depth}
{/if}
{elseif $node->index > 0}
{if $node->origdepth ==2}
{else}
{/if}
{/if}
{if $node->current == true}
{if $node->depth ==2}
id}>
{else}
{/if}
url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}
{elseif $node->parent == true && $node->depth == 1}
{if $node->depth ==2}
id}>
{else}
{/if}
url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}
{elseif $node->type == 'sectionheader'}
{$node->menutext}
{elseif $node->type == 'separator'}
{else}
{if $node->depth ==2}
id}>
{else}
{/if}
url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}
{/if}
{/foreach}
{repeat string="" times=$node->depth-1}
{/if}
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Чего-то я не понял, collapse=true не подходит?
unsigned double ZYV;
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Меню. Как узнать при выводе меню 2-го уровня, k
См. помощь:Leee wrote: Т.е. мне нужен какой-нибудь флажок, типа активен ли предок у текущего меню.
$node->parent -- True, если данный узел является родителем выбранной в данный момент страницы
Re: Меню. Как узнать при выводе меню 2-го уровня, k
collapse=true подошел, а я про него и не знал 
Вот спасибо!

Вот спасибо!
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Прежде чем лезть в код надо читать документацию. Время экономит... Удачи.
unsigned double ZYV;
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Спасибо за ответ.
У меня возник еще один вопрос.
Чтобы не плодить темы, задам его здесь.
Вот у узла меню есть такое свойство $node->url
А как узнать url его предка ? $node->parent_url например
Думаю, что нужно что-то добавить в процедуре FillNode, по другому никак.
Подскажите пож.
У меня возник еще один вопрос.
Чтобы не плодить темы, задам его здесь.
Вот у узла меню есть такое свойство $node->url
А как узнать url его предка ? $node->parent_url например
Думаю, что нужно что-то добавить в процедуре FillNode, по другому никак.
Подскажите пож.
Re: Меню. Как узнать при выводе меню 2-го уровня, k
И еще у меня один такой глобальный вопрос.
Вот есть меню, а есть контент. Контент меняется в зависимости от меню.
И мне допустим нужно сделать динамическим баннер в верхней части сайта, т.е. чтобы он менялся в зависимости от выбранного элемента меню.
Или даже не баннер, а просто Глобальный блок контента, который я задаю в CMS админке.
Чтобы он менял полностью свое содержимое.
Дайте мне хотя бы подсказку
Вот есть меню, а есть контент. Контент меняется в зависимости от меню.
И мне допустим нужно сделать динамическим баннер в верхней части сайта, т.е. чтобы он менялся в зависимости от выбранного элемента меню.
Или даже не баннер, а просто Глобальный блок контента, который я задаю в CMS админке.
Чтобы он менял полностью свое содержимое.
Дайте мне хотя бы подсказку
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Теоретически - можно не лезть никуда. В текущем контенте есть ссылка на родителя. По ней можно получить родителя, а соответственно и его урл. Если я конечно правильно тебя понял.Leee wrote: Вот у узла меню есть такое свойство $node->url
А как узнать url его предка ? $node->parent_url например
Думаю, что нужно что-то добавить в процедуре FillNode, по другому никак.
-
- Power Poster
- Posts: 339
- Joined: Thu Nov 01, 2007 3:11 pm
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Тебе поидее не нужен даже глобальный блок. У тебя в шаблоне доступна: {$content_obj} - это полное описание объекта текущей страницы. Если ты баннер берешь из базы - то пишешь UDT и передаешь ему в качествепараметра, например, id текущей страницы, а там выбираешь, что тебе отобразить.Leee wrote: Вот есть меню, а есть контент. Контент меняется в зависимости от меню.
И мне допустим нужно сделать динамическим баннер в верхней части сайта, т.е. чтобы он менялся в зависимости от выбранного элемента меню.
Re: Меню. Как узнать при выводе меню 2-го уровня, k
А можно тут поподробнее ? Как называется свойство?von-hamster wrote: В текущем контенте есть ссылка на родителя
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Всем спасибо.
В поиске наткнулся на эту ссылку
http://wiki.cmsmadesimple.org/index.php ... .27s_alias
Вследствие чего написал такой тег
user defined tags - оказывается отличная штука! )
В поиске наткнулся на эту ссылку
http://wiki.cmsmadesimple.org/index.php ... .27s_alias
Вследствие чего написал такой тег
Code: Select all
global $gCms;
global $smarty;
$manager =& $gCms->GetHierarchyManager();
$var = 'parent_content';
if( isset($params['assign']) && $params['assign'] != '' )
{
$var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
if ($currentNode->getLevel() > 0 ) {
$parentNode =& $currentNode->getParentNode();
$parentContent= $parentNode->getContent();
$result = $parentContent;
}
$smarty->assign($var,$result);
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Люди подскажите пожалуйста!
Хочу сделать меню следующим образом:
Меню первого уровня (в виде картинки)
- текст меню второго уровня (раскрытый)
- текст меню второго уровня (раскрытый)
Меню первого уровня (в виде картинки)
- текст меню второго уровня (раскрытый)
- текст меню второго уровня (раскрытый)
т.е. чтобы в админке была схема такая, допустим "главная" (на сайте это ссылка ввиде картинки главная) а само меню второго уровня. и так надо сделать мне 5 минюшек. или есть какой то способ легче сделать? вот этот шаблон Left simple navigation + 1 column только чтобы он был весь раскрыт, а заместо названий ссылок первого уровня были картинки.
Спасибо"
Хочу сделать меню следующим образом:
Меню первого уровня (в виде картинки)
- текст меню второго уровня (раскрытый)
- текст меню второго уровня (раскрытый)
Меню первого уровня (в виде картинки)
- текст меню второго уровня (раскрытый)
- текст меню второго уровня (раскрытый)
т.е. чтобы в админке была схема такая, допустим "главная" (на сайте это ссылка ввиде картинки главная) а само меню второго уровня. и так надо сделать мне 5 минюшек. или есть какой то способ легче сделать? вот этот шаблон Left simple navigation + 1 column только чтобы он был весь раскрыт, а заместо названий ссылок первого уровня были картинки.
Спасибо"
Re: Меню. Как узнать при выводе меню 2-го уровня, k
И в чем проблема адаптировать http://wiki.cmsmadesimple.org/index.php ... nager menu_with_icons только добавить условие, чтобы убрать иконки со второго уровня и текст с первого?
unsigned double ZYV;
Re: Меню. Как узнать при выводе меню 2-го уровня, k
Спасибо! Сам уже разобрался!