Не работает countModules при включённом SEO

Тема в разделе "VirtueMart", создана пользователем shurikkan, 05.07.2012.

  1. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Для вывода модулей на разных страницах использую countModules:

    Код (PHP):
    1. <?php if ($this->countModules('middle-left')) { ?>
    2. <div id="middle">  
    3. <jdoc:include type="modules" name="middle-left" style="simple" />
    4.     <div id="middle-right">
    5.         <jdoc:include type="modules" name="middle-right" style="none" />
    6.         <jdoc:include type="component" />
    7.     </div>
    8.     <div class="clear"></div>
    9. </div>  
    10. <?php } else { ?>
    11. <div id="middle" class="main">
    12.     <jdoc:include type="modules" name="middle-right" style="simple" />
    13.     <jdoc:include type="component" />
    14. </div>
    15. <?php } ?>


    Есть модуль левого меню. Его позиция - middle-left.
    В настройках модуля - отображать везде, кроме главной страницы.

    Соответственно, не найдя на главной страницы модуль в позиции middle-left, countModules вместо двух блоков выводится один - div id="middle".

    При выключенном SEO всё работает корректно. Как только SEO включается - меню перестаёт отображаться, а вместо него всё содержимое помещается в div id="middle".

    Если кто-то уловил сеть проблемы - давайте вместе подумаем почему может быть такой глюк!
    Никак не пойму в чём дело! ]{:>

    Или может это просто Joomla начинает любую страницу как главную видеть...
     
    Последнее редактирование: 10.07.2012
  2.  
  3. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 056
    Симпатии:
    520
    Пол:
    Мужской
    <?php
    $menu = & JSite::getMenu();
    if ($this->countModules('middle-left') && $menu->getActive() !== $menu->getDefault())
     
  4. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Не помогло. Непонятно кстати, почему! :(
    Получается, Joomla не видит навигации по страницам Virtuemart в режиме включённого SEO?
     
    Последнее редактирование: 06.07.2012
  5. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 056
    Симпатии:
    520
    Пол:
    Мужской
    попробуй
    if ($this->countModules('middle-left') && $view !== 'frontpage')
    или
    if ($this->countModules('middle-left') && !($view == 'frontpage'))
    или
    <?php
    $menu = & JSite::getMenu();
    if ($this->countModules('middle-left') && !($menu->getActive() == $menu->getDefault()))
    Пробуй объявить переменную в <head>$menu = & JSite::getMenu();</head>
     
  6. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Да в любом случае - это полумеры, т.к. при создании новых страниц нужно будет прописывать условия в php и для них, а это не вариант совсем.
     
  7. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 056
    Симпатии:
    520
    Пол:
    Мужской
    Да при чем создание новых страниц? Ты же проверяешь вывод модуля по главной странице,в index.php шаблона
     
  8. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    А, да, точно.
    Мозг плавится.
     
  9. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Вернулся к проблеме - НЕ ПОМОГЛО.

    Итак: модуль, на настройках которого стоит "Отображение на всех, кроме главной" не отображается ни на одной странице в VM2.

    Выводится на всех страницах блок, который по ответу от countModule должен отображаться только на главной.

    :(
     
  10. DKraev
    Offline

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

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Виртуемарт прописан в меню отдельной ссылкой? Т.е. ссылка не на категорию или товар, а именно в корень вирта присутствует?
     
  11. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Да.
    "Virtuemart - Главная" ссылка в меню установлена как главная страница сайта.

    :gam3::gam3:
     
  12. DKraev
    Offline

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

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Если вирт стоит как главная, то на нем и не будет отображаться модуль, который назначен "Отображение на всех, кроме главной"
     
  13. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    ААА!! :gam3:
    Он и НЕ ОТОБРАЖАЕТСЯ!
    Вопрос в другом) Читай первое сообщение!
     
  14. DKraev
    Offline

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

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    Заинтриговал. Какие начальные данные. Joomla и вирт какие? Попробую у себя воспроизвести.
     
  15. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Модуль должен отображаться везде, кроме главной.

    Если модуль отображается - на странице 2 блока - LEFT и RIGHT.

    Если модуль НЕ отображается - вместо двух блоков на странице выводится один - MIDDLE.

    При включённом SEO модуль не отображается нигде и на всех страницах выводится блок MIDDLE. То есть Joomla перестаёт видеть навигацию по страницам ВНУТРИ VIRTUEMART! При этом, на страницах, которые прописаны отдельными пунктами меню модуль отображается.

    Joomla 2.5.4
    VM 2.0.6

    см.вложение:
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      1.5 КБ
      Просмотров:
      2
    • 2.png
      2.png
      Размер файла:
      1.6 КБ
      Просмотров:
      2
    Последнее редактирование: 10.07.2012
  16. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 056
    Симпатии:
    520
    Пол:
    Мужской
    Держи
    Код (CODE):
    1. <?php
    2. if (view=='virtuemart' or $menu->getActive() !== $menu->getDefault()) {
    3. твой модуль
    4. } ?>
     
  17. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Вобщем понял - не отображается, потому что нет соответствующих пунктов меню...

    соответственно, оставлю стандартный if ($this->countModules('middle-left')) { ... }
     
  18. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 056
    Симпатии:
    520
    Пол:
    Мужской
    Ну весь блок
    Код (CODE):
    1. <?php
    2. $menu = & JSite::getMenu();
    3. if (view=='virtuemart' or $menu->getActive() !== $menu->getDefault()) {
    4.  if ($this->countModules('middle-left')) { ?>
    5. <div id="middle">  
    6. <jdoc:include type="modules" name="middle-left" style="simple" />
    7.     <div id="middle-right">
    8.         <jdoc:include type="modules" name="middle-right" style="none" />
    9.         <jdoc:include type="component" />
    10.     </div>
    11.     <div class="clear"></div>
    12. </div>  
    13. <?php }
    14. }
    15.  else { ?>
    16. <div id="middle" class="main">
    17.     <jdoc:include type="modules" name="middle-right" style="simple" />
    18.     <jdoc:include type="component" />
    19. </div>
    20. <?php } ?>
     
  19. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    да не работает. говорю же - получается, что без создания пунктов меню для каждой основной категории никак...

    p.s.: это был последний пинок. больше не занимаюсь VM.
     
  20. draff
    Offline

    draff Russian Joomla! Team Команда форума

    Регистрация:
    17.01.2011
    Сообщения:
    6 056
    Симпатии:
    520
    Пол:
    Мужской
    попробуй объяви переменную раньше
    $menu = & JSite::getMenu();
    у меня почти сразу после
    // No direct access.
    defined('_JEXEC') or die;
    И всего два пункта меню ВМ,основной и модуль входа ВМ.
    Правда,я тест проводил просто с выводом echo . Сейчас попробую с твоим модулем.
     
  21. DKraev
    Offline

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

    Регистрация:
    16.08.2008
    Сообщения:
    1 627
    Симпатии:
    216
    Пол:
    Мужской
    + 1000 Пришел к такому же мнению несколько ранее ))
     

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

Загрузка...