We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33694
    • 742 Posts
    Предлагаю достопочтенной публике (в первую очередь начинающим) ознакомиться с простеньким но полезным снипетом для создания вторичной навигации.

    Под вторичной навигацией тут понимаются ссылки "Карта сайта" или "Обратная связь", которые обычно находятся не весть где на странице, и WayFinder’ом так просто их не сгенерить...

    Главное требование к таким ссылкам - не ссылаться на себя. Например, логотип в шапке - это ссылка на главную страницу, но он не должен быть ссылкой на главной странице! Там это должна быть обычная картинка.

    Конечно, можно просто прописать нужные ссылки в шаблоне, если озвученное требование для вас не более чем прихоть, так будет действительно проще. Но мы не ищем лёгких путей!

    И так, создаём новый сниппет с именем MakeLink и кодом приведённым ниже (снизу он ещё прикреплён файлом; модифицировать можно всё и как угодно, но распространять сильно изменённые варианты желательно сюдой):
    <?php
    /* MakeLink [0.6]
    ** This snippet allows create single non self-referred links 
    * ------------------------------------------------------
    *
    ** Most simple example:
    * [[MakeLink? &docid=`12` &alink_text=`Sitemap`]]
    *
    ** Parametrs:
    * &docid : document id to generate link (* required parameter);
    * &alink_text : active link text (* minimally necessary);
    * &alink_chunk : active link chunk (use instead of the &alink_text);
    *
    * &dlink_text : disabled "link" text;
    * &dlink_chunk : disabled "link" chunk (use instead of the &dlink_text);
    *
    * &link_class : CSS class to assign for tag <a>;
    * &link_id : CSS identifier to assign for tag <a>;
    *
    ** Exemples of use:
    * [[MakeLink? &docid=`12` &alink_text=`Contact us` &dlink_chunk=`contact_img_chunk`]]
    * <span style="color:#999;">[[MakeLink? &docid=`12` &alink_text=`Contact us`]]</span>
    * <div id="logo">[[MakeLink? &docid=`1` &alink_chunk=`logo_link_tpl` &link_id=`logo_link`]]<div>
    *
    * ------------------------------
    ** Copyright (C) 2007, [e]Bu$ter
    ** e-mail: eBuster [аt] eppz.net   */
    
    if (!isset($docid)) {
      $link = '<span style="color:red;"><strong>MakeLink:</strong> Please, specify &docid parametr!</span>';
      return $link;
    }
    
    $alink = (isset($alink_chunk))? $modx->getChunk($alink_chunk): ((isset($alink_text))? $alink_text : '<span style="color: blue;"><strong>MakeLink:</strong> Specify text for this link.</span>');
    $dlink = (isset($dlink_chunk))? $modx->getChunk($dlink_chunk): ((isset($dlink_text))? $dlink_text: $alink);
    $link_class = (isset($link_class))? " class=\"$link_class\"": '';
    $link_id = (isset($link_id))? " id=\"$link_id\"" : '';
    
    if ($docid == $modx->documentIdentifier) {
      $link = $dlink;
    } else {
      $url = $modx->makeUrl($docid);
      $link = "<a href=\"$url\"$link_id$link_class>$alink</a>";
    }
    
      return $link;
    ?>

    Теперь, в шаблоне (или в отдельном чанке, вызывая этот чанк в шаблоне) пишем:
     [[MakeLink? &docid=`12` &alink_text=`текст ссылки`]] 
    В итоге, если alias у страницы с id=12, равен test, то на всех страницах кроме test, снипет выведет
    <a href="test">текст ссылки</a>
    а на странице test выведет
    текст ссылки
    Это самый простейший случай.
    Вместо [tt]текст ссылки[/tt], можно выводить целые чанки! А из чанков, чего уже только нельзя вызывать...

    Всего (кроме праметра &docid, который понятно зачем нужен) сниппет может принимать четыре параметра:


    • &alink_chunk - "active link chunk": имя чанка содержащего текст (изображение, снипет, etc...) для активной ссылки
    или
    • &alink_text - "active link text": текст активной ссылки (это мы уже проходили);
    Приоритет у параметра alink_chunk. Т.е. если он будет указан вместе с alink_text, то последний будет проигнорирован. Из чего следует, что одновременно использовать и тот и другой параметр бессмысленно.



    • &dlink_chunk - "disabled link chunk": имя чанка для неактивной "ссылки"
    или
    • &dlink_text - "disabled link text": текст для неактивной "ссылки";
    Если не указывать dlink_chunk или dlink_text, то текст ссылки будет унаследован из параметра alink_chunk, или из alink_text если вы использовали его. Из это следует, что единственным минимально-необходимым параметром из этой группы является alink_text.



    • &link_class - CSS class для тега <a>;
    • &link_id - CSS id для тега <a>;
    Параметры link_class и link_id испульзуем по необходимости, они не обязательные.

    © [e]Bu$ter, 2007 grin (нравится мне этот смайлик)


    P.S. Комментарии, дополнения, указания на ошибки, ну и конечно же помидоры, прошу в студию! smiley

    UPD 01 Февраль 2007: Всё таки прикрепил снипет файлом.
    UPD 21 октябрь 2007: Поздно, но всё таки спрятал мыло в прикреплённом файле — «они» его нашли! embarrassed
      • 30354
      • 227 Posts
      РЭСПЕКТ! РЭСПЕКТ! мне всегда было лень заняться чем-то подобным, и я создавал по 4 перемнных шаблоны, чотбы на главной не было логотипа, домика, а на второстепенных они были! В общем, мелочь, но приятно!
        http://www.avizion.ru/ — строим стартап!
        http://tonatos.ru/ — Заходите в гости...
        • 19164
        • 1,215 Posts
        Ага, полезный сниппет, украсит любой сайт. Автору спасибо smiley

        Даешь больше сниппетов, хороших и разных!
          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]
          • 33694
          • 742 Posts
          Прикрепил снипет файлом к первому сообщению и обновил его код в самом сообщении (изменял только примеры, и тексты сообщений об ошибках - они стали более дружественными smiley ).

          Кроме того, со своим то знанием языка, осмелился сунуться в репозитарий rolleyes. Приглашаю всех проголосовать! wink
            • 19164
            • 1,215 Posts
            Проголосовал, поставил 5 баллов. Сам английский знаю плохо, но читаю хорошо - написано ужасно, построение предложений как в русском, просто слова ангийские smiley
              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]
              • 2873
              • 106 Posts
              Внесу свою лепту, не ручаюсь за флюентность smiley

              This small snippet allows you to make not self-referred links easy and whith a touch of style.
              An example:
              If you look at the page privacy.htm, code <a href=privacy.htm>Privacy info</a> will be changed to Privacy info, whithout a link.
              I hope this snipped will be useful for additional subnavigation links. For mainmenu of your site you should use the Wayfinder, ofcouse smiley
                • 19164
                • 1,215 Posts
                Quote from: Battoon at Mar 02, 2007, 04:40 PM

                ofcouse smiley

                of course smiley
                  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]
                • Quote from: Battoon at Mar 02, 2007, 04:40 PM

                  Внесу свою лепту, не ручаюсь за флюентность smiley

                  This small snippet allows you to make not self-referred links easy and whith a touch of style.
                  An example:
                  If you look at the page privacy.htm, code <a href=privacy.htm>Privacy info</a> will be changed to Privacy info, whithout a link.
                  I hope this snipped will be useful for additional subnavigation links. For mainmenu of your site you should use the Wayfinder, ofcouse smiley

                  Вслед за Metaller’ом smiley
                  whith -> with
                  whithout -> without
                  snipped -> snippet
                  An example: -> For example:
                  mainmenu -> main menu (I think this translation will be right but not sure rolleyes )
                  P.S.: not self-referred links - как-то это странно звучит, по моему smiley
                    Разработка сайтов и программных модулей на MODX.
                    Опыт работы на MODx с 2005 года. Высокое качество.
                    Компания Baltic Design Colors: http://www.bdcolors.ru.
                    • 2873
                    • 106 Posts
                    Íó âîò! Ñåé÷àñ îáùèìè óñèëèÿìè ñáàöàåì àííîòàöèþ, ôîðèíû ïàëü÷èêè îáëèæóò smiley
                      • 33694
                      • 742 Posts
                      Круто! Спасибо ребята. Утром обновлю всё это дело в репозитарии...


                      Я там попутно глянул как к WayFinder’e и Ditto сделаны плейсходеры, и думаю, что можно и сюда их прикрутить. Только не знаю как именно smiley <deleted: тут был мой полуношный бред>
                      Есть идеи?