Русский English Deutsch Українська Қазақша

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

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

Вы не вошли.

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

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

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 17:39:42

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

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

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

Вне форума

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

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

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 08:47:47

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

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

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

Вне форума

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

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

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

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

Вне форума

#6 2009-01-07 13: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 00:12:18

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Отредактировано oktano (2009-01-08 16:29:40)

Вне форума

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

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

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

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

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

Скачать

Отредактировано ROZARD (2009-01-16 22:49:50)

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Отредактировано sparco (2009-01-09 21:19:35)

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

#16 2009-02-03 15: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 15:30:36)

Вне форума

#17 2009-02-03 17: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 22:11:53

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

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

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

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

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

Вне форума

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

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

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

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

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

Вне форума

#20 2009-05-30 14: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 15:32:33)

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

Вне форума

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

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

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

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

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

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB 1.5.11
Модифицировал Visman

[ Сгенерировано за 0.026 сек, 7 запросов выполнено - Использовано памяти: 630.41 Кбайт (Пик: 683.41 Кбайт) ]