• twitter image
  • facebook image
  • youtube image
  • linkedin image
Language: CMS Made Simple Czech CMS Made Simple France CMS Made Simple Spain CMS Made Simple Hungary CMS Made Simple Russia CMS Made Simple Netherlands

All times are UTC




Post new topic Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Как вывести {menu} с нужной структурой?
PostPosted: Mon Sep 28, 2015 10:44 pm 
Offline
New Member
New Member

Joined: Mon Sep 28, 2015 10:30 pm
Posts: 1
Подскажите пожалуйста как вывести нужную часть {menu}:
пример - есть страницы
1 главная
2 контакты
3 каталог
3.1 масла
3.2 другая всячина
3.2.1 еще глубже
3.2.2 я здесь
3.2.2.1 ывапывап
3.3 вавпвап
3.3.1 вапрвапрва
3.3.2 ывапывап

хотелось чтоб при выборе страницы 3.2.2.1 или 3.2.2 выводились все из 3.2 включая дочерние, при выборе 3.3.1 или 3.3.2 выводилось все с дочерними из меню 3.3

Вывести дочерние и сестринские меню я уже узнал как, но как можно вывести родительский пункт меню или в идеале - узнать "номер иерархии" обрезать лишнее до требуемого уровня и вывести все что в нем или как то отследить наличие в дочерних элементах текущей страницы и вывести нужную часть. Буду очень благодарен ибо мало примеров в сети с извращениями по {menu}


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
 Post subject: Re: Как вывести {menu} с нужной структурой?
PostPosted: Tue Sep 29, 2015 9:11 am 
Offline
Power Poster
Power Poster
User avatar

Joined: Thu Apr 26, 2012 8:38 pm
Posts: 985
Location: Ramenskoe
Вот оригинал, который позволяет получить алиас родительской страницы первого уровня.
А вот изменённый тег, позволяющий указать уровень родительской страницы
\$1:
$manager = cmsms()->GetHierarchyManager();

if( !isset($params['level']) ) $params['level'] = 0;
$var = isset($params['assign']) ? $params['assign'] : 'root_page_alias';

$result = "NO RESULT";
$thisPage = $smarty->get_template_vars('content_id');
$currentNode = $manager->sureGetNodeById($thisPage);
while( isset($currentNode) && $currentNode->getLevel() >= $params['level'] )
{
    $currentContent =& $currentNode->getContent();
    $result = $currentContent->Alias();
    $currentNode =& $currentNode->getParentNode();
}
$smarty->assign($var,$result);
соответственно вызов
\$1:
{get_root_page_alias assign=alias_page level=1}
level=1, т.к. вам требуется 3.2 и 3.3. После получения алиаса страницы 3.2 или 3.3 можно вызвать
\$1:
{menu start_page=$alias_page}


Top
  Profile  
 
Share On:
Share on Facebook Share on Twitter Share on Google+
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
A2 Hosting