Похожие материалы
| |
| Дата: Среда, 22.06.2011, 19:21 | Сообщение # 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<?endif?><?endif?>, data: new String() };
$.post('/$MODULE_ID$', { query: related.title, a: related.a }, function(data){ $('.eTitle a', 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 раз.
Теперь насчет некоторых параметров скрипта.
related.title - название материала, обычная переменная, например в модуле «Новости сайта» это $ENTRY_NAME$ related.number - максимальное количество выводимых записей related.form - форма вывода материалов, где можно использовать тэги: {ID} - порядковый номер выводимой записи {URL} - ссылка на материал {TITLE[, num]} - название материала, через запятую можно указать максимальное количество символов, после которых будет поставлено многоточие, а можно вообще не указывать запятую с числом (например, {TITLE} - выведет все, {TITLE, 5} - обрежет по первые 5 символов).
|
|
| |
| Дата: Пятница, 24.06.2011, 05:24 | Сообщение # 2 |
| Объясни как устанавливать по подробнее
|
|
| |
| Дата: Пятница, 24.06.2011, 09:15 | Сообщение # 3 |
| [MontanoO], Описание нормальное..
Для начала подключаем в любое место скрипт: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 символов)
UPD1: Для лучшей релевантности исправлено значение параметра запроса. UPD2: И еще кое-что добавлено.
|
|
| |
|