Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Инструменты миграции phpBB 3.1 / Ascraeus 
#1 

Аватар пользователя

Всем доброго времени суток, сегодня мы поговорим более подробно о инструментах миграции. :-00):
Инструменты могут быть использованы для создания модулей в Администраторском разделе (Модераторском и Пользовательском (настройки)), для заполнения первоначальными данными созданных полей и таблиц, для создания прав доступа. Поехали...
  1. Инструменты для создания модулей в Администраторском разделе (Модераторском и Пользовательском (настройки))
    Инструменты предназначены для создания\обновления\удаления модулей в Администраторском разделе (Модераторском и Пользовательском (настройки))
    • Добавление модуля
      Запрос
      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'
                )),
            ));
        }
         
  2. Инструменты для заполнения первоначальными данными созданных полей и таблиц
    Инструменты предназначены для заполнения, обновления либо удаления данных настроек расширений.
    • Добавление нового поля настроек
      Запрос
      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
  3. Инструменты для создания прав доступа
    Инструменты предназначены для добавления\удаления\обновления новых прав доступа для расширений
    • Добавление новых прав доступа
      Запрос
      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
          );
      }
       
Собственно и все, ничего сложного, пользуемся на здоровье :hi_hi_hi:


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

  Похожие темы  Автор  Ответов  Просмотров  Последнее сообщение 
Аватар пользователя phpBB 3.1.x/Ascraeus
Итак, дорогие дамы и господа, данная тема носит статус открывающей раздел и возможно эру нового phpBB - phpBB 3.1.x/Ascraeus. phpBB 3.1.x/Ascraeus - это продолжение серии популярных форумов phpBB, новая версия, скачок в будущее.
Тема закрыта
Аватар пользователя Требования к хостингу phpBB 3.1 / Ascraeus
Минимальные системные требования для установки phpBB 3.1 / Ascraeus

DeaDRoMeO

0

111

Аватар пользователя

28 фев 2017, 18:44

DeaDRoMeO

Аватар пользователя Конвертируем мод в расширение phpBB 3.1 / Ascraeus
Статья о том, как сконвертировать модификацию в расширение phpBB 3.1 / Ascraeus

DeaDRoMeO

0

192

Аватар пользователя

04 мар 2017, 08:55

DeaDRoMeO

Аватар пользователя Как обновить форум phpBB 3.1 Ascraeus
Пошаговая инструкция обновления версий форума phpBB 3.1 / Ascraeus

DeaDRoMeO

2

330

Аватар пользователя

22 июн 2017, 06:32

DeaDRoMeO

Аватар пользователя Что такое расширение в phpBB 3.1 / Ascraeus ?
Разбираемся в понятии и струтуре расширений в phpBB 3.1 / Ascraeus

DeaDRoMeO

0

133

Аватар пользователя

01 мар 2017, 13:56

DeaDRoMeO

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P