We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2207
    • 16 Posts
    Здравствуйте, ПЕределываю один плагин под свои задачи ,все понятно и работает, но не могу получить в плагине нужным мне TV параметр.
    Пытался получить таким способом
    $tv = $modx->getTemplateVar(’annotation’);
    $tv_content = $tv[’value’];
    в снипетах это работает, а плагине нет.

    вот здесь http://modxcms.com/forums/index.php/topic,32847.msg199986.html#msg199986
    в сообщении 4-6 как раз затрагивается эта тема, из чего следует:

    "Насколько я понимаю, функция getTemplateVar использует переменные documentIdentifier и documentObject, которые не определены перед сохранением документа. То есть с помощью данной функции решить задачу не получится"

    "Кстати, проблему решил именно по Вашему примеру - взял значение TV в виде $_POST[’tvannotation’]. Может быть этот прием кому-то пригодится."

    Но я вижу а все равно не понимаю smiley

    Пожалуйста, можете подсказать ЧЕТКУЮ последовательность действий, как все таки получить ТВ параметр?

    пробовал просто в нужном мне месте писать

    $myalias = $_POST[’keywordstv’];

    но у меня не работает это

    может предварительно надо как то объявлять эти переменные? может еще что?
      • 897
      • 1,620 Posts
      ...
      $docid = 1; // id документа tv которого так хочется 
      $tv = $modx->getTemplateVar('annotation', '*', $docid); 
      $tv_content = $tv['value'];
      ...
      

      getTemplateVar
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

        Who can defeat the Russian bear?
        • 2207
        • 16 Posts
        да, я так тоже пробовал
        только я писал типа так
        $keywords = $modx->getTemplateVar(’meta-keywords’, ’*’, $modx->documentIdentifier);
        $keywords = $keywords[’value’];

        потому что я же не знаю какой мне нужен документ, в смысле я знаю что это текущий документ, я же вызываю из плагина запрос ТВ параметра как раз при сохранении своего текущего документа

        но смысл не в этом, а в том что и упрощенная и полная формы
        $keywords = $modx->getTemplateVar(’meta-keywords’, ’*’, $modx->documentIdentifier);
        $keywords = $modx->getTemplateVar(’meta-keywords’);

        в снипетах работают, а в плагинах нет.
        Я же приводил выдержку из обсуждения:
        "Насколько я понимаю, функция getTemplateVar использует переменные documentIdentifier и documentObject, которые не определены перед сохранением документа. То есть с помощью данной функции решить задачу не получится"

        тогда наверное надо переформулировать вопрос - как получть Id моего документа в плагине...
          • 2207
          • 16 Posts
          разобрался
          т.е. все оказалось просто

          типа так

          global $id

          $tv = $modx->getTemplateVar(’annotation’, ’*’, $id);
          $tv_content = $tv[’value’];

          причем вся информация для решения у меня уже была, но смог переварить её только задав вопрос на форуме smiley
          спасибо за ответы smiley
            • 785
            • 2,113 Posts
            Команда $tv = $modx->getTemplateVar(’annotation’, ’*’, $id); вызывает лишний запрос к базе, что совсем не обязательно.
            Почитайте еще
            http://modxcms.com/forums/index.php/topic,51188.msg298049.html#msg298049
              Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
              Статьи о MODx, регулярно новые публикации