We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 26721
    • 7 Posts
    Добрый день.
    Возникла серьезная проблема, с которой не могу справиться уже третьи сутки:
    Не работает вывод любых типов TV в сниппете Ditto

    Вызов Ditto:
    [[Ditto? &parents=`1` &documents=`1` &display=`1`   &tpl=`chunkTest` &hiddenFields=`1`  ]] 
    


    Чанк с плэйсхолдером для TV ([[$chunkTest]]):
    <div>
       [[+test]]   //имя TV
    </div>
    



    1. Все имена (чанка и TV) проверены не один раз;
    2. Эта констукция прекрасно работает в ModX Evo;
    3. Уже пробовал и в Revo RC2, Revo RC2 и сегодняшнем релизе - НИЧЕГО;
    4. Инсталлировал/деинсталлировал Ditto несколько раз - не помогает.
    5. Все документы опубликованы + проверялось с кешированием и без;
    6. Любые другие плейсхолдеры выводятся без проблем;
    7. Просто TV в виде [[*test]] тоже отлично выводится;

    Нигде решения этой проблемы не нашел, да и вообще не нашел, чтобы у кого-то была такая проблема.

    Очень надеюсь на помощь русского сообщества и заранее благодарен!
      • 897
      • 1,620 Posts
      вы бы документацию по Revo почитали, там новый синтаксис спец. конструкций.

      p.s. Revo - это не замена и не продолжение Evo. Это отдельный проект со схожими принципами. Сам Райн сказал, что Evo - cms c признаками cmf, а Revo - cmf c возможностями cms. Так что не стоит сразу переводить сайты на рево. Evo еще долго будет актуальна, они нисколько друг друга не заменяют.
        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

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

        Who can defeat the Russian bear?
        • 26721
        • 7 Posts
        Алексей, я перешел на modX с Joomla, и я понимаю, что Revo — это не продолжение EVO. Именно поэтому я решил делать последний проект на Revo (кстати, когда я писал, что этаже конструкция работает на Ево, я имел в виду, что работает в соответствии с синтаксисом вызова чанков и ТВ, естественно я знаю, что там и там синтаксис разный). Это оффтоп.

        А по существу — я читал документацию (кстати, последние несколько дней сервер с доками лежал). Естественно я не смог все ухватить.
        По логике как получается: - вызываются и выводятся все плэйсхолдеры (например [[+pagetitle]] или [[+id]]), значит, плейсхолдер [[+tvname]] тоже должен работать, но этого не происходит. Что меня смущает в этом: при изучении документации к Рево и Дитто, нигде не было указано, что вызов ТВ осуществляется каким-то специфическим образом (ну единственное - в Дитто с версии 2.х не надо ставить tv или tv в плейсхолдер с именем ТВ).

        Может я в корне ошибаюсь? Если да, то подскажите хотя бы, в какую сторону копать.

        Я пока пересмотрю, что сказано в доках по поводу плэйсхолдеров.


        UPD
        Кроме того, что плэйсхолдеры имеют в Рево вид: [[+placeholder_name]], ничего специфического не сказано.

        Дополняю свой вопрос тогда:)
        "Как в Дитто (ModX Revo) вывести TV определенного документа"
        Буду благодарен за конструктивные ответы!
          • 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?
            • 26721
            • 7 Posts
            Не пасую)
            Этот топик я видел вчера еще — человек решил проблему просто используя GetResource вместо Ditto.
            Я бы с удовольствием так бы и поступил тоже, но тут есть загвоздка — в GetResource нет сортировки случайным образом, а предложенные решения для этого неоправдано громоздкие (вплоть для прямого обращения к базе и создания виртуальных таблиц). В Дитто все проще — randomize)))

            Причем, в этом топике предположили:
            Not sure that Ditto is well supported under Revo...
            , что какбы намекает...)

            Немного поясню для чего мне нужен рандом тут:
            На сайте есть место под баннер компании - выводится изображение со слоганом и некоторым пояснительным текстом. Таких баннеров может быть большое количество и выводиться они должны случайным образом. Я уже почти готов использовать решение без TV (просто вставлять картинку в контент ресурса и выводить плейсхолдером [[+content]]), но в будущем такое не прокатит - планируется использовать еще несколько ТВ и их вывод очень нужен.
            Спасибо за помощь, буду дальше курить доки и мучать гугл.
              • 26721
              • 7 Posts
              Если кому-нибудь понадобится - в getResources работает &sortby=`RAND()`
                • 18955
                • 24 Posts
                1) Так все-таки к чему мы пришли?
                Мне действительно нужны TV в дитто ревы.

                2) getResources - не выводит ничего. Куда смотреть/копать?
                  • 26721
                  • 7 Posts
                  Проблема до сих пор не решена:
                  http://modxcms.com/forums/index.php?topic=49630.0

                  Я решил пофиксить это и сообщить в багтрекер. Только не в самое ближайшее время.
                  Может кто-нибудь поможет мне в этом?
                  Мне тоже нужны тв в дитто в рево, но решения так и не нашел. Поэтому пока делаю все на Evo.
                    • 18955
                    • 24 Posts
                    Сделал хук. Пришлось выкручиваться.

                    сниппет hook.tv
                    <?php
                    
                    if (isset($tvname) && intval($id))
                    {
                        $tv = $modx->getTemplateVar($tvname, '', $id);
                        return $tv['value'];
                    }
                    else
                        return '';
                    ?>
                    


                    Вызов сниппета:
                    [[!hook.tv? &tvname=`pic` &id=`[[+id]]`]]
                    
                      • 8643
                      • 271 Posts
                      Версия Ditto 3.0 alfa3.
                      В core/components/ditto/model/ditto/ditto.class.inc.php на 771 строке опечатка,
                      надо заменить
                      $c->sortby('modTemplateVaraResource.contentid','ASC');

                      на
                      $c->sortby('modTemplateVarResource.contentid','ASC');


                      У меня [[+tv]] в шаблоне дитто начало выводиться.