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

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

Вы не зашли.

#51 2010-03-29 10:16:10

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

$template['vars']['plugin_lastnews_stati'] = plugin_lastnewsGenerator($orderBy = 'postdate desc', $categories = array (НОМЕРА КАТЕГОРИЙ ЧЕРЕЗ ЗАПЯТУЮ), $overrideParams = array('number' => СКОЛЬКО ВЫВОДИТЬ ПОСЛЕДНИХ НОВОСТЕЙ - ЧИСЛО, 'overrideTemplatePath' => tpl_site . '/plugins/lastnews/НАЗВАНИЕ ШАБЛОНА/'));

Даты ты хочешь, чтобы тоже разные были у каждого блока?

Не в сети

#52 2010-04-06 00:13:09

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

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

Trashcka, да мне надо разные форматы даты, + у мня чтото нехочет шаблон хавать, есть разница чтобы укразывать путь полностю или так как ты написала, и в таком случае темплейты должны лежать в папках плагинов или в папке мой сайт.com/engine/plugins/lastnews/НАЗВАНИЕ ШАБЛОНА

Не в сети

#53 2010-04-06 03:05:10

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

legenda, по датам сразу не скажу, не было еще такой надобности, путь как угодно по идее можно указывать, шаблон без разницы где лежит.

Не в сети

#54 2010-07-27 00:33:28

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

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

А как обрезание короткой новости по кол-ву символов сделать?


I NGeneration CMS

Не в сети

#55 2010-07-27 08:40:05

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

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

$parse->truncateHTML(текст, необходимая_длина)

Не в сети

#56 2010-07-31 20:10:35

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

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

Wolverine, спасибо.

Но встал вопрос обработки ббтегов, попробовал присобачить из top_news, но ничего не вышло.

Вот собственно код:

      list ($short, $full) = explode('<!--more-->', $row['content'], 2);
        $tvars['vars'] = array(
        'link'        =>    newsGenerateLink($row),
        'views'        =>    $row['views'],
        'content'        =>    $parse->truncateHTML($short, 300)
        $short = $parse -> bbcodes($short);
        $short = $parse -> smilies($short);
        );

Помогите пожалуйста сделать обработку тегов.


I NGeneration CMS

Не в сети

#57 2010-07-31 23:30:15

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

Евгений, не проще ли топ-нювс плагин поставить?, чем мудохоться с ласт-нювсом, тем более там функционала больше и без допиливания.

Не в сети

#58 2010-07-31 23:51:03

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

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

Trashcka, а как же вывод именно последних новостей, а не популярных?


I NGeneration CMS

Не в сети

#59 2010-08-01 09:58:45

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

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

$parse в global объявить надо

Не в сети

#60 2010-08-01 14:01:38

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

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

Wolverine, я это уже сделал давно.


Вобщем для тех кто еще пользуется данным плагином, и хочет сделать обработку смайлов и тегов, а так же обрезание короткой новости, я выкладываю найденое решение:

<?php

// Protect against hack attempts
if (!defined('NGCMS')) die ('HAL');

add_act('index', 'plugin_lastnews');


function plugin_lastnews(){
	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_2'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1), $overrideParams = array('number' => 1, 'maxlength' => 85, 'overrideTemplatePath' => tpl_site . 'plugins/lastnews_2'));
	$template['vars']['plugin_lastnews_3'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1), $overrideParams = array('number' => 1, 'maxlength' => 85, 'overrideTemplatePath' => tpl_site . 'plugins/lastnews_3'));
	$template['vars']['plugin_lastnews_4'] = plugin_lastnewsGenerator($orderBy = '', $categories = array (1), $overrideParams = array('number' => 1, 'maxlength' => 85, 'overrideTemplatePath' => tpl_site . 'plugins/lastnews_4'));
}

//
// $orderby			- param for news order in show (SQL expression, NO SECURITY CHECK !!!)
// $categories		- a list of categories - array of elements, each element may be a category ID or an array of categories
// $overrideParams	- a list of overriding params
//   * number		- number of news to show
//   * offset		- news number offset
//   * dateformat	- manually set date format for display [default: "{day0}:{month0}:{year}"]
//	* {day}		- day number
//	* {day0}	- day number with leading zero
//	* {month}       - month number
//	* {month0}      - month number with leading zero
//	* {year}        - year (in 4 digit format)
//	* {year2}       - year (in 2 digit format)
//	* {month_s}     - month name, short
//	* {month_l}     - month name, long
//	* {hour}        - hour
//	* {hour0}       - hour with leading zero
//	* {minute0}     - minute with leading zero
//
//   * maxlength	- maximum length of news title (cut)
//   * overrideTemplatePath - path for template
function plugin_lastnewsGenerator($orderby = '', $categories = array(), $overrideParams = array()) {
	global $config, $mysql, $tpl, $lang, $langShortMonths, $langMonths, $parse, $PFILTERS;

	// Generate cache file name [ we should take into account SWITCHER plugin & calling parameters ]
	$cacheFileName = md5('lastnews'.$config['theme'].$config['default_lang'].var_export($categories, true).var_export($overrideParams, true)).'.txt';

	if (extra_get_param('lastnews','cache')) {
		$cacheData = cacheRetrieveFile($cacheFileName, extra_get_param('lastnews','cacheExpire'), 'lastnews');
		if ($cacheData != false) {
			// We got data from cache. Return it and stop
			return $cacheData;
		}
	}

	if (intval($overrideParams['number']) <= 1) {
		$number = 1;
	} else {
		$number = intval($overrideParams['number']);
	}
	$offset = isset($overrideParams['offset'])?intval($overrideParams['offset']):0;

	if (intval($overrideParams['maxlength']) <= 1) {
		$maxlength = 100;
	} else {
		$maxlength = intval($overrideParams['maxlength']);
	}

	// Determine paths for all template files
	if (isset($overrideParams['overrideTemplatePath']) && $overrideParams['overrideTemplatePath']) {
		$tpath = array('entries' => $overrideParams['overrideTemplatePath'], 'lastnews' => $overrideParams['overrideTemplatePath']);
	} else {
		$tpath = locatePluginTemplates(array('entries', 'lastnews'), 'lastnews', extra_get_param('lastnews', 'localsource'));
	}

	$filter = array ('approve = 1');

	//
	$catfilter = array();
	foreach ($categories as $cat) {
		if (is_array($cat)) {
			$catsubfilter = array();
			foreach ($cat as $subcat)
				$catsubfilter [] = "(catid regexp '[[:<:]](".$subcat.")[[:>:]]')";
			$catfilter [] = '('.join (' AND ', $catsubfilter).')';
		} else {
			$catfilter [] = "(catid regexp '[[:<:]](".$cat.")[[:>:]]')";
		}
	}
	if (count($catfilter))
		$filter [] = '('.join(' OR ', $catfilter).')';

	// Preparation for plugin integration [if needed]
	$callingParams = array();
	if (extra_get_param('lastnews', 'pcall')) {
		$callingParams['plugin'] = 'lastnews';
		switch (intval(extra_get_param('lastnews', 'pcall_mode'))) {
			case 1: $callingParams['style'] = 'short';
					break;
			case 2: $callingParams['style'] = 'full';
					break;
			default: $callingParams['style'] = 'export';
		}

		// Preload plugins
		load_extras('news:show');
		load_extras('news:show:one');
	}

	$result = '';
	foreach ($mysql->select("select * from ".prefix."_news where ".join(" AND ", $filter)." order by ".($orderby?$orderby:"id desc")." limit ".$offset.",".$number) as $row) {
		// Execute filters [ if requested ]
		if (extra_get_param('lastnews', 'pcall') && is_array($PFILTERS['news']))
				foreach ($PFILTERS['news'] as $k => $v) { $v->showNewsPre($row['id'], $row, $callingParams); }
		
      list ($short, $full) = explode('<!--more-->', $row['content'], 2);
	  if (extra_get_param('lastnews', 'maxshort')!=0) 	{ $short = $parse->truncateHTML($short, extra_get_param('lastnews', 'maxshort')); }
		if ($config['blocks_for_reg'])					{ $short = $parse -> userblocks($short); }
		if ($config['use_htmlformatter'])				{ $short = $parse -> htmlformatter($short); }
		if ($config['use_bbcodes'])						{ $short = $parse -> bbcodes($short); }
		if ($config['use_smilies'])	 					{ $short = $parse -> smilies($short); }
        $tvars['vars'] = array(
        'link'        =>    newsGenerateLink($row),
        'views'        =>    $row['views'],
        'content'        =>  $short,  
        );
		

		// Set formatted date
		$dformat = (isset($overrideParams['dateformat']))?$overrideParams['dateformat']:(extra_get_param('lastnews','dateformat')?extra_get_param('lastnews','dateformat'):'{day0}.{month0}.{year}');
		$tvars['vars']['date'] = str_replace(array('{day}', '{day0}', '{month}', '{month0}', '{year}', '{year2}', '{month_s}', '{month_l}', '{hour}', '{hour0}', '{minute0}'),
						array(date('j',$row['postdate']), date('d',$row['postdate']), date('n',$row['postdate']), date('m',$row['postdate']), date('y',$row['postdate']), date('Y',$row['postdate']), $langShortMonths[date('n',$row['postdate'])-1], $langMonths[date('n',$row['postdate'])-1], date('G', $row['postdate']), date('H', $row['postdate']), date('i', $row['postdate'])), $dformat);

		if (strlen($row['title']) > $maxlength) {
			$tvars['vars']['title'] = substr(secure_html($row['title']), 0, $maxlength)."...";
		} else {
			$tvars['vars']['title'] = secure_html($row['title']);
		}

		// Execute filters [ if requested ]
		if (extra_get_param('lastnews', 'pcall') && is_array($PFILTERS['news']))
			foreach ($PFILTERS['news'] as $k => $v) { $v->showNews($row['id'], $row, $tvars, $callingParams); }

		$tpl -> template('entries', $tpath['entries']);
		$tpl -> vars('entries', $tvars);
		$result .= $tpl -> show('entries');
	}

	unset($tvars);
	$tvars['vars'] = array ( 'tpl_url' => tpl_url, 'entries' => $result);

	$tpl -> template('lastnews', $tpath['lastnews']);
	$tpl -> vars('lastnews', $tvars);

	$output = $tpl -> show('lastnews');

	if (extra_get_param('lastnews','cache'))
		cacheStoreFile($cacheFileName, $output, 'lastnews');

	return $output;
}

I NGeneration CMS

Не в сети

#61 2010-08-01 14:37:49

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

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

Заполнение конфиг переменной trunc в config.php добавить надо, а то extra_get_param будет ругаться smile

Не в сети

#62 2010-08-01 18:55:18

Евгений
Модератор
Откуда Россия
Зарегистрирован: 2009-04-08
Сообщений: 1,014
Рейтинг :   38 
Сайт

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

Wolverine, поправил.


I NGeneration CMS

Не в сети

#63 2010-08-05 21:34:41

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

Евгений, кривой вариант слегка вышел, не во всех вариациях работает, это так к сведению.

А меня другой момент, как вывести только картинку из краткой?
Не предлагать доп-поля и т.п., надо именно в таком ключе.

Изменено Trashcka (2010-08-05 21:39:09)

Не в сети

#64 2010-08-14 16:45:57

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

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

Trashcka, уже полгода как вывожу картинки с краткой новости

если надо можеш тут почитать там есть вариант, он точно к нж подходит

Не в сети

#65 2010-08-14 16:58:32

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

legenda, не нашла варианта.

Не в сети

#66 2010-08-14 17:03:25

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

проще в top_news запрос поменять

Не в сети

#67 2010-08-14 17:54:24

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

infinity237, то, что оно проще, это понятно, но как?, это другое дело )

Не в сети

#68 2010-08-15 02:54:48

legenda
Участник
Откуда ua
Зарегистрирован: 2009-12-22
Сообщений: 2,160
Рейтинг :   39 

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

Trashcka, тоесть не нашла... там же есть плагин которій можно скачать, если очень надо могу на досуге написать где че поменять нуно, но вроде уже тут на форуме писал

Не в сети

#69 2010-08-15 03:36:25

infinity237
Модератор
Откуда Russia, Moscow
Зарегистрирован: 2008-11-09
Сообщений: 2,674
Рейтинг :   176 
Сайт

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

Trashcka пишет:

infinity237, то, что оно проще, это понятно, но как?, это другое дело )

Насколько я понимаю нужно в shortnews найти  а остальное обрезать? Если в shortnews больше чем 1 img, то выбрать первый, а остальное обрезать?
Если нужно именно так, то я вижу пока что только такой вариант решения:

1. Обработать shortnews, заменить bb теги на html.
2. Выбрать из shortnews все ссылки на изображения.
Например вот так:
preg_match('|<img src=(.*) >|Uis', $short, $output);
3. Вывести первый элемент массива ($output[1]).

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

P.S. чтобы из top_news превратить lastnews нужно фактически подставить в переменную $orderby = id

Изменено infinity237 (2010-08-15 03:46:11)

Не в сети

#70 2010-08-15 09:56:06

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

infinity237, попробую.

Не в сети

#71 2010-08-15 13:05:42

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

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

infinity237 пишет:

P.S. чтобы из top_news превратить lastnews нужно фактически подставить в переменную $orderby = id

Скорее postdate

Не в сети

#72 2010-08-19 15:56:38

Boris
Участник
Зарегистрирован: 2010-02-17
Сообщений: 43
Рейтинг :   

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

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

HELP!!! как это сделать - ну оч-чень нужно.

UPD
интересует вариант вывода через один плагин - реально это или нет?

Изменено Boris (2010-08-19 16:27:00)

Не в сети

#73 2010-08-19 16:13:57

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

Boris, и в чем нужна помощь? ))
Все, что ты хочешь все описано в этой теме.

Не в сети

#74 2010-08-19 16:27:18

Boris
Участник
Зарегистрирован: 2010-02-17
Сообщений: 43
Рейтинг :   

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

интересует вариант вывода через один плагин - реально это или нет?

Не в сети

#75 2010-08-19 16:38:09

Trashcka
Участник
Откуда КиевГрад
Зарегистрирован: 2008-12-04
Сообщений: 1,487
Рейтинг :   73 

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

Boris, что выводить через один плагин?, если по одной новости в каждом блоке, то реально, читать первый пост.

Изменено Trashcka (2010-08-19 16:38:50)

Не в сети

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

Работает на FluxBB