We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 25535
    • 3 Posts
    Привет! grin Я новичок в ModX.
    Можете подсказать, как сделать так, чтобы чанк отображался на запрограммированных страницах?

    Например, в шаблоне у меня стоит {{Чанк}} и он должен отображаться только на страницах id=5,7,39.
    И второй случай, надо чтобы чанк отображался на странице id=3 и во всех вложенных страницах.

    Даже необязательно, чтобы это был именно чанк, главное чтобы это работало таким образом.

    wink?
      • 897
      • 1,620 Posts
      сниппет юзай.
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

        Who can defeat the Russian bear?
        • 25535
        • 3 Posts
        Замечательно. smiley

        Итак, я вставляю в шаблон сниппет [[snippet]]. И хочу чтобы этот снипет вызывался на странице (под номером id=3) и во всех вложенных в неё страницах. А на всех остальных страницах сниппет, соответственно, отображаться не должен.

        Какие параметры надо задать сниппету и где их задавать, в нем самом или в шаблоне, чтобы вышло так, как я описал выше?
          • 28814 ☆ A M B ☆
          • 1,086 Posts
          Quote from: Rose at Jan 15, 2007, 10:59 PM

          Замечательно.  smiley

          Итак, я вставляю в шаблон сниппет [[snippet]]. И хочу чтобы этот снипет вызывался на странице (под номером id=3) и во всех вложенных в неё страницах. А на всех остальных страницах сниппет, соответственно, отображаться не должен.

          Какие параметры надо задать сниппету и где их задавать, в нем самом или в шаблоне, чтобы вышло так, как я описал выше?

          /* <? */
          if (!isset($id)) {
          	$id = 3; //id верхнего документа по умолчанию, в котором будет вызываться сниппет
          }
          
          $cid = $modx->documentIdentifier; // Получаем id текущего документа
          
          $output = "Какой-нибудь текст...";
          
          if ($cid==$id) {
          	return $output;
          }
          else {
          	$parent = $modx->getParent($cid,1,'id'); //Выбираем только активные документы
          	if ($parent['id'] == $id) {
          		return $output;
          	}
          }
          
          return '';
          
          /* ?> */
          


          Можете сохранить этот код как сниппет с названием MyCoolSnippet и вызывать его в шаблоне как [[MyCoolSnippet]]
          Также можете, если захотите, передавать другое значение ID родительского документа в сниппет, вызывая его в шаблоне с параметром id:
          [[MyCoolSnippet?id=12345]], где id - ID другого родительского документа.

          P.S.: Также слегка модифицировав данный сниппет, можно сделать так:

          /* <? */
          if (!isset($id)) {
          	$id = 3; //id верхнего документа по умолчанию, в котором будет вызываться сниппет
          }
          
          $cid = $modx->documentIdentifier; // Получаем id текущего документа
          
          $output = "{{MyCoolChank}}";
          
          if ($cid==$id) {
          	return $output;
          }
          else {
          	$parent = $modx->getParent($cid,1,'id'); //Выбираем только активные документы
          	if ($parent['id'] == $id) {
          		return $output;
          	}
          }
          
          return '';
          
          /* ?> */
          

          и затем создав еще один чанк с названием MyCoolChank, записать в него любой HTML код, который Вам нужен. Таким образом будет вызываться на странице с ID=$id (и на всех вложенных) чанк MyCoolChank.
            Разработка сайтов и программных модулей на MODX.
            Опыт работы на MODx с 2005 года. Высокое качество.
            Компания Baltic Design Colors: http://www.bdcolors.ru.
            • 25535
            • 3 Posts
            Igor
            Спасибо, за ваш замечательный и полный ответ! Всё работает! grin
              • 28814 ☆ A M B ☆
              • 1,086 Posts
              Пожалуйста wink
                Разработка сайтов и программных модулей на MODX.
                Опыт работы на MODx с 2005 года. Высокое качество.
                Компания Baltic Design Colors: http://www.bdcolors.ru.
                • 33694
                • 742 Posts
                Присоединюсь к Rose Des Vents, спасибо! smiley