Вы не зашли.
vitaly, благодарю!
Wolverine, поправил.
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;
}
Trashcka, а как же вывод именно последних новостей, а не популярных?
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);
);
Помогите пожалуйста сделать обработку тегов.
vl, это креатив.
Точнее арт-хаус!
Да, кстати, насчет 3) пункта у Trashcka, я то же с этим столкнулся, можно ли это как то исправить?
Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/galakt/public_html/engine/plugins/voting/voting.php on line 82
Вот такая вот ошибка вылетает при использовании плагина voting, как быть, в чем может скрываться проблема?
Подскажите пожалуйста.
Версия NG: Changeset 619
Версия плагина: 0.10
А как обрезание короткой новости по кол-ву символов сделать?
infinity237, багодарствую.
Добрый день, думаю что не у меня одного такая проблема, есть ли такие же невезунчики? По определенным данным, хостинг в дауне уже третьи сутки, если кто нибудь что нибудь знает, то просьба поделиться информацией.
Заранее спасибо.
С уважением Евгений.
EsCaPeR, было бы разумным попросить помочь Trashcka, она уже занималась данным вопросом. Как мне кажеться, данный редактор будет очень хорошим вариантом для админки, особенно если его немного допилить под свои нужды, тем более разработчик не закинул развитие сего редактора, так что стоит обдумать этот вариант.
ИМХО: Наверное некоторые не согласятся по поводу админки, объясняется все просто, это стильно, это минималистично, это довольно функционально, единственный минус, использование jQuery.
legenda, напиши ему на мыло.
EsCaPeR, прикольный редактор, я был бы не против его использования.
Поадаптировать старые шаблоны я то же готов.
Luca, по нику бан уже есть, точнее блокировка. На страничке с юзерами, внизу в выпадающем списке есть строка: "Заблокировать пользователя".
d7p4x, с конфигуратором? Все подробности в ICQ, или лучше даже в Jabber`e, заходи, обсудим.
d7p4x, делает LinMas, и я в виде заказчика,дизайнера, и отдела по работе с новыми идеями. Я за программную часть дела не отвечаю, поэтому точную дату назвать не могу, но думаю что через пару недель уже будет на что посмотреть.
Wolverine, я имел ввиду все сделаное с нормальным конфигуратором.
Frankie, скоро будет плагин с выводом данных из Google Analytics, подожди. Пример работы плагина: http://habrahabr.ru/info/stats/
Подожди немного.
Готовые шаблоны находящиеся в свободном обращении:
Default_026
Принимаются просьбы по адаптации одностраничных CSS шаблонов. Работа выполняется на бесплатной и платной основах.
Адаптированы:
1. madbadjack, шаблон 026. Готово
2. Нубасик, шаблон RockUP Готово
Уважаемые пользователи, запросы на адаптацию составляются только по этой форме.
Исполнители:
1. panoptus
Отправить ЛС | Послать e-mail | Профиль | ICQ: | Условие: всё в паблик, исключение личные шаблоны | *
2. Евгений
Отправить ЛС | Послать e-mail | Профиль | ICQ: 370-079-103 | * *
3. LinMas
Отправить ЛС | Послать e-mail | Профиль | ICQ: 409-366-368 | * *
(* - бесплатные адаптации * - платные адаптации)
Для того что бы ваш шаблон адаптировали как можно скорее и без лишних запинок и вопросов, убедительная просьба пользоваться данной формой:
1. Название шаблона: (Template_1) *
2. Демо: (http://demo.ru/)
3. Запрос: (Платный, Бесплатный) *
4. Скриншоты: (желательно на Photoload) *
5. Ссылка на шаблон: (желательно в приложении к сообщению, или же на ifolder`e) *
(пункты помеченные "*" являются обязательными, запросы составленные не по форме будут удалятся без предупреждения)
(запросы на платную адаптацию можете писать непосредственно в ICQ, или же в Личные сообщения нужным вам исполнителям)
Все, удачных адаптаций!
Принимаются просьбы по адаптации WordPress шаблонов. Работа выполняется на бесплатной и платной основах.
Адаптированы:
1. Пока пусто
Уважаемые пользователи, запросы на адаптацию составляются только по этой форме.
Исполнители:
1. infinity237
Отправить ЛС | Послать e-mail | Профиль | ICQ: 471-477-2 | Условие: все идет потом в паблик | *
2. LinMas
Отправить ЛС | Послать e-mail | Профиль | ICQ: 409-366-368 | * *
(* - бесплатные адаптации * - платные адаптации)
Предлагаю сделать небольшой каталог с сайтами предоставляющими качественные CSS шаблоны, данный каталог будет полезен при выборе шаблона для запроса на адаптацию, что бы не плодить кучи стремных переделок для uCoz и DLE.
1. http://www.freecsstemplates.org/
2. http://opensourcetemplates.org/
3. http://www.free-css-templates.com/
4. http://www.solucija.com/templates/free
5. http://csstemplatesfree.net/
6. http://www.free-templates.ru/
7. http://csscreme.com/freecsstemplates/
8. http://www.getfreewebdesigns.com/
9. http://www.opendesigns.org/
10. http://www.csstemplates.net/free-css-templates.php
Оставляйте ваши предложения в комментариях.