We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 46877
    • 18 Posts
    Здравствуйте. 2 дня просидел за попытками разобраться в MODx, но так и не вышло. Пытался смотреть youtube и гуглить, но темы устарели поменяли синтаксис, да и вообще не соответствовали вопросу. Хочу заметить, что сама реализация управления контентом мне кажется весьма удобной, разумеется если знаешь Html+css, хотя для проверки работы снипетов таких как Wayfinder и getResources ненужно вообще ничего в пустом документе можно проверить. И так, начнём с того, что проверка getResources неудалась и никакого дампа в виде массива я не увидел и начал лопатить параметры &resources - собственно выбор ресурса по id, &tpl=`123`- чанк-шаблон, &parents - родитель, &showHidden=`1` - что то вроде отображения скрытого, итд, но никакие манипуляции не помогли chank 123 выводит информацию для каждой страницы в тот момент как в getResources явно указан id ресурса &resources=`6`. Далее возникает вопрос как в последней версии Revo вывести контент генерируемый снипетом getResources если не [[*content]]то как? Вот казалось бы обычная тема вывод в чанк информации из снипета, но я устал искать и согласен на помощь ввиде ссылки, но только на актуальный синтаксис. Потом подсказали, что не *, а + content - тоже не работает. Обычно значёк * означает ВСЁ-ВСЕ, + складывает строки, числа итп везде по своему, что тут он означает загадка, что означает ++, что означает ~~ почему Синтаксис который идёт впереди всего и везде в MODx идёт через задний проход постоянно меняется итд. Так же через getResources нет необходимости вывода всего текста со всех страниц(например: лента новостей, блог), а только заголовок, краткая информация. Как обозначить участок текста который необходимо вывести через getResources? Я так понял, что это производится через использование TV полей, тойсть участок текста помещается в какой то ТЕГ(КАКОЙ?) допустим [[nameTV]]Разбираемся в MODx[[/nameTV]], а потом вставляем в чанк типа [[$nameTV]][[+nameTV]] или ++ или*. Особое внимание вытягиванию(иначе не назовёшь теперь) информации из Снипета, placeholder и TV это одно и тоже?. Вот вопросы которые у меня возникли, очень надоели дагодалки.
    [ed. note: surfrider last edited this post 12 years, 7 months ago.]
      • 25599
      • 59 Posts
      getResources выводит список документов из контейнера, заданного в &parents по определенному шаблону, который указывается в параметре &tpl.
      Это чанк, в котором все TV пишутся по принципу [[+tv.имя_tv]], а системные поля выводятся как [[+имя_поля]].
      Так: [[*имя_tv]] TV-параметры выводятся только в шаблоне самого ресурса.

      Синтаксис этот не менялся никогда и есть всего два варианта написания:

      • [[+tv.имя_tv]] — в MODX Revolution
      • [+имя_tv+] — в MODX Evolution
      Это две разных ветки MODX, они между собой не совместимы и отличаются очень сильно.

      Про синтаксис тегов MODX Revolution почитайте тут: http://docs.modx.pro/system/basics/syntax-tags
      Документация по getResources с примерами тут: http://rtfm.modx.com/extras/revo/getresources

      В случае, если нужно вывести в шаблон содержимое документа (поле content), нужно установить параметр &includeContent=`1` и в шаблоне прописать [[+content]] (здесь нет приставки tv., поскольку это не TV-параметр).

      В Вашем конкретном случае минимальный вызов такой:
      [[getResources?
      &parents=`6`
      &tpl=`chunk`
      &includeContent=`1`
      ]]

      Чанк "chunk":
      [[+pagetitle]]
      [[+content]]
      


      Естественно, в контейнере (6) должны быть ресурсы ).

      PS
      Лучше использовать не getResources, а pdoResources из пакета pdoTools (http://docs.modx.pro/components/pdotools/snippets/pdoresources) — он быстрее.
      Принципы те же.
        • 46877
        • 18 Posts
        Вывести хаотичную информацию всё же получилось, но вот с полямя разобраться не получается. Есть текст с заголвком <h2>Hello World</h2> и остальной текст разбитый по параграфам <p>Это мой первый сайт на CMS MODx!!!</p>. Требуется на главную страницу в ленту новостей вывести заголовок и часть текста ввиде ссылки.
        Пример:
        Hello World - ссылка
        Это мой первый сайт - ссылка, обращаю внимание, что весь текст выводить не требуется, а только определённую часть его.
        Новость 2 - ссылка
        Часть текста со страницы.
        Новость 3 - ссылка
        Часть текста со страницы.

        Если вы решитесь попробывать мне помочь, очень хочется понять как в выведеной информации через &getResources отделить заголовок от остального текста (нужна лента новостей) Пожалуйста напишите пример оформления Чанка например с такими полями как заголовок и контент и как на странице с контентом обозначить эти поля, в какие теги поместить?

        P.S: Я не понял что вы написали в первых 3 строках своего первого сообщения. Пожалуйста продемонстрируйте работу TV полей, как отметить нужные поля в тексте и как в чанке. Может быть я неправильно понимаю принцип их работы, вернее я вообще не понимаю принципа их работы. [ed. note: surfrider last edited this post 12 years, 5 months ago.]
          • 25599
          • 59 Posts
          У Вас в контейнере (6) есть ресурсы и Вам нужно вывести их на главной?

          На главной вызываете:
          [[getResources?
          &parents=`6`
          &tpl=`news-item`
          &includeContent=`1`
          ]]


          Создаете чанк с именем "news-item":
          <h3>[[+pagetitle]]</h3>
          [[+content]]


          Если нужно выводить значение TV (например, с именем "price"), то в вызов добавляете:
          &includeTVs=`1`
          &includeTVList=`price`
          

          а чанк будет таким:
          <h3>[[+pagetitle]]</h3>
          [[+content]]
          <div>Цена: [[+tv.price]]</div> 
          

            • 46877
            • 18 Posts
            Я наверно не правильно понимаю предназначение TV.... Мне нужно сделать следующее: ge
            tResources вывел мне весь текст со страницы, но ведь для ленты новостей этого не требуется. Верно? Лента новостей представляет собой Заголовок и небольшую часть текста откуда-то со страницы. Так вот как мне указать не весь текст состраницы [+content], а только заголовок и часть текста в виде ссылки? Я подумал что на странице заголовок и необходимый участок текста необходимо поместить между тегами и потом указать их в чанке - это я думал и есть Tv поля... Думал так(в тексте) [Tv_Zag]<h1>Заголовок</h1>[/Tv_Zag],
            [Tv_Cont]<p>Содержание страницы</p>[/Tv_Cont], а потом в чанке вот так : <div><a>[+Tv_Zag]</a> <a>[+Tv_Cont]</a></div>. Это очень грубый пример, просто я хочу показать направление моих мыслей и понять туда ли я думаю...

            P.S: То что вы мне написали про TV пока пытаюсь осмыслить.
              • 46877
              • 18 Posts
              Если сделать <h1>[[+pagetitle]]</h1>, то названия ресурсов выдаются ввиде заголовков, а не заголовки на странице.
              Ещё вопрос, а как сделать их ссылкой?
                • 25599
                • 59 Posts
                Если нужно вывести часть текста, то, к примеру, используйте поле Аннотация (введение) у новости.
                В чанке оно выводится как
                [[+introtext]]
                .

                Либо, если влом забивать краткое содержание отдельно, а хотите использовать часть основного контента, то используйте в чанке конструкцию:
                [[+content:ellipsis=`300`]]

                В этом случае MODX сам возьмет первые 300 символов содержания, поставит в конце "..." и остальное обрежет.

                А вообще, почитайте про стандартные теги: http://rtfm.modx.com/revolution/2.x/making-sites-with-modx/commonly-used-template-tags
                Только учтите, что в чанке getResources нужно вместо "*" ставить "+" иначе выведется всё от текущей страницы с вызовом. То есть не [[*pagetitle]], а [[+pagetitle]].

                Про модификаторы и фильтры (тот самый ellipsis) тут: http://docs.modx.pro/system/basics/filters-input-and-output

                Quote from: surfrider at May 29, 2014, 09:28 AM
                Если сделать <h1>[[+pagetitle]]</h1>, то названия ресурсов выдаются ввиде заголовков, а не заголовки на странице.
                Ещё вопрос, а как сделать их ссылкой?
                По [[+pagetitle]] ничего не понял. Вам нужно заголовок новости вывести? Оно это и делает.

                Ссылка на в чанке ставится либо так:
                <a href="[[+uri]]">[[+pagetitle]]</a>

                либо так:
                <a href="[[~[[+id]]]]">[[+pagetitle]]</a>
                [ed. note: rpa last edited this post 12 years, 5 months ago.]
                  • 46877
                  • 18 Posts
                  Я писал про то, что ставится Титл страницы в тег H1, а я говорил о том что бы из текста страницы взять H1 и использовать его. Иначе говоря я хотел сделать pagetitle и h1 разными, не привязанными к названию ресурса.
                  Ещё я не понял, чем TV отличается от обычного чанка?
                    • 25599
                    • 59 Posts
                    Я писал про то, что ставится Титл страницы в тег H1, а я говорил о том что бы из текста страницы взять H1 и использовать его. Иначе говоря я хотел сделать pagetitle и h1 разными, не привязанными к названию ресурса.
                    H1 - это HTML-тег. Он никак не связан с MODX. Куда хотите, туда и ставите. Что хотите туда, то и выводите (любое поле документа):

                    <h1>[[*pagetitle]]</h1> 
                    <h1>[[*longtitle]]</h1> 
                    <h1>[[*description]]</h1> 
                    <h1>[[*zagolovok]]</h1>  
                    <h1>Любой текст</h1> 
                    


                    Ещё я не понял, чем TV отличается от обычного чанка?
                    Чанк - это просто кусок HTML-кода. TV - это переменная шаблона. То есть то, что у разных документов с одинаковым шаблоном должно быть разным. Например, цена у товара в магазине.
                      • 46877
                      • 18 Posts
                      Тойсть можно сделать так?
                      Ресурс:
                      <h1>Тег h1 в теле страницы</h1> - вот этот текст мне надо вызывать в чанке.
                      <p>Любой текст на странице</p>


                      Значит я в чанке указываю так: <a href="[[+uri]]"> <h1> [[+h1]] </h1> </a> ?