Вы не вошли.
$template['vars']['plugin_lastnews_stati'] = plugin_lastnewsGenerator($orderBy = 'postdate desc', $categories = array (НОМЕРА КАТЕГОРИЙ ЧЕРЕЗ ЗАПЯТУЮ), $overrideParams = array('number' => СКОЛЬКО ВЫВОДИТЬ ПОСЛЕДНИХ НОВОСТЕЙ - ЧИСЛО, 'overrideTemplatePath' => tpl_site . '/plugins/lastnews/НАЗВАНИЕ ШАБЛОНА/'));
Даты ты хочешь, чтобы тоже разные были у каждого блока?
Вне форума
Trashcka, да мне надо разные форматы даты, + у мня чтото нехочет шаблон хавать, есть разница чтобы укразывать путь полностю или так как ты написала, и в таком случае темплейты должны лежать в папках плагинов или в папке мой сайт.com/engine/plugins/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
Вне форума
Вне форума
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
Вне форума
Евгений, кривой вариант слегка вышел, не во всех вариациях работает, это так к сведению.
А меня другой момент, как вывести только картинку из краткой?
Не предлагать доп-поля и т.п., надо именно в таком ключе.
Отредактировано Trashcka (2010-08-05 20:39:09)
Вне форума
проще в top_news запрос поменять
Вне форума
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 02:46:11)
Вне форума
P.S. чтобы из top_news превратить lastnews нужно фактически подставить в переменную $orderby = id
Скорее postdate
Вне форума
Нужна помощь с плагином lastnews, точнее с выводом коротких новостей.
задаю блок, делю его на 2 колонки (для 2 последних новостей в одной категории), нужно в каждую колонку выводить по одной короткой новости с ограничением по количеству знаков и выводом заголовка каждой новости.
HELP!!! как это сделать - ну оч-чень нужно.
UPD
интересует вариант вывода через один плагин - реально это или нет?
Отредактировано Boris (2010-08-19 15:27:00)
Вне форума
Boris, что выводить через один плагин?, если по одной новости в каждом блоке, то реально, читать первый пост.
Отредактировано Trashcka (2010-08-19 15:38:50)
Вне форума
[ Сгенерировано за 0.017 сек, 7 запросов выполнено - Использовано памяти: 631.14 Кбайт (Пик: 684.14 Кбайт) ]