Joomla 1.5 Вывод позиции только для корня элемента меню

Тема в разделе "Создание структуры", создана пользователем colorflicks, 13.09.2010.

  1. colorflicks
    Offline

    colorflicks Недавно здесь

    Регистрация:
    09.12.2009
    Сообщения:
    21
    Симпатии:
    0
    Пол:
    Мужской
    Элемент меню имеет стандартный шаблон материала.

    • anysite/index.php?option=com_content&view=article&id=16&Itemid=4
    • Ссылка с seo: anysite/news/

    В шаблоне прописана позиция "X", сразу после основного контента, в которой модуль отображает список материалов раздела:
    Код (PHP):
    1. <jdoc:include type="component" />
    2.     <?php if($this->countModules('portfolio-list')) : ?>
    3.         <jdoc:include type="modules" name="X" style="xhtml4" />
    4.     <?php endif; ?>

    При переходе по ссылке из списка материалов раздела - ссылки становятся вида:
    • anysite/index.php?option=com_content&view=article&id=19%3Aresizeing&catid=4%3Ahotnewst&Itemid=4
    • Ссылка с seo: anysite/news/resizing/
    Задача состоит в том, чтобы позиция "X" отображалась только по ссылке: anysite/news/
    • anysite/news/ - позиция "X" - да
    • anysite/news/resizing/ - позиция "X" - нет
    • anysite/news/resizing/area/ - позиция "X" - нет
    • anysite/news/pop/ - позиция "X" - нет
    Сейчас позиция отображается во всех вложениях после /news/../../../../../

    Пытался что-то сделать с этим:

    Код (PHP):
    1. <?php
    2. $option = JRequest::getVar('option', null);
    3. $view = JRequest::getVar('view', null);
    4. $task = JRequest::getVar('task', null);
    5. $layout = JRequest::getVar('layout', null);
    6. ?>
    7.  
    8.  <?php if($this->countModules('portfolio-list')) : ?>
    9.                             <?php if ($option=='com_content' && $task=='view') : ?>
    10.                                 <jdoc:include type="modules" name="X" style="xhtml4" />
    11.                             <?php endif; ?>
    12.                         <?php endif; ?>


    Получается только отобразить, если статья полностью открыта. Но во вложениях позиция остается так или иначе.
     
  2.  
  3. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Вот эту ссылку нормально пропишите в тегах
    Код (CODE):
    1. сюда нормальную ссылку
    , а то лишних символов полно. Или она реально так у вас отображается? - anysite/index.php?option=com_content&view=article&id=19%3A resizeing&catid=4%3Ahotnewst&Itemid=4
     
  4. colorflicks
    Offline

    colorflicks Недавно здесь

    Регистрация:
    09.12.2009
    Сообщения:
    21
    Симпатии:
    0
    Пол:
    Мужской
    Именно так отображается без SEF, чтобы посмотреть id статей и прочее.

    С SEF ссылка имеет вид:
    Код (CODE):
    1. http://anysite/news/
     
    Последнее редактирование: 13.09.2010
  5. DKraev
    Offline

    DKraev <i>(aka gft)</i>

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Можно попробовать выводить модуль только на заданном id меню. Например так:

    Код (PHP):
    1. <?php $Itemid = JRequest::getInt( 'Itemid', 1, 'get' ); ?>
    2. <?php if ($Itemid == '4') { ?>
    3.              <jdoc:include type="modules" name="X" style="xhtml4" />
    4. <?php } ?>


    Хотя будет выводить на всех, наверное. Потому что itemID получается ведь тот же?..

    Или может быть попробовать по адресу (ссылке) в браузере? Например так:

    Код (PHP):
    1. <?php
    2.    $uri = &JFactory::getURI();
    3.    $url = $uri->toString(array('path', 'query', 'fragment'));
    4. ?>
    5.  
    6. <?php if ($url == 'anysite/index.php?option=com_content&view=article&id=16&Itemid=4') { ?>
    7.              <jdoc:include type="modules" name="X" style="xhtml4" />
    8. <?php } ?>
     
    colorflicks нравится это.
  6. colorflicks
    Offline

    colorflicks Недавно здесь

    Регистрация:
    09.12.2009
    Сообщения:
    21
    Симпатии:
    0
    Пол:
    Мужской
    ДА, получилось методом урла.

    Только нужно указывать путь таким образом:
    Код (PHP):
    1. <?php
    2.     $uri = &JFactory::getURI();
    3.     $url = $uri->toString(array('path', 'query', 'fragment'));
    4. ?>
    5. <?php if ($url == '/news') : ?>
    6.         <jdoc:include type="modules" name="X" style="xhtml4" />
    7. <?php endif; ?>
     

Поделиться этой страницей

Загрузка...