We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 28751
    • 31 Posts
    есть template variable типа text.
    как её можно задать в сниппете (присвоить строку)?

    id документа $docId
    название переменной шаблона "tvTextString"

    This question has been answered by spector. See the first response.

      • 31246 ☆ A M B ☆
      • 428 Posts
        Valentin Rasulov - Industrial design (Hobbies - Web Development)
        Development not standard projects on CMF MODx Revolution.
        Small sample of extensions
        • 28751
        • 31 Posts
        спасибо за ссылочку, курится хорошо.
        но нельзя ли всё-таки кусочек кода?
        а то просветление пока не снизошло...

        в частности, интересует, как получить конкретную TV конкретного ресурса в виде объекта. [ed. note: stuff last edited this post 14 years ago.]
          • 37237
          • 44 Posts
          http://rtfm.modx.com/display/revolution20/Accessing+Template+Variable+Values+via+the+API#AccessingTemplateVariableValuesviatheAPI-getTVValueUsage


          пример:
          $page = $modx->getObject('modResource', 123);
          return $page->getTVValue('bio');


          где 123 - id ресурса(документа), 'bio' - имя переменной значение которой необходимо получить [ed. note: spector last edited this post 14 years ago.]
            • 28751
            • 31 Posts
            Quote from: spector at Oct 18, 2012, 03:09 AM

            пример:
            $page = $modx->getObject('modResource', 123);
            return $page->getTVValue('bio');

            да ядрён-батон, это-то здесь причём?
            как это поможет изменить значение переменной шаблона?

            вы бы хоть вопрос прочитали...

            если я правильно понял статью по ссылке http://bobsguides.com/revolution-objects.html
            для изменения TV необходимо получить переменную шаблона как объект.
            тогда можно будет применить код такого вида:
            $objRawTV->set('value' => 'new value of template variable');
            $objRawTV->save();
            

            но вот как получить её в таком виде, я пока не понял
            • discuss.answer
              • 37237
              • 44 Posts
              как и в написаном выше получаете обект ресурса, затем пользуетесь $page->setTVValue('[имя_переменной], '[новое_значение])


              перейдите по ссылке которую я кинул, там все написано
                • 37237
                • 44 Posts
                http://bobsguides.com/revolution-objects.html :
                там сначала получают объект tv($tv), затем из него вытягивают значение для конкретного документа и патом работают с этим значением


                в той ссылке что я давал:
                сначала получают объект документа ($page) и работают с документом, меняя значение переменной шаблона для этого документа

                Но так или иначе необходимо знать id - ДОКУМЕНТА
                  • 28751
                  • 31 Posts
                  superthanks.

                  Quote from: spector at Oct 18, 2012, 05:16 AM
                  Но так или иначе необходимо знать id - ДОКУМЕНТА
                  как я и сказал вначале, Id, ясен пень, известен.
                  иначе неясно, какую TV получать. [ed. note: stuff last edited this post 14 years ago.]
                    • 28751
                    • 31 Posts
                    я, правда, думал, что можно попроще:
                    ведь, в таблице site_name_tmplvar_contentvalues в явном виде указано, к документу с каким id принадлежит tv.
                    хотелось бы сам ресурс лишний раз не тащить.