0.00
Рейтинг
0.00
Сила

fantast

Еще раз про GZip сжатие страниц и кеширование

Почитал я тему Сжатие страниц LiveStreet на лету / Tips & tricks и подумал, что человек уж больно сильно убился на написание сего корявого кода.
Не мне судить над ровностью кода, скорее модераторам модулей.
Так вот о чем я. Поразмыслил тут и отписался в камментах. Но чтоб народу-то донести, т.к. многим более информативнее топик вместо камментов читать, публикую свои мысли здесь.
Читать дальше →

Использование плагинов в v.0.4

Безболезненное расширение функционала — достаточно проблематичный вопрос (под «безболезненностью» я понимаю весь спектр удобства для пользователей движка).

Я думаю, вы еще не забыли, что для добавления новых возможностей в версиях до 0.3.1 включительно используются Хаки и Модули. При этом установка любого стороннего творения дело достаточно хитрое и небезопасное, часто требующее ориентирования в архитектуре и особенностях движка. Для преодоления этих проблем в ядро v.0.4 была введена система плагинов:


К чему мы стремились создавая систему плагинов?

а) расширения функционала (плагины) можно просто установить и также просто убрать (а вдруг не понравилось), сложность этого процесса не зависит от количества расширений, разветвленности структуры их каталогов и т.д.;
б) установка внешних расширений (плагинов) не усложняет обновление основного ядра;


Для тех, кого заинтересовали подробности

Закрепление топика

1. Сделать запрос в базу (для создания новой строки topic_main)
ALTER TABLE prefix_topic ADD topic_main tinyint(1) default '0'

2. Открыть файл classes/modules/topic/entity/Topic.entity.class.php
а) После:
public function getTitle() {
        return $this->_aData['topic_title'];
    }
Добавить:
public function getMain() {
        return $this->_aData['topic_main'];
    }

б) В самом конце, перед
}
?>
Добавить:
public function setMain($data) {
        $this->_aData['topic_main']=$data;
    }


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

Новые функции редактора текста и короткий FAQ

Начиная с 617 ревизии SVN стандартный редактор текста Livestreet обзавелся новыми функциями. Теперь есть возможность превратить выделенный текст в заголовок h4, h5 или h6, а также в один клик оформить нумерованный или маркированный список.

Для полноценного использования этого функционала были исправлены старые баги парсера — добавление лишних отступов строк между пунктами списка и после заголовков (сделанные фиксы касаются external-библиотеки Jevix, а не только ядра).

Ввиду большого числа писем о некорректной работе этого редактора в версии 0.3.1 — под катом правила по корректному переносу.


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

Публикация в коллективные блоги и подписи к картинкам

Следующая проблема: юзер присоединился к блогу, но при публикации в списке доступных только персональный блог. Например сила уже 0.43 а коллективные все равно не доступны. Где это значение прописывается? Пробовал увеличивать силу и рейтинг через базу, все равно не может публиковать в подключенный коллективный блог.
В чем может быть дело?

А также можно ли реализовать вставку подписи картинки под ней (как на wiki)чтобы вставлялась автоматом из title картинки

похожие темы через 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
п.п.с. делаем на свой страх и риск, так что не забываем о том что надо бэкапить файлы ;)

Хак. Добавление позиции в рейтинге пользователей


На всеми любимом Хабре есть замечательная возможность просмотра в профиле позиции в рейтинге пользователей сайта.
Сделал подобный хак-модуль, изменения нужно внести только в шаблоне отображения профиля, системные файлы не задеты.
Пример посмотреть можно: ls03.vaktive.ru/profile/admin/
Скачать можно: livestreet.ru/addons/102/
Инструкция в архиве.

Убираем счетчики и прочее с глаз долой.

Вдохновившись улучшеной статистикой для одмина, решил на её основе дать возможность пользователю открывать закрывать кусочек «подвала» сайта на котором у меня висят счетчики рамблера и другие всякие кнопки.

Спасибо Romelyus надеюсь он не против =)

итак открываем index.php и в самый конец добовляем:
Читать дальше →

Хак: Автозаполнение для поиска

Давненько я не писал… и так к делу.
Автозаполнение/подсказки (autocomplete) для поиска современная и весьма полезная вещь. Тут просматривая ЛС обнаружил, что данная функция здесь отсутствует.

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

Автоматическое подключение блога. Хак.

upd 15/05/10: для тех у кого были проблемы со счетчиком количества подписчиков — архив хака обновлен с инструкциями и функцией для устранения недочета.
Для версии 0.4 выпущен плагин. (тема)


По просьбам выкладываю хак автоматического присоеднинения к блогу, в который юзер опубликовал свой топик.

В данном хаке в списке доступных для публикации блогов юзеру выводятся все блоги, в которые он может писать по рейтингу(а также те блоги, создателем которых он является).

Для тех, у кого нету изменений в движке хак выложен архивом в разделе бесплатных модулей =>Здесь. Для тех у кого есть изменения, или кому невтерпежь ждать модерации,(пройдена) вся информация под катом.


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