Плагин «Похожие топики». Помогите в оформлении!
11
Вообщем взял новую версию плагина Similar topics in popup и вывел его содержимое под топиком (надеюсь PSNet не в обиде). Но я не верстальщик, поэтому прошу заинтересованных помочь в оформлении. Для «Street Spirit» я сделал небольшой набросок:

Форкнуть на GitHub
Просто скачать

Форкнуть на GitHub
Просто скачать
Плагин «Похожие записи в попап окне (Similar topics in popup)», Версия 1.0.3
4Плагин обновлен к 1.0.3 версии, где улучшен/пофикшен алгоритм появления попап окна, теперь оно точно показывается в нужный момент (раньше в некоторых случаях была задержка).
Этот плагин в каталоге.
- +2
- 24 февраля 2012, 02:29
- PSNet
- Оставить комментарий
Плагин «Похожие записи в попап окне (Similar topics in popup)»
10
Когда топик будет прокручен (просмотрен) до конца — справа покажется окошко с похожими записями (будет выбрано на основе совпадений тегов).
В конфиге можно задать количество топиков для показа, сортировку.

Плагин доступен в каталоге.
P.S. Плагин использует часть кода от плагина «Related topics» от stfalcon (http://livestreetcms.com/addons/view/55/)
похожие темы через sphinx
26
Дело, было как обычно вечером :) И лежало на мне уже давно задание — добавить «похожие темы» к проекту, но ввиду приоритетов откладывалось оно на потом постоянно. Полазил по LS, нашел уже готовый бесплатный модуль:
Но незадача :( нужен fulltext для InnoDB… уже хотел похерить задание и отложить опять до лучших времен, но что-то дернуло меня все-таки покопаться чуток. А именно, вспомнил я про уже готовый fulltext поиск реализованный на sphinx'e в дефолтной сборке LS. Там как раз есть тайтл + текст, так что впринципе больше и не надо :)
В общем, пришлось чуток модифицировать имеющийся модуль + добавить ф-цию в Sphinx.class.php
К действиям:
1) берем имеющийся модуль
2) удаляем папку и ее содержимое /classes/modules/similartopics/mapper
3) заменяем полностью содержимое файла(/classes/modules/similartopics/SimilarTopics.class.php) на:
4) добавляем в класс(classes/modules/sphinx/Sphinx.class.php):
лично я оставил поиск по тэгам, хотя — можете добавить и по тайтлу, как было первоначально в плагине
5) все, радуемся жизни :)
п.с. должен быть настроен уже sphinx и работать поиск через sphinx
п.п.с. делаем на свой страх и риск, так что не забываем о том что надо бэкапить файлы ;)
Но незадача :( нужен fulltext для InnoDB… уже хотел похерить задание и отложить опять до лучших времен, но что-то дернуло меня все-таки покопаться чуток. А именно, вспомнил я про уже готовый fulltext поиск реализованный на sphinx'e в дефолтной сборке LS. Там как раз есть тайтл + текст, так что впринципе больше и не надо :)
В общем, пришлось чуток модифицировать имеющийся модуль + добавить ф-цию в Sphinx.class.php
К действиям:
1) берем имеющийся модуль
2) удаляем папку и ее содержимое /classes/modules/similartopics/mapper
3) заменяем полностью содержимое файла(/classes/modules/similartopics/SimilarTopics.class.php) на:
<?php
##### [hack] similar_topics_sphinx #####
class LsSimilarTopics extends Module {
public function Init() {
}
public function GetSimilarTopics($oTopic){
$sTitleTags=$oTopic->getTags();
$aTopics=array();
$data=$this->Sphinx_FindSimilarTopics($sTitleTags,SIMILARTOPICS_COUNT+1);
if(is_array($data['matches']) && sizeof($data['matches'])>0){
foreach($data['matches'] as $k=>$v) if($k!=$oTopic->getId()) $aTopics[]=$this->Topic_GetTopicById($k);
return $aTopics;
}else return false;
}
}
##### [hack] similar_topics_sphinx #####
?>
4) добавляем в класс(classes/modules/sphinx/Sphinx.class.php):
##### [hack] SimilarTopics #####
public function FindSimilarTopics($sTerms,$iLimit){
$cacheKey=SEARCH_ENTITY_PREFIX."similartopics_{$sTerms}_{$iLimit}";
if(false===($data=$this->Cache_Get($cacheKey))){
$this->oSphinx->SetMatchMode(SPH_MATCH_ANY);
$this->oSphinx->SetLimits(0,$iLimit);
if(!is_array($data=$this->oSphinx->Query($sTerms,SEARCH_ENTITY_PREFIX.'topicsIndex'))) return FALSE;
# no results = no cache
if($data['total']>0) $this->Cache_Set($data,$cacheKey,array(),60*15);
}
return $data;
}
##### [hack] SimilarTopics #####
лично я оставил поиск по тэгам, хотя — можете добавить и по тайтлу, как было первоначально в плагине
5) все, радуемся жизни :)
п.с. должен быть настроен уже sphinx и работать поиск через sphinx
п.п.с. делаем на свой страх и риск, так что не забываем о том что надо бэкапить файлы ;)
Блок "Похожие темы"
41
Очень не хватало блока «похожие топики».
Решил быстренько написать, но потратить времени, пришлось больше, чем я предполагал.
Модуль брать
Процесс установки:
1. Выполнить SQL запрос (для добавления нужного индекса. схожесть тем ищем сразу по двум полям title и tags):
2. Содержимое каталогов classes/ config/ и templates/ копируем (со всеми подкаталогами) в корневой каталог сайта где установлен LiveStreet.
3. Скопировать файл templates/skin/new/block.similarTopics.tpl в каталог активного скина.
Количество выводимых тем можно настроить в файле config/modules/similartopics/config.php.
SIMILARTOPIC_COUNT — количество выводимых тем (по умолчанию 5)
SIMILARTOPIC_SCORE — минимальное количество баллов, при котором тема считается похожей. рекомендуется выше 3-4, но на небольших сайтах можно и пониже. (по умолчанию 3).
Слегка неудобен процесс добавления блока. было бы хорошо, если бы была возможность указания порядка отображения блока (приоритет). и получение текущего списка блоков (для замещения, или вставки блока в зависимости от ситуации). но это так, мысли вслух.
Решил быстренько написать, но потратить времени, пришлось больше, чем я предполагал.
Модуль брать
Процесс установки:
1. Выполнить SQL запрос (для добавления нужного индекса. схожесть тем ищем сразу по двум полям title и tags):
alter table prefix_topic add fulltext key `title_tags` (topic_title, topic_tags);2. Содержимое каталогов classes/ config/ и templates/ копируем (со всеми подкаталогами) в корневой каталог сайта где установлен LiveStreet.
3. Скопировать файл templates/skin/new/block.similarTopics.tpl в каталог активного скина.
Количество выводимых тем можно настроить в файле config/modules/similartopics/config.php.
SIMILARTOPIC_COUNT — количество выводимых тем (по умолчанию 5)
SIMILARTOPIC_SCORE — минимальное количество баллов, при котором тема считается похожей. рекомендуется выше 3-4, но на небольших сайтах можно и пониже. (по умолчанию 3).
Слегка неудобен процесс добавления блока. было бы хорошо, если бы была возможность указания порядка отображения блока (приоритет). и получение текущего списка блоков (для замещения, или вставки блока в зависимости от ситуации). но это так, мысли вслух.