Block.Pro.2.5

29.03
334
34 542
Block.Pro.2.5


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ю).
  • Возможность быстрого редактирования новостей прямо из блока, аналогично стандартному функционалу

Установка модуля

  1. Скопировать файл block.pro.2.php в папку engine/modules/
  2. Скопировать содержимое папки THEME в папку с текущим шаблоном сайта
  3. В нужном месте прописать строку подключения модуля с обязательными параметрами:
    {include file="engine/modules/block.pro.2.php?&block_id=BLOCK&template=blockpro"}
    Где: BLOCK - Уникальный идентификатор блока blockpro - имя шаблона, используемого для вывода
  4. Настроить дополнительные параметры строки подключения и шаблон

Для вывода похожих новостей

  1. Отключить стандартный вывод похожих новостей в админке (Настройка системы » Оптимизация запросов к базе данных » Отображение похожих новостей » "нет")
  2. Открыть файл 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*/
  3. Настроить дополнительные переменные подключения модуля (Переменные приведены в таблице ниже. При вставке необходимо заменять символ & на $) и шаблон
  4. В ШАБЛОНЕ ПОЛНОЙ НОВОСТИ НИЧЕГО ДОПОЛНИТЕЛЬНО ПРОПИСЫВАТЬ НЕ НУЖНО! модуль выводится через стандартный тег похожих новостей.

Переменные строки подключения

Все переменные указываются непосредственно в строке подключения модуля.

В таблице дано описание возможных для использования переменных

Наименование переменной Значение по умолчанию Описание Примечание
&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} Дата новости в пользовательском формате  
Block.Pro.2.5 Заголовок новости  
{title limit="X"} Заголовок новости, обрезанный до X символов.  
{text} Текст новости (аналог {short-story})  
{text limit="X"} Текст новости, обрезанный до указанного X количества символов, при этом обрезание текста происходит до последнего логического слова, а не обрывает текст на середине слова.  
{full-link} URL полной новости  
{comments-num} Количество комментариев к новости  
{views} Количество просмотров новости  
[edit] текст [/edit] Ссылка на редактирование новости  



Техническая поддержка модуля осуществляется только по указанным контактным данным

Но это не означает, что техподдержка будет оказана :)

P.S. Пример использования модуля вы можете лицезреть на этом сайте, прямо чуть ниже ссылки на скачивание выводятся похожие новости.

ВНИМАНИЕ!

Все обсуждения модуля теперь только в этой теме или на сайте blockpro.ru

Похожие материалы

Комментарии

din0
din0 15 апреля 2012 17:49
Помогите плиз, кол-во элементов, прокручиваемых за один раз сделал на 4, но после 3 прокручивания, картинка новости появляется с середины, а дальше непонятно как, но не с начала новости, и как можно сделать плавную прокрутку без остановок, заранее спасибо
ПафНутиЙ
ПафНутиЙ 16 апреля 2012 08:50
Где то косяк с размерами, отступами или ещё чем-то.
смотрите через отладчики...
колбаскин
колбаскин 18 апреля 2012 23:43
ПафНутиЙ У меня есть пару вопросов:

1. Как сделать чтобы при клике на маленькую картинку - всплывала большая?
2. Мне нужно вывести
[forum-link]<img src="/templates/Default/images/dlet_artblock_point_1.gif" width="13" height="9" border="0" /> Обсудить в форуме ({topics-num})[/forum-link]
- как это сделать?
3. При добавлении модуля в полную новость, некоторые элементы начинают выглядеть иначе. Можно ли как-то сделать так, чтобы шаблон модуля не влиял на все остальное?
ПафНутиЙ
ПафНутиЙ 19 апреля 2012 19:04
1. Вывести ссылку на большую картинку, навесить на маленькую картинку js-обработчик, который будет по клику оборачивать ссылку на большую картинку в соответствующий код и делать всплытие.
2. Ну так выводите, не вижу проблемы, только куда - не понятно...
3. Да. Нормально делать шаблоны, не использовать одинаковые или переопределяющие друг друга классы.
Freddy
Freddy 24 апреля 2012 17:47
Всех приветствую.
Подскажите пожалуйста если пользователь не авторизован-то новости выводятся без картинок,стоит только авторизоваться-сразу появляются.Как исправить?
ПафНутиЙ
ПафНутиЙ 24 апреля 2012 19:18
Уберите из шаблона ненужные теги.
Freddy
Freddy 24 апреля 2012 20:58
И в правду-убрал ноу груп и всё заработало.Спасибо.
Den1
Den1 25 апреля 2012 18:43
Павел, здравствуйте.
Использую часто ту информацию, что дают ваши проекты, за что огромное спасибо!
С картинками(внешние источники), так вопрос и не получилось решить, а очень бы хотелось.. Те ответы, что бы ли ранее к сожалению не помогли.. Может не совсем верно реализовывал. Вывод оригинала, как указано на второй странице, к сожалению не дали результатов.. Прошу подсказать, может есть возможность с помощью дополнительных средств и каких решить данную ситуацию, актуален вопрос думаю будет для многих. За ранее благодарен.
ПафНутиЙ
ПафНутиЙ 25 апреля 2012 19:19
Лучший вариант - использовать модуль S-Blocks, там собственный парсер картинок, ну и он более оптимизирован, имеет больше возможностей.... в общем реально он лучше)
Я бы и сам не проч решить даную проблему, но моих знаний и умений в области php тут явно недостаточно. По хорошему нужно использовать собственный парсер картинок, но тогда теряется суть модуля - простота. Так что думаю этот вопрос останется ещё долго в открытом состоянии. Опять же DLE 9.6 не за горами, а там много нового в плане оптимизации. Так что может модуль и вообще потеряет свою актуальность.
Den
Den 26 апреля 2012 23:34
Сразу скажу спасибо за прекрасный модуль, а теперь вопрос)
проблема с url оригинальной картинки, делаю вывод топ новтсей, в blockpro.tpl пишу
onclick="return hs.expand(this)" href="{image_original}"><img src="{image-1}">


но в исходном коде вместо полного url стоит ссылка на тумбу

/uploads/posts/2012-04/thumbs/1334943257_p.jpg" onclick="return hs.expand(this)"><img src="/uploads/posts/2012-04/thumbs/1334943257_p.jpg" alt="" title=""></a>


что я делаю не так?
ПафНутиЙ
ПафНутиЙ 27 апреля 2012 00:01
Ну так из новости берётся картинка, а не ссылка на картинку, поэтому и thumb
Den
Den 27 апреля 2012 00:11
неправильно понял назначение тега), значит получить ссылку на полную картинку не выйдет.
ПафНутиЙ
ПафНутиЙ 27 апреля 2012 00:44
Модуль берёт указанную картинку, создаёт уменьшенную копию этой картинки, а так же выводит оригинал (имеется виду исходная картинка, отобранная модулем).
Den
Den 27 апреля 2012 18:59
Решил свою задачу строками
$original_img = preg_replace("#/thumbs#", "",$original_img);
				$tplb->set( '{img_original}', $original_img );
ПафНутиЙ
ПафНутиЙ 28 апреля 2012 07:29
неплохой вариант, надо будет опробовать. Спаибо.
igoryk
igoryk 28 апреля 2012 09:26
Вопрос - вывожу модуль так :
{include file="engine/modules/block.pro.2.php?&block_id=BLOCK&template=blockpro&news_num=6&ignore_cat=y&show_cat=1,19,41&random"}


&random - по идее должен выводить рандомно новости, но выводится постоянно одно и то-же :( Кто подскажет, что не так сделал?
ПафНутиЙ
ПафНутиЙ 28 апреля 2012 09:32
переменная random не определена. должно быть например &random=1
ergeykl
ergeykl 4 мая 2012 19:57
Привет всем!
Сразу после установки заметил такую штуку, что если в шаблоне выводить новости (без ссылок без title вообще без ничего)просто тупо <img src="ссылка"> то под ней образуется небольшой отступ, который мешает!
С чего бы ему там появляться? Ведь код "чистый"
Помогите пожалуйста.
ПафНутиЙ
ПафНутиЙ 4 мая 2012 20:44
а в css прописано что для этих картинок?
смотрите через отладчик.
ergeykl
ergeykl 4 мая 2012 20:51
Вот что относится к картинка в css


это к большим (они слева и их 2ве)

#bignews {width:280px;height:150px;overflow:hidden;position:relative}

а это к соседним маленьким (они справа их 4ре)

#smallnews {width:140px;height:75px;overflow:hidden;position:relative}
ПафНутиЙ
ПафНутиЙ 4 мая 2012 20:55
ссылку на сайт давайте.
ergeykl
ergeykl 4 мая 2012 21:36
кинул в лс
ПафНутиЙ
ПафНутиЙ 4 мая 2012 21:55
Как я уже говорил в переписке по почте - дело всё в кривой вёрстке. В опере не грузятся css файлы, a firefox и chrome - через раз. IE вообще врубает режим совместимости и рвёт дизайн во всевозможным направлениям.
Так что мой вам совет - исправьте вёрстку. Если не можете самостоятельно - закажите тому человеку, который сможет(только не мне разумеется).
А ещё лучше заказать нормальный уникальный шаблон.
ergeykl
ergeykl 4 мая 2012 21:57
спасибо за совет. Учту
wcw2007
wcw2007 9 мая 2012 20:04
Автор пару вопросов

1. Что означает Время выполнения Block.Pro: 7,3E-5 сек

2. Если мы скинем с друзьями и закажем оптимизацию написание кода, как на sblock, чтоб все летало. Сколько будет стоить эта работа
3. И сколько будет стоить создание админки с кнопками как у sblock. Спасибо
ПафНутиЙ
ПафНутиЙ 9 мая 2012 22:47
1. - Это время выполнения скрипта, возможно как то неверно высчитывается, отсюда и такие цифры.
2 и 3. - Я не пытаюсь составлять конкуренцию S-Blocks, особенно учитывая то, что Sander неоднократно помогал мне писать модуль smile.
Cкрипт не будет платным и админки в нём так же не планируется? гораздо выгоднее купить модуль S-Blocks, т.к. он более оптимизирован, чем block.pro (я всё таки не программист).
wcw2007
wcw2007 10 мая 2012 08:25
Я правильно понял для содания 1 блока требуется 1 файл, т.е чтоб создать 2 блок на сайте нужно заново закачать block.pro2 и переименовать его и от него можно создавать второй блок.
{include file="engine/modules/block.pro.2.php?&block_id=777&template=blockpro&top_rating&news_num=5"}
Этот пример работает отлично , а любой другой не работает если просто заказать новый tpl файл сделать новое подключение с новым именем, блок не работает, что только я не делал выводятся около 18 новостей, хотя прописано news_num=3, былся около часа и ничего не получилось, что только не прописывал 2-й блок не правильно отражается. Dle 9.6 версия скаченная специально для него где не работает похожие новости.
ПафНутиЙ
ПафНутиЙ 10 мая 2012 09:04
Если бы вы прочитали описание к 2.5.1 - то легко бы увидели большую надпись о том. что в 9.6 вывод похожих новостей не работает.
Для создания одного блока требуется 1 строка подключения с одним уникальным идентификатором, о чём так же доходчиво написано в документации к модулю. т.е. Если вам требуется создать 1000 блоков, достаточно прописать 1000 строк подключения с 1000 уникальных значений переменной &block_id.
wcw2007
wcw2007 10 мая 2012 11:57
Так я их прописывал 1000 штук, не правильно отражается блок и создавал новый tpl файл, ставлю выводить s_num=5 , а он мне выводит 18 штук и ничего не помогает, кеш чистил, добавлял новости и коментарии ничего не помогает,
ПафНутиЙ
ПафНутиЙ 10 мая 2012 12:10
Покажите все строки подключения.

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

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