Block.Pro.2.5
29.03
Block.Pro.2 - Расширенный вывод блоков с новостями для DLE
Модуль для удобного и гибкого вывода новостей на любой странице DLE-сайта
Версия DLE: 9.5 (на других не проверялся, но работать должен)
Версия модуля: 2.5
Дата релиза: 29.03.2012
Автор: ПафНутиЙ
Контакты: http://pafnuty.name, Google+ или email
Модуль распространяется бесплатно для частного и коммерческого использования
При публикации модуля не забывайте оставлять ссылку на первоисточник, уважайте чужой труд.
Основные возможности модуля
- Вывод популярных (топ по комментариям, рейтингу, просмотрам или как стандартный топ в dle), похожих, случайных (с возможностью отключения кеширования блока) или последних новостей.
- Подключение модуля одной строкой непосредственно любой в шаблон (через include).
- Простая и очень гибкая настройка вывода каждого блока.
- Кеширование каждого блока (обновление кеша при добавлении новости или комментария на сайт) с возможностью отключения кеша для каждого блока.
- Настройка категорий для вывода новостей (вывод только из определённых категорий, игнорирование определённых категорий, вывод или ингорирование новостей из просматриваемой категории)
- Вывод уменьшенной копии картинки (в т.ч. и вместе с оригинальной картинкой) из короткой новости или дополнительного поля (картинки берутся только из папки uploads текущего сайта).
- Автоматическое создание папки для уменьшенных копий изображений и выставление нужных прав.
- Обрезка заголовка новости до заданного количества символов.
- Обрезка текста новости (до заданного количества символов или до конца слова).
- Ввод иконок категории.
- Можно задать временной интервал для отбора новостей (по умолчанию 30дней).
- Можно задать каждому блоку свой шаблон, свою картинку-заглушку.
- Поддержка всех тегов, используемых в шаблонах кратких новостей.
- Поддержка фильтра (перекрестные ссылки) по допполям, реализованного в DLE9.5
- Можно указать с какой по счету новости начать вывод (например с 4й по 15ю).
- Возможность быстрого редактирования новостей прямо из блока, аналогично стандартному функционалу
Установка модуля
- Скопировать файл block.pro.2.php в папку engine/modules/
- Скопировать содержимое папки THEME в папку с текущим шаблоном сайта
- В нужном месте прописать строку подключения модуля с обязательными параметрами:
Где: BLOCK - Уникальный идентификатор блока blockpro - имя шаблона, используемого для вывода{include file="engine/modules/block.pro.2.php?&block_id=BLOCK&template=blockpro"} - Настроить дополнительные параметры строки подключения и шаблон
Для вывода похожих новостей
- Отключить стандартный вывод похожих новостей в админке (Настройка системы » Оптимизация запросов к базе данных » Отображение похожих новостей » "нет")
- Открыть файл engine/modules/show.full.php
перед
вставитьif( $config['related_news']/*Block.Pro - relatednews*/ $block_id = 'related_'.$row['id']; //Не трогать! $relatedpro = "1"; //Не трогать! $template="relatednews"; // Имя шаблона (можно менять) include_once ENGINE_DIR . '/modules/block.pro.2.php'; /*Block.Pro - relatednews*/ - Настроить дополнительные переменные подключения модуля (Переменные приведены в таблице ниже. При вставке необходимо заменять символ & на $) и шаблон
- В ШАБЛОНЕ ПОЛНОЙ НОВОСТИ НИЧЕГО ДОПОЛНИТЕЛЬНО ПРОПИСЫВАТЬ НЕ НУЖНО! модуль выводится через стандартный тег похожих новостей.
Переменные строки подключения
Все переменные указываются непосредственно в строке подключения модуля.
В таблице дано описание возможных для использования переменных
| Наименование переменной | Значение по умолчанию | Описание | Примечание |
|---|---|---|---|
| &block_id | Обязательная переменная. Уникальный идентификатор блока | любое, уникальное для каждого блока значение | |
| &template | Обязательная переменная. Имя шаблона для вывода блока | указывается только имя, без расширения .tpl | |
| &day | 30 | Количество дней, за которое осуществляется отбор новостей. Если указать ноль (0) - будут браться новости за всё время. | Переменная автоматически принимает нулевое значение, если в строке подключения определена переменная &last, &relatedpro или &rndom |
| &show_cat | Категория/категории для отбора новостей. | Категории указываются через запятую. Если указать &show_cat=this - новости будут браться только из просматриваемой категории. |
|
| &ignore_cat | Модификатор переменной &show_cat. превращает указанные в &show_cat категории в игнорируемые. | Для активации модификатора достаточно его определить (например &ignore_cat=y) | |
| &start_from | 0 | Начало диапазона отбора новостей. | |
| &news_num | 10 | Количество новостей в блоке | |
| &img_xfield | Имя дополнительного поля для получения уменьшенного изображения. | Переменную нужно определять только тогда, когда требуется выводить картинку из дополнительного поля. Одновременный вывод картинки из краткого содержимого и допполя невозможен. В допполе должна лежать прямая ссылка на изображение. |
|
| &img_size | 60x60 | Размер уменьшенной копии изображения. (Ширина X Высота) | Допустимо указывать одну цифру (например 100). тогда изображение будет уменьшено по большей стороне. при указании нуля (&img_size=0) изображение обрезаться не будет. |
| &noimage | noimage.png | Имя и расширение для картинки-заглушки, в случаи отсутствия изображения в новости. | Картинка-заглушка должна располагаться в папке images текущего шаблона сайта. |
| &nocache | Модификатор, отключающий использование кеша для блока. | Для активации модификатора достаточно его определить (например &nocache=y) | |
&random &last &top_comm &top_rating &top_views |
Варианты сортировки новостей. Случайным образом По дате добавления Самые комментируемые Самые рейтинговые Самые часто просматриваемые |
По умолчанию выводятся топ-новости (по аналогии со стандартным топом DLE) Недопустимо использование нескольких вариантов сортировки одновременно. |
|
| &wordcut | Модификатор, отключающий обрезку текста новости до конца слова и включающий обрезку до заданного количества символов. | Для активации модификатора достаточно его определить (например &wordcut=y) | |
| $relatedpro | Модификатор активирует механизм отображения похожих новостей. Указывается только при подключении модуля в файле show.full.php для вывода похожих новостей. | Для активации модификатора достаточно его определить (например $relatedpro=y;) |
Теги шаблона
В таблице приведены возможные для использования в шаблоне теги и их описание.
| Обозначение тега шаблона | Описание | Примечание |
|---|---|---|
| {link-category} | Ссылка/ссылки на категории | |
| {category} | Наименование категории | |
| {category-icon} | Иконка/иконки категорий | При отсутствии иконки берётся картинка {THEME}/images/no_icon.gif |
| [xfvalue_name] | Значение дополнительного поля "name", где "name" название дополнительного поля | |
| [xfgiven_name] [xfvalue_name] [/xfgiven_name] | Выводится дополнительное поле "name", если поле не пустое, если поле не имеет значения, то текст просто вырезается | |
| [xfnotgiven_name] текст [/xfnotgiven_name] | Выводят текст указанный в тегах, если дополнительное поле не было задано при публикации новости, где "name" это имя дополнительного поля | |
| {image-X} | Выводит URL уменьшенной картинки находящейся в краткой новости, где Х это номер картинки в новости, например {image-1} выведет URL первой картинки в краткой новости | |
| {image_original} | Выводит URL оригинальной картинки, указанной в {image-X} | |
| [image_original] текст [/image_original] | Выводят текст указанный в тегах, если есть {image_original} | |
| [not_image_original] текст [/not_image_original] | Выводят текст указанный в тегах, если нет {image_original} | |
| {rating} | Выводит рейтинг | |
| {vote-num} | Выводит количество проголосовавших | |
| [profile] текст [/profile] | Выводят прямую ссылку на профиль автора публикации, без использования всплывающего окна минипрофиля. | |
| {login} | Выводит логин пользователя добавившего новость в виде обычной текстовой информации без ссылок на профиль и карточку пользователя. | |
| {author} | Ссылка на автора новости | |
| {date} | Дата новости в формате, установленном в настройках движка | |
| {date=X} | Дата новости в пользовательском формате | |
| {title} | Заголовок новости | |
| {title limit="X"} | Заголовок новости, обрезанный до X символов. | |
| {text} | Текст новости (аналог {short-story}) | |
| {text limit="X"} | Текст новости, обрезанный до указанного X количества символов, при этом обрезание текста происходит до последнего логического слова, а не обрывает текст на середине слова. | |
| {full-link} | URL полной новости | |
| {comments-num} | Количество комментариев к новости | |
| {views} | Количество просмотров новости | |
| [edit] текст [/edit] | Ссылка на редактирование новости |
v.2.5.1
- Модуль адаптирован под DLE 9.6
- Функция показа похожих новостей временно не работает.
v.2.5
- Финальная версия, больше изменений делать не планирую.
- Исправленны все заявленные ошибки.
v.2.5 (RC от 16.03.2012) - проверены окончательно не все функции!
- В очередной раз всё перелопатил, исправил косяки и неровности, и немалую лепту внёс опять Роман (Giseg), за что ему опять ещё большее спасибо!
- Добавлена возможность вывода новостей только из той категории, в которй находится пользователь, либо из всех, кроме текущей (при указании переменной &ignore_cat, каждый блок по преждему кешируется.
- Добавлена возможность быстрого радактирования новостей прямо из блока, аналогично стандартному функционалу.
- Добавлена поддержка фильтра (перекрестные ссылки) по допполям, реализованного в DLE9.5.
- Немного улучшена процедура формирования запросов в БД.
- Можно указать с какой новости начать вывод, для этого в строке подключения нужно указать переменную &start_from=1 (в этом случаи вывод начнётся со второй, попавшей в диапазон, новости). По умолчанию переменная равна нулю и выводятся все новости. Это может понадобиться, когда нужно вывести одну или две новости с одним шаблоном, а остальные с другим).
- Устранены ошибки при обработке картинок в новости (добавлена дополнительная проверка, что бы картинки со сторонних сайтов уж точно не пролазили и не вызывали глюков))).
- Добавлена возможность выводить оригинальную картинку, не обрезая её (в строке подключения достаточно указать &img_size=0).
- Добавлен вывод оригинальной картинки, если происходит её уменьшение. Для этого в шаблон нужно вставить тег {original_img}. Так же доступны теги
которые выводят текст если есть или нет картинки.[image_original]текст[/image_original] и [not-image_original]текст[/not-image_original] - Добавлен вывод рейтинга.
- Добавлена возможность более тонкой сортировки новостей - по количеству комментариев (в строке подключения указываем &top_comm=y), по рейтингу (&top_rating=y), по просмотрам (&top_views=y). ВНИМАНИЕ! - не указывайте одновременно несколько вариантов сортировки
- Добавлена возможность отключать кеширование блока непосредственно в строке подключения, для этого в строке подключения нужно указать переменную &nocache=y (пригодится в процессе настройки блока).
- Для картинки-заглушки введена переменная &noimage в которой можно задать название файла (имя и расширение) для картинки-заглушки (по умолчанию эта переменная имеет вид: &noimage=noimage.png). картинка-заглушка по прежнему должна лежать в папке images текущего шаблона.
- Переменная &category заменена на &show_cat (обнаружил, что в DLE есть глобальная переменная $category, переименовал на всякий случай).
- Переменная &bad заменена на &ignore_cat для большей внятности кода.
- Исправлена переменная {comm_num} на {comments-num} как она пишется в стандартных шаблонах DLE.
- [админам] Возможность выводить время выполнения модуля. Пригодится для отладки (видеть будет только группа id=1) Смотрите закомментрованные строки ниже в коде и в самом конце файла.
v.2.4
- Добавлено автоматическое создание папки blockpro и установка необходимых прав, даже если они были сбиты (например при переезде на новый хостинг).
- Изменена методика создания уменьшенных копий картинок - теперь скрипт берёт только те картинки, которые лежат в папке uploads сайта (все картинки, которые загружаются на сайт обычно туда и попадают). Если картинка будет лежать на сторонем сайте она будет проигнорирована и вместо неё выведется заглушка. Это сделано в целях безопасности сайта и устраниения проблемы с белым листом (Not Supported File! Thumbnails can only be made from .jpg, gif and .png images!), которая возникала при определённых обстоятельствах.
- За изменения в этой версии отдельное спасибо отличному пограммисту Роману (Giseg), если бы не он - врядли были бы эти важные исправления!
v.2.3
- Исправлена ошибка, работы с категориями. При указании категорий, из которых следует выводить новости, они наоборот скрывались.
- Изменен синтаксис перечисления категорий для вывода/скрытия. Теперь категории нужно перечислять через запятую, по аналогии с тем же custom к примеру.
v.2.2
- Добавлена возможность подключить модуль для вывода похожих новостей (отдельное спасибо Sander`у за исправление моих косяков при перелопачивании кода).
- Переписаны имена "модульных" переменных, чтоб не было конфликтов при выводе похожих новостей.
v.2.1(релиза не было)
- Исправлена и оптимизирована функция обрезания содержимого новостей (в некоторыx, непонятныx для меня случаяx содержимое обрезалось полностью). За доработку спасибо nowheremany.
- Изменён вывод блока с новостями. Теперь блок выводится без "обёртки" в общий div с id равным переменной &block_id. (исправлено на случай использования в шаблоне для обёртки новости тегов
и оборачивания строки подключения в<li></li>
. В этом случаи блок не проxодил валидацию и не корректно обрабатывался в качестве слайдера (плагин jcarousel)<ul></ul> - Исправлены мелкие ошибки, допущенные в прошлой версии по невнимательности или лени )))
v.2.0
- код модуля переработан.
- модуль переведён на работу с шаблонами.
- убраны лишние комментарии, тот кто разбирается и так поймёт, а чайнику дорога на www.dle-faq.pro
Техническая поддержка модуля осуществляется только по указанным контактным данным
Но это не означает, что техподдержка будет оказана :)
P.S. Пример использования модуля вы можете лицезреть на этом сайте, прямо чуть ниже ссылки на скачивание выводятся похожие новости.
ВНИМАНИЕ!
Все обсуждения модуля теперь только в этой теме или на сайте

Комментарии
Добавить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Комментировать могут только зарегистрированные пользователи