Делаем ленту новостей на MODx с помощью Ditto

Задача:
Публиковать новости сайта на главной (первой) странице - ограниченное количество, например 5 новых.
Отображать все опубликованные новости на отдельной странице - архив новостей.
Выводить новости ввиде RSS.

1) создаём папку "Новости" в дереве документов.
2) создаём в ней дочерний документ - собственно новость
3) создаём чанк NeswsLine и помещаем в него вызов Ditto

  1.  
  2. <div id="NewsLine">
  3. <div class="NewsHead"><a href="[~NN~]" >Лента новостей</a> </div>
  4. <div class="NewsBlock">
  5. [!Ditto? &id=`newsline` &display=`5` &parents=`NN` &paginate=`0` &showPublishedOnly=`1` &tpl=`newsline_tpl` &dateFormat=`%d/%m/%Y %H:%M` &sortBy=`createdon` &sortDir=`ASC`!]
  6. </div>
  7. </div>
  8.  

Вместо NN - вставляем id папки "новости"
4) содержимое newsline_tpl:

  1.  
  2. <div>
  3. <div class="NewsDate">[+date+]</div>
  4. <a href="[(site_url)][~[+id+]~]">[+pagetitle+]</a>
  5. </div>
  6. <div class="NewsAnons">[+introtext+]</div>
  7. <hr class="NewsHR" size="1" />
  8.  
Помещаем {{NeswsLine}} в то место шаблона или контента, где хотелось бы увидеть заголовки.
Как правило на первой странице.

5) создаём чанк shownews

  1.  
  2. [!Ditto? &id=`news` &parents=`[*id*]` &paginate=`10` &language=`russian-UTF8` &showPublishedOnly=`1` &tpl=`news_tpl` &dateFormat=`%d-%m-%y` !]
  3.  
содержимое шаблона news_tpl:
  1.  
  2. <div class="news_block">
  3. <div class="news_head_line"><a href="[(site_url)][~[+id+]~]" >
  4. <span class="news_date">[+date+]</span><span class="news_title">[+pagetitle+]</span></a>
  5. </div>
  6. <div class="news_content">
  7. <div class="news_image">[+NewsImage+]</div>
  8. <div class="news_introText" >[+introtext+]</div>
  9. <div class="news_link" ><a href="[(site_url)][~[+id+]~]">Подробнее</a></div>
  10. </div>
  11. </div>
  12.  

NewsImage - имя TV параметра который можно добавить для отображения картинки в новостях.

6) Помещаем вызов чанка {{shownews}} в облать контента папки (в докуммент) "Новости"

далее RSS

7) создаём новую страницу (NN-RSS ) с параметрами
Контейнер - нет
Визуальный редактор - нет
Доступен для поиска - нет
Кешируемый - нет
Очищать кеш - да
Тип документа -text/xml (это важно !!!) Шаблон - blank (пустой)

  1.  
  2. [!Ditto? &parents=`NN` &format=`rss` &summarize=`10` &total=`10` &showInMenuOnly=`1` &tpl=`rss_tpl` &sortBy=`createdon` &sortDir=`DESC`!]
  3.  

содержимое шаблона rss_tpl

  1.  
  2. <item>
  3. <title>[+rss_pagetitle+]</title>
  4. <link>[(site_url)][~[+id+]~]</link>
  5. <description><![CDATA[ [+introtext+] ]]></description>
  6. <pubDate>[+rss_date+]</pubDate>
  7. <guid isPermaLink="false">[(site_url)][~[+id+]~]</guid>
  8. </item>
  9.  

 

8) ну и как завершающий аккорд в основной шаблон сайта в область header вставляем ссылку на RSS

  1.  
  2. <link rel="alternate" type="application/rss+xml" title="[(site_name)] RSS feed" href="[~NN-RSS~]">
  3.  

NN-RSS - id страницы где у нас помещён вызов Ditto с выводом в формате rss.

Для публикации новости теперь достаточно добавить новый дочерний документ в папку
Новости и опубликовать его в зависимости от рассписания.

Чуть позже напишу как сделать публикацию новостей не заходя в админку.

 

Последнее изменение документа: 04 Август 2009

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.