We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 5
    • 38 Posts
    Как правильно вывести значение ТВ переменной в темплейте Дитто(2.0.х)?

    -1) Создал переменную типа Ричтекст и визуальный компонент ТиниМСЕ;
    -2) Назначил ее шаблону;
    -3) Создаю новый документ и использую шаблон с созданной ТВ переменной;
    -4) Задаю значение переменной
    -5) Вывожу ее в темплейте Дитто как [+имяМоейПеременной+].

    Однако происходит сл. штука, отображается только textarea и больше ничего sad

    Требуется чтобы выводилось только значение ТВ, а не вся ТВ. Я что-то не так сделал или надо вытаскивать значение переменной через АПИ МодХа?
      • 26486
      • 63 Posts
      попробуйте так [[+tvимяпеременной+]]
        • 5
        • 38 Posts
        Quote from: sdmarka at Oct 08, 2007, 08:42 AM

        попробуйте так [[+tvимяпеременной+]]

        Так вообще ничего не выводит (

        З.Ы ступил, значение переменной выводится, посмотрел не тот документ. Но так и так не порядок выводится не толькозначение переменной но и текстэреа и ТиниМСЕ. Требуется только содержимое ТВ.
          • 897
          • 1,620 Posts
          [+имяпеременнойБЕЗtv+]
            "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

            Who can defeat the Russian bear?
            • 19164
            • 1,215 Posts
            Чтобы выводить содержимое TV без редактора, не используйте виджет TinyMCE
              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]
              • 5
              • 38 Posts
              Quote from: aleksey.stepanov at Oct 08, 2007, 09:49 AM

              [+имяпеременнойБЕЗtv+]

              Не подходит. Выводит так сказать слишком много(Текст Ареа и Тини МСЕ)

              Quote from: Metaller at Oct 08, 2007, 10:12 AM

              Чтобы выводить содержимое TV без редактора, не используйте виджет TinyMCE

              Ну если бы можно было использовал бы без Тини МСЕ, только вот ТиниМСе надо чтоб содержимое можно было вводить и форматировать по тирпу WYGIWYS.

              Тогда как вариант вытаскивать значение при помощи getTempVarOutput ? Или как там это было? Только вот как это вызвать из Чанка?

                • 19164
                • 1,215 Posts
                При использовании API функций работы с 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]
                  • 5
                  • 38 Posts
                  Quote from: Metaller at Oct 08, 2007, 01:19 PM

                  При использовании API функций работы с TV все равно так или иначе получите результат с наложением действия виджета.

                  Тогда Хардкор в наших руках, порежу аутпут прегами в классе дитто и делов то. И допишу чтобы за порезку отвечал какойнить параметр. Просто странно что это не предусмотрено >:(
                    • 5
                    • 38 Posts
                    И так, чуток дописал Дитто и библиотеку tmplvars.format.inc

                    Дитто может использовать только контент ТВ при назначенном виджите ТиниМСЕ или дргом редакторе.

                    1) При вызове сниппета прописываем дополнительный параметр: &onlyRtTVContent=`ИмяПеременной1,ИмяПеременной2,...,ИмяПеременнойN`

                    2) Добавляем в сниппет Дитто строку $onlyRtTVContent = !empty($onlyRtTVContent)? $onlyRtTVContent : ’’; , после или перед определения любого другова параметра.

                    3) Заменяем 931 строку в сниппете ($resource = $ditto->getDocuments($documentIDs, $dbFields, $TVs, $keywords, $showPublishedOnly, 0, $where, $queryLimit, $sortBy, $sortDir,$randomize); ) на $resource = $ditto->getDocuments($documentIDs, $dbFields, $TVs, $keywords, $showPublishedOnly, 0, $where, $queryLimit, $sortBy, $sortDir,$randomize,$onlyRtTVContent);

                    4) в файле ditto.class.inc.php заменяем 2 строки функции getDocuments:

                    1(0) строка;
                    function getDocuments($ids= array (), $fields, $TVs, $keywords, $published= 1, $deleted= 0, $where= '', $limit= "", $sort= "id", $dir= "ASC", $randomize=0, $onlyRtTVContent='') {
                    


                    55(54) строка;
                    $TVData = array_merge_recursive($this->appendTV($tv,$TVIDs,$onlyRtTVContent),$TVData);
                    


                    5) в этомже файле заменяем 1, 21, 30 строки функции appendTV: и дописываем 3 строку:

                    1(0) строка;
                    function appendTV($tvname="",$docIDs,$onlyRtTVContent=''){
                    


                    3(пустая) строка;
                    $onlyRtTVContent = !empty($onlyRtTVContent) ? explode(",",$onlyRtTVContent) : false;
                    


                    21(20) строка;
                    $resourceArray["#".$row['contentid']][$row['name']] = getTVDisplayFormat($row['name'], $row['value'], $row['display'], $row['display_params'], $row['type'],$row['contentid'],$onlyRtTVContent);   
                    


                    30(29) строка;
                    $defaultOutput = getTVDisplayFormat($row['name'], $row['default_text'], $row['display'], $row['display_params'], $row['type'],$row['contentid'],$onlyRtTVContent);
                    


                    6) в файле tmplvars.format.inc.php переписываем 8(1) строку:
                    function getTVDisplayFormat($name,$value,$format,$paramstring="",$tvtype="",$docid="",$onlyRtTVContent='') {
                    


                    ,а также переписываем case: "richtext":
                    case "richtext":
                    				if (is_array($onlyRtTVContent) && in_array($name, $onlyRtTVContent)) {
                    					$value = parseInput($value);
                    					$o= $value;
                    				}else {
                    					$value = parseInput($value);
                    					$w = $params['w']? $params['w']:'100%';
                    					$h = $params['h']? $params['h']:'400px';
                    					$richtexteditor = $params['edt']? $params['edt']: "";
                    					$o = '<div class="MODX_RichTextWidget"><textarea id="'.$id.'" name="'.$id.'" style="width:'.$w.'; height:'.$h.';">';
                    					$o.= htmlspecialchars($value);
                    					$o.= '</textarea></div>';
                    					$replace_richtext = array($id);
                    					// setup editors
                    					if (!empty($replace_richtext) && !empty($richtexteditor)) {
                    						// invoke OnRichTextEditorInit event
                    						$evtOut = $modx->invokeEvent("OnRichTextEditorInit",
                    														array(
                    															'editor'		=> $richtexteditor,
                    															'elements'		=> $replace_richtext,
                    															'forfrontend'=> 1,
                    															'width'			=> $w,
                    															'height'		=> $h
                    														));
                    						if(is_array($evtOut)) $o.= implode("",$evtOut);
                    					}
                    				}
                    				break;
                    


                    Вот и все дела. Пригодилась мне может камунить еще пригодится данная штука.
                      • 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?