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

Livestreet: дао разработчика - 2

Первая часть цикла

Дао — это действие, процесс, поток. Чем чаще вы смотрите на код других плагинов, тем больше вы понимаете, как делать свой.
Накачайте плагинов под 0.4.2 и расматривайте, что у них внутри. Без этого вы не сможете начать писать свои плагины.

Я сделал типовой шаблон, из которого удобно делать свои собственные плагины. Располагается он тут:
http://github.com/medar/livestreetplugin
Чтобы скачать его, надо нажать в правом верхнем углу кнопку «Download Source». Желающие могут форкать и вносить изменения.

В файле находится «рыба» плагина с названием abcplugin.
Читать дальше →

Переопределение методов модулей с помощью ...Hook'ов!

В LiveStreet 0.4 появилась возможность переопределять не только целиком модули, но и отдельные методы. Это позволить разным плагинам бесконфликтно переопределять разные методы одного модуля.

Принцип действия этого механизма основан на Hook'ах:
  1. Вызов каждого метода сопровождается выполнением хуков — module_ModuleName_MethodName_before и module_ModuleName_MethodName_after, соответственно ДО и ПОСЛЕ вызова метода модуля. В первом случаи в хук передаются параметры вызова метода, во втором передается результат выполнения метода модуля.
  2. На module_ModuleName_MethodName_before можно повесить специальный хук — delegate, результат выполнения которого и будет «результатом» выполнения метода модуля

Пример:
<?php 
class HookTest extends Hook {
	public function RegisterHook() {
		$this->AddDelegateHook('module_text_parser_before','testHook',__CLASS__,-3);
	}

	public function testHook($aVars) {
		return 'Topic text > '.$aVars[0];
	}
}
?>

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

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

Предисловие

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

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

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

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

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

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

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


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

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


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

Перекрашиваем сайт, руководство css для начинающих

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

mozilla firefox — браузер
firebug — плагин для браузера
adobe photoshop, или любая другая программа, в которой можно выбирать цвета
текстовый редактор с поиском, например notepad++
собственный головной мозг

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

Механизм хуков в движке

В продолжении топиков LiveStreet как платформа для модулей и Тест хуков в движке появилась поддержка хуков.

Использовать можно так:
1. В любом месте(модуле, экшене) установить вызов необходимого хука на метод модуля
$this->Hook_AddExecModule('topic_show','Test_MyHookRun',10);
регистрирует на событие topic_show вызов метода MyHookRun у модуля Test с приоритетом 10.
2. В любом месте установить вызов хука на функцию
$this->Hook_AddExecFunction('topic_show','var_dump',-5);
регистрирует вызов функции var_dump
3. Создать класс хука в каталоге /classes/hooks/ с именем файла HookTest.class.php с содержанием
<? 
class HookTest extends Hook {	
	public function RegisterHook() {
		$this->AddHook('topic_show','testHookFunct',__CLASS__,-3);
	}
	
	public function testHookFunct($aVars) {
		var_dump("Hook it!");
	}
}
?>

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

LiveStreet как платформа для модулей

На основе определенного опыта выношу свои предложения по оптимизации LiveStreet под решения сторонних разработчиков.
Вот как сейчас выглядит инструкция по установке модуля галерея: docs.google.com/Edit?id=d4jv5mv_529dgshs5d2

А хочется чтобы инструкция заканчивалась на распаковании архива:) Мои предложения как этого добиться:

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

Пример создания модуля

Попробуем на примере создать очень простой модуль/дополнение для LiveStreet. Сразу стоит оговориться, что под модулем в LiveStreet подразумевается некая библиотека дополнительного функционала, а не какой то законченный блок функционала. Модуль это только его часть. Надеюсь понятно смог объяснить, а теперь приступим!

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

Руководство: Как создать свой вид топика на LiveStreet

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

Итак, у меня появилось желание написать руководство по созданию своего вида топика. Такая операция может быть очень полезной и открывает более широкие возможности размещения движка.

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

Описание ядра LiveStreet

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

Общее представление


Движок LiveStreet построен на базе собственного фреймворка с использованием модульности и модели MVC.
Фреймворк представляет из себя каркас из абстрактных классов(абстракции module, action, block, mapper, entity), ядро(engine), роутер(route) и набор системных модулей(модули с префиксом sys_).
Читать дальше →