Рейтинг@Mail.ru
загрузкаидет загрузка

Плагин «top_news :: Это просто новости» для NG CMS

Как и во многих открытых движках, в NG CMS часто царит разброд и шатание. Например задача отображения некоторого блока новостей.

Во первых эту задачу реализуют два разных плагина. Во-вторых у них есть некоторые косяки.

Есть плагин popular, который выводит только один блок топ новостей по просмотрам. То есть два блока с самыми просматриваемыми и самыми комментируемыми без клонирования и правки кода уже не сделать.

Есть плагин lastnews, выводящий последние новости, который поддерживается множественные блоки, но как он это делает! Нужно вручную сформировать PHP код для каждой новой переменной в шаблоне (на форуме есть даже большой FAQ по передаче нужных значений в функцию). Например
$template['vars']['plugin_lastnews'] = plugin_lastnewsGenerator('', array(), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));

Я считаю, что это тихий ужас и совершенно неприемлемо в 21 веке, настройка должна производиться исключительно в удобном GUI.

Упорядочить все и вся призван мною написанный плагин top_news, который совмещает в себе отображение и популярных и последних новостей.

История версий
[1.5][2012-01-07] [скачать]
+ плагин теперь в репозитории кода NG CMS
+ вывод автора новости и категории
- удалена возможность вывода новостей по рейтингу (плагин rating),
т.к. она совершенно бессмысленна в текущей реализации
- удалена интеграция с новостными плагинами,
т.к. в своей "тупой реализации" может сильно грузить сайт

[1.4][2011-03-17] [скачать]
+ в шаблоне entries.tpl добавлены переменные:
* {alt.news} - содержимое поля "Альт. имя" новости
* {alt.cat} - содержимое поля "Альтернативное имя" категории,
в которой находится новость (тоько если категория одна)

[1.3][2011-02-03] [скачать]
+ в шаблоне entries.tpl добавлен блок edit-news,
который трансформируется в ссылку на редактирование новости

[1.2] [2011-01-14] [скачать]
* поправлен баг с выводом из категорий
% код оптимизирован в связи с появлением новой функциональности ядра.
Необходимо обновление до changeset 722

[1.1] [2010-12-19] [скачать]
+ вывод новостей в случайном порядке (через rand() )

[1.0] [2010-12-11] [скачать]
* в случае недоступности файлов шаблона в общем шаблоне сайта они будут взяты из собственного каталога плагина

[0.9] [2010-12-10] [скачать]
* рекомендуемое обновление для версий 0.6+, починено что сломано ранее
(для работы необходима NG CMS 0.9.2 695+)

[0.8] [2010-12-03]
* исправлена интеграция с новостными плагинами
* оптимизации, оптимизации, оптимизации

[0.7] [2010-11-21]
* сворачивание настроек для блоков реализовано через средства движка,
необходима версия NG CMS 0.9.2, начиная с 674 ревизии

[0.6] [2010-11-06]
+ добавлена настройка "Не показывать новости, для которых не установлен флаг "Отобразить на главной""
+ на странице настроек отображаются только названия блоков, что удобно при их большом количестве
(см. хак на форуме ngcms.ru/forum/viewtopic.php?id=865 )
* изменена работа опции "Отображать только при нахождении в категории", теперь при просмотре полной
новости блоки такого типа будут заполняться новостями из категорий этой новости
* при задании блоку имени плагин будет искать шаблоны в папке top_news_%NAME%

[0.5.1] [2010-10-08]
* разделены переменные views и comments
* удалена опция "Отображать счетчик просмотров/комментариев"

[0.5] [2010-10-08]
+ в настройках плагина теперь можно задавать блокам имена вида top_news_%NAME%
+ добавлено управление форматом даты при отображении информации о новости
+ добавлено управление номером (по порядку) с которого начинать показ (например только с второй новости и т.д.)

[0.4] [2010-09-26]
+ добавлена функциональность плагина lastnews - последние новости
+ добавлена сортировка по рейтингу (плагин rating)

[0.3] [2010-09-03]
* Исправлена ошибка кеширования в блоках, выводимых только при нахождении в категории
* Исправлена функция вырезания картинок из {short_news}

[0.2.1][2010-08-12]
* Исправлена ошибка кеширования в блоках {top_newsN}, где N > 1

[0.2][2010-02-14]
+ Добавлена работа с BB кодами
+ Добавлена настройка генерации переменной {short_news}
+ Добавлена настройка "Удалить все картинки из {short_news}"

[0.1][2010-02-13]
+ Выпуск первой версии


Как вывести новости в шаблоне сайта


После включения плагина в шаблоне mainl.tpl будут заполняться переменные {top_newsN}, где N = 1, 2, ... Также с версии 0.5 появилась возможность задавать блокам собственные имена вида {top_news_%NAME%}

Шаблоны плагина


В настройках плагина можно выбрать каталог, из которого будут браться шаблоны для отображения: либо из каталога плагина, либо из каталога с шаблоном вашего сайта.

Каждая переменная имеет свои шаблоны top_news.tpl и entries.tpl, которые хранятся в соответствующих папках /top_newsN/ (или top_news_%NAME% если задано имя для блока) в каталоге плагина или вашего шаблона сайта.

top_news.tpl — основной шаблон


Доступные переменные:
  • tpl_url - путь к текущему активному шаблону сайта
  • top_news - содержимое (строки) информационного блока

entries.tpl — шаблон содержимого (строки) информационного блока


Доступные переменные:
  • short_news - короткая новость
  • link - ссылка на новость
  • title - название новости
  • views - кол-во просмотров
  • comments - кол-во коментариев
  • date - дата публикации
  • edit-news - ссылка на редактирование новости (см. readme)
  • alt.news - содержимое поля "Альт. имя" новости
  • alt.cat - содержимое поля "Альтернативное имя" категории, в которой находится новость (только если категория одна)

Полезные фишки

  • Поддержка нескольких блоков top_news1, top_news2 ...
  • Популярность можно определять не только по просмотрам, но и по комментариям, рейтингу, а также top_news содержит в себе функциональность плагина lastnews
  • Выбор категорий, из которых плагин выбирает новости
  • Возможность выбирать из новостей за последние N дней
  • Вывод короткой новости
  • Удаление картинок из короткой новости
  • Настройка "Выводить блок только при нахождении в категории", при этом блок будет формироваться из новостей текущей категории
  • Гибкое форматирование даты

Отблагодарить меня можно по следующим реквизитам:

http//digitalplace.ru/images/static/webmoney.png WebMoney: Z185759217217 и R128203457262

http//digitalplace.ru/images/static/yandexmoney.png Яндекс.Деньги: 41001246158060


последние комментарии

Ooooops

Looks like Twitter's feed isn't working at the moment.