Авторизация
Задай мне вопрос
Голосования
| dynamic graphics Plug-in skeleton pre-alpha |
|
| Written by xternalx | |||
| Saturday, 15 August 2009 19:51 | |||
|
Итак, выкладываю скелет, на основе которого можно писать плагины для соего двигателя динамических юзербаров :)
<? # # Plugin skeleton # # copyright xternalx, 2008 - 2009 #
class CodePlugin { public $name=""; # Custom plugin name public $version=""; # Version public $author=""; # Owner public $url=""; # Owner url public $info=""; # Additional info public $type="code"; # Plugin Type (code - for text processing, ui - control panel extension) private $priority=10; # Plugin priority( 1-10 )
# Constructor function __construct() { # constructor code here }
# Render method provides processing text for userbar drawing # $params have next structure: function Execute($params) { /* print_r($params) * $params structure below: * Array ( [userbar] => Resource id #15 <-- Drawing context [code] => 'some code' <-- Userbar code [timezone] => 7 <-- User timezone [info] => Array <-- Physical Pathes and other info ( [imgdir] => %{WWWROOT}/userbar/images/ [fntdir] => %{WWWROOT}/userbar/fonts/ [plugins] => %{WWWROOT}/userbar/plugins/ [root] => %{WWWROOT}/htdocs/userbar/ [version] => 1.0 beta [resource] => http://xternalx.7pe.net/userbar/ ) [params] => Array <--+-Params if exists passed to plugin ( +-Params count is may be dohuya :D [sample_plugin_option] => 'Sample Value' )
) */ } }
Метод Render выполняет обработку поступившего в плагин кода юзербара и если необходимо, что либо рисует на юзербаре. Нужно отметить что весь код юзербара выполняется построчно, и плагинам каждая строка "кормится" по отдельности. Это необходимо для возможности рисовать на плагинах "слоями".
Если плагин для своей работы требует каких либо настроек, Например, как импортер статистики из ETQW, то так же необходимо создать html файл в котором будет представлена форма для внесения этих настроек. Ниже представлен код формы для настройки ETQW импортера:
<form name="etqwParams" id="etqwParams" method="POST"> <table> <tr> <td> Введите id Вашего профиля в игре: </td> <td> <input type="text" id="account_number" name="account_number" class="textbox0" value="${account_number}"> </td> </tr> </table> </form> <div class="uiDialogButtons"> <a href="JavaScript:SavePluginOptions(${pid},'etqwParams');">Сохранить</a> </div>
Метод SavePluginOptions() в качестве параметров принимает id Плагина и название формы. ID Плагина принудительно не указывается, вместо него подставляется ${pid}, который будет заменен в процессе работы менеджером плагинов на реальный ID плагина. Необходимо так же упомянуть, что названия каких либо параметров, допустим account_number должы быть соответственно прописаны в атрибуте id и name полей ввода, именно по ним и будет проиводиться записаь настроек в базу.
Кроме того, с плагином должна идти краткая справка, в которой описаны все возможности, предоставляемые плагином.
Пример конфига плагина, по которому плагин будет регистрироваться в системе. Название файла должно быть plugin.xml: <plugin> <sysname>ETQWStats</sysname> <!-- Системное название плагина. Должно соответствовать имени класса плагина --> <name>ETQW Stats importer</name> <!-- Краткое описание плагина, будет выведено в списке расширений--> <version>0.1</version> <!-- Версия --> <author>xternalx</author> <!-- Создатель --> <script>etqw.php</script> <!-- название скрипта плагина --> <configform>settings.html</configform> <!-- форма настроек. Обязательный параметр если плагину требуются какие то настройки --> <pluginfo>desc.html</pluginfo> <!-- Справочный файл в котором описываются возможности плагина --> <options> <!-- Перечисление всех настроек, необходимых для плагина --> <option name="account_number"></option> </options> </plugin>
Далее все это запаковывается в zip архив и отсылается мне по почте, Если Вы хотите конечно, чтобы этот плагин работал в моем сервисе :)
?>
|
|||
| Last Updated on Saturday, 15 August 2009 20:05 |
