+3.78
Рейтинг
8.50
Сила

Хак «Редактирование комментариев»

Возможность редактирования комментариев пользователей(для админов) + возможность редактирования комментариев пользователем в течении определенного времени, а то сильно раздражает когда ошибку допустил или что-то глуппое ляпнул — а изменить уже никак :(
В общем пользуемся на здоровье :)
Как обычно пример можете посмотреть на: ecovoice.ru (просьба не флудить и писать осмысленно)
Линк на модуль: livestreet.ru/addons/105/ (пока на модерации)

Читать дальше →

похожие темы через sphinx

Дело, было как обычно вечером :) И лежало на мне уже давно задание — добавить «похожие темы» к проекту, но ввиду приоритетов откладывалось оно на потом постоянно. Полазил по LS, нашел уже готовый бесплатный модуль: livestreet.ru/blog/2053.html
Но незадача :( нужен 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
п.п.с. делаем на свой страх и риск, так что не забываем о том что надо бэкапить файлы ;)

хак - доработка "скрытия линков от поисковиков"

На досуге обнаружил, что чуток неправильно работает режим скрытия линков от поисковиков(BLOG_URL_NO_INDEX=true). А именно если в посте идет ссылка на твой же ресурс, то его также LS обрамляет noindex + добавляет rel=nofollow. В общем текущее положение вещей меня не устраивало, так как это для СЕО неправильно. Тут же было мной сделано решение.

Читать дальше →

Хак «Выпадающее меню стран и городов»

Если вам надоело, что ваши юзеры указывают непонятно какие города и страны. Например: «росия»,«Росия»,«рося»,«Расия» и др., т.е. юзеров из одной страны и города найти практически невозможно :( Ответом на решение данного вопроса — является «хак выпадающее меню стран и городов».

сурс_код на livestreet: livestreet.ru/addons/91/
демо: ecovoice.ru/ (регистрируемся и смотрим)

UPDATE v.0.2
1. чуток переделал JS + проверил работоспособность на IE6-8,Opera10,FF3.5
2. остался глюк с 500 ошибкой, но это уже глюк библиотеки JsHttpRequest, там у автора написано: «For XML mode, 500 code is okay.»
upgrade с версии 0.1 — просто обновить файлы, базу обновлять не надо

За стандарт было взято выпадающее меню с vkontakte.ru, потому что на мой взгляд оно самое интуитивно понятное из аналогичных ему.

Читать дальше →