Урок 10. Вывод контента сниппетом getResources
Что такое getResources?
getResources это сниппет MODX Revolution, который извлекает содержимое полей из других ресурсов и выводит его в любом удобном для вас виде. Если вы знакомы MODX Evolution, getResources может считаться заменой Ditto.
Почему нужно использовать именно getResources?
getResources отлично подходит для случаев, где вам необходимо объединить и вывести информацию от различных ресурсов в одном месте и в необходимом формате. Наиболее очевидным применением сниппета getResources будет создание основной блоговой страницы сайта, другие возможные блоки использования - слайдеры, страница портфолио, новостная лента...
Как использовать сниппет getResources?
Ниже приведён список шагов описывающих процесс использования сниппета getResources. После того, как вы привыкните к его использованию, большинство описанных шагов будут происходить интуитивно, но так как вы только начинаете, то хорошо иметь под рукой некоторое подобие плана действий. Вот один описанный мною:
- Для начала установите сниппет getResources
- Далее необходимо решить как структурировать страницы, контент которых мы собираемся вывести и какой будет шаблон вывода страниц. Всё будет отличаться в зависимости от структуры вашего сайта и целей. Вы можете выводить отдельные страницы на вашем дереве сайтов либо размещать дочерние страницы в контейнере и использовать ИД контейнера, чтобы их вывести и др.
- Определиться какие поля будут показаны на выведенной странице. Вы можете, например, показать только список заголовков на вашем сайдбаре или показать только заголовок страницы и содержание, либо показать несколько полей и переменных шаблона, и т.д.
- Если у вас еще нет шаблона, то создайте шаблон для вашей странице вывода контента.
- Сделайте простой вызов getResources чтобы убедиться в том, что контент извлекается и выводится.
- Создайте чанк-шаблон для вывода полей, которые вы будете показывать на вашей странице.
- Добавьте нужные параметры в вызове сниппета getResources
1. Установка getResources
Я уже установил getResources и мы будем его использовать для создания страницы статьи. Мы будем использовать для шаблона страницы блога шаблон 7 in 1 Business Success Site студии Themeforest. Страница блога (частично) будет выглядеть следующим образом:
Как видите, у нас есть страница с несколькими компонентами – заголовок, изображение, дата публикации, изображение и отрывок содержания со ссылкой “читать остальную часть записи” к целому посту. Этот шаблон мы будем использовать для объединённого вывода наших статей.
2.Подготовьте шаблон для вывода отдельной статьи:
После установки сниппета getResources, смотрим на оформить стуктуру страниц отдельного вывода статей. Для этого я буду использовать шаблон отдельного поста нашей темы, который я взял из файла single.html. Я уже портировал данный шаблон в свой шаблон и назвал его “7in1 Single Article”. Вот как мой “7in1 Single Article” шаблон будет выглядеть:
Вы узнаете чанки шапки и подвала, мы уже их использовали, я добавил всего лишь два дополнительных чанка, один для содержимого сайдбара (7in1-articles-sidebar) и одного временного чанка (articleCommentStuff_temp) для секции комментирования, чтобы не нагромождать все элементы. В данный момент эти два чанка содержат статический контент нашего шаблона, но в следующий уроках мы сделаем их динамичными. Так же я добавил две дополнительных переменных шаблона, одну для вывода текста в теге изображения (article_image_title) и другую для самого изображения (article_image – {тип ввода – изображение, тип вывода – текст}). Также я добавил другие поля, такие как ИД поста, урлы и др., многое из этого должно быть вам понятно из предыдущих уроков.
Последним моментом, на который я хотел обратить ваше внимание - вывод поля даты. Он производится через publishedon используя при этом функцию PHP strtotime для показа даты в необходимом виде (как в шаблоне нашей темы). Более детально про функцию strtotime и форматирование дат - в конце этого поста ссылки.
Как я уже говорил, содержимое сайдбаров, теги и секция комментариев – статичны и мы над этим вопросом поработаем в следующих уроках.
3. Добавьте статьи
Отлично, теперь у нас есть шаблон для отдельных страниц и можно двигаться дальше. Создадим несколько статей для нашего сайта, используя этот шаблон, таким образом мы сможем проверить наш вызов getResources. В моём случае я создал контейнер Articles и установил шаблон для него Base Template, который я поменяю позже, когда буду готов выводить объединённый контент. Всередине я размещу парочку контейнеров для каждой категории или темы, которую покрывают мои статьи… например – новости, MODX уроки и др.
Размышляя об этом, я понимаю, что не хочу, чтобы мои статьи выводились в меню, также я хочу, чтобы они все использовали шаблон 7in1 Single Article. В рассуждениях о том, как же лучше сделать легче мою работу или работу клиента, я решил, что так как большинство новых ресурсов будут статьями, то есть здравый смысл в том, чтобы сделать соответствующими настройки по умолчанию для типа содержимого. Другими словами, сделайте все новые ресурсы с этого момента по умолчанию использующими шаблон 7in1 Single Article, а также они должны быть скрытыми от меню. Конечно же, можно отредактировать один за одним все ресурсы и это не будет проблемой, так как остальные мои страницы уже созданы и большинство новых ресурсов буду статьями. Итак, чтобы сделать это, идём System->System Settings, далее фильтр « area» и выбираем “Site”. Нужные настройки – Default Template, Hide from Menus Default.
После внесения изменений наблюдаем такую картину:
Теперь, при создании нового ресурса, он берёт шаблон отдельной статьи по умолчанию и уже поставлена галочка в Скрыть от меню (Hide From Menus).
Заметка: Обратите внимание, что такое поведение будет в случае, когда документ создаётся в корне. Если же вы зайдёте в любой контейнер и нажмёте «Создать документ здесь» (Create a Document Here), то он возмёт шаблон контейнера и скроет от меню. Поэтому будьте внимательны к настройкам каждого ресурса.
Давайте продолжим и создадим около 8 простых статей для нашего сайта, чтобы сниппет мог их объединить и вывести getResources. Я беру сгенерированный текст отсюда http://www.malevole.com/mv/misc/text/ и произовальные картинки из Гугла. Позже при наличии времени я заменю этот текст другим необходимым, здесь же в целях обучения будет достаточно наличия любого текста и картинок. Вот как выглядит дерево моего сайта в данный момент:
Теперь можно перейти к следующему этапу, который состоит в том, что мы созданим шаблон для нашей основной страницы блога и далее сформируем вызов сниппета getResources.
4. Подготовка страницы агрегированного контента.
Если вы используете тот же шаблон, что и я, то посмотрите на код и вы увидите, что он почти не отличается от кода для обычного шаблона, но без секции комментирования и других аналогичных элементов, поэтому можно использовать те же чанки и код, что мы использовали ранее. Вот как будет выглядеть шаблон 7in1 Aggregated Articles:
Теперь я использую данный шаблон для вывода содержимого ресурсов - дочерних элементов следующих контейнеров – контейнер Articles и каждого из контейнеров для категорий, в моём случае - MODX News, MODX Web Development, MODX Tips and Tricks и Other Stuff. Теперь одна из категорий будет выглядить приблизительно так:
Давайте перейдём к выводу нашего контента.
5. Базовый вызов сниппета getResources
Перед тем, как мы начнём формировать вызов сниппета и работать с getResources, важно познакомится с несколькими вещами, которые могут легко ввести в заблуждение, если вы до этого не были знакомы с getResources и даже если вы знакомы. Я называю их мои getResources уловки!
- Вызов getResources по-умолчанию не содержит шаблона вывода. Вам необходим шаблон - tpl-чанк, чтобы определить вывод содержимого ресурса (ресурсов).
- getResources по-умолчанию не покажет ресурсы, которые скрыты от меню, поэтому вам необходимо задать &showHidden=`1`
- getResources по-умолчанию не включит поля содержимого ваших ресурсов, поэтому вам необходимо задать &includeContent=`1`
- В дополнение, если даже вы установите includeContent, сниппет getResources по-умолчанию не включит переменные шаблона, поэтому вам необходимо задать &includeTVs=`1` и &processTVs=`1`
- Если вы зададите includeTVs и processTVs, сниппет getResources будет ожидать, что в вашем шаблоне tpl, вы будете обозначать ваши переменные шаблона префиксом “tv.”. Вы можете перезаписать это добавив &tvPrefix=` ` и далее использовать только лишь имя переменной шаблона как заполнитель.
- Если вы выводите необходимые ресурсы через параметр &resources=`1,2,3`, где 1,2,3 - выводимые ресурсы, то не забудьте обязательно указать параметр &parents=`-1`
Есть еще много моментов, но это основные, в которых легко допустить ошибку.
Как и у всех других сниппетов, вызов getResources выглядит так:
[[!getResources]]Базовый вызов позволит вам убедиться в том, что сниппет работает на нашем сайте. Если я размещу данный вызов на странице Articles page я ничего не получу. Вы можете подумать, что происходит что-то неправильное, но этому есть простое объяснение. Помните наш список находок? По умолчанию getResources ожидает, что ваши ресурсы не будут скрыты от меню, поэтому если вы хотите показать скрытые ресурсы вам необходимо добавить параметр &showHidden и установить его значение в true. Поэтому отредактируйте ваш вызов:
[[!getResources? &showHidden=`1` ]]
Если я перегружу страницу, то вот что я получу:
Выглядит плохо, но это значит, что getResources работает и извлекает контент. Что нам сейчас нужно сделать, так это привести контент к нужному виду и определить какими должны быть наши параметры: например, какие контейнеры использовать для параметра parents, как глубоко в дереве ресурсов делать выборку самих ресурсов, какие поля каждого ресурса мы хотим извлекать на нашу страницу статей и т.д.
6. Создание шаблонирующего tpl чанка для getResources
Для вывода страницы в нужном нам виде, нам необходимо создать чанк для шаблонизации отдельных элементов, которые будет извлекать наш сниппет getResources. Для этого, я возьму код из статического шаблона, который представляет каждый элемент поста и заменить статические элементы динамическим кодом.
Итак берём HTML код для вывода поста блога в статическом коде файла шаблона blog.html:
Мы можем использовать данный код как базу нашего tpl чанка. Я заменю статические куски заполнителями. Для короткого содержимого поста я не хочу извлекать содержимое поля Content ресурса, мне нужна лишь короткая выдержка. Поэтому я буду использовать поле аннотация (Introtext) ресурса и далее выводить его, используя конструкцию [[+introtext]] можно также использовать Переменную шаблона [[+tv.tvname]]. Для вывода также можно использовать содержимое ресурса - поле Content. Я могу взять, например, первые 350 символов каждой статьи и вывести. Чтобы это сделать прикрепляю фильтр вывода :ellipsis=350 к моему заполнителю контента.
Помните о том, что мы оставляем секцию тегов статической в данный момент, потом к этому мы ещё вернёмся.
Теперь я могу сохранить этот код в чанк, который я назову articleTpl. Далее я изменю мой вызов getResources, добавив туда мой tpl-чанк.
Если мы перегрузим нашу страницу Articles, то сразу увидим разницу:
Картинка постепенно оживает! Мы видим, что выводимый контент отображается с использованием правильного шаблона и мы можем нажать на заголовки, которые ведут на отдельные посты. Но еще предстоит еще много поработать.
Вы можете перезаписать данный параметр добавив &limit и указав необходимое количество статей. Я установлю количество статей равным 10, чтобы убедится, что у меня работает всё так как нужно.
Вспоминая наши уловки описанные выше, мы знаем причину того, что аннотации контента не показываются и причину того, что наши заполнители картинок пусты, потому что нам необходимо использовать includeContent, includeTVs и processTVs. Давайте изменим наш вызов и добавим следующие элементы:
Если мы обновим нашу страницу теперь, то увидим изображения и короткие в 350 символов аннотации извлекаемого содержимого, как я указал в шаблонирующем tpl-чанке:
Теперь наш контент извлекается и выводится нужнім образом, можем продолжить далее и улучшить наш вызов getResources, добавив другие параметры, которые нам могут понадобиться.
7. Добавьте другие параметры к вызову getResources
Итак мы добавили несколько параметров к нашему вызову и они помогают извлечь необходимые поля и вывести их соответствующим образом согласно нашего шаблона. Теперь мы можем продолжить и закончить формирование нашего вызова, добавив необходимые параметры. Полный список возможных параметров и их значение по умолчанию можно узнать на странице официальной документации getResources
Выбор параметров зависит от поведения сайта, которого нужно добится. В моём случае есть ещё парочка параметров, которые я хотел бы добавить.
Если вы взглянете на вывод, то заметите, что страница Articles извлекается на странице категории, то бишь MODX News, MODX Web Development, MODX Tips & Tricks и Other Stuff. Очевидно, что я этого не хочу. Вместо этого, я хочу обозначить, что эти субконтейнеры являются предками ресурсов, которые я хочу показать и я хочу проникать только на один уровень вниз до этих субконтейнеров. По умолчанию, getResources предполагает, что ресурс, в котором вы разместили вызов вашего сниппета – это родительский ресурс и он показывает все ресурсы под собой и их дочерние ресурсы на глубину равную 10.
Поэтому я изменю мой вызов и добавлю ID субконтейнеров тех ресурсов, которые я хочу включить и определю глубину отображения ресурсов:
Теперь данный вызов покажет только статьи сами по себе, а не их родительские контейнеры. Есть еще несколько спобов сделать так же. Например, если вы собираетесь добавить контейнеры других категорий в будущем и не хотите помнить о том, как возвращаться к вызову, чтобы добавить их ID к параметру &parents, то можете использовать &hideContainers=`1` и далее убрать или отредактировать параметр &depth, чтобы он отвечал структуре вашего сайта. В этом случае вы можете полностью убрать &parents, так как getResources будет считать, что вызов сниппета происходит в родительском ресурсе или для завершения редактирования задайте его значение равным [[*id]]:
Ну вот мы и закончили работу над нашим сниппетом getResources. Надеюсь, вы нашли что-то для себя полезное и можете разобраться с расскрытым здесь вопросом и использовать это в построении ваших сайтов.
Домашнее задание:
Вот маленькое домашнее задание для вас, чтобы протестировать знания, приобретённые в ходе урока.
- Поработайте над первой секцией сайдбара страницы articles, чтобы построить список и ссылки на категории статей. Можете использовать для этого Wayfinder или getResources, оставляю выбор за вами
- После этого, необходимо, чтобы страницы, на которые вели ссылки данных категорий содержали агрегацию контента только этой категории. Это просто сделать.
Что дальше?
Вот вы и прошли 10 уроков курса MODX Revolution для новичков. Теперь стоит начать разбирать примеры Блога о MODX Revolution https://modx.ws/blog/blog-o-modx-revolution/. Рекомендую прочитать и разобрать статью Создание блога в MODX Revolution Буду рад ответить на любые вопросы и комментарии.
Jun 25 2012 уроки MODx Revolution getResources дополнения сниппеты шаблоны MODx Revolution Виктор Матушевский
Lola
14.11.2011 20:29Виктор! Вы можете раскрыть секрет того, как вы сделали вывод sitemap.xml в структурированном виде? Сам по себе сниппет GoogleSiteMap выводит в формате txt да еще не в структурированном виде.
Viktorminator
14.11.2011 21:52Создание карты сайта sitemap.xml в MODx Revolution
Добавил в качестве эксперимента скрипт Readability (сверху поста) - для лучшей читаемости блога. Пользуйтесь и делитесь впечатлениями в Отзывах (панель слева).
Lola
14.11.2011 23:01Огромное спасибо! Виктор! Небольшое дополнение. Нужно выбрать пустой шаблон и еще добавить исключения, чтобы не выводились не нужные странички и папки. Моя ошибка была в том, что не был установлен формат страницы XML.
Viktorminator
14.11.2011 23:31Да, пустой шаблон. А те страницы, что не нужно выводить, ставите Unpublish
Alex Kostin
16.11.2011 12:41Обратите внимание: в коде < вместо <, > вместо >
Пропали классы в span и div. Например вместо <span class="day"> просто <span> и т.п.
Viktorminator
16.11.2011 12:57Alex: для вставки кода используйте pastebin, так как Quip режет весь код. &lt не нашёл, можете поконкретнее где?
По поводу классов я сейчас не вспомню - если верстка не поплыла, значит так было задумано :)
Alex Kostin
16.11.2011 14:59Ну вообще-то код из комментария на странице корректно отображается. Пришлось постараться :)
А Вы оказывается каким-то другим способом комментарии просматриваете (в админке?). :(
Речь про листинги к этой статье. Посмотрите повнимательнее. В Вашем сниппете, которым Вы pre обрабатываете, должно быть не "<", а "<". И опять же - куда-то пропали классы в div и span.
Lola
20.11.2011 12:46Виктор! Ваша помощь нужна вновь :) Пробовала установить поиск с помощью простейшей конструкции !SimpleSearchForm? &landing=`123`. Ничего не вызывается совсем, почему-то. Окно поиска с кнопкой появляется, при запросе переходит на страницу, где должны быть размещены результаты, но самих результатов нет. Что тут можно сделать?
Viktorminator
20.11.2011 12:53<h2>Results</h2>
[[!SimpleSearch]]
поставьте это на вашей landing странице c id=123
Lola
20.11.2011 14:14Да, там есть такая конструкция, но я ее упустила как-то. Трудно в английском учесть нюансы. Сейчас, конечно, выводится поиск, но не ясно как изменить внешний вид. Или с помощью шаблона вывода или с помощью CSS. Последнее, видимо, вероятнее?
Viktorminator
20.11.2011 14:56http://htmlbook.ru CSS изучайте. Но я бы советовал взять другой шаблон или попробовать с нуля сделать свой. Красивое меню и слайдер вы всегда сможете добавить.
Lola
20.11.2011 16:32Я пыталась применять разные шаблоны для вывода результатов поиска, но все оставалось неизменным. Видимо, шаблон вывода зашит в самом сниппете. Было бы очень хорошо, если бы вы, Виктор, сделали еще по крайней мере два урока, по галерее и по форме подписки на рассылку. По галерее не нашла вразумительного и последовательного урока для стандартного сниппета типа Gallery.
Viktorminator
20.11.2011 17:22Я имел в виду шаблон для сайта. Отображение результатов поиска изменяйте с помощью CSS.
Шаблон вывода не может быть "зашит" в сниппет. Все шаблоны вывода для SimpleSearch находятся в каталоге /core/packages/simplesearch-1.5.0-pl/modCategory/наборбуквоцифр/0/simplesearch/elements/chunks можете прямо оттуда их брать, смотреть и редактировать, то бишь заменять чанками, создаваемыми в менеджере МОДекса. RTFM по этому сниппету 7 марта изменялось, а сам сниппет от 5 ноября, поэтому вполне естественно, что могут быть несостыковки.
Для галереи есть Урок создания галереи в MODx Revolution
Для Rss сделаю попозжее.
rezvik
21.11.2011 20:25Напишете о постраничном разделении, вывода новостей с помощью GetPage.
Viktorminator
21.11.2011 21:17Уже есть статья с нужной вам информацией о getPage и пагинации: Создание блога в MODx
prihod
13.12.2011 20:26Пытаюсь через getResources сделать вывод новостей для этого пишу
[[!getResources? &showHidden=`1` &tpl=`NEWS` &parents=`20` &limit=`8` &depth=`1` &hideContainers=`1` &includeContent=`1`]]
Но получаю N-е количество данных но с pagetitle и ссылкой на родительский документ, а контентом новости
Viktorminator
13.12.2011 20:36Код чанка NEWS в студию. Через pastebin вставьте и дайте нам ссылку
prihod
13.12.2011 21:00http://pastebin.com/9tFU4a22
Viktorminator
13.12.2011 21:14[[+pagetitle]]
prihod
13.12.2011 21:23Спасибо!
Viktorminator
13.12.2011 21:25Вступайте в группу в контакте (внизу в футере) "Социальные закладки".
Виталий
07.02.2012 00:04Поясните пжлст что это у вас такое src="[[tv.article_image]]" вот именно что такое [[tv.article_image]]? Это вызов ПШ, который отвечает за картинку? или же сам путь к картинке? по идее путь должен быть, но я пытаюсь сделать то же самое, и у меня ничего не получается, как я понял "article_image" - это имя TV параметра-картинки?
Viktorminator
07.02.2012 00:56article_image - это переменная шаблона, тип image. Выражение в скобках выводит путь к изображению. Ну и обратите внимание на плюс перед tv. Может поэтому у вас не вышло с вызовом данной переменной.
Вова
19.02.2012 08:20Кто нибудь решил домашнее задание!?
Алексей
09.03.2012 03:11Столкнулся со следующими непонятками:
http://ndfo.ru/index.php?id=9 Все нормально отображается, но только в Mozilla, в остальных браузерах ничего не выводития, хотя другие страницы - статические работают нормально.
И почему то на это странице не работает код Google Adsense (и в Mozilla тоже) хотя на других также функционирует.
Подскажите в какую сторону копать то?
Алексей
09.03.2012 05:58Даже более того, нормально отображается только на моем рабочем месте - firefox 10.0.2 на другом компьютере смотрел - также не отображается ничего
Viktorminator
09.03.2012 06:12Алексей, от меня вам совет - откажитесь от сайта на фреймах, выберите доступный шаблон, который одинаково хорошо отображается во всех браузерах.
Алексей
09.03.2012 06:21:) Вот только думал в сторону фреймов. На данный момент использую простой html css шаблон.
Ноо никак не могу понять что происходит с выводом.
Алексей
09.03.2012 08:50И вот что еще заметил, этот же чанк вывел на главную - никаких проблем с отображением во всех браузерах, и также код adsense работает. Странно...
Алексей
09.03.2012 10:13Вот и домашнее задание выполнил. Проблема сохраняется. Куда не вывожу агрегацию категории - не отображается в других браузерах, не работает код adsense. На главной же все нормально. Шаблон один и тот же используется, настройки также идентичны. В чем же проблема то может быть?
Михаил
30.03.2012 22:38Скачал и установил getResources. Прописываю простейший код в шаблоне ([[getResources]] для проверки) - ничего не появляется. В чем может быть причина?
Созданы три документа, которые опубликованы.
Михаил
31.03.2012 08:53Подскажите еще пожалуйста, как выводить в шаблоне заголовок страницы с ID3?
Вставил в чанк страницы [[!getResources]] - не помогло... Пусто...
Viktorminator
31.03.2012 08:56Назначьте любому ресурсу ваш шаблон, где производится вызов getResources, далее нажмите "Сохранить" и "Просмотр". Если ничего не выдаст, то проверьте еще раз - установили ли вы getResources?
Михаил
31.03.2012 09:11Шаблон назначен. На главной выводится все содержимое чанков, кроме getResources.
Статус getResources установлен, версия 1.4.2.
Михаил
01.04.2012 14:57Так в чем может быть причина?
Как проверить?
Как выводить в шаблоне заголовок страницы с ID3(или любой другой)?
Михаил
01.04.2012 15:31Разобрался как выводить в шаблоне заголовок страницы с ID3
[[*pagetitle? &id=`3`]]
Вот бы на сайте были указаны эти способы совмещения параметров. Наверняка еще есть!
Михаил
01.04.2012 15:51[[*pagetitle? &id=`3`]] не помогло. Я прогнал :(
Помогите, наверняка есть простой способ это реализовать
Viktorminator
01.04.2012 15:57getfield
Михаил
02.04.2012 07:12Спасибо! Только на revolution getResourceField
Михаил
03.04.2012 17:47Решена проблема с выводом getResources следующим образом:
[[!getResources?
&parents=`7`
&showHidden=`1`
]]
Может кому-нибудь поможет....
Михаил
03.04.2012 18:39Да, в &parents=`7`
7 - это ID родительского ресурса.
Владимир
15.04.2012 22:10Подскажите.
Как можно вывести только неопубликованные материалы.
showUnpublished - выводит все.
Спасибо!
Viktorminator
15.04.2012 22:18&where=`{"publishedon:=":0}` вот вроде правильная запись
Михаил
24.04.2012 20:05Помогите пожалуйста никак не могу вывести аккардеон на странице , при нажатие ничего не происходит весь день сижу не могу понять в чем дело
Viktorminator
26.04.2012 16:29Ну как там? одолели аккордеон?
Михаил
29.04.2012 15:20На jquery почему то не получилось сделал на mootools
максим
06.05.2012 14:05Можно ли с помощью getResources вывести внутрь содержимое только одного определенного ресурса например по его id??
Viktorminator
07.05.2012 06:41Да, через параметр &resources=
Антон
13.06.2012 17:50возникла проблема с выводом из Articles на главную.... что странно...getResources вообще отказывается работать на главной (тоесть [[!getResources]] не чего не выводит).
древо такое:
Хом(1)
Проекты(2)
..блог(3)
..блог1(4)
..Блог2(5)
getResources вынимает тока содержимое папки "Проекты", а мне нужны tv из блогов, вызываю вот так"[[!getResources? &limit=`5` &includeTVs=`1` &includeContent=`1`&processTVs=`1` &sortby=`publishedon` &parents=`3,4,5`]]" возврат 0...
iM0S
24.06.2012 13:49Размышляя об этом, я понимаю, что не хочу, чтобы мои статьи выводились в меню, также я хочу, чтобы они все использовали шаблон 7in1 Single Article.
Зачем столько воды ? Размышляю... понимаю ... и вот я подумал ... интересно как статьи могут в меню выводится? Зачем городить такие простыни каламбуров, изъясняйтесь проще, не должна полная раскрывающая тему статья собирать столько комментов.
Нельзя ли проще -
"Для того чтобы названия пунктов статей использующих шаблон 7in1 Single Article не выводились в меню, необходимо сделать следующее:..."
Александр Наумов
27.08.2012 13:31Виктор, спасибо за урок!
Подскажите, пожалуйста, а как можно вывести pagetitle родителя?
Например, если я помещаю в чанк конструкцию [[getResourceField? &id=`[[*parent]]`]] и вызываю этот шаблон так [[$мойШаблон]], то все работает и заголовок родителя выводится, но если я этот чанк вазываю через getResource то в том месте где должен быть заголовок родителя - пусто.
Viktor Minator
27.08.2012 14:09Пожалуйста. Избегайте таких больших вложений.
Получать поле родителя нужно через getResourceField - здесь всё верно.
Покажите через pastebin ваш вызов getResources (обратите внимание на S в конце названия сниппета ;).
Александр Наумов
27.08.2012 15:21http://pastebin.com/N7iN4meQ
Юрий Перепадя
30.08.2012 18:46Виктор, спасибо за урок.
У меня только не получился вывод [[+content:ellipsis=`350`]]. Не потому ли, что текст статьи я вставил в редактор текста, который выражается у меня в шаблоне переменной art-content вместо content? Дело в том что переменная content у меня была занята другим другим плагином.
Юрий Перепадя
30.08.2012 21:59Я уже понял свою ошибку, оказывается переменная content это содержимое ресурса и не нужно было задавать какое-то другое поле с текстовым редактором для текста статьи. Вопрос снимаю.
vitl11
14.09.2012 21:32не выводятся изображения и титл в шаблоне article
Лола Елесина
08.10.2012 21:04Виктор! Все прекрасно. Но представьте, что у меня не 20. а 2000 статей, как тогда быть. Ведь тогда дерево ресурсов ни в какие рамки экрана не влезет, да и какой вид у будет у главного меню? Есть какие-либо рецепты?
Viktor Minator
08.10.2012 22:21Используйте Articles и Butcher. В главном меню не обязательно все статьи выводить или вообще какие-либо статьи.
Лола Елесина
10.10.2012 19:36Спасибо Виктор! А где можно посмотреть о Butcher, что это такое?
Viktor Minator
10.10.2012 19:52http://modx.com/extras/package/batcher Батчер - Batcher
Yuriy Savychev
16.10.2012 18:07Виктор, подскажите такой момент: у меня часть ресурсов являются ссылками (WebLinks), и мне нужно, чтобы для них отображались TV от целевого объекта, то есть от того документа, на который ссылается этот WebLink. Как это сделать ?
Viktor Minator
16.10.2012 18:12используйте дополнение getResourceField. [[getResourceField? &id=`[[*content]]` &field=`myTV` &processTV=`1` &default=`Нет ТВ`]]
Yuriy Savychev
17.10.2012 01:19Спасибо большое, Виктор! Проблема решилась с Вашей помощью. Правда у WebLink-а не хотело преобразовываться "id" из поля [[*content]] в "alias", что делало невозможным хранение в виде простого id-шника, приходилось прописывать alias. Но этот баг пофиксили в версии 2.2.5-pl, теперь всё ОК
Виталий Дутов
08.11.2012 04:03Здравствуйте, [[getResources]] вызываю в шаблоне и в чанке - нигде ничего не выводит, даже с включенной опцией debug ничего не выводится. Дополнение установлено.
Виталий Дутов
08.11.2012 06:03Если поможет, в лог вываливается такая ошибка: (ERROR @ /index.php) context for 1 is web
Виталий Дутов
08.11.2012 06:14О решил... Оказывается нужно что бы &parent обязательно был Container
Виталий Дутов
08.11.2012 06:25Вывод появился а вот ошибка никуда не делась =(
Palitaif Raman
19.11.2012 23:21У меня такой вопрос: Можно ли в одном вызове getResources для разных ресурсов использовать разные шаблоны? Например: я хочу вывести десять статей. 9 предыдущих с интротекстом и ссылкой к полной статье, а последнюю статью вывести полностью?
Viktor Minator
19.11.2012 23:56Да. Для последнего используйте параметр &tplLast=
Palitaif Raman
21.11.2012 23:20вот спасибочки
Palitaif Raman
22.11.2012 01:51вот чанк, который выводит короткую информацию о документе:
[[+lector_photo]]
[[+pagetitle]]
[[+introtext]]
имя tv: lector_photo, тип ввода и вывода: изображение. Пытаюсь вызвать в чанке выше
вот код вызывающий список ресурсов:
[[!getResources?
&parents=`4`
&tpl=`tplLectors`
&limit=`10`
&showHidden=`1`
&includeContent=`1`
&includeTVs=`1`
&processTVs=`1`
&tvPrefix=``
]]
хочу получить изображение прикрепленное к ресурсу и текст, текст выводится, но он не в tv, а вот изображение никак не хочет выводиться
Если делаю в шаблоне который для одного документа, то изображение прекрасно видно.
Подскажите что делать?
Viktor Minator
22.11.2012 01:52+tv.lector_photo для пользовательских переменных шаблона нужно добавлять префикс +tv.
Palitaif Raman
22.11.2012 01:53Извиняюсь, заработало))) я шаблон для списка ресурсов тоже делал доступным для ?того tv. оказывается не нужно было)
Palitaif Raman
22.11.2012 01:54Заработало без +tv.
Palitaif Raman
22.11.2012 01:57Вобще большое вам спасибо! Самый полезный ресурс на родном языке по modx. Так мне еще никто ничего не разжевывал)
Palitaif Raman
23.11.2012 00:21А вот допустим есть у меня ресурс "лекции", а я хочу связать его с ресурсами "лекторы" один ко многим, т.е., чтобы добавить список лекторов для каждой лекции как tv, чтобы можно было их выводить вместе с инфой по лекции. Как ?то сделать? ну мне прям полный рецепт не нужен, просто укажите куда копать)
Viktor Minator
23.11.2012 00:41https://modx.ws/blog/blog-o-modx-revolution/modx-revolution-obekty.html
Palitaif Raman
23.11.2012 01:04спасибо
Василий
24.11.2012 19:10Здравствуйте. Вот все немогу понять как в статью добавить картинку (article_image)? Нужно вставлять в саму статью через редактор или может быть есть специальная строка где нужно прописать урл карики? article_image
Viktor Minator
25.11.2012 12:16<img src="[[*article_image]]"> - вот так
Василий
26.11.2012 14:25Вы немного не поняли меня. Куда нужно добавить картинку чтобы при помощи вот этого она выводилась в статье. Именно как добавлять а не как вставлять в статью.
Возможно у меня в настройках отключено добавление этих картинок или еще что-нибудь
Viktor Minator
26.11.2012 14:48После того как вы создали ТВ - article_image - назначьте её для шаблона ресурса. После этого в ресурсе (после его 1го сохранения) появится вкладка "Дополнительные поля". Переходите на эту вкладку и назначаете ТВ.
July T.
05.12.2012 19:52не получается поставить шаблон по умолчанию( открываю, выбираю в списке шаблонов нужный мне (шаблон простой внутренней страницы), сохраняю, а оно как было на Basic Template так и осталось. не знаете в чём может быть проблема? другие настройки меняются без проблем. может дело в версии (MODX Revolution 2.2.5-pl (traditional))
Viktor Minator
05.12.2012 20:40какой браузер используете?
July T.
06.12.2012 12:26перепробовала все имеющиеся под рукой - сафари, хром, фф и оперу. Другие настройки меняются типа названия сайта, дефолтного статуса "опубликовано" и т.д. такое впечатление что это не то глюк версии, не то где-то прав доступа не хватает именно на эту настройку
Viktor Minator
06.12.2012 23:11локальный сервер?
Андрей Ямангулов
30.01.2013 11:25Использую чанк newsline-main внутри которого используется getResources:
[[!getResources? &tpl=`news-main` &sortDir=`ASC` &showHidden=`1` &includeContent=`1` &includeTVs=`1` &processTVs=`1` &parents=`0` &hideContainers=`1` ]]
TV img-news создан, изображения залиты только на часть страниц.
В результате вижу такое безобразие http://designerjewelry.ru.xsph.ru/
То есть Видны только те будущие "статьи", на которых нет загруженных изображений, причем в обратном порядке, а те, где я изображения не залил, не видны в галерее вообще - очень странно.
Что я натупил и как поправить?
Віктор Матушевський
30.01.2013 12:14В чанке для изображения должен использоваться такой плейсхолдер: [[+tv.img-news]]
Тип ввода ТВ: изображение, тип вывода ТВ: текст.
Андрей Ямангулов
30.01.2013 12:26Спасибо, заработало, только изображения подправлю, чтоб не искажались, а так все хорошо.
Віктор Матушевський
30.01.2013 12:30пожалуйста. ещё вам совет - стрелки у слайдера, если не можете подобрать цвет под фон, то делаете у стрелок фон прозрачным (в программе Adobe PS или FW) тип изображения - png.
Roman Roman
01.03.2013 09:04Что то у меня не получается. Использую getresources-1.6.0-pl, в шаблоне блога в нужном месте вывожу , соответственно в ресурсе блога в поле content делаю вызов - никакой реакции. В чем может быть проблема? Вот код чанка articleTpl http://pastebin.com/F70WHe5q и код шаблона для отдельных записей http://pastebin.com/jUTkZxHy. Может быть, Вы, Виктор, подскажете в чем проблема.
Roman Roman
01.03.2013 09:09вывожу и вызываю :)
Roman Roman
01.03.2013 09:10контент и getResources? &showHidden=`1`
Viktorminator
10.08.2013 02:54Если вы в поле content вызываете сниппет getResources и вставляете там includeContent = 1, то у вас будет бесконечный цикл. Делайте вызовы сниппетов в шаблоне.
Дима
11.03.2013 20:42По какой-то причине у меня нижняя часть сайта съехала влево, всё что я сделал перед тем как это случилось, только прописал вызов getResources. Из-за чего такое могло произойти?
Дима
11.03.2013 20:42По какой-то причине у меня нижняя часть сайта съехала влево, всё что я сделал перед тем как это случилось, только прописал вызов getResources. Из-за чего такое могло произойти?
Виталя
05.04.2013 19:24вопрос по поводу Д.З...
сделал меню с помощью wayfinder поставил стартАйДи - нужного ресурса, все работает..... НО если использовать шаблон с этой же навигацией для отдельных страниц (не дочерних) - меню не формируется,, причина в том что я использовал параметр hideSubMenus, что и привело к неправильной работе.... так вот вопрос!!!!: как обойти этот казус, мне нужно чтоб hideSubMenus был включен а меню отображалось на всех страницах (в Эво все работает)
Сделал по статье, что имеем: список статей, с кратким описанием, кнопкой подробнее и изображение которое вставлено через доп поле и выводится через чанк, в котором http://pastebin.com/4i4ZXvf4
Вопрос:
1. Изображение выводится только в списке со статьями, если перейти в конкретную статью, то оно не выводится. Как можно это исправить?
2. Краткое описание выводится через http://pastebin.com/JmnA4jvy, можно ли как то ограничивать размер статьи произвольно, для каждой статьи, а не в 350 символов? Пробовал через introtext, но почему то не вышло.
3. Краткое описание выводится через http://pastebin.com/JmnA4jvy, исключая изображения как можно сделать?
Mtz Lider
12.07.2013 15:283 раза делал всё сначала по инструкции и каждый раз вместо ресурсов выводится массив, причём в месте где есть tv переменная, он её выводит и дальше опять массив вперемешку с картинками и текстом. В чём проблема?
Viktorminator
10.08.2013 02:25Какой у вас Тип ввода и Тип вывода для ТВ?
Александр Кузьминых
06.09.2013 12:31завис.............https://modx.ws/blog/uroki-modx-revolution/urok-9-sozdanie-kontakt-formyi-s-ispolzovaniem-formit.html
Viktor Matushevskyi
13.11.2013 20:14Скоро сделаю урок по формам, потому что некоторые не понимают, что это такое и из-за этого проблемы с FormIt...
Евгений
13.11.2013 15:46Уф ну и застрял же я на этом уроке сегодня наконец то получилось вывести ресурсы ,а теперь вопрос ,а правильно ли будет на главной странице в разных местах вставлять вызов `
&hideContainers=`1`
Viktor Matushevskyi
13.11.2013 22:08Ну молодец, раз получилось. Бороться и не сдаваться ;)
По поводу правильно - вполне. (Для вставки кода используйте gist или pastebin)
Евгений
14.11.2013 08:35еще сутки мучался с выводом изображения пока не дошло что в чанке https://gist.github.com/anonymous/7462398 нужно писать имя вашего TV https://gist.github.com/anonymous/7462411 наверно глупая ошибка так как многие начинающие как я просто тупо копируют,а потом думают кто виноват и почему не работает, хотя теперь снова вопрос ,а если имена TV разные и картинок много тогда как? Наверно я чет не так опять делаю (
Viktor Matushevskyi
14.11.2013 10:12Для вывода изображений в теле поста не использую никаких ТВ, их использую лишь для вывода КДПВ, для opengraph изображения тоже использую ТВ. Больше вроде нет.
Евгений
14.11.2013 08:38чанк имел ввиду этот +tv.article_image
Евгений
14.11.2013 11:04Алилуя заработало!!! Получается чанки можно вообще убрать а использовать их как Вы говорили для КДПВ или чего другого, а картинки прекрасно выводятся в самом контенте текста через редактор.Ну все сейчас подправлю разметку и можно двигаться дальше.
Игорь Киев
20.02.2014 00:16Спасибо за урок.
У меня вопрос, сделал вывод фото в рамке.
Но теперь когда фото нет к статье то рамка все равно выводится.
Как ее убрать при отсутствии фото?
Юра
29.04.2014 17:00Помогите плиз в решении проблемы.
Есть ресурсы (статьи) с переменной шаблона типа MIGX. Название TV пусть будет "image" - это картинки + title (описание).
И необходимо вызвать getResources, что-бы согласно шаблону выводился каждого ресурса и первая картинка. Вот тут -то и проблема. В вызове ставлю &includeTVs=`1` и &processTVs=`1`и в плейсхолдере - у меня логично выводится весь массив объектов моей переменной "image" (тип MIGX). Как из этого массива вытянуть первый элемент (картинок может быть больше одной) и соответственно src для этой первой картинки. Подозреваю что като можно поиграться с tvFilters. Но в документации черт ногу сломит. Честно говоря я вышел из ситуации по другому - поставил &includeTVs=`0` и &processTVs=`0` (запрет обработки TV), а в шаблоне tpl вызвал "/>` &docid=`` Но по моему это все равно что чесать левой ногой правое ухо.
Может кто нить сталкивался с такой ситуацией ???
Александр
17.05.2014 12:33Подскажите в чем может быть причина... Есть контейнер Articles,в нем лежат 2 документа(статьи). При выводе в Articles ничего не выводится.
Пол дня сижу,не как не могу понять что не так))
Александр
17.05.2014 12:47Подскажите в чем может быть причина... Есть контейнер Articles,в нем лежат 2 документа(статьи). При выводе в Articles [[!getResources? &showHidden=`1` ]] ничего не выводится.
Пол дня сижу,не как не могу понять что не так))
Александр
17.05.2014 12:56Решил проблему включил debug в параметрах сниппета getResources и массив(Array) стал выводиться.
Viktor Matushevskyi
17.05.2014 14:33Вы написали "вывести скрытые ресурсы", а нужно написать "вывести скрытые ресурсы, у которых родитель такой-то в виде чанка такого-то", то бишь [[getResources? &showHidden=`1` &parents=`123` &tpl=`mychunk`]]
Alexandr Zilin
28.05.2014 19:37Подскажите, как на странице странице агрегированного контента вывести дату публикации со страницы статьи, а не дату публикации самой агрегированной страницы.
Viktor Matushevskyi
28.05.2014 19:40ставите вместо *(звёздочки) +(плюс) возле publishedon
Alexandr Zilin
28.05.2014 23:04Спасибо, все ОК.
Андрей Свионтек
29.05.2014 15:45не могу сделать домашнее задание. всю голову себе сломал)
шаблон использую как в уроках.
вот мое дерево ресурсов: http://clip2net.com/s/icRi4X
сайдбар вывожу гетресорсом: http://c2n.me/icRk0b
вот как выглядет сам сайдбар: http://c2n.me/icRk0b
Андрей Свионтек
29.05.2014 15:47последнюю ссылку не ту дал: http://c2n.me/icRuLe
Viktor Matushevskyi
29.05.2014 22:36showHidden забыли указать (у вас все скрытые от меню контейнеры)
Андрей Свионтек
30.05.2014 12:19сам сайдбар выводится, не пойму как реализовать саму задачу: "чтобы страницы, на которые вели ссылки данных категорий содержали агрегацию контента только этой категории"
Андрей Свионтек
02.06.2014 12:27Виктор, правильно ли я понимаю, что бы выполнить домашнее задание необходимо создать шаблоны вывода агрегированного контента для ресурсов (на примере дерева ресурсов в Вашем уроке) №13,14,15,16. Или можно все это задать в одном вызове (для контейнеров 12,13,14,15,16), одного шаблона с помощью параметров вызова гетресорс?
Roman R
18.09.2014 15:49Прошу помощи не работает запрос getresources перепробовал все возможные варианты, списки не выводятся, добиться вывода списка записей получается только следующим кодом:
то есть принудительно указав сами ресурсы для вывода. в чем может быть вообще проблема?
Roman R
18.09.2014 15:50сам код
Roman R
18.09.2014 15:52http://monosnap.com/image/GDzPDVzoh0T3iN9U2MDakAy0hObtHs
Андрей Угрин
08.11.2014 13:54Здравствуйте! Очень грамотные уроки, но я застрял на этом немного.
не выводит ничего на страницу!
Напишу что есть для лучшего понимания картины:
- getResources установлен (версия 1.6.1)
- создал шаблон для вывода постов на странице (как и обычный только вместо контента, добавил это)
должно было заполнится: Array (...) а ничего не происходит! Смотрю в инспекторе гугл хрома, тоже пустой div.
В чем может быть проблема?
Спасибо!