+80.16
Рейтинг
207.74
Сила

Степан Танасийчук

Обработка изображений: crop, watermark, скругление углов



В новой версии livestreet намного улучшена работа с изображениями (и в плане качества, и в плане гибкости). Для обслуживания всевозможных операций с изображениями отведен специальный engine-модуль Image.

Коротко о том, что появилось нового:

1. Решена проблема с некрасивым ресайзом неквадратных аватарок (путем предварительного вырезания наибольшего возможного квадрата).

2. Устранены «почти» все проблемы с обработкой alpha и non-alpha прозрачности («почти»=«на столько на сколько это вообще возможно сделать с помощью PHP+GD2»). По крайней мере прозрачные png теперь можно использовать в аватарках спокойно.

3. Формирование HTML кода выводимого изображения централизировано в одной функции Image_BuildHTML(), которая запрашивает путь к изображению и дополнительные параметры (title,alt,align).

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

5. Закругление углов изображения.

О том, как пользоваться 4 и 5 поговорим подробнее.

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

Плагин погодный информер

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

Собирает погоду по ID города с gismeteo.ru, получить ID города можно тут

В каталоге тут — http://livestreet.ru/addons/122/
Демо тут — http://sat-manager.ru/weather/

Доступен под: 0.3, 0.4 версии LiveStreet.

Восстановление топиков из кеша поисковой ситемы Yandex

Доброго времени суток, хочу поделиться модулем для доставания содержимого топиков сайта из кеша Яндекса.

Я занимаюсь разработкой сайта на базе livestreet My Equipment и на днях случилась трагедия, упала база данных.
Подобное уже было у некоторых участников сообщества. И как оказалось мой хостер не делает бекапов, а у меня их не было. Вот и пришлось доставать топики за два месяца из кеша поисковой системы.
Читать дальше →

Локализация «English (by Dianka)»

Доступна новая локализация для LiveStreet. Вот она. В чём же отличие от предыдущей, спросите вы? Во многом.

Во-первых, перевод подходит для последней ревизии, доступной из SVN. Ну и для более ранних версий, само собой.

Во-вторых, перевод большинства словосочетаний и фраз сформулирован иначе. На мой взгляд, более правильно. Если не согласны с переводом отдельных вещей, пишите обязательно, будем обсуждать и исправлять неточности перевода.

В-третьих, я делаю англоязычный проект, используя всегда последние ревизии, что гарантирует свежий регулярный перевод новых фраз, когда/если они будут появляться.

Ну и последнее — выбор лучше, чем его отсутствие. ;)

ls.cgvault.ru скины для livestreet


Ура, мы его закончили =)
Рады предложить вашему вниманию новый проект на движке livestreet, посвященный, вы не поверите, livestreet… ls.cgvault.ru!!!

Отслеживая ситуацию на ls последнее время я заметил, что с дизайнами тут совсем тяжело :( в основном это какие-то самостоятельные поделки или дизайн от людей, не знакомых со структурой движка и его особенностями. Мы хотим изменить ситуацию. Я и Henf давно работаем вместе. Он дизайнер, я верстальщик. Мы готовы предложить вам свои услуги

Внутри — то что мы умеем и немного вкуснятины

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

Новые возможности форматирования дат

В версии 0.4 значительно улучшены возможности по работе с датами. Ввиду большого числа писем по этому поводу, опишу здесь основные моменты и правила пользования новыми параметрами форматирования дат:

0. Вступление.

За оформление даты в Smarty-шаблоне отвечает тот же, что и раньше, smarty-тег {date_format}. Тег требует только один обязательный параметр 'date' — собственно дата. Простейший вариант вывода:
{date_format date=$oTopic->getDateAdd()}

в результате получаем самый обычный:
10 декабря 2009, 00:35

Информация для разработчиков: date_format работает теперь не через функцию в function.php, а через специально написанный для движка smarty-плагин.


Дополнительные параметры формата

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

Хак Постраницная разбивка комментариев

Работаю с движком LiveStreet третий день. Написал хак для разбивки комментов к топикам на страницы. Работает как с личными, так и с коллективными топиками.

Я знаю, что значит, когда топик имеет 500-1000 комментов. Без разбивки никак не обойтись. Поэтому пришлось взяться за напильник.

О том, как сделано, писать не буду, ибо много. Можете просто скачать Хак "«Постраницная разбивка комментариев и почитать readme.txt.

Работает на версии LS 0.3.1. Как на других, не знаю — не проверял. Число комментариев на страницу, естесственно, настраивается.

Номер страницы добавляется в конец URL топика. Например, был URL топика такой site.com/blog/1.html, а вторая страница будет такой site.com/blog/1.html/page2/

Оставляйте замечания, советы по улучшению и т.д.

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

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

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