{menu} выводит страниц родителя

Обсуждение CMS Made Simple в России.

Moderators: iturbay, wdwp

Post Reply
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm

{menu} выводит страниц родителя

Post by sbupravi »

Необходимо на дочерней странице выводить список других дочених страниц родителя. Есть тег {menu childrenof=$page_alias}, но как подставлять алиас автоматически?
Т.к. разделов много!
User avatar
Dr.CSS
Moderator
Moderator
Posts: 12711
Joined: Thu Mar 09, 2006 5:32 am

Re: {menu} выводит страниц родителя

Post by Dr.CSS »

{menu start_level='2'} will show all children of the parent page even if you are on a second level child page...
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm

Re: {menu} выводит страниц родителя

Post by sbupravi »

Не подходит, потому как меню может быть многоуровневым и start_level будет равен 2,3 или 4...
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: {menu} выводит страниц родителя

Post by guro »

Создаёте тег пользователя "get_parent_alias"

Code: Select all

global $gCms;
global $smarty;

$manager =& $gCms->GetHierarchyManager();

$var = 'parent_alias';
if( isset($params['assign']) && $params['assign'] != '' ) {
  $var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
$currentNode =& $currentNode->getParentNode();
$currentContent =& $currentNode->getContent();
$result = $currentContent->Alias();
$smarty->assign($var,$result);
Вызываете его перед

Code: Select all

 {menu childrenof=$parent_alias}
chandra

Re: {menu} выводит страниц родителя

Post by chandra »

These sources are very old school and maybe they will not work.

Old school

Code: Select all

global $gCms;
global $smarty;
New style

Code: Select all

$gCms = cmsms();
$smarty = $template->smarty;
Additionally $gCms->variables['content_id'] is an internal variable now and should not used.

It's a lot easier to use Toolbox module and use the function {tbtools::getParentAlias()}
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: {menu} выводит страниц родителя

Post by guro »

Как же меня бесят вот такие комментаторы.
Казалось бы, русская ветка форума - отвечайте по русски. Какой тогда смысл в ней, если ответы будут давать на английском! Это тоже самое как если бы я писал по русски в английской ветке или еще какой-нибудь!
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm

Re: {menu} выводит страниц родителя

Post by sbupravi »

guro wrote:Создаёте тег пользователя "get_parent_alias"

Code: Select all

global $gCms;
global $smarty;

$manager =& $gCms->GetHierarchyManager();

$var = 'parent_alias';
if( isset($params['assign']) && $params['assign'] != '' ) {
  $var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = $gCms->variables['content_id'];
$currentNode = &$manager->sureGetNodeById($thisPage);
$currentNode =& $currentNode->getParentNode();
$currentContent =& $currentNode->getContent();
$result = $currentContent->Alias();
$smarty->assign($var,$result);
Вызываете его перед

Code: Select all

 {menu childrenof=$parent_alias}
Не дает сохранить шаблон, если вставляю тег пользователя:{get_parent_alias}
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm

Re: {menu} выводит страниц родителя

Post by sbupravi »

guro wrote:Как же меня бесят вот такие комментаторы.
Казалось бы, русская ветка форума - отвечайте по русски. Какой тогда смысл в ней, если ответы будут давать на английском! Это тоже самое как если бы я писал по русски в английской ветке или еще какой-нибудь!
Может индус хотел подсказать что-то важное? =)
User avatar
guro
Power Poster
Power Poster
Posts: 985
Joined: Thu Apr 26, 2012 8:38 pm

Re: {menu} выводит страниц родителя

Post by guro »

sbupravi wrote:Не дает сохранить шаблон
Да, действительно. Без if-ов отказывается работать. Вот исправленный вариант

Code: Select all

global $smarty;
$manager = cmsms()->GetHierarchyManager();
$var = 'parent_alias';
if( isset($params['assign']) && $params['assign'] != '' ) {
  $var = $params['assign'];
}
$result = "NO RESULT";
$thisPage = cmsms()->variables['content_id'];
$currentNode = $manager->sureGetNodeById($thisPage);
if ( isset($currentNode) ) {
  if ( $currentNode->getLevel() > 0 ){
    $currentNode =& $currentNode->getParentNode();
  }
  $currentContent =& $currentNode->getContent();
  $result = $currentContent->Alias();
}
$smarty->assign($var,$result);
chandra

Re: {menu} выводит страниц родителя

Post by chandra »

sbupravi wrote: Может индус хотел подсказать что-то важное? =)
Если ответ содержит ошибки, да ;D .

Кстати - как вы знаете, что я индус?

Благодаря Переводчик Google я могу читать по-русски. Только иногда смешные переводы я хотел, чтобы нанести на кого.
User avatar
sbupravi
Power Poster
Power Poster
Posts: 257
Joined: Sun Oct 07, 2012 9:29 pm

Re: {menu} выводит страниц родителя

Post by sbupravi »

chandra wrote: Кстати - как вы знаете, что я индус?
Ясновидящий.
guro wrote:Да, действительно. Без if-ов отказывается работать.
Круто! Спасибо!
Post Reply

Return to “Russian - русский”