В phpBB 3.2 система уведомлений претерпела некоторые изменения, сделавшие расширения для phpBB 3.1, в которых используется система уведомлений, несовместимыми.
Для того, чтобы расширение для phpBB 3.1, использующее систему уведомлений, работало в phpBB 3.2, необходимо сделать следующее.
1) Внести изменения в определение сервиса уведомления в
services.yml
:Вместо
Код: Выделить всё
arguments:
- @user_loader
- @dbal.conn
- @cache.driver
- @user
- @auth
- @config
- %core.root_path%
- %core.php_ext%
- %tables.notification_types%
- %tables.notifications%
- %tables.user_notifications%
Код: Выделить всё
parent: notification.type.base
calls:
- [set_user_loader, [@user_loader]]
Код: Выделить всё
/** @var \phpbb\user_loader */
protected $user_loader;
public function set_user_loader(\phpbb\user_loader $user_loader)
{
$this->user_loader = $user_loader;
}
find_users_for_notification
и create_insert_array
:
Код: Выделить всё
public function find_users_for_notification($data, $options = array())
{
...
// phpBB 3.1:
$users[$row['user_id']] = array('');
// phpBB 3.2:
$users[$row['user_id']] = $this->notification_manager->get_default_methods();
...
}
Код: Выделить всё
public function create_insert_array($data, $pre_create_data = array())
{
...
// phpBB 3.1:
return parent::create_insert_array($data, $pre_create_data);
// phpBB 3.2:
parent::create_insert_array($data, $pre_create_data);
}
Патч, которым уведомления для phpBB 3.1 изменены для работы в phpBB 3.2: #032814387.
На этом всё. как видим, процесс миграции несложен. Дерзайте.