We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22662
    • 21 Posts
    Нужно чтобы в статье рядом с названием выводилась ссылка на родительский документ.
    Сделал так, но он не работает. Посмотрите может я что не так делаю. Вот кусок кода из шаблона сайта ответственного за
    вывод статьи:
    <div id="page-title">
    
       <h2>[*pagetitle*]</h2>
       <p><a align="right" href="[(site_url)][~[+parent+]~]">[!GetField? & docid=`[+parent+]`!]</a></p>
    </div> <!-- /page-title -->
      • 22301
      • 1,084 Posts
      не уловил. а [+parent+] откуда у вас берётся?

      [+parent+] -- это плейсхолдер, вот в этом топике ссылки на 2 других:
      http://modxcms.com/forums/index.php/topic,47203.0.html там на простых примерах.

      То есть, чтобы на месте плейсхолдера что-то появилось, кто-то должен поработать.

      Но есть стандартные API, вот например:
      http://wiki.modxcms.com/index.php/API:getParent

      И если вывод какой и организуется в этом случае, то вот так [*parent*].
      Вам достаточто поменять плюсики на звёздочки, чтобы заполучить id родителя.

      если хоть чуток знаете php, можете доделать сниппет:

      <?php
      $id= $modx->documentIdentifier;
      
      $parent = $modx->getParent ($id, 1, 'id, pagetitle');
      $pid = $parent[id];
      $ppagetitle = $parent[pagetitle];
      
      $plink = '<a href="[~'.$pid.'~]">'.$ppagetitle.'</a>'; 
      
      return $plink; 
      
      ?>
      


        [img]http://jurist-info.ru/pic/rrr.jpg[/img]

        Безжалостный пияр!
        Artima -- неуч!
        Осторожно: преступная локализация -- modx-cms.ru
        Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

        Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
        • 22301
        • 1,084 Posts
        приходится продолжать в следующем камменте, так как форма прыгает...

        итак, и сниппет, который можно обозвать parent_link и вызывать так [[parent_link]]
        , и [*parent*] получают id документа, в котором они вызываются!

        если необходимо получать ссылку на родительский документ по произвольному id, то либо доведите до ума код сниппета -- за бутылочку пиваса любой кодер php справится, либо просто уберите первую строчку, а сниппет вызывайте так [[parent_link? &id=`5`]].

        Внимание: в сниппете не предусмотрена проверка на существование документа с заданным id и наличия у него родителя, вообще ничего не проверяется. но парсер выдавать ошибку на экран не будет, просто вывод будет пустым.
          [img]http://jurist-info.ru/pic/rrr.jpg[/img]

          Безжалостный пияр!
          Artima -- неуч!
          Осторожно: преступная локализация -- modx-cms.ru
          Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

          Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
          • 22301
          • 1,084 Posts
          А вот есть сниппет от русскоязычного сообщника, кстати.
          И допиливать ничего не надо:
          <?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: [email protected]   */
          
          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;
          ?>
          




            [img]http://jurist-info.ru/pic/rrr.jpg[/img]

            Безжалостный пияр!
            Artima -- неуч!
            Осторожно: преступная локализация -- modx-cms.ru
            Баштанник Андрей -- мегапрограммер из Белоруссии и поедатель говна, очень критично настроенный молодой человек!

            Дисклеймер для общительных: даю сам себе право транслировать в открытый эфир содержание лички, just for fun
            • 22662
            • 21 Posts
            Благодарю, сегодня попробую поставить. wink