
Инструменты могут быть использованы для создания модулей в Администраторском разделе (Модераторском и Пользовательском (настройки)), для заполнения первоначальными данными созданных полей и таблиц, для создания прав доступа. Поехали...
- Инструменты для создания модулей в Администраторском разделе (Модераторском и Пользовательском (настройки))
Инструменты предназначены для создания\обновления\удаления модулей в Администраторском разделе (Модераторском и Пользовательском (настройки))- Добавление модуля
ЗапросКод: Выделить всё
array('module.add', array( mixed $class [, mixed $parent [, array $data [, mixed $include_path ]]] ))
Параметры запросаПараметрОбязательное\Значения по умолчаниюЗначения и применениеclassОбязательноеТип модуля:acp (администраторский раздел),mcp (модераторский раздел),ucp (пользовательский раздел)parentПо умолчанию0 Родительскийmodule_id илиmodule_langname (языковая переменная родительского модуля) (0 если нет родителя)dataПо умолчаниюarray() Массив данных о новом модуле. Может быть прописан двумя различными способами. (см. ниже)include_pathПо умолчаниюfalse При необходимости укажите надо ли включать путь (работает только при использовании автоматического метода Добавить модуль)- Массив
$data - Добавление информации о модуле вручную
Для установки в категорию или по одному. Будут объединены с основным массивом, показанным немного ниже, но по крайней мере требуется значениеmodule_langname для отправки, и, если вы хотите создать модуль (вместо категории) необходимо значениеmodule_basename иmodule_mode .
ПримерКод: Выделить всё
$data = array( 'module_enabled' => 1, 'module_display' => 1, 'module_basename' => '', 'module_class' => $class, 'parent_id' => (int) $parent, 'module_langname' => '', 'module_mode' => '', 'module_auth' => '', );
- Добавление информации о модуле автоматически
Автоматическое вытягивание информации из файлаext/имя автора/имя расширения/acp/main_info.php
ПримерЕсли нужно вытянуть всю информацию, то можно убрать строкуКод: Выделить всё
$data = array( 'module_basename' => 'main_info', 'modes' => array('settings', 'log', 'flag'), );
Код: Выделить всё
'modes' => array('settings', 'log', 'flag'),
Код: Выделить всё
public function update_data() { return array( //Создание категории ACP_CAT_TEST_MOD в ACP_CAT_DOT_MODS array('module.add', array( 'acp', 'ACP_CAT_DOT_MODS', 'ACP_CAT_TEST_MOD' )), // Добавление прав и настроек из модуля acp_board в ACP_CAT_TEST_MOD автоматическим методом (с выборкой нужных параметров) array('module.add', array( 'acp', 'ACP_CAT_TEST_MOD', array( 'module_basename' => 'acp_board', 'modes' => array('settings', 'features'), ), )), // Добавление настроек аватар из модуля acp_board в ACP_CAT_TEST_MOD методом "вручную". array('module.add', array( 'acp', 'ACP_CAT_TEST_MOD', array( 'module_basename' => 'acp_board', 'module_langname' => 'ACP_AVATAR_SETTINGS', 'module_mode' => 'avatar', 'module_auth' => 'acl_a_board && ext_vendor/name', ), )), )); }
- Добавление информации о модуле вручную
- Массив
- Удаление модуля
ЗапросКод: Выделить всё
string umil::module_remove ( mixed $class [, mixed $parent [, array $module [, mixed $include_path ]]] )
Параметры запросаПараметрОбязательное\Значения по умолчаниюЗначения и применениеclassОбязательноеТип модуля:acp (администраторский раздел),mcp (модераторский раздел),ucp (пользовательский раздел)parentПо умолчанию0 Родительскийmodule_id илиmodule_langname (языковая переменная родительского модуля) (0 если нет родителя)dataПо умолчанию'' (две одинарные ковычки, между ними айди либо языковая переменная модуля)module_id илиmodule_langname модуля для удаления (способы см. ниже)include_pathПо умолчаниюfalse При необходимости укажите надо ли включать путь (работает только при использовании автоматического метода Добавить модуль)- Переменная
$module - Режим удаления "вручную"
При удалении модуля с помощью ручного метода можно указать строку (module_langname ) или целое число (module_id ) - Автоматический режим удаления
При удалении модуля с помощью автоматического метода вы можете использовать ту же информацию, передаваемую через массив данных$data при использовании автоматического методаmodule_add функции. Так же, как в режиме автоматической надстройки, автоматически найти модули, перечисленные в соответствии с заданнымmodule_basename и режимов из файла _info. (все тот же нашext/имя автора/имя расширения/acp/main_info.php )
Код: Выделить всё
public function update_data() { return array( //Удаляем настройки аватар от модуля acp_board из категории ACP_CAT_TEST_MOD методом "вручную". array('module.remove', array( 'acp', 'ACP_CAT_TEST_MOD', array( 'module_basename' => 'acp_board', 'module_langname' => 'ACP_AVATAR_SETTINGS', 'module_mode' => 'avatar', 'module_auth' => 'acl_a_board && ext_vendor/name', ), )), // Удаляем настройки и права от модуля acp_board из категории ACP_CAT_TEST_MOD методом "вручную". array('module.remove', array( 'acp', 'ACP_CAT_TEST_MOD', array( 'module_basename' => 'acp_board', 'modes' => array('settings', 'features'), ), )), // Удаляем новую категорию ACP_CAT_TEST_MOD из ACP_CAT_DOT_MODS array('module.remove', array( 'acp', 'ACP_CAT_DOT_MODS', 'ACP_CAT_TEST_MOD' )), )); }
- Режим удаления "вручную"
- Переменная
- Добавление модуля
- Инструменты для заполнения первоначальными данными созданных полей и таблиц
Инструменты предназначены для заполнения, обновления либо удаления данных настроек расширений.- Добавление нового поля настроек
ЗапросПримерКод: Выделить всё
array('config.add', array(имя поля, значение поля, динамическое\не динамическое )),
Код: Выделить всё
public function update_data() { return array( array('config.add', array('foo', 'bar')), // $config['foo'] = 'bar'; по умолчанию false - не динамическое array('config.add', array('foo2', 1, true)), // $config['foo2'] = '1'; true - динамическое, false - не динамическое ); }
- Обновление поля настроек
ЗапросПримерКод: Выделить всё
array('config.update', array(имя поля, новое значение)),
Код: Выделить всё
public function update_data() { return array( array('config.update', array('foo', 'bar')), // $config['foo'] = 'bar'; ); }
- Обновление поля настроек если его значение на данный момент равно нужному значению
ЗапросПримерКод: Выделить всё
array('config.update_if_equals', array(значение для сравнения, имя поля, новое значение поля)),
Код: Выделить всё
public function update_data() { return array( array('config.update_if_equals', array('bar', 'foo', 'bar2')), // if ($config['foo'] == 'bar') { $config['foo'] = 'bar2'; } ); }
- Удаление поля настроек
ЗапросПримерКод: Выделить всё
array('config.remove', array(имя поля)),
Код: Выделить всё
public function update_data() { return array( array('config.remove', array('foo')), // unset($config['foo']); ); }
- Важное примечание:
config используется для хранения числовых данных переменных, если нужно хранить текст - используйтеconfig_text вместоconfig
- Добавление нового поля настроек
- Инструменты для создания прав доступа
Инструменты предназначены для добавления\удаления\обновления новых прав доступа для расширений- Добавление новых прав доступа
ЗапросПримерКод: Выделить всё
array('permission.add', array(имя права доступа, global (по умолчанию: true) , копировать с (по умолчанию: false) )),
Код: Выделить всё
public function update_data() { return array( array('permission.add', array('a_new')), // Новое глобальное право для администраторов a_new array('permission.add', array('m_new')), // Новое глобальное право для модераторов m_new array('permission.add', array('m_new', false)), // Новое локальное право для m_new array('permission.add', array('u_new')), // Новое глобальное право для пользователей u_new array('permission.add', array('u_new', false)), // Новое локальное право для пользователей u_new array('permission.add', array('a_copy', true, 'a_existing')), // Новое глобальное право для администраторов a_copy, скопирует для себя настройки с права a_existing ); }
- Удаления прав доступа
ЗапросПримерКод: Выделить всё
array('permission.remove', array(имя права, global (по умолчанию: true) )),
Код: Выделить всё
public function update_data() { return array( array('permission.remove', array('a_new')), // Удаление глобального администраторского права a_new array('permission.remove', array('m_new')), // Удаление глобального модераторского права m_new array('permission.remove', array('m_new', false)), // Удаление локального модераторского права m_new array('permission.remove', array('u_new')), // Удаление глобального пользовательского права u_new array('permission.remove', array('u_new', false)), // Удаление локального пользовательского права u_new ); }
- Добавление ролей
ЗапросПримерКод: Выделить всё
array('permission.role_add', array(имя роли, тип роли (u_, m_, a_), описание роли )),
Код: Выделить всё
public function update_data() { return array( array('permission.role_add', array('new admin role', 'a_', 'a new role')), // Новая администраторская роль "new admin role" array('permission.role_add', array('new moderator role', 'm_', 'a new role')), // Новая модераторская роль "new moderator role" array('permission.role_add', array('new user role', 'u_', 'a new role')), // Новая пользовательская роль "new user role" ); }
- Обновление роли
ЗапросПримерКод: Выделить всё
array('permission.role_update', array(старое имя роли, новое имя роли )),
Код: Выделить всё
public function update_data() { return array( array('permission.role_update', array('new admin role', 'new name for admin role')), // Переименование "new admin role" в "new name for admin role" ); }
- Удаление роли
ЗапросПримерКод: Выделить всё
array('permission.role_remove', array(имя роли)),
Код: Выделить всё
public function update_data() { return array( array('permission.role_remove', array('new admin role')), // Удаление роли "new admin role" array('permission.role_remove', array('new moderator role')), // Удаление роли "new moderator role" array('permission.role_remove', array('new user role')), // Удаление роли "new user role" ); }
- Присваивание прав
ЗапросПримерКод: Выделить всё
array('permission.permission_set', array(роль\имя группы, имена прав, тип ('role', 'group', по умолчанию: role), получат право? (По умолчанию: true) )),
Код: Выделить всё
public function update_data() { return array( array('permission.permission_set', array('ROLE_ADMIN_FULL', 'a_new')), // Присвоение для роли ROLE_ADMIN_FULL прав доступа a_new array('permission.permission_set', array('ROLE_ADMIN_FULL', 'a_new2', 'role', false)), // Права a_new2 не будут доступны для роли ROLE_ADMIN_FULL array('permission.permission_set', array('REGISTERED', 'u_new', 'group')), // Присвоение для группы REGISTERED прав доступа u_new ); }
- Удаление прав
ЗапросПримерКод: Выделить всё
array('permission.permission_unset', array(роль\имя группы, имя права, тип ('role', 'group', по умолчанию: role) )),
Код: Выделить всё
public function update_data() { return array( array('permission.permission_unset', array('ROLE_ADMIN_FULL', 'a_new')), // Удаление права a_new у роли ROLE_ADMIN_FULL array('permission.permission_unset', array('REGISTERED', 'u_new', 'group')), // Удаление права u_new у группы REGISTERED ); }
- Добавление новых прав доступа
