[Modx Evo] Новости Ditto Modx
- Создаем новый ресурс, называем его «Новости», переходим на вкладку Настройки страницы и снимаем галочку около "Кэшируемый" (это необходимо, что бы работал переключатель страниц)
- Все дочерние документы этого ресурса будут нашими новостями. В поле Заголовок вводим заголовок новости, в поле Summary вводим сокращенную новость, в самое большое окно вводим полный текст новости. Обязательно включить галочку на Опубликовать. Для создания дочернего документа правой кнопкой нажимаем на документе «Новости» и выбираем «Дочерний док.» (“Create document here”)
- Создаем чанк , например ”tpl_news” который будет содержать html-шаблон вывода статьи.
<div class="news">
<h2><a href="[~[+id+]~]" title="[+pagetitle+]">[+pagetitle+]</a></h2>
<div class="introtext"><span class="date">[+date+]</span> [+introtext+] </div>
<div class="readmore" ><a href="[~[+id+]~]" title="Перейти к полному тексту новости">Читать дальше →</a></div>
</div> - css прописываем
.news {padding:0; margin:0 0 15px 0;}
.news h2 {padding:0px; margin:0px; border:none;}
.news h4 {padding:0px; margin:0px; border:none; font-size: 13px; font-weight:bolder; color:#3359CC;}
.news .introtext{padding:5px 0 0 0;}
.news .introtext .date {font-style:italic;}
.news .readmore {text-align:right;} - Что бы создать страницу вывода всех новостей в самом большом окошке ресурса «Новости» (или создаем новый ресурс и выполняем пункт 1) вызываем КЕШИРИРУЕМЫЙ Ditto
&summarize=`5` — задаем количество новостей на странице
&paginate=1 — включаем режим разбивки на страницы, тем самым отключаем архив
&tpl=` tpl_news ` - ссылаемся на ранее созданный нами шаблон вывода статей.
[[Ditto? &startID=`5` &summarize=`20` &tpl=`tpl_news` &paginate=`1`]] Показаны [+start+] - [+stop+] из [+total+] Новостей [+previous+] [+pages+] [+next+]
- Что бы создать блок нескольких последних новостей на главной странице, в нужном месте вызываем Ditto
[[Ditto? &id=`news` &startID=`11,15` &summarize=`3` &tpl=`ditto_news`&sortBy=`menuindex`&sortDir=`ASC`]]
Сортировка:
&sortBy=`menuindex` или date или любой TV
&sortDir=`ASC` или DESC
Дополнение:
[+createdon:date=`%d.%m.%Y`+] // дата создания документа
[+editedon:date=`%d.%m.%Y`+] // дата последнего редактирования документа
[+pub_date:date=`%d.%m.%Y`+] // дата публикации документа
Фото к новости
Создаем TV с именем foto и типом - картинка, применяем к шаблону вывода новостей, вписываем TV в шаблоны вывода новостей:
[+phx:if=`[*foto*]`:is=``:then=`<img alt="Нет фотографии" src="[*nofoto*]">`:else=`<img alt="[*pagetitle*]" src="[*foto*]">`+]
Создаем второй TV с именем nofoto и типом ввода Image, применяем к шаблону новостей, в значение по умолчанию прописываем путь к кртинке - заглушке.