Небольшой хак для плагина simular (похожие новости),поможет вывести блок в короткую новость,сразу ...
Небольшой хак для плагина simular (похожие новости),поможет вывести блок в короткую новость,сразу предупреждаю о нагрузке на сервер.
Итак приступим.
1. Идем в директорию /engine/plugins/similar/ и открываем файл similar.php,и меняем
Код:
if ($mode['style'] == 'full') {
на
Код:
if (($mode['style'] == 'full') || ($mode['style'] == 'short')) {
Вот и все,добавляем в файл news.short.tpl переменную плагина
Код:
{% if pluginIsActive('similar') %}{{ plugin_similar_tags }}{% endif %}
Через твиг можно задать разное оформление блока для короткой и полной новости пример файл similar_entry.tpl
Код:
[TWIG]
{% if isHandler('news:by.category|news:main') %}
<section class="is-feature">
<div style="width:270px;height: 270px;"><center>
<a class="image image-full" href="{url}">
{% if (p.xfields.fotos.count < 1) %}
<img src="{{ tpl_url }}/images/img-none.jpg" width="100%" />
{% else %}
<img src="{{ p.xfields.fotos.entries[0].url }}" width="100%" />
{% endif %}</a></center></div>
<h3><a href="{url}">{title}</a></h3>
</section>
{% else %}
<div class="4u">
<section class="is-feature">
<div style="width:270px;height: 270px;"><center>
<a class="image image-full" href="{url}">
{% if (p.xfields.fotos.count < 1) %}
<img src="{{ tpl_url }}/images/img-none.jpg" width="100%" />
{% else %}
<img src="{{ p.xfields.fotos.entries[0].url }}" width="100%" />
{% endif %}</a></center></div>
<h3><a href="{url}">{title}</a></h3>
</section></div>
{% endif %}
[/TWIG]
Еще небольшой хак в дополнение,вывод разного количества похожих новостей для короткой и полной новости
опять идем в директорию /engine/plugins/similar/ и открываем файл similar.php и меняем там все на этот код
Код:
<?php
// Protect against hack attempts
if (!defined('NGCMS')) die ('HAL');
// Preload plugin tags
load_extras('core', 'tags');
include_once("inc/similar.php");
class SimilarNewsfilter extends NewsFilter {
function addNewsNotify(&$tvars, $SQL, $newsid) {
global $mysql;
$scount = pluginGetVariable('similar', 'count');
$scount = (($scount < 1)||($scount > 20))?5:$scount;
// Make reset for all tags for new news
plugin_similar_reset($newsid);
return 1;
}
// Make changes in DB after EditNews was successfully executed
function editNewsNotify($newsID, $SQLnews, &$SQLnew, &$tvars) {
global $mysql;
if (!$SQLnews['approve'])
return 1;
// Reset linked news
plugin_similar_resetLinked($newsID);
// Reset news with the same tags [ AFTER actual edit - new tags ]
plugin_similar_reset($newsID);
return 1;
}
// Add {plugin_similar} variable into news
function showNews($newsID, $SQLnews, &$tvars, $mode = array()) {
global $mysql, $tpl, $PFILTERS;
$tpath = locatePluginTemplates(array('similar', 'similar_entry'), 'similar', pluginGetVariable('similar', 'localsource'));
// Show similar news only in full mode
if (($mode['style'] == 'full') || ($mode['style'] == 'short')) {
$scount = pluginGetVariable('similar', 'count');
$scount = (($scount < 1)||($scount > 20))?5:$scount;
$similars = plugin_similar_recover($newsID, $scount);
if($mode['style'] == 'full') {
$similars = plugin_similar_recover($newsID, 6);
}
elseif($mode['style'] == 'short') {
$similars = plugin_similar_recover($newsID, 3);
}
// Locate similar news
// Accroding to pcall parameter we should decide if full data export from news should be done
$callingParams = array();
// Filter for dimensions
$filter = '';
if (!($similar_enabled = intval(pluginGetVariable('similar', 'similar_enabled'))) || !($samecat_enabled=intval(pluginGetVariable('similar', 'samecat_enabled')))) {
if ($similar_enabled) {
$filter = 'and (dimension = 0)';
} else if ($samecat_enabled) {
$filter = 'and (dimension = 1)';
} else
$filter = 'and 0';
}
$query = "select n.id, n.catid, n.alt_name, n.postdate, si.id as si_id, si.dimension as si_dimension, si.newsID as si_newsID, si.refNewsID as si_refNewsID, si.refNewsQuantaty as si_refNewsQuantaty, si.refNewsTitle as si_refNewsTitle, si.refNewsDate as si_refNewsDate from ".prefix."_similar_index si left join ".prefix."_news n on n.id = si.refNewsID where si.newsID = ". db_squote($newsID).' '.($filter!=''?$filter.' ':'')."order by si.refNewsQuantaty desc";
if (pluginGetVariable('similar', 'pcall')) {
$query = "select n.*, si.id as si_id, si.dimension as si_dimension, si.newsID as si_newsID, si.refNewsID as si_refNewsID, si.refNewsQuantaty as si_refNewsQuantaty, si.refNewsTitle as si_refNewsTitle, si.refNewsDate as si_refNewsDate from ".prefix."_similar_index si left join ".prefix."_news n on n.id = si.refNewsID where si.newsID = ". db_squote($newsID).' '.($filter!=''?$filter.' ':'')."order by si.refNewsQuantaty desc";
$callingParams['plugin'] = 'lastnews';
switch (intval(pluginGetVariable('similar', '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');
}
if (($similars == 2) && count($similarRows = $mysql->select($query))) {
// Array for dimensions of data [ similar / same category ]
$result = array('', '');
foreach ($similarRows as $similar) {
$txvars = array ();
// Execute filters [ if requested ]
if (pluginGetVariable('similar', 'pcall') && is_array($PFILTERS['news']))
foreach ($PFILTERS['news'] as $k => $v) { if ($k != 'similar') $v->showNewsPre($similar['id'], $similar, $callingParams); }
// Set formatted date
$dformat = pluginGetVariable('similar','dateformat')?pluginGetVariable('similar','dateformat'):'{day0}.{month0}.{year}';
$txvars['vars']['date'] = str_replace(array('{day}', '{day0}', '{month}', '{month0}', '{year}', '{year2}', '{month_s}', '{month_l}'),
array(date('j',$similar['si_refNewsDate']), date('d',$similar['si_refNewsDate']), date('n',$similar['si_refNewsDate']), date('m',$similar['si_refNewsDate']), date('y',$similar['si_refNewsDate']), date('Y',$similar['si_refNewsDate']), $langShortMonths[date('n',$similar['si_refNewsDate'])-1], $langMonths[date('n',$similar['si_refNewsDate'])-1]), $dformat);
$txvars['vars']['title'] = $similar['si_refNewsTitle'];
$txvars['vars']['url'] = newsGenerateLink($similar);
// Execute filters [ if requested ]
if (pluginGetVariable('similar', 'pcall') && is_array($PFILTERS['news']))
foreach ($PFILTERS['news'] as $k => $v) { if ($k != 'similar') $v->showNews($similar['id'], $similar, $txvars, $callingParams); }
$tpl -> template('similar_entry', $tpath['similar_entry']);
$tpl -> vars('similar_entry', $txvars);
$result[$similar['si_dimension']] .= $tpl -> show('similar_entry');
}
$tpl -> template('similar', $tpath['similar']);
$tpl -> vars('similar', array ( 'vars' => array ('entries' => $result[0])));
$tvars['vars']['plugin_similar_tags'] = $tpl -> show('similar');
} else {
$tvars['vars']['plugin_similar_tags'] = '';
$tvars['vars']['plugin_similar_categ'] = '';
}
}
return 1;
}
// Mass news modify
function massModifyNewsNotify($idList, $setValue, $currentData) {
// We are interested only in 'approve' field modification
if (!isset($setValue['approve']))
return 1;
// Turn on - call RESET()
if (!$setValue['approve']) {
plugin_similar_reset($idList);
} else {
// Turn off - call renew for all linked news
plugin_similar_resetLinked($idList);
}
return 1;
}
function deleteNews($newsID, $SQLnews) {
global $mysql;
plugin_similar_resetLinked($newsID);
// Delete similarity info
$mysql->query("delete from ".prefix."_similar_index where newsID = ".intval($newsID));
}
}
// Activate plugin ONLY if plugin tags already activated
if (getPluginStatusActive('tags')) {
register_filter('news','similar', new SimilarNewsFilter);
}
теперь изменять количество вывода похожих новостей из админки не получится,если надо изменить количество то ищем этот код
Код:
if($mode['style'] == 'full') {
$similars = plugin_similar_recover($newsID, 6);
}
elseif($mode['style'] == 'short') {
$similars = plugin_similar_recover($newsID, 3);
}
и меняем 6 и 3 на количество нужное вам
ну теперь все
... статей по теме
, новых инструментов и ...
12 декабря в 10:00 (МСК) мы приглашаем всех неравнодушных к современному цифровому и ...
12 декабря в 10:00 (МСК) мы приглашаем всех неравнодушных к современному цифровому и интерактивному дизайну присоединиться к онлайн-трансляции второго Design Camp.

В этом году Microsoft и Британская высшая школа дизайна готовят для вас еще больше докладов, экспертов, практики и общения. Мы сконцентрируемся вокруг четырех основных блоков: дизайне приложений, игр и сайтов, графике, анимации и инфографике, дизайн-мышлении и UX, а также дизайне для современных устройств.
Плеер трансляции под катом, подключайтесь!
Читать дальше →
Вот выставляю пагинацию , красивая стильная,кому надо берем.
1.Скачиваем архив ,распаковываем ...
Вот выставляю пагинацию , красивая стильная,кому надо берем.
1.Скачиваем архив ,распаковываем и заливаем картинку в папку images вашего шаблона.
2.Открываем файл variables.ini и заменяем содержимое раздела[navigation] на этот код:
Код:
[navigation]
prevlink = " <a id="prev" href='%link%'>%page%</a> "
nextlink = " <a id="next" href='%link%'>%page%</a> "
current_page = " <b>%page%</b> "
link_page = " <a href='%link%'>%page%</a> "
dots = " <span>...</span> "
3.В стили добавляем :
Код:
/**********************pagination******************************/
#pagination{margin-bottom:-50px;font-size:13px;font-weight:bold;line-height:37px;}
#pagination a,#pagination b{margin-right:2px;width:37px;height:37px;text-align:center;display:inline-block;}
#pagination a{background:url(../images/bg-pagination.png) 0 0 no-repeat;}
#pagination a:hover{color:#fff;background:url(../images/bg-pagination.png) 0 -37px no-repeat;}
#pagination b{color:#fff;background:url(../images/bg-pagination.png) 0 -74px no-repeat;}
#pagination span{margin-right:2px;}
#pagination #next{background:url(../images/bg-pagination.png) 0 -111px no-repeat;}
#pagination #next:hover{background:url(../images/bg-pagination.png) 0 -148px no-repeat;}
#pagination #prev{background:url(../images/bg-pagination.png) 0 -185px no-repeat;}
#pagination #prev:hover{background:url(../images/bg-pagination.png) 0 -222px no-repeat;}
4.В файле pages.tpl заменить код на этот:
Код:
<div id="pagination">
[prev-link] [/prev-link]{pages}[next-link] [/next-link]
</div>
вот и все
... жалоб пользователей на
нового Xbox и ...