Общая информация о модуле
Модуль BlockPro предназначен для пользовательского вывода новостей на сайте под управлением CMS DataLife Engine и позиционируется как альтернатива {custom}, {top}, {related-news}.
Является логическим развитием предыдущей версии, однако обратной совместимости не имеет, таким образом шаблоны и строка подключения модуля Block.Pro.3 не подойдут к текущей версии.
Требования к системе
Версия DLE: 10.2 и выше
Поддерживаемая кодировка: UTF-8
Версия php: 5.6 и выше
Наличие IonCube Loader: Да (v.6.0 и выше)
Для проверки совместимости настроек сайта и модуля рекомендуем скачать специальный скрипт
доcтаточно распаковать содержимое архива на сайт и запустить php-файл.
Модуль имеет привязку к домену. Можно использовать его на разных поддоменах и разных доменных зонах одного домена. Так же Вы можете использовать модуль на localhost без активации лицензии.
Автор не гарантирует работу модуля, если требования к системе не соответствую минимальным.
Ключевые особенности BlockPro
-
Постраничная AJAX-навигация. Модуль имеет гибкую реализацию постраничной навигации, что позволяет не только использовать несколько вариантов внешнего вида навигации, но и задать начальную страницу для показа в блоке при загрузке страницы.
-
Собственный, гибкий шаблонизатор. Модуль использует шаблонизатор Fenom, который позволяет воплощать в жизнь практически любые задумки в одном шаблоне!
-
Удобный генератор строк подключения в админке. Генератор строк подключения позволяет сразу посмотреть результат работы модуля с полученной строкой подключения. А так же снабжен специальными хелперами для правильного составления тегов шаблона.
-
Фильтрация новостей по значению дополнительных полей. Новости можно фильтровать по значению одного или нескольких дополнительных полей, при этом можно использовать логику "И" (совпадение нескольких значений) или "ИЛИ" (совпадение любого из значений).
-
Показ новостей, находящихся на модерации.
-
Вывод новостей в режиме афиши (только на ненаступившую дату с возможностью группировки по датам)
-
Вывод новостей на стороннем сайте через асинхронный js-код
-
Вывод RSS-лент
-
Вывод или игнорирование новостей из подкатегорий.
-
Вывод аватара автора новости без дополнительных запросов. При этом если вывод не включен - лишние данные из БД не запрашиваются.
-
Сортировка новостей:
- Стандартный топ dle
- Хит (рейтинг*100 + кол-во комментариев*10 + кол-во просмотров)
- По дате добавления
- По рейтингу
- По количеству просмотров
- По количеству комментариев
- В случайном порядке (в т.ч. для больших БД)
- В алфавитном порядке
- Без сортировки (используется для вывода похожих новостей)
- По количеству скачиваний файлов новости
- По символьному коду новости
- По дате редактирования новости
- По значению дополнительного поля (цифровое или строковое значение)
Доступно три направления сортировки:
- По возрастанию
- По убыванию
- Как есть (работает пока только с ID новостей)
-
Фильтрация новостей:
- По авторам
- По категориям
- По ID новостей
- По тегам новостей
- Новости на модерации
- По заполненным дополнительным полям
- По значениям дополнительных полей
- Фиксированные новости (только фиксированные, только обычные или все подряд)
- Опубликованные на главной (только на главной, только неопубликованные на главной, все подряд)
- По символьному коду новостей
Фильтры могут принимать множественные свойства, перечисляемые через запятую. Могут исключать из вывода указанные значения, а так же могут сочетаться исключающие и разрешающие фильтры. (Например вывод новостей из текущей категории, но только если они расположены в её подкатегориях, а id новостей соответствуют перечисленному диапазону)
- Подключение одной строкой в любой шаблон сайта.
-
Нет обязательных переменных, достаточно просто подключить модуль и выведется стандартный топ 10 новостей за всё время.
- Полноценный вывод похожих новостей без правок движка. Можно использовать параллельно со стандартным выводом, можно вывести похожие новости даже на странице кратких новостей или профиля пользователя или в любом другом месте. (добавляется +1 запрос на блок при отсутствии кеша)
- Возможность записывать похожие новости в БД
- Кеширование каждого блока с возможностью установки времени жизни или отключения кеша для каждого блока.
-
Собственный класс для работы с картинками. Можно использовать несколько методом уменьшения: точный размер, уменьшение по высоте, уменьшение по ширине, "умное" уменьшение или кроп (уменьшение и обрезка лишнего)
- Картинки можно брать из любого источника контента новости (краткая, полная, допполе) в любом количестве и изменять любую из них как угодно. Например можно создать несколько вариантов миниатюр одной картинки для слайдера.
- Обработка (или вывод без обработки) и вывод всех картинок из новости
- Вывод новостей за заданный интервал времени (к примеру новости, добавленные за прошлую неделю).
Детальное описание модуля
Обновления
(
Всего выпущено: 10 обновлений)
Обновление до версии 4.9.1:
- Добавлена возможность указывать время жизни кеша в секундах. Для этого необходимо к параметру cacheLive добавить букву s на конце. Например: cacheLive=35s установит время жизни кеша 35 секунд.
- Исправлена ошибка с излишней фильтрацией данных при указании параметра tags=this.
- Исправлена ошибка выставления рейтинга на DLE11.3.
- Добавлена возможность вызывать методы модуля внутри шаблонов модуля. Пример работы приведён в шаблоне custom_functions.tpl
- Исправлена ошибка, при которой в режиме вывода афиши фиксированные новости выводились в конце списка.
- Исправлена ошибка, возникающая при сочетании параметров notCatId и catId. Например при
?catId=this¬CatId=3
отображались новости со всех категорий, кроме id=3, хотя должны были только из просматриваемой.
Для обновления модуля необходимо перезалить все файлы модуля, или только изменённые файлы из списка ниже.
- engine/inc/blockpro.php
- engine/modules/base/admin/blockpro/checkLicenseStatus.php
- engine/modules/base/admin/blockpro/generator.php
- engine/modules/base/blockpro.php
- engine/modules/base/core/Fenom/Accessor.php
- engine/modules/base/core/Fenom/Template.php
- engine/modules/base/core/base.php
- engine/modules/base/core/bpModifiers.php
- templates/Default/blockpro/bp_comments.tpl
- templates/Default/blockpro/js/blockpro.js
- templates/Default/blockpro/js/blockpro_new.js
- templates/Default/blockpro/template_inner.tpl
- templates/Default/blockpro/template_wrapper.tpl
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.9.0:
- Добавлена совместимость модуля с php 7
- Изменены минимальные системные требования для модуля. Минимальная версия PHP: 5.6, минимальная версия ionCube Loader: 6.0
- Обновлён шаблонизатор Fenom до версии 2.11.
- Исправлен некорректный шаг в инструкции по установке модуля (ручная правка файла blockpro.key)
- Удалён файл blockpro_upgrade.php, предназначавшийся для обновления с очень старых версий модуля.
- Дополнены условия лицензионного соглашения (добавлено явное указание срока действия лицензионного ключа)
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- blockpro.php
- engine/ajax/base/save_block_pro.php
- engine/inc/blockpro.php
- engine/modules/base/admin/blockpro/checkLicenseStatus.php
- engine/modules/base/admin/blockpro/vidgets.php
- engine/modules/base/blockpro.php
- engine/modules/base/core/Fenom.php
- engine/modules/base/core/Fenom/ (удалить все файлы, залить новые)
- добавить файл: templates/Default/blockpro/iframe.tpl
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.8.1:
- Добавлен показ модального окна при повторном выставлении рейтинга новостям, выводимым через модуль.
- Добавлен модификатор timeago для показа даты в формате "time ago". Например код {$el.date|timeago:6} выведет результат: 2 года, 4 месяца, 1 неделю, 6 дней, 12 часов и 5 минут назад. В качестве параметра модификатор принимает цифру от 0 до 6, указывающую точность вывода от года до минут. По умолчанию установлено значение 2.
- Исправлена MySQL ошибка при получении похожих новостей с очень длинным контентом.
- Исправлена MySQL ошибка при выводе похожих новостей к несуществующей новости.
- Небольшие улучшения в выводе ошибок, теперь ошибки работы модуля выводятся только если включен режим вывода статистики (это позволит избежать показа ненужного, для большинства пользователей, контента)
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- /engine/inc/blockpro.php
- /engine/modules/base/admin/blockpro/checkLicenseStatus.php
- /engine/modules/base/blockpro.php
- /engine/modules/base/core/base.php
- /engine/modules/base/core/bpModifiers.php
- /templates/Default/blockpro/js/blockpro.js
- /templates/Default/blockpro/js/blockpro_new.js
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.8.0:
- Исправлена ошибка некорректного отбора новостей, когда в новости несколько тегов и используется параметр &tags=thisNewsTags.
- Исправлена ошибка когда в допполе фильтруемое значение указано не первым, то фильтрация этого значения не происходит
- Добавлена возможность сортировки по собственным полям БД. &sort=p.custom_field — поле из таблицы dle_post или &sort=e.custom_field — поле из таблицы dle_post_extras.
- К параметру setFilter добавлены алиасы для указания логического оператора. Это сделано для исправления случаев, когда обычные символы не срабатывают из-за настроек фильтрации на сервере. Пример &setFilter=YEAR(p.date)|eq|2016 — выберет новости, опубликованные в 2016 году.
- В параметр setFilter можно передавать значение NOW() для фильтрации по текущему timestamp. Например &setFilter=p.event_start|gte|NOW() — выберет новости, у которых дата начала события (нестандартное поле) больше или равна текущему моменту времени.
- В параметр setFilter можно передавать значение, являющееся поисковой строкой. Например &setFilter=p.title|SEARCH|Добро пожаловать найдёт все новости, в заголовке которых содержится словосочетание "Добро пожаловать". &setFilter=p.title|NOT_SEARCH|Добро пожаловать — противоположное значение.
- В параметр fixed добавлено новое значение. &fixed=ignore — вывод новостей сплошным списком, без учёта признака зафиксированных новостей. Такой порядок может понадобиться при сортировке новостей по кастомному полю.
- Исправлена ошибка, приводящая к некорректной сортировке новостей при ajax постраничной навигации на второй и последующих страницах, когда новости сортируются по значению допполя.
- Исправлена ошибка, появляющаяся при наличии вложений в новости и работе модуля через ajax (постраничная навигация и предпросмотр в админке).
- Добавлен новый параметр &experiment=y, включающий экспериментальные функции модуля. Этот параметр включает улучшенные, но не оттестированные до конца, функции модуля.
- В DLE 11 при включнии экспериментальных функций улучшена фильтрация по значению дополнительных полей.
- Исправлена некорректная работа модуля, когда пользователю разрешено менять шаблон сайта (шаблоны модуля подключались из папки, указанной в конфиг DLE).
- Добавлен новый модификатор emath_all для воспроизведения в шаблоне php-функции preg_match_all. Пример использования нового модификатора можно посмотреть в документации
- Проведено улучшение стиля php-кода.
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- engine/ajax/blockpro.php
- engine/inc/blockpro.php
- engine/modules/base/admin/blockpro/checkLicenseStatus.php
- engine/modules/base/admin/blockpro/generator.php
- engine/modules/base/blockpro.php
- engine/modules/base/core/base.php
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.7.2:
- Теперь отправить обращение в техподдержку можно прямо из админки модуля. При этом информация о версии и лицензии будет автоматически прикреплена к сообщению.
- Исправлено некорректное отображение картинок добавления и удаления из закладок при выводе блока на главной странице.
- Исправлена ошибка с отображением даты в новостях при постраничной навигации и предпросмотре в админке.
- Исправлено формирование ссылки на аватар пользователя в dle 10.5 и 10.6, обновлённых со старых версий.
- Исправлена ситуация, когда при включении в настройках DLE вывода новостей на ненаступившую дату могли выводиться новости за сегодня, но время публикации которых ещё не наступило.
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- /engine/ajax/base/check_status.php
- /engine/inc/blockpro.php
- /engine/modules/base/admin/blockpro/generator.php
- /engine/modules/base/blockpro.php
- /engine/modules/base/core/base.php
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.7.1:
- Минимально необходимая версия php — 5.4.
- Минимально необходимая версия ionCube — 5.0.
- Теперь модуль не зависит от настройки short_open_tag.
- Настройки лицензии вынесены в админку модуля.
- Добавлена интеграция с сервисом tinyPNG.
- Добавлена интеграция с сервисом Kraken.io.
- Добавлен новый параметр setFilter.
- Добавлен новый тег {$totalCount}, выводящий общее количество новостей в выборке. Если постраничная навигация включена - тег выводит общее кол-во новостей co всех страниц.
- Обновлён шаблонизатор до актуальной версии.
- Исправлена ошибка логики построения запроса для отбора новостей в режиме вывода афишей.
- Исправлено некорректное построение ЧПУ при третьем типе настроек в DLE.
- Исправлена недостаточная фильтрация при отборе новостей по тегам.
- Исправлено некорректное формирование ссылки на аватар пользователя в dle 10.6.
- Исправлена некорректная выборка новостей при фильтрации по допполям с логикой OR.
- Исправлена ошибка генерации предпросмотра блока в админке и создания виджета при использовании Memcache.
- Исправлена mysql ошибка, при некоторых случаях выборки по автору новости.
- Мелкие исправления, улучшения и доработки класса resize.php.
- Улучшение модификатора declination, теперь отрицательные числа тоже корректно склоняются.
- Исправлена ошибка с некорректной генерацией строки подключения при предпросмотре виджетов в админке
- Рефакторинг, оптимизация и улучшение php кода модуля.
Для обновления необходимо:
1. Залить папку
engine и файл
blockpro.php из папки
upolad в корень сайта с перезаписью существующих файлов.
2. В админке модуля, на вкладке "Настройки" ввести необходимые ключи.
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.6.3:
- Добавлен вывод строки подключения виджета.
- Добавлена кнопка предпросмотра виджета, полезно, когда нужно создать новый виджет на основе имеющегося или просто посмотреть результат генерации виджета.
- Исправлена ошибка в некорректном создании кеша при использовании &catId=this и постраничной навигации.
- Добавлены служебные, недокументируемые, теги {$cacheName}, {$category_id} и {$cfg}, предназначенные для улучшения отладки вывода контента на страницах.
- Добавлен новый параметр &thisCatOnly=y, предназначеный для показыва новостей ТОЛЬКО из текущей категории (имеет смысл при выводе похожих новостей и использоваии мультикатегорий, когда нужно вывести новости, принадлежащие только к просматриваемой категории).
- Исправлена ошибка, возникающая на странице профиля пользователя, когда на сайте установлен модуль Regger < 2.0.
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- /engine/inc/blockpro.php
- /engine/modules/base/admin/blockpro/checkLicenseStatus.php
- /engine/modules/base/admin/blockpro/generator.php
- /engine/modules/base/admin/blockpro/vidgets.php
- /engine/modules/base/blockpro.php
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.6.2:
- Исправлена ошибка с фильтрацией по значению допполя.
- Добавлена возможность фильтровать новости по тегам текущей новости
&tags=thisNewsTags
- /engine/inc/blockpro.php
- /engine/modules/base/blockpro.php
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.6.0:
-
Изменены условия оказания техподдержки. Теперь техническая поддержка по модулю оказывается только через систему обращений.
-
Исправлена ошибка выборки по значению допполей. При одновременной выборке по значениям допполей и (к примеру) по тегам последние не учитывались.
- Исправлена ошибка с неправильной сортировкой новостей при просмотре в
админке, если выбрана сортировка по умолчанию.
- Исправлен неверный тег в шаблоне fullexample.tpl
- Исправлена ошибка в тексте скрипта для проверки совместимости хостинга
и модуля.
- Добавлен новый стиль постраничной навигации:
&navStyle=arrows
для вывода только кнопок вперёд и назад.
- Добавлен новый параметр
&navDefaultGet=y
. При его указании модуль будет брать значение текущей страницы и формировать постраничную навигацию так же как это делается в DLE. Таким образом вы можете заменить тег {content}
на строку подключения модуля в списках новостей, или просто организовать постраничную навигацию с перезагрузкой страницы.
- Исправлена ошибка со сбросом выбранного стиля постраничной навигации в админке.
- Исправлена ошибка с некорректным построением пути к папке с шаблоном в некоторых случаях и если сайт расположен в подпапке.
- Исправлено поведение
&catId=this
и ¬CatId=this
. Если эти параметры использовались в сочетании с &subcats=y
и ¬Subcats=y
и пользователь не просматривал какую-либо категорию, то в запрос добавлялась ненужная выборка.
- Доработано поведение других параметров, принимающих значение
this
. Теперь параметры &postId=this
, ¬PostId=this
, &author=this
, ¬Author=this
, &tags=this
, ¬Tags=this
, &symbols=this
и ¬Symbols=this
не будут возвращать пустоту, а будут исключаться из запроса, при этом новости выведутся так, как будто этот параметр не указан.
-
Переработан алгоритм отбора новостей по тегам. Теперь из отбора не пропадают новости, но фильтрацию по тегам необходимо аккуратно сочетать с фильтрацией по id новостей, есть вероятность получения нулевого результата выборки.
- Добавлена возможность указывать параметры
&xfilter=this
и ¬Xfilter=this
для показа новостей, содержащих текущее допполе при просмотре страниц /xfsearch/
.
- Обновлён шаблонизатор Fenom до актуальной версии.
- Обновлён класс для работы с БД до актуальной версии.
-
Добавлен модификатор для получения информации об авторах новости по их логину непосредственно в шаблоне. Таким образом можно выводить любую информацию о пользователе, добавившем новость. Пример реализации можно видеть в шаблоне
getuserinfo.tpl
.
-
Реализована возможность выбирать из таблиц новостей произвольные колонки
&fields=p.custom1,e.extra1
, где префикс p.
— колонка из таблицы dle_post, a e.
— из таблицы dle_post_extras
. Таким образом можно выводить данные из новостей даже если в БД DLE вносились дополнения.
- Мелкие исправления и улучшения.
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- /engine/inc/blockpro.php
- /engine/modules/base/admin/blockpro/checkLicenseStatus.php
- /engine/modules/base/admin/blockpro/generator.php
- /engine/modules/base/blockpro.php
- /engine/modules/base/core/Fenom.php
- /engine/modules/base/core/Fenom/Accessor.php
- /engine/modules/base/core/Fenom/Compiler.php
- /engine/modules/base/core/Fenom/Modifier.php
- /engine/modules/base/core/Fenom/Template.php
- /engine/modules/base/core/Fenom/Tokenizer.php
- /engine/modules/base/core/Pager.php
- /engine/modules/base/core/SafeMySQL.php
- /engine/modules/base/core/base.php
- /engine/modules/base/core/bpModifiers.php
- /templates/Default/blockpro/css/blockpro.css
- /templates/Default/blockpro/fullexample.tpl
- /templates/Default/blockpro/getuserinfo.tpl
- /templates/Default/blockpro/js/blockpro.js
- /templates/Default/blockpro/js/blockpro_new.js
- /templates/Default/blockpro/list.tpl
Скачать обновление можно в
кабинете покупок.
Обновление до версии 4.5.7:
Изменения:
- Добавлена сортировка по дате редактирования.
- В админке исправлена ошибка в тексте описания логики сортировки по значению допполей.
- В админке добавлен вывод установленной версии модуля.
Для обновления модуля необходимо перезалить все файлы модуля модуля, или только изменённые файлы из списка ниже.
- /engine/inc/blockpro.php
- /engine/modules/base/admin/blockpro/checkLicenseStatus.php
- /engine/modules/base/admin/blockpro/generator.php
- /engine/modules/base/blockpro.php
Скачать обновление можно в
кабинете покупок.