• Страница 1 из 1
  • 1
Похожие новости по названию
ppsha Дата: Воскресенье, 05.06.2011, 00:08 | Сообщение # 1




Скрипт выводит список похожих новостей, сравнивая их не по тегам, а по названию.

Для начала подключаем в любое место скрипт:

Code
<script type="text/javascript">   
   $(function(){   
   related = {   
   title: '$ENTRY_NAME$', // название материала   
   number: 10, // количество материалов для вывода   
   push: $('#related'), // куда выводить   
   form: '<div class="related" id="r{ID}"><a href="{URL}" title="{TITLE}">{TITLE, 20}</a></div>', // форма вывода   
   a: <?if($MODULE_ID$ = 'stuff' || $MODULE_ID$ = 'dir' || $MODULE_ID$ = 'publ')?>2<?else?><?if($MODULE_ID$ = 'news')?>14<?else>2<?endif?><?endif?>,   
   data: new String()   
   };   

   $.post('/$MODULE_ID$', {   
   query: related.title.toLowerCase().replace(/([0-9\.\,]+)/g, ' '),   
   a: related.a   
   }, function(data){   
   $('.eTitleR', data).each(function(id){   
   if(id < related.number){   
   related.html = $(this).html();   
   if(location.href.indexOf($(this).attr('href')) == -1) related.data += related.form.replace(/\{ID\}/g, id).replace(/\{URL\}/g, $(this).attr('href')).replace(/\{TITLE(, ([0-9]+))?\}/g, function(a, b, c) {if(c) return (related.html.length > c ? related.html.substr(0, c) + '...' : related.html); else return related.html;});   
   };   
   });   
   if(related.data != '') related.push.html(related.data).prev('span').show();   
   });   
   });   
   </script>


При необходимости, можно что-нибудь подправить. Дальше в нужном месте ставим:

Code
<span style="display:none;">Похожие материалы:</span>   
<div id="related"></div>


Элемент span с надписью «Похожие материалы» изначально должен быть скрытым, чтобы не переключать его видимость 100500 раз.

Теперь в нужном модуле на странице «Вид материалов» в самое начало ставим:

Code
<a style="display:none;" class="eTitleR" href="$ENTRY_URL$">$TITLE$</a>


Теперь насчет некоторых параметров скрипта.

related.title - название материала, обычная переменная, например в модуле «Новости сайта» это $ENTRY_NAME$
related.number - максимальное количество выводимых записей
related.form - форма вывода материалов, где можно использовать тэги:
{ID} - порядковый номер выводимой записи
{URL} - ссылка на материал
{TITLE[, num]} - название материала, через запятую можно указать максимальное количество символов, после которых будет поставлено многоточие, а можно вообще не указывать запятую с числом (например, {TITLE} - выведет все, {TITLE, 5} - обрежет по первые 5 символов)



= )
  • Страница 1 из 1
  • 1
Поиск:

Лучшие пользователи
Пользователь Сообщений Группа
QuSpell 473 Проверенные
ppsha 446 Проверенные
skula 103 Проверенные
WinZeos 78 Проверенные
realhacking 59 Пользователи
Sezy 38 Проверенные
WinneR 35 Проверенные
GuideLess 19 Проверенные
JaYFuNk 19 Пользователи
ZUKO 11 Пользователи

Copyright © Форум поддержки по системе uCoz
Бесплатная адаптация шаблонов с CMS под uCoz
Бесплатные скрипты для uCoz
Бесплатные, готовые шаблоны от WinZeos
Уроки рисования и вёрстки макетов
Хостинг от uCoz