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

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

Новые возможности по переопределению/наследованию классов 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() {        
    }
}
?>

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

Совместимость медиа с iPhone/iPad

Так случилось, что мой сайт на LS внезапно погиб (умерший raid5 редкая штука, но бывает) и поэтому приходится восстанавливать все заново. Версия 0.4 не завелась со старой базой, поэтому старый добрый 0.31, однако уверен что все это можно прикрутить и к последней версии.

Одной из самых востребованных фич является загрузка картинок и медиа, но то, как я ее реализовывал ранее мне уже не нравится. Несомненно, uppod хорош, но никто не отменял iPhone и прочее, где этого самого флеша нету. Как вариант — вместе с плеером вставлять и текстовую ссылку, но это не наш метод.

Итак, вот как это я сделал сейчас: демо.

Использованы:

1. MediaBoxAdvanced, для того чтобы что-то открывалось с использованием этой универсальнейшей штуки сделан специальный тег
<magic src="ссылка">название ссылки</magic>
Туда можно смело пихать что угодно — ссылку на ютуб-видео, на картинки, на mp3/mp4/flv файлы и так далее, подробнее на сайте разработчика, использует mootools. На моем сайте используется для фотогалерей.

Польза несомненна — так как в итоге имеем обычную ссылку (на тот же ютуб), то iPhone открывает контент без проблем, в отличие от встроенного в uppod ютуба. То же касается аудио, открыв ссылку в новом окне, открывается стандартный проигрыватель телефона.


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

Админка - наконец-то редактируем конфиг!

Выложил версию админки (v1.4-dev.70; rev.48), где добавлена, пожалуй, самая ожидаемая фича — редактирование параметров конфигурации. Пока еще не все параметры можно редактировать, но кое-что уже можно.

Замечу, что пользовательские параметры конфигурации сохраняются так, что вы можете смело перезаписывать конфиг-файлы — это никак не повлияет на те данные, которые вы редактировали в админке. Т.е. можно смело накатывать любые обновления, включая файлы конфигурации, движок все равно будет получать ваш конфиг.

И еще: при создании этого подраздела (редактирование конфигурации) я решил сгруппировать параметры чуть иначе, чем они даются в исходном конфиг-файле, мне показалось это более логичным. Если я ошибаюсь — поправьте меня.

Интеграция LiveStreet со сторонними приложениями

Если кто-то ждет в этом топике готового рецепта — увы, его не будет. Но будет полезный инструментарий, который поможет эту самую интеграцию построить.

Иногда, при создании сайта на ЛС, возникает задача интеграции с какими-нибудь сторонними движками. Иногда к форумам каким-нибудь, иногда — иные скрипты. Например, Sypex Dumper.
Читать дальше →

Изменение наименований классов в движке

В LiveStreet произошел рефакторинг формы наименований классов. Данное предложение высказывалось avadim'ом еще на LS-party и теперь реализовано.

Новые формы:
  • модуль — Module[имя модуля]
  • маппер — Module[имя модуля]_Mapper[имя маппера]
  • сущность — Module[имя модуля]_Entity[имя сущности]

Для плагинов добавляется префикс Plugin[имя плагина]_, например, Plugin[имя плагина]_Module[имя модуля]_Entity[имя сущности].

Подключение маппера теперь происходит автоматически при вызове метода Engine::GetMapper() в модуле:
Engine::GetMapper(__CLASS__) — вернет маппер совпадающий с именем модуля
Engine::GetMapper(__CLASS__,'Test') — вернет маппер Test

Такой подход позволит навести порядок и логику в названия классов.

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

Плагин aceAdminPanel – новые возможности для разработчиков плагинов

Прямо так и хочется начать: «Кролики – это не только ценный мех, но и три-четыре килограмма легкоусвояемого мяса» :)

А все потому, что плагин админки (aceAdminPanel) – это не только облегчение работы администратора сайта, но и новые возможности для разработчиков, пишущих различные расширения для движка. Здесь я расскажу об одной интересной фиче, которую я смог реализовать в плагине, и которая дает гораздо больше возможностей при создании плагинов, чем стандартные средства.
Читать дальше →

Автоматическое подключение блога. Плагин для 0.4. Апдейт для 0.31

Привет всем.
Наконец-то дошли руки до старых хаков. Выпустил обновления хака "Автоматическое подключение блога" для 0.4 и фикс для 0.31

Плагин для 0.4

Скачать можно здесь. Установка элементарная — копируете папку autoconnect в папку plugins движка и включаете плагин по адресу /admin/plugins.

Фикс для 0.31

Ссылка на обновленный архив — внимательно сделайте все по инструкции внутри архива, при других внесенных изменениях в экшены топика, ссылки или вопроса — будьте еще внимательнее, и советую воспользоваться SVN DIFF).

Немного о хаке.

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

Релиз LiveStreet 0.4

Пришло время релиза :) Релиза LiveStreet 0.4!
Скачать новую версию можно со страницы загрузки.

Новые возможности:
— Инсталлятор;
— Система плагинов;
— Плагин профилирования работы движка;
— Плагин OpenID+ВКонтакте авторизации (отдельный плагин);
— Функционал закрытых блогов и приглашений;
Читать дальше →

Плагин "OpenID"

В разделе «Модули» появился первый официальный плагин для LiveStreet 0.4.1 от команды разработчиков LiveStreet.
Плагин «OpenID» позволяет пользователям авторизоваться и зарегистрироваться на сайте используя OpenID или ВКонтакте.

У пользователя в настройках профиля появляется раздел «OpenID», где указан список его OpenId идентификаторов.
Плагин будет полезен не только тем, кто хочет упростить авторизацию у себя на сайте, но и разработчикам плагинов для LiveStreet. исходных код плагина полностью прокомментирован, поэтому может служить неким пособием по созданию плагинов.

Внимание! Данные плагин работает только на версии 0.4.1.

UPD Обновление плагина — livestreet.ru/blog/addons/5458.html