+47.86
Рейтинг
109.81
Сила

Сергей

Постраничное разбиение комментариев

В SVN появился функционал постраничного разбиения комментариев к топикам. Данная возможность будет очень полезной для крупных сайтов, где количество комментов к одному топику может спокойно перевалить за 1000.

Для включения постраничности в конфиге появились два параметра:
$config['module']['comment']['use_nested'] = true; 
$config['module']['comment']['nested_per_page'] = 50;
Первый переводит комментарии в режим дерева (nested set), второй задает число корневых элементов на одну страницу. Если значение nested_per_page = 0, то разбивки на страницы не будет, будет просто использоваться nested set для построения дерева.

Для перевода существующих комментариев в режим use_nested = true необходимо запустить конвертацию/восстановление структуры дерева по адресу — /admin/restorecomment/. Если комментариев много, то процесс конвертации может затянуться, поэтому не забудьте на время выставить в php.ini большой лимит выполнения php скриптов. После конвертации появится сообщение — restore ok.

Ссылка на изменения — trac.lsdev.ru/livestreet/changeset?new=1015%40trunk&old=1006%40trunk
Не забудьте выполнить SQL патч — trac.lsdev.ru/livestreet/browser/trunk/install/convert_0.4.2_to_0.4.3.sql

Подключение js файлов из конфига плагина

Всем привет

Создал директорию плагина, в ней файл config/config.php
Config::set('head.rules.crop',array(
    'path' => Config::get('path.root.web').'/settings/profile/',
    'js' => array(
        'include' => array(
            Config::get('path.plugins').'/crop/external/cwcrop/ysr-crop.js'
        )
    ),
));
return $config;

Файл не подключается
И как можно подключить файл для всех страниц с использованием конфига плагина?

Новые возможности по переопределению/наследованию классов LiveStreet

В LS появилась новая возможность для разработчиков плагинов — наследование классов. Идея была высказана еще avadim'ом здесь.
Эта возможность позволит удобно переопределять различные методы одного класса (модуля, экшена, сущности, маппера) разными плагинами без конфликтов.
Главное отличие от делегирование — не происходит блокировки переопределения класса для других плагинов. Также есть возможность переопределения одного метода разными плагинами, но здесь разработчикам нужно быть очень осторожными и делать так, чтоб свести вероятность конфликта к минимуму.

Как использовать.
Например, нужно переопределить метод получения пути до аватара у сущности пользователя в плагине Test. В плагине необходимо объявить те классы, которые будут наследоваться. Объявление происходит в свойстве $aInherits:
<?php
class PluginTest extends Plugin {
    
    protected $aInherits=array(
       'entity'  =>array('ModuleUser_EntityUser'=>'_ModuleSide_EntityUser')
    );

    public function Activate() {        
        return true;
    }
    
    public function Init() {        
    }
}
?>

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

Проблемы с установкой Memcached (debian 5.0, FastVPS)

Здравствуйте, у меня возникли трудности с установкой мемекеша на сервер.
Все статьи, где упоминалась установка гласили, что можно установить из репо. буквально следующей командой:
apt-get install memcached

так вот, оказывается такого пакеджа нет, ну ладно
обновлю эти самые пакеджи м.б. тогда заработает:
apt-get update

Снова запускаю установку.
Опять нет. Установливаю из исходников, качаю последн. версию
распаковываю, запускаю установку… нет
Проблема — отсутствие библиотеке Libevent, необходимой для работы мемкеша. Из пекеджей не устанавливается опять таки она, качаю посл. версию, устанавливается она судя по всему криво, т.к. мемкеш послее ее установки вновь ругался при попытке запуска на отсутствие библиотеки libevent (хотя в этот раз он кажется установился, но, конечно, не работает)

Подскажите как быть? Очень мемкэш хочется поставить

Руководство по созданию плагина для v.0.4 на примере "Лента друзей"

Предисловие

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

Примечание. Долго не публиковал этот материал, держал в черновиках — на случай «мало-ли-что-измениться». Но думаю, кардинальных изменений в механизме плагинов в ближайшем релизе уже не будет.

Пошаговая схема:

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

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

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

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


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

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


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

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

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

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

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

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

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


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

Эволюция Viewer: управление блоками, слияние и минимизация JS/CSS

На SVN работа над LS0.4 кипит, начну понемногу описывать нововведения. Итак, сегодня у нас на очереди модуль Viewer, который постепенно «обрастает» очень вкусными полезностями. В этот модуль добавлено:

1. Управление выводимыми на страницу js,css файлами.

2. Управление выводимыми на страницу блоками через конфигурацию.

Подробнее под катом.


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

Переезд SVN проекта

Сегодня SVN и Trac проекта LiveStreet перенесены с хостинга Assembla на новый сервер разработок — lsdev.ru
Теперь все работы по LiveStreet и сопутствующими проектами нами будут проводится на собственном сервере.
Новый адрес SVN репозитория — trac.lsdev.ru/svn/livestreet/, Trac доступен по адресу — trac.lsdev.ru/livestreet

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