We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 27724
    • 65 Posts
    Уважаемые коллеги!
    Прошу Вашей помощи в решении следующего вопроса:
    У меня есть два вызов вайфиндера, которые различаются только параметром startId:
    1) [[Wayfinder? &startId=`[*id*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`]]
    2) [[Wayfinder? &startId=`[*parent*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`]]
    Для вывода меню из заголовков дочерних документов когда была выбрана 1) страница родитель 2) одна из дочерних страниц. Меню в итоге получается одинаковым. Но в данный момент у меня два шаблона, но с разными вызовами вайфиндер. Я понимаю, что это не хорошо и надо что то делать с этим безобразием.
    Я вижу два способа решения проблемы.
    1) Тиви Radio Options + два чанка; (по моему не очень элегантно);
    2) [+phx:is=`является ли документ контейнером`:then=`вызов вайфиндера1`:else=`вызов вайфиндера2`+] (наверно так лучше).

    Как написать условие `является ли документ контейнером` на Phx?
    Как написать условие `контейнером какого уровня яв-ся документ` на Phx?
    И вообще это возможно.
      Лечите компьютер от вирусов здесь http://virusinfo.info
      • 19164
      • 1,215 Posts
      Условие является ли документ контейнером очень простое [*isfolder:is=`1`:then= ... *] а вот с уровнями уже придется писать собственный модификатор. По логике - простая рекурсивная функция.
        DirectResize 0.9 beta. PHPThumb, sets of configurations, configuration, binded to specific path. No backward compatibility. | DirectResize 0.9. PHPThumb, наборы параметров, параметры, привязанные к определенным путям. Без обратной совместимости.

        Unfortunately, DirectResize project is closed. If you want to continue development, PM me for access to project page on Google Code. К сожалению, проект DirectResize закрыт. Если вы желаете продолжить разработки, обращайтесь через ПМ для получения доступа к репозиторию на Google Code.

        [PLUGIN] DirectResize - as Maxigallery but for single images :: Download :: [url=http://modxcms.com/forums/index.php/topic,21490]
        • 27724
        • 65 Posts
        Спасибо Metaller за помощь. Можно еще вопрос.
        А где более подробно почитать про модификаторы phx, тот же самый isfolder и какие еще существуют. как свой модификатор написать. вики про phx прочитал что то сразу не вкурил (да и там про них мало писано), может есть подробнее источники.
          Лечите компьютер от вирусов здесь http://virusinfo.info
          • 19164
          • 1,215 Posts
          Более подробного нет, isfolder это не модификатор phx а переменная документа (по-сути - поля из таблицы site_content), полный список которых есть тут http://modxcms.com/document-tvs.html

          Как писать свои модификаторы в самом конце вики все подробно описано с примерами.
            DirectResize 0.9 beta. PHPThumb, sets of configurations, configuration, binded to specific path. No backward compatibility. | DirectResize 0.9. PHPThumb, наборы параметров, параметры, привязанные к определенным путям. Без обратной совместимости.

            Unfortunately, DirectResize project is closed. If you want to continue development, PM me for access to project page on Google Code. К сожалению, проект DirectResize закрыт. Если вы желаете продолжить разработки, обращайтесь через ПМ для получения доступа к репозиторию на Google Code.

            [PLUGIN] DirectResize - as Maxigallery but for single images :: Download :: [url=http://modxcms.com/forums/index.php/topic,21490]
            • 27724
            • 65 Posts
            Еще раз спасибо Metaller.
              Лечите компьютер от вирусов здесь http://virusinfo.info
              • 27724
              • 65 Posts
              Вставляю в чанк такую конструкцию [+phx:if=`isfolder`:is=`1`:then=`[!Wayfinder? &startId=`[*id*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]`:else=`[!Wayfinder? &startId=`[*parent*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]`+]
              Происходит следующие. в коде выглядит все вот так (если isfolder=1)
              [+phx:if=`isfolder`:is=`1`:then=`<ul><li><a href="/index.php?id=24" title="Заполнить резюме" >Заполнить резюме</a></li></ul>`:else=`<ul><li><a href="/index.php?id=2" title="О компании" >О компании</a></li><li><a href="/index.php?id=11" title="Наши Проекты" >Наши Проекты</a></li><li><a href="/index.php?id=26" title="Фотогаллерея" >Фотогаллерея</a></li><li class="current"><a href="/index.php?id=23" title="Вакансии" >Вакансии</a></li><li class="last"><a href="/index.php?id=25" title="Контакты" >Контакты</a></li></ul>`+]
              если isfolder не равно 0
              [+phx:if=`isfolder`:is=`1`:then=``:else=`<ul><li class="current"><a href="/index.php?id=12" title="Текущие работы" >Текущие работы</a></li>
              <li class="last"><a href="/index.php?id=16" title="Выполнение" >Выполнение</a></li>
              </ul>`+]
                Лечите компьютер от вирусов здесь http://virusinfo.info
                • 897
                • 1,620 Posts
                Aleksey Stepanov Reply #7, 19 years ago
                не ленитесь и оформляйте свои сообщения ри помощи BB кодов. такую кашу никто читать не станет.
                  "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                  Не используйте Revo для "просто сайтов". Используйте Evo

                  Who can defeat the Russian bear?
                  • 27724
                  • 65 Posts
                  Прошу извинения за оформление предыдущего сообщения. Благодарю за помощь.
                  Нашел необходимый мне вызов вайфиндера для формирования меню:
                  [!Wayfinder? &startId=`[!UltimateParent?!]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]
                  использование вот этой конструкции не дает для меня правильных результатов:
                  [*isfolder:is=`1`:then=`[b][!Wayfinder? &startId=`[*id*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]`:else=`[!Wayfinder? &startId=`[*parent*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]`*][/b]
                  где нет редиректа при помощи [!FirstChildRedirect!] там меню выводится правильно (меню текущего раздела), а где есть там меню какое-либо вообще отказывается выводится.
                  изменил на следующее:
                  [+phx:if=`isfolder`:is=`1`:then=`[b][!Wayfinder? &startId=`[*id*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]`:else=`[!Wayfinder? &startId=`[*parent*]` &level=`1` &rowTpl=`leftrowTpl` &hereTpl=`lefthereTpl` &hereClass=`current` &lastClass=`last` &sortOrder=`ASC`!]`+][/b]
                  на страницах с использованием редиректа, все работает, меню раздела выводится как надо. на страницах без редиректа появляется не меню раздела, а меню сайта (корневое) где isfolder=1. то есть я так понял конструкция [*id*] воспринимается как [*parent*]. почему не знаю.
                  Я наверно, не понимаю. Подскажите где ошибка. Хотелось бы овладеть phx изначально правильно. Спасибо Metaller`у посмотрел еще раз вики про phx стало понятнее.
                    Лечите компьютер от вирусов здесь http://virusinfo.info