Создание своих действий

Для начал разберём структуру папок действий.
<Devel_Studio_Dir>\system\design\actions -папка с действиями
<Devel_Studio_Dir>\system\design\editor_types - типы элементов для создания действий

А теперь приступим к созданию действия.
1. Создадим папку с названием вашего действия (Например: MyAction)  в папке "<Devel_Studio_Dir>\system\design\actions\" и перейдем в папку с вашим действием.



2. Создадим файл "info.php" и запишем внутри него вот такой текст
$n = array();   
    $n['PREG'] = '%<Команда>\((.*)\)%i';
    $n['COMMAND'] = '<Команда>';
    $n['TEXT'] = '<Название команды>';
    $n['DESCRIPTION'] = '<Описание команд>';
    $n['INLINE'] = '<Описание с выводом параметров. Например: "Данная команда содержит %pr1%". Тут за вместо %pr1% выводиться параметр первый.>;
    $n['SECTION'] = '<В какой группе действий находиться>';
    $n['SORT'] = 10;  //каким по порядку находиться действие и значение должно быть кратно 10
return $n;















3. Если ваше действие будет с параметрами, то создаем файл диалог "dialog.php" в папке "<Devel_Studio_Dir>\system\design\actions\" и запишем внутри него вот такой текст:

<?
$r = array();
  <тут элементы диалога о них читайте ниже>
return $r;

В этом файле прописываются как будет выглядеть диалог действия. И например если у вашей команды два параметра (Пример: command(<текст>,<что то ещё>)), то надо будет создавать элементы диалога по порядку, для каждого параметра (их будет два).
Есть пять типов элементов диалога:
  • CHECK - радио кнопка
$r[] = array(
             'TYPE'=>'CHECK',
             'CAPTION'=>t('Тут название. Например "Включить сброс"'),
             );
  • COMBO - сворачивающийся список значений
$r[] = array(
             'TYPE'=>'COMBO',
             'CAPTION'=>t('Тут название. Например "Тип окна"'),
             'USE_QUOTE'=>false, //заключать ли в кавычки введённые параметры. включить - true/ выключить - false
             'VALUES'=>array('Огромное','Маленькое','Без заголовка','Другой'), //элементы списка
             'ITEM_INDEX'=>1, //какой пункт будет выделен, в данный момент выделен "Маленькое"
             );
  • INPUT_DLG - текстовое поле
$r[] = array(
             'TYPE'=>'INPUT_DLG',
             'CAPTION'=>t('Тут название. Например "Текст"'),
             'USE_QUOTE'=>false, //заключать ли в кавычки введённые параметры. включить - true/ выключить - false
             );
  • LIST - список
$r[] = array(
             'TYPE'=>'COMBO',
             'CAPTION'=>t('Тут название. Например "Раздел"'),
             'USE_QUOTE'=>false, //заключать ли в кавычки введённые параметры. включить - true/ выключить - false
             'VALUES'=>array('Первый','Второй'), //элементы списка
             'ITEM_INDEX'=>0, //какой пункт будет выделен, в данный момент выделен "Первый"
             'NO_MULTI'=>true, //отключить ли мульти-выделение. отключить - true/ включить - false   
             'H'=>150, //определяет высоту списка, в данный момент равна 150px. Если параметр не введён, то размер будет 100
             );
  • VARS - выводит список переменных в событии
$r[] = array(
             'TYPE'=>'VARS',
             'CAPTION'=>t('Тут название. Например "Переменная"'),
             'USE_QUOTE'=>false, //заключать ли в кавычки введённые параметры. включить - true/ выключить - false
             'ITEM_INDEX'=>1, //какой пункт будет выделен, в данный момент выделен второй пункт
             );

Пример диалога:


<?

$r 
= array();

$r[] = array(
             
'TYPE'=>'INPUT_DLG',
             
'CAPTION'=>t('Text message'),
             
'USE_QUOTE'=>true,
            );
$r[] = array(
             
'TYPE'=>'COMBO',
             
'CAPTION'=>t('Dialog type'),             
             
'VALUES'=>array('mtWarning''mtError''mtInformation''mtConfirmation',
                             
'mtCustom'),
            );
$r[] = array(
             
'TYPE'=>'COMBO',
             
'CAPTION'=>t('Buttons'),             
             
'VALUES'=>array('MB_OK''MB_OKCANCEL''MB_ABORTRETRYIGNORE''MB_YESNOCANCEL',
                             
'MB_YESNO''MB_RETRYCANCEL''MB_ICONHAND''MB_ICONQUESTION',
                             
'MB_ICONEXCLAMATION''MB_ICONASTERISK''MB_USERICON''MB_ICONWARNING',
                             
'MB_ICONERROR','MB_ICONINFORMATION''MB_ICONSTOP''MB_APPLMODAL',
                             
'MB_SYSTEMMODAL''MB_TASKMODAL''MB_HELP'),
            );
return 
$r;



4. Создаем иконку в папке с вашим действием и переименовываем в "icon.bmp"



5. Если вы создали действия на одном языке и хотите его перевести на другой, то в папке с действием создаем папку "lang", заходим в неё и создаем папку "ru". Дальше переходим в папку "ru" и создаем файл "messages.php". В нем прописываем вот этот текст:

<?
$m['<тут текст который надо перевести>'] = '<тут перевод>';
$m['<тут текст который надо перевести_1>'] = '<тут перевод_1>';  //и т.д.

$m['gr_<название группы в которой находиться действие>'] = '<Перевод группы>';
$GLOBALS['__M'] =& $m;


Ну теперь запускаем Devel Studio и смотрим наше действие в редакторе кода )) Если всё правильно, то вы увидите его.

вернутся к списку версия для печати

Комментарии:

xsnakes пишет:
А ты отойди Well


haker пишет:
xsnakes лопнешь всё добавлять ))


xsnakes пишет:
Круто Well У меня получилось! Теперь буду все функции с PHP.ru сюда пихать Well



Имя *: E-Mail *: Комментарий *:

CAPTCHA
Я не робот, а ты?