Не совсем. Это ты создаешь Action внутри плагина. А список делегатов определяется в классе плагина.
Т.е. у тебя будет файл /plugins/myblog/PluginMyblog.class.php
class PluginMyblog extends Plugin {
// Вот здесь указываем делегат
protected $aDelegates=array(
'action' =>array('ActionBlog'=>'PluginMyblog_ActionMyblog')
);
}
А в файле /plugins/myblog/classes/actions/ActionBlog.class.php
require_once(Config::Get('path.root.server').'classes/actions/ActionBlog.php');
class PluginMyblog_ActionMyblog extends ActionBlog {
protected function EventAddBlog() {
// my extended code here
}
}
Как-то так, на орфографию код не проверял — сочиняю прямо здесь =)
Вообще идеальным решением была бы возможность делегировать отдельные функции. Но это не является классикой ООП и приведет скорее к «костыльному» решению, чем к архитектурно-изящному.
То о чем ты говоришь — «добавить пару строк» лучше делать через хуки. На event`ы можно ведь вешать хуки. Это достаточно удобный механизм. Если же нужно сменить ЛОГИКУ работу — тогда пользоваться делегатами.
Это не так просто, как может показаться. Обработка изображений в 0.3.1 распределена тонким слоем по нескольким модулям, функциям, include`ам.
«очиститель пустых изображений»
В 0.4 сделана специальная обертка для cron-процессов и один пример ее использования (notifyer). На нем можете делать собиратели мусора, технически задача упрощается во много раз.
С каждым хаком все равно проблем много будет. Самая мощь плагинов — в возможности создавать новые модули\экшены и заливать их одной директорией (и делегировать функционал старых на новые).
В общем, кидай ссылки — подумаю над этим предложением. Можно в тви.
P.S. В дистрибутиве в качестве примера в плагин переделан ActionProfiler и обслуживающий его модуль Profiler.
А куда он денется? Что мешает мне снять с себя роль администратора и передать ее другому пользователю (зарегистрировавшемуся покупателю)???
Т.е. по вашему получается, что для админа публикация тематических материалов (по направлению проекта) — это ерунда?
Т.е. у тебя будет файл /plugins/myblog/PluginMyblog.class.php
А в файле /plugins/myblog/classes/actions/ActionBlog.class.php
Как-то так, на орфографию код не проверял — сочиняю прямо здесь =)
То о чем ты говоришь — «добавить пару строк» лучше делать через хуки. На event`ы можно ведь вешать хуки. Это достаточно удобный механизм. Если же нужно сменить ЛОГИКУ работу — тогда пользоваться делегатами.
И еще очень понравилось подробное руководство на странице about
Это не так просто, как может показаться. Обработка изображений в 0.3.1 распределена тонким слоем по нескольким модулям, функциям, include`ам.
В 0.4 сделана специальная обертка для cron-процессов и один пример ее использования (notifyer). На нем можете делать собиратели мусора, технически задача упрощается во много раз.
В общем, кидай ссылки — подумаю над этим предложением. Можно в тви.
P.S. В дистрибутиве в качестве примера в плагин переделан ActionProfiler и обслуживающий его модуль Profiler.
А можно было и почитать, если воспользоваться поиском. И про роутинг тоже можно найти (как для 0.3.1, так и для новой версии).
а) С прозрачностью решены частично, если не считать ситуаций со значительным масштабированием прозрачных изображений.
б) Анимированные gif обрезаются по первому кадру.
в) Что-то другое?