We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 30970
    • 19 Posts
    Здравствуйте.
    Для начала немного лирики: такое ощущения, что все, кто впервые ставит MODX и иже с ними до этого имеет уже хорошей программерский опыт- все вопросы и ответы на этом форуме и вообще в интернете подразумевают некислый опыт (по крайней мере я читаю их в некоторой прострации). Я же немного с другого бока подрулил к MODX- изначально программить я ни на чем не умею, в силу сложившихся обстоятельств я осилил постепенно HTML, CSS, совсем чуть-чуть JavaScript, и еще меньше PHP (лучше сказать, что последние 2 не осилил, а научился чужие скрипты под себя корежить). Проще говоря, с перечисленными знаниями испытываю острую необходимость в тупом разборе на конкретном примере синтаксиса Wayfinder’а.
    Читаю перевод документации по этому сниппету, в теории с скрипом могу понять что к чему, а как реально это написать- не могу представить.
    Смысл моего воззвания: если есть где-нибудь разбор примеров создания разных меню на Wayfinder’е для тупых- киньте ссылкой, или помогите разобраться на таком примере:


    имеется меню с эффектом разворачивания на javascript

    код, который надо получить на выходе, выглядит так:
    <div id="menu">
    <ul>
    <li><a href="#" onclick="openMenu(’sub_menu_1’);return(false)">menu 1</a>
    <ul id="sub_menu_1">
    <li><a href="#">sub menu 1</a></li>
    <li><a href="#">sub menu 2</a></li>
    </ul>
    </li>
    <li><a href="#" onclick="openMenu(’sub_menu_2’);return(false)">menu 2</a>
    <ul id="sub_menu_2">
    <li><a href="#">sub menu 1</a></li>
    <li><a href="#">sub menu 2</a></li>
    </ul>
    </li>
    <li><a href="#" onclick="openMenu(’sub_menu_3’);return(false)">menu 3</a>
    <ul id="sub_menu_3">
    <li><a href="#">sub menu 1</a></li>
    <li><a href="#">sub menu 2</a></li>
    </ul>
    </li>
    </li>
    </ul>
    </div>

    Что нужно ставить в темплейте между<div></div>?
    Основная сложность- как добавить для <li> первого порядка такую хрень в атрибуты к <a>: onclick="openMenu(’sub_menu_1’);return(false)"?
    ну и как id для <ul> первого порядка задать?

    Если не сложно- как тупому, полный код. Спасибо заранее.

      • 31022
      • 328 Posts
      Все, о чем вы спрашиваете, делается чанками. И ссылка вставляется с нужными атрибутами. Вызываете wf в шаблоне, прописываете ему, что оболочку меню делать таким кодом, просто строчку другим, родительскую третьим, а текущую -- четвертым, если надо. [код=чанк, есличо]

      Есть у wf замечательный сайт разработчика http://www.muddydogpaws.com/development/wayfinder/features.html Там все подробненько и с примерами изложено. Рассмотрите примеры просто по-любому!
        • 30970
        • 19 Posts
        Спасибо на добром слове. если ссылка не поможет- ничего, если я здесь уточню чуть-чуть вопросик?
          • 30970
          • 19 Posts
          Честно поковырялся, такие возникли вопросы: имеем следующую строчку-
          [[Wayfinder? &startId=`0` &level=`2` &hideSubMenus=`0` &outerTpl=`wfOuter` &rowTpl=`wfRow` &hereTpl=`wfHere`]]

          Насколько я понял, это дело можнорасшифровать примерно так: меню на вайфандере, начальная директория- корневая, углубляемся на 2 уровня, подменю не прячем, вывод разделов меню обрабатывает чанк wfOuter`, пункты меню обрабатывает чанк wfRow, текущий пункт меню- чанк wfHere.
          А где перечисленные чанки искать, чтобы хоть понять, что там в них понаписано- фиг знает. Зашел в Ресурсы-Управление ресурсами-Чанки ничего из перечисленного выше там не нашел.

          По ссылке на muddydogpaws не совсем понятно следующее:
          в разделе примеров под пунктом "используемые чанки" идет строчка, например:
          &parentRowTpl=`cssplay_parentRow`
          а дальше собственно код. Так вот это самое &parentRowTpl=`cssplay_parentRow`- это название чанка такое длинное или где-то нужно его таким образом прописать? Извините, все, в принципе, можно понять но вопрос, посторяю, чисто в синтаксисе- где что и каким образом нужно писать...
          Спасибо всем откликнувшимся заранее.
            • 21524
            • 90 Posts
            чанк это html код. вот когда создаете чанк, там и пишете в html все, что захотите))
              • 33694
              • 742 Posts
              В данном случае (да и вообще чаще всего в MODx) чанки испольузются как шаблоны для форматирования вывода сниппета (в случае с Wayfinder — это меню или его ранзные пункты в различных состояниях).
              Почти каждый сниппет форматирует свой вывод на основе внутренних шаблонов (зашитых в его код — это шаблоны по умолчанию). Если вы ходите как-то изменить вывод, то переопределяете нужный вам шаблон (например, &parentRowTpl) и оформляете в нём всё по своему усмотрению — расставляете нужные плейсхолдеры (paceholders) в нужном порядке и обвешиваете их html тегами.
                • 30970
                • 19 Posts
                Спасибо за ответ. Вопрос конкретный- как и где прописать мой чанк? Предположим, что упомянутые чанки wfOuter`, wfRow, wfHere- стандартные, поэтому их в ресурсах не видно (хотя они где-то есть, просто их не высвечивают, потому как они системные и править их по-любому не дадут), но вот захотел я, чтобы вывод разделов меню обрабатывал не чанк wfOuter (из моего примера по умолчанию), а написанный мой MyOuter. Я в разделе чанков создаю этот самый чанк MyOuter, а в темплейте пишу [[Wayfinder? &startId=`0` &level=`2` &hideSubMenus=`0` &outerTpl=`MyOuter`]]?
                Так что-ли?
                  • 33694
                  • 742 Posts
                  Вы и сами замечтаельно ответили на свой вопрос.
                  Создаёте чанк и руководствуясь документацией к сниппету расставляете в этом чанке плейсхолдеры доступные для шаблона в качестве которого вы его используете.
                    • 30970
                    • 19 Posts
                    Так, дело обучения по-тихоньку продвигается (за что всем принявшим в обсуждении участие спасибо). Такой конкретный вопрос, в модексе есть понятие "позиция в меню". каким волшебным заклинанием описать это в чанках?

                    мне эта штукенция нужна, чтобы на выходе автоматом прописывалось "sub_menu_Х", где Х- как раз позиция в меню.
                    То есть нужно получить в результате код ниже:

                    <li><a href="#" onclick="openMenu(’sub_menu_1’);return(false)">menu 1</a>
                    <ul id="sub_menu_1">
                    <li><a href="#">sub menu 1</a></li>
                    <li><a href="#">sub menu 2</a></li>
                    </ul>
                    </li>
                    <li><a href="#" onclick="openMenu(’sub_menu_2’);return(false)">menu 2</a>

                    <ul id="sub_menu_2">
                    <li><a href="#">sub menu 1</a></li>
                      • 30970
                      • 19 Posts
                      Блин, второй день голову ломаю- решения не найдено (боюсь, что тут надо пользоваться какими-нибудь новинками для меня, тип TV- без разбора на примере вообще не могу представить, что это такое). Подскажите, плиз, как в посте выше задать порядковый номер для каждого пункта- родителя (sub_menu_Х, где Х- порядковый номер пункта-родителя). Причем, номер этот для каждого раздела меню надо проставить в 2-х местах (в блоках <ul> и <li>). Нашел такую тему- [*menuindex*], но она выводит для всех пунктов меню одинаковый номер- текущей страницы. Хелп!!!