We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33273
    • 60 Posts
    Если TV присвоено значение, выводит его, иначе --- фразу "не указано".
    Для этого создал сниппет CheckItOutNow grin
    <?php
    $returnstring="";

    $tv = $modx->getTemplateVar($tv_name);
    $src = $tv[’value’];
    if ($src) {
    $currentid = $modx->documentObject[’id’];
    $value = $modx->getTemplateVarOutput($tv_name, $currentid);
    $output = $value[$tv_name];
    $returnstring .= "<strong>".$name.": </strong>".$output."
    ";
    } else {
    $returnstring .= "<strong>".$name.": </strong>не указано
    ";
    }
    return $returnstring;
    ?>

    Вызов сниппета:
    [!CheckItOutNow? &name=`Особенности` &tv_name=`special`!]
    Выводит как надо:
    Особенности: Особенность №1, Особенность №2, ....

    Таким образом я проверяю и вывожу достаточно обширный список (12 TV, все delimited list)

    ТЕМА:
    Если просто выводить (без проверок) эти TV, запросов SQL = 6
    с проверками запросов SQL=40
    Мне кажется многовато.
    Есть более экономичный способ?
      • 19164
      • 1,215 Posts
      Более экономичный способ - получать значения TV не через встроенные функции, а прямым запросом к БД.

      С другой стороны - если страницы не будут часто меняться, после кеширования все будет в порядке, стоит ли беспокоится?
        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]
        • 33273
        • 60 Posts
        Кешировать? Хм, неплохой вариант..
        А если на этой же странице вызов сниппета Star Rating (*****)? Просто вызывать сниппет [! некешированным !] ?
        вопросик: а вот я вызываю CheckItOutNow тоже некешированным.... Как я понял, если вызывать сниппет некешированным, то он выполняется, даже если страница кешированная. Мне этот сниппет тогда ТОЖЕ нужно вызывать [[ кешированным ]]?

        шишишишиши..... grin
          • 19164
          • 1,215 Posts
          Quote from: yurican at Feb 23, 2007, 03:07 AM

          Кешировать? Хм, неплохой вариант..
          А если на этой же странице вызов сниппета Star Rating (*****)? Просто вызывать сниппет [! некешированным !] ?
          вопросик: а вот я вызываю CheckItOutNow тоже некешированным.... Как я понял, если вызывать сниппет некешированным, то он выполняется, даже если страница кешированная. Мне этот сниппет тогда ТОЖЕ нужно вызывать [[ кешированным ]]?

          шишишишиши..... grin
          Совсем запутал... Если ты исользуешь [! !] то сниппет некешируется при любых настройках страницы. В случае использования [[ ]] сниппет кешируется в соответствии с настройками страницы (т.е. кешируется вместе с ней, если кеширование включено, и соотвественно не кешируется, если выключно).
            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]
            • 33273
            • 60 Posts
            Большое некешированное спасибо. laugh
              • 33273
              • 60 Posts
              О! Вариант!
              Нашёл способ.
              Делает не 52 запроса, а 7

              сниппет CheckItOutNow
              <?php
              $returnstring="";
              if ($contentoftv !="") {

              } else {
              $returnstring .= "<notfilled>не указано</notfilled>";
              }
              return $returnstring;
              ?>

              Вызов:
              Особенности: [*special*] [!CheckItOutNow? &contentoftv=’[*special*]’!]

              ....
              Всё выводит, но шаблон съезжает весь (MODxHOST)
              Борода.... wink