Next Generation CMS :: Форум поддержки

Заинтересовала наша система? Тогда этот форум для Вас!

Вы не зашли.

#1 2008-11-01 10:45:50

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

FYI: Интересные возможности плагина lastnews (последние новости сайта)

[font=verdana]Новая версия плагина поддерживает интеграцию с другими новостыми плагинами.
А именно - теперь вы можете в шаблоне entries.tpl использовать переменные созданные, к примеру, плагином xfields.
[/font]

Почти все из вас знакомы с плагином lastnews, который отображает на сайте в отдельном боковом меню список последних новостей сайта. Но мало кто знает, что основные возможности плагина можно раскрыть только если настройку проводить в самом коде.

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

Детальное описание есть в документации по плагину, но самое важное я продублирую тут.
=====
За вывод всех информационных блоков в файле lastnews.php отвечает следующая функция:

function plugin_lastnews();

При этом фактической подготовкой занимается функция ( plugin_lastnews() просто вызывает
её):

$template['vars']['plugin_lastnews'] = plugin_lastnewsGenerator('', array(), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));

Вкратце остановимся на не очень знакомом куске кода: $template['vars']['plugin_lastnews'] - он говорит, что в основном шаблоне (main.tpl) будет создана переменная plugin_lastnews (при этом данная переменная будет отображаться в шаблоне только в том случае, если плагин lastnews включен).
Для создания дополнительных блоков вам необходимо использовать переменные вида plugin_lastnew_ДОПОЛНЕНИЕ, в качестве ДОПОЛНЕНИЕ лучше всего использовать цифры. Т.е. plugin_lastnews_1, plugin_lastnews_2,...

Данная функция принимает следующие параметры:
$orderBy - порядок сортировки новостей в БД (напрямую передаётся в SQL запросе).
    Используйте с осторожностью, т.е. неправильное указание вызовет ошибку исполнения.
$categories - массив со списком ID категорий, из которых выводить новости. Если не заполнен,
    то выводится информация по всем категориям.
    Правила заполнения:
    * каждый элемент может содержать как цифру так и массив.
    * отображаются новости, которые находятся в любом из указанных в массиве элементов
    * если элемент является массивом, то он должен содержать список категорий в которых
      новость должна быть одновременно.

    Пример:
     array (1, 3, array(7,8), array(15,23,33), 48) означает:
     Выводить все новости, которые находятся в:
      . категории 1 ИЛИ
      . категории 3 ИЛИ
      . одновременно в категориях 7 и 8 ИЛИ
      . одновременно в категориях 15, 23 и 33 ИЛИ
      . категории 48
   Создаём дополнительный блок lastnews, выводимый в переменную plugin_lastnews_2 (которая будет доступна в шаблоне в виде {plugin_lastnews_2} по указанным выше параметрам и задавая максимальное кол-во новостей для отображения равное 7:

$template['vars']['plugin_lastnews_2'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1, 3, array(7,8), array(15,23,33), 48), $overrideParams = array('number' => 7));

$overrideParams - конфигурационный ассоциативный массив со следующими параметрами:
* number    - кол-во новостей для отображения
* offset    - номер (по порядку) с которого начинать показ
* dateformat    - формат даты, описание см. в конфигураторе
* maxlength    - обрезание макс. длины названия новости
* overrideTemplatePath - путь, в котором хранятся шаблоны lastnews.tpl/entries.tpl для данного
   блока.
   При задании этой переменной вы можете использовать встроенную константы:
   > tpl_site - указывает путь к текущему шаблону сайта (с '/' в конце)
           пример: tpl_site . 'plugins/lastnews/skin1'
   > root     - указывает путь к каталогу /engine (без '/' в конце)
        пример: root . '/plugins/lastnews/tpl/skins/skin1'

Все параметры конфигурационного массива не являются обязательными и имеют свои значения
по умолчанию.

Не в сети

#2 2008-12-10 18:39:42

RocketBoy
Участник
Откуда Калининград
Зарегистрирован: 2008-10-14
Сообщений: 552
Рейтинг :   27 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

А можно пример строки с использованием overrideTemplatePath

Не в сети

#3 2008-12-11 01:06:52

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

RocketBoy, примеры же есть (см. последние ~10 строк).
Или тебе полностью строку запуска плагина?

Держи:

$template['vars']['plugin_lastnews_2'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1, 3, array(7,8), array(15,23,33), 48), $overrideParams = array('number' => 7, 'overrideTemplatePath' => tpl_path . 'plugins/lastnews/skin1'));

Не в сети

#4 2008-12-11 09:47:47

RocketBoy
Участник
Откуда Калининград
Зарегистрирован: 2008-10-14
Сообщений: 552
Рейтинг :   27 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

vitaly, то что надо, спасибо

Не в сети

#5 2009-01-07 14:32:56

sparco
Участник
Откуда Россия
Зарегистрирован: 2008-11-01
Сообщений: 37
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Как вывести краткий вариант новости?

Не в сети

#6 2009-01-07 14:45:03

sparco
Участник
Откуда Россия
Зарегистрирован: 2008-11-01
Сообщений: 37
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Нашел решение

		$tvars['vars'] = array(
			'link'		=>	GetLink('full', $row),
			'views'		=>	$row['views']
		);

заменил на

                list ($short, $full) = explode('<!--more-->', $row['content'], 2);

		$tvars['vars'] = array(
			'link'		=>	GetLink('full', $row),
			'views'		=>	$row['views'],
			'content'		=>	$short
		);

Не в сети

#7 2009-01-08 01:12:18

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

sparco, учти, что в твоём варианте не будут отрабатывать плагины (финансовый и аналогичные), BB коды и тег [hide]. Если это приемлимо, то вариант подходящий.

Не в сети

#8 2009-01-08 10:46:16

sparco
Участник
Откуда Россия
Зарегистрирован: 2008-11-01
Сообщений: 37
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Действительно, есть другой вариант?

Не в сети

#9 2009-01-08 17:28:40

oktano
Участник
Зарегистрирован: 2008-10-17
Сообщений: 57
Рейтинг :   
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

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

Изменено oktano (2009-01-08 17:29:40)

Не в сети

#10 2009-01-09 18:58:05

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

По просьбе sparco, добавил в плагин возможно указывать расположение:

Нигде - не отображать нигде
Морда - только на головной странице
!Морда - везде кроме главной
Везде - на всех страницах

Скачать

Изменено ROZARD (2009-01-16 23:49:50)

Не в сети

#11 2009-01-09 19:12:21

Wolverine
Модератор
Откуда Домодедово
Зарегистрирован: 2008-10-13
Сообщений: 3,538
Рейтинг :   160 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

в Страницы плагинов его smile

Не в сети

#12 2009-01-09 22:17:44

sparco
Участник
Откуда Россия
Зарегистрирован: 2008-11-01
Сообщений: 37
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Огромная благодарность ROZARD! Все работает!
имхо, такой функционал необходим для каждого модуля

Изменено sparco (2009-01-09 22:19:35)

Не в сети

#13 2009-01-10 16:52:10

coreldraw
Участник
Откуда Ukraine
Зарегистрирован: 2008-10-21
Сообщений: 209
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

была фраза "А уже в lastnews - выводить поля из xfields'а."
где прочитать? может кто опишет как это сделать?

Не в сети

#14 2009-01-10 16:58:51

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

coreldraw, Просто попробовать объединить lastnews и xfields...:rolleyes:

Не в сети

#15 2009-01-10 17:45:15

coreldraw
Участник
Откуда Ukraine
Зарегистрирован: 2008-10-21
Сообщений: 209
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

ну ты завернул...
насколько понимаю должны быть возможности вставить какие-то переменные в ентри.тпл

Не в сети

#16 2009-02-03 16:30:14

Eterex
Участник
Зарегистрирован: 2008-10-15
Сообщений: 33
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Делаю:

function plugin_lastnews(){
	global $template;
	$template['vars']['plugin_lastnews'] = plugin_lastnewsGenerator('', array(2), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));
	$template['vars']['plugin_lastnews2'] = plugin_lastnewsGenerator('', array(5), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));
}

{plugin_lastnews2} не выводится. Что не так делаю?

Изменено Eterex (2009-02-03 16:30:36)

Не в сети

#17 2009-02-03 18:18:24

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Eterex пишет:

Делаю:

function plugin_lastnews(){
	global $template;
	$template['vars']['plugin_lastnews'] = plugin_lastnewsGenerator('', array(2), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));
	$template['vars']['plugin_lastnews2'] = plugin_lastnewsGenerator('', array(5), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));
}

{plugin_lastnews2} не выводится. Что не так делаю?

Должно быть так:

$template['vars']['plugin_lastnews_2'] = plugin_lastnewsGenerator('', array(5), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));

Не в сети

#18 2009-02-03 23:11:53

Eterex
Участник
Зарегистрирован: 2008-10-15
Сообщений: 33
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

ROZARD, благодарствую. Все дело в черточке)). Кстати, а почему не работает, если задается

$template['vars']['plugin_lastnews2']

и в шаблоне ставится {plugin_lastnews2}? А через подчеркивание все ОК.

Не в сети

#19 2009-02-04 02:22:43

vitaly
Администратор
Откуда Россия
Зарегистрирован: 2008-10-08
Сообщений: 2,823
Рейтинг :   118 

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Eterex, переменные вида {plugin_ИМЯ} и {plugin_ИМЯ_чтото} - специальные переменные.
Они отображаются двигом только в том случае, если плагин с данным именем сейчас активирован.
Сделано для того, чтобы в шаблоны можно было заложить поддержку многих плагинов и в случае, когда пользователь отключает плагин - сразу же пропадают его переменные.

Ну а раз у тебя нет плагина lastnews2 ({plugin_lastnews2}), то переменная и не отображается.
По этой же причине переменная {plugin_lastnews_2} отображается - ведь плагин lastnews у тебя есть.

Не в сети

#20 2009-05-30 15:51:14

Rohan
Участник
Зарегистрирован: 2008-10-13
Сообщений: 30
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

У меня следующая проблема. При выводе четвертого блока при помощи
{plugin_lastnews_4}
в место него выводится третий. Прописано все верно, как мне кажется это баг. Хотя могу ошибаться. Есть тут люди у кого выводится более трех разделов с помощью данного плагина?


Вот что в шаблоне прописано:

<!-- /      -->
<table cellpadding="0" cellspacing="0" width="230" style="margin-bottom: 10px; border: 1px solid #c4c4c4; ">
	<tr>
		<td class="greenblock"><b><font color="#ffffff">      </font></b>
			</td>
	</tr>
	<tr>
		<td class="blockcontent">
	{plugin_lastnews_humor}



		</td>
	</tr>

</td>
</table>
<!-- /     -->
	global $template;
	$template['vars']['plugin_lastnews'] = plugin_lastnewsGenerator('', array(), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','maxlength')));

	$template['vars']['plugin_lastnews_reviews'] = plugin_lastnewsGenerator('', array(2), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','12')));

	$template['vars']['plugin_lastnews_soft'] = plugin_lastnewsGenerator('', array(5), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','8')));

	$template['vars']['plugin_lastnews_blogs'] = plugin_lastnewsGenerator('', array(6), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','10')));

	$template['vars']['plugin_lastnews_humor'] = plugin_lastnewsGenerator('', array(6), array('number' => extra_get_param('lastnews','number'), 'maxlength' => extra_get_param('lastnews','10')));

Это содержимое lastnews

Но на сайте вместо humor выводится содержимое blogs.

Изменено Rohan (2009-05-30 16:32:33)

Не в сети

#21 2009-05-30 17:24:51

ROZARD
Модератор
Откуда Россия, Астрахань
Зарегистрирован: 2008-10-13
Сообщений: 1,523
Рейтинг :   82 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Rohan, Это может по тому что блок {plugin_lastnews_humor} идентичен {plugin_lastnews_blogs} wink

Не в сети

#22 2009-05-30 17:45:20

Rohan
Участник
Зарегистрирован: 2008-10-13
Сообщений: 30
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

ROZARD, уточни, я что-то догнать не могу про какую идентичность ты говоришь, переменные то разные

Не в сети

#23 2009-05-30 19:14:31

insider
Участник
Зарегистрирован: 2009-01-25
Сообщений: 229
Рейтинг :   35 
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Переменные-то у тебя разные, но они обе настроены на вывод новостей с одной категории (ID 6)

Не в сети

#24 2009-05-30 19:20:58

Rohan
Участник
Зарегистрирован: 2008-10-13
Сообщений: 30
Рейтинг :   

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

Ай блин, все! в упор вупор про категории. Еще долго думал что я забыл! Мерси!

Не в сети

#25 2009-06-19 18:48:35

icedogas
Участник
Откуда Москва
Зарегистрирован: 2009-02-08
Сообщений: 318
Рейтинг :   
Сайт

Re: FYI: Интересные возможности плагина lastnews (последние новости сайта)

хм, странно root . срабатывает нормально, а вот tpl_path .
выдает

Директория (tpl_pathplugins/lastnews/tpl/skin1/) не существует!

Не в сети

Подвал раздела

Работает на FluxBB