Вы не зашли.
Спасибо за информацию, но это не подходит.
Мне нужно, чтобы сам движок или скрипт отдельный (не javascript) формировал результаты поиска, с подсветкой.
Сокол, введи в Яндекс: "подсветка текста на jquery" там разные варианты, подбери нужный тебе, прикрутить к движку не составит проблем
Всё дело в том, что мне нужна именно на хтмл подсветка (для ПС видимая): <b>, <strong>.
Третий вариант.
Возможно ли сделать вывод результатов поиска с подсветкой поисковых слов?
Возможно ли доработать поиск функцией "по заголовкам новостей?
Если движок не справится, может можно прикрутить отдельный поисковик?
Ищу разработчика. Кто сделает - оплачу вмр.
Сокол, для старой версии можно использовать старый top_news
Спасибо!
Я не знал, что топ ньюс имеет такую функцию. В описании плагина это не изложено, а зря...
Вопрос решён.
legenda спасибо за ответ конечно! Но это ж надо обновляться до svn 1114. А эта версия тестовая и в ветке обсуждения ещё много багов описывают...
Да и неизвестно - будут ли работать при таком обновлении все задействованные плагины?
У меня сайт уже под трафиком. Рисковать не могу. Нужно решение под версию 9.3 фикс880.
Подскажите, какая строчка кода отвечает за выбор категории, из которой выводятся новости?
if (!defined('NGCMS')) die ('Galaxy in danger');
define('PLUGIN', 'same_category_news');
class scnNewsfilter extends NewsFilter {
function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {
global $tpl, $catz, $mysql, $parse, $config, $PFILTERS;
$count = pluginGetVariable(PLUGIN, 'count');
if ((intval($count) < 1)||(intval($count) > 20))
$count = 1;
for ($i = 1; $i <= $count; $i++) {
$view_full = pluginGetVariable(PLUGIN, $i.'_view_full');
$view_short = pluginGetVariable(PLUGIN, $i.'_view_short');
if(($mode['style'] == 'full' && $view_full) || ($mode['style'] == 'short' && $view_short)) {
if (pluginGetVariable(PLUGIN, $i.'_categories') && (pluginGetVariable(PLUGIN, $i.'_categories') != $SQLnews['catid'])){
$tvars['vars'][PLUGIN.'_'.$i] = '';
continue;
}
unset($catfilter);
unset($filter);
$categories = explode(',', $SQLnews['catid']);
foreach ($categories as $cat) {
$catfilter [] = "(catid regexp '[[:<:]](".trim($cat).")[[:>:]]')";
}
if (count($catfilter))
$filter [] = '('.join(' OR ', $catfilter).')';
$number = pluginGetVariable(PLUGIN, $i.'_number');
if (!$number) $number = 5;
switch (pluginGetVariable(PLUGIN , $i.'_orderby')) {
case 'desc': $orderby = 'postdate DESC'; break;
case 'asc': $orderby = 'postdate ASC'; break;
default: $orderby = 'rand()';
}
# determine paths for all template files
if (intval(pluginGetVariable(PLUGIN, 'localsource')) == 1 || (intval(pluginGetVariable(PLUGIN, 'localsource')) == 0 && !is_dir(tpl_site.'plugins/'.PLUGIN.'/'.PLUGIN.'_'.$i))) $overrideTemplatePath = root.'/plugins/'.PLUGIN.'/tpl/'.PLUGIN.'_'.$i;
else $overrideTemplatePath = tpl_site.'plugins/'.PLUGIN.'/'.PLUGIN.'_'.$i;
$tpath = array('template' => $overrideTemplatePath);
# SQL query
if(pluginGetVariable(PLUGIN, $i.'_short_news'))
$sql = "SELECT * FROM ".prefix."_news WHERE id !=".$SQLnews['id']." AND approve=1 AND ".join(" AND ", $filter)." ORDER BY ".$orderby." LIMIT 0,".$number;
else
$sql = "SELECT id, postdate, author, title, views, com, alt_name, catid". (getPluginStatusActive('xfields') ? ", xfields " : "") ." FROM ".prefix."_news WHERE id !=".$SQLnews['id']." AND approve=1 AND ".join(" AND ", $filter)." ORDER BY ".$orderby." LIMIT 0,".$number;
foreach($mysql->select($sql) as $row) {
$short_news = '';
if(pluginGetVariable(PLUGIN, $i.'_short_news')){
$news_length = intval(pluginGetVariable(PLUGIN, 'news_length'));
if (!$news_length) $news_length = 100;
list ($short_news, $full_news) = explode('<!--more-->', $row['content'], 2);
if ($config['blocks_for_reg']) $short_news = $parse -> userblocks($short_news);
if ($config['use_htmlformatter']) $short_news = $parse -> htmlformatter($short_news);
if ($config['use_bbcodes']) $short_news = $parse -> bbcodes($short_news);
if ($config['use_smilies']) $short_news = $parse -> smilies($short_news);
if (strlen($short_news) > $newslength) $short_news = $parse -> truncateHTML($short_news, $news_length);
if (pluginGetVariable(PLUGIN, $i.'_img')) $short_news = preg_replace('/<img.*?>/', '', $short_news);
}
$pvars['vars'] = array(
"link" => newsGenerateLink($row),
"title" => $row['title'],
"date" => LangDate(timestamp, $row['postdate']),
"author" => $row['author'],
"com" => $row['com'],
"views" => $row['views'],
"short_news"=> $short_news
);
# execute filters [ if requested ]
if (pluginGetVariable(PLUGIN, $i.'_pcall') && getPluginStatusActive('xfields')){
require_once(root.'/plugins/xfields/xfields.php');
if (($xf = xf_configLoad())){
$fields = xf_decode($row['xfields']);
if (is_array($xf['news']))
foreach ($xf['news'] as $k => $v) {
$kp = preg_quote($k, "'");
$xfk = isset($fields[$k])?$fields[$k]:'';
$pvars['regx']["'\[xfield_".$kp."\](.*?)\[/xfield_".$kp."\]'is"] = ($xfk == "")?"":"$1";
$pvars['vars']['[xvalue_'.$k.']'] = ($v['type'] == 'textarea')?'<br/>'.(str_replace("\n","<br/>\n",$xfk).(strlen($xfk)?'<br/>':'')):$xfk;
}
}
}
$tpl -> template('template', $tpath['template']);
$tpl -> vars('template', $pvars);
$output .= $tpl -> show('template');
}
$tvars['vars'][PLUGIN.'_'.$i] = $output;
$output = '';
} else $tvars['vars'][PLUGIN.'_'.$i] = '';
}
return 0;
}
}
register_filter('news', PLUGIN, new scnNewsFilter);
Как бэ не нашёл ответа )
Задача:
в полной новости дополнительно вывести блок коротких новостей из указанной одной категории, типа блока ластньюс, только выводить надо в случайном порядке.
same_category_news не подходит, так как выводит новости из этой же категории.
Поиск по форуму прошарил.
Есть варианты?
Если невозможно, то хотя бы как выводить блок из нескольких случайных фраз, которые хранятся в текстовом файле (фраз больше тысячи)?
Или выводить фразы из БД допустим?
Я так понимаю, что php файл таким образом не заинклюдишь в шаблон?
Алексей видимо здесь бывает редко ...
У кого тогда спросить???
Нужно в таблице ng_news изменить тип поля content с text на mediumtest
Сделал. Спасибо!
Спасибо! Почитал.
Возникло два новых вопроса:
1. если текст больше 64К - движок его режет?
2. как публиковать большие тексты?
Сокол, уже не раз тема на форуме поднималась и даже кто то инструкцию в картинках делал, поиск твой друг
Воспользовался поиском несколько раз. Ответ: "По вашему запросу ничего не найдено."
Может фразу правильную подскажешь? )
Сокол, подозреваю проблема простая - у тебя на сайте используются слишком длинные новости (видимо >64k на новость).
Виталий, а какой максимальный размер текста возможно вписать в поле новости в БД?
Ещё вопрос: возможно ли в блоке похожей новости выводить не краткое её содержание, а например, мета описание?
Вопрос Алексею по плагину:
я выставил "Ограничение длины короткой новости" в 500 знаков, а выводится не больше 250. В чём может быть дело?
В текстах есть пустые строки, но их не настолько много.
А чем тот де phpmyadmin не устраивает?
Я с ним бекапы делаю без проблем с 10к+ новостей
Я не в курсе про такое просто.
Я надеялся только на стандартный бэкап из админки. На других сайтах это работало всегда. А вот сегодня косяк случился в БД и как бэкап сделать - ума не приложу...
Спасибо!
Скачал из ночных сборок - заработало.
Не понял только момент
Теперь плагин при генерации карты сайта не будет полностью загружать всю таблицу новостей
- новости в карте все будут отображаться?
Привет!
Выручите, кто в теме:
попробовал сделать бэкап БД на 2000 новостей из админки, но мне выдаются заголовки типа такого:
NGCMS Runtime error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 3161 bytes)
в хтэксис лимит памяти увеличил до 256М. не помогло.
Где в движке вообще ограничение на память увеличить (если оно есть)?
Спасибо!
Вариантов нет???
1500 новостей. после добавления всех новостей я запустил плагин.
может файлы какие некорректно закачались на хост?
Я так понимаю, что где-то установлен лимит на память, и из-за этого скрипт не выполняется до конца?
<html>
<head>
<title>NGCMS Runtime error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 65536 bytes)</title>
<style type="text/css">
body {
font: 1em Georgia,"Times New Roman",serif;
}
.dmsg {
border: 1px #EEEEEE solid;
padding: 10px;
background-color: yellow;
}
.dtrace TBODY TD {
padding: 3px;
/*border: 1px #EEEEEE solid;*/
background-color: #EEEEEE;
}
.dtrace THEAD TD {
padding: 3px;
background-color: #EEEEEE;
font-weight: bold;
}
</style>
</head>
<body>
<div id="hdrSpanItem"></div>
<script language="Javascript">
{
var i = 0;
var cnt = 0;
while (i < document.body.childNodes.length) {
var node = document.body.childNodes[i];
if (node.tagName == 'DIV') {
document.body.removeChild(document.body.childNodes[i]);
break;
}
if ((node.tagName == 'TITLE')||(node.tagName == 'STYLE')) {
i++;
} else {
document.body.removeChild(document.body.childNodes[i]);
}
}
}
</script>
<h1>NGCMS Runtime error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 65536 bytes)</h1>
<div class='dmsg'>[ 1]: Allowed memory size of 67108864 bytes exhausted (tried to allocate 65536 bytes)</div><br/><h2>Stack trace</h2><table class='dtrace'><thead><td>Line #</td><td>File name</td></tr></thead><tbody><tr><td>58</td><td>****/public_html/engine/includes/classes/mysql.class.php</td></tr></tbody></table>
Привет!
Подскажите, откуда возникла такая ошибка:
Ошибка синтаксического анализа XML: некорректно
Адрес: ************.ru/plugin/gsmg/
Строка 32, символ 12: while (i < document.body.childNodes.length) {
------------------^
первый раз такая фигня за пять лет использования движка...
Переписал шаблон, и потом решил вставить функцию удаления. Вставил в шаблон полной новости вот эту конструкцию
[del-news]Удалить[/del-news]
.
Но на странице это почему-то не отображается.
Где копать???
На ДЛЕ есть такая функция. Там похожесть ищется в тексте и заголовке, выводится при первом просмотре страницы и сразу кэшируется.
Хотелось бы такое сделать на NG.
Нужно что-то типа плагина "похожие новости", только чтобы использовался поиск по тексту и заголовку короткой новости.
Сами ключевые слова берутся из Заголовка новости, под которой и выводятся результаты поиска.
Вроде разжувал подробнее...