Расширения - это просто!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB 1.4.2
- Сообщения: 57
- Стаж: 6 лет 10 месяцев
- Благодарил (а): 13 раз
- Поблагодарили: 1 раз
Re: Расширения - это просто!
Тогда буду считать, что все получилось (руками добавил видимость в админке)
Просто хороший человек
-
- phpBB 1.4.2
- Сообщения: 57
- Стаж: 6 лет 10 месяцев
- Благодарил (а): 13 раз
- Поблагодарили: 1 раз
Re: Расширения - это просто!
Умучился с этими правами 
создал в миграторе пермишн и добавил его администраторам.
Как сделать, что бы такое право можно было присвоить через админку выбранному пользователю?
В настройках пользовательских ролей стоит у этого права стоит "Нет".
В отображаемом списке глобальных прав пользователей нужного пермишена просто нет

создал в миграторе пермишн и добавил его администраторам.
кусок мигратора
public function update_data()
{
return array(
// Add permissions
array('permission.add', array('u_viewpeopleslistpage', true)),
array('permission.add', array('u_editpeopleslistpage', true)),
// Add permissions sets
array('permission.permission_set', array('ROLE_ADMIN_STANDARD', 'u_viewpeopleslistpage', 'role', true)),
array('permission.permission_set', array('ADMINISTRATORS', 'u_viewpeopleslistpage', 'group', true)),
array('permission.permission_set', array('ROLE_MOD_FULL', 'u_viewpeopleslistpage', 'role', true)),
array('permission.permission_set', array('GLOBAL_MODERATORS', 'u_viewpeopleslistpage', 'group', true)),
//
array('permission.permission_set', array('ROLE_ADMIN_STANDARD', 'u_editpeopleslistpage', 'role', true)),
array('permission.permission_set', array('ADMINISTRATORS', 'u_editpeopleslistpage', 'group', true)),
);
{
return array(
// Add permissions
array('permission.add', array('u_viewpeopleslistpage', true)),
array('permission.add', array('u_editpeopleslistpage', true)),
// Add permissions sets
array('permission.permission_set', array('ROLE_ADMIN_STANDARD', 'u_viewpeopleslistpage', 'role', true)),
array('permission.permission_set', array('ADMINISTRATORS', 'u_viewpeopleslistpage', 'group', true)),
array('permission.permission_set', array('ROLE_MOD_FULL', 'u_viewpeopleslistpage', 'role', true)),
array('permission.permission_set', array('GLOBAL_MODERATORS', 'u_viewpeopleslistpage', 'group', true)),
//
array('permission.permission_set', array('ROLE_ADMIN_STANDARD', 'u_editpeopleslistpage', 'role', true)),
array('permission.permission_set', array('ADMINISTRATORS', 'u_editpeopleslistpage', 'group', true)),
);
В настройках пользовательских ролей стоит у этого права стоит "Нет".
В отображаемом списке глобальных прав пользователей нужного пермишена просто нет

Просто хороший человек
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
-
- phpBB 1.4.2
- Сообщения: 57
- Стаж: 6 лет 10 месяцев
- Благодарил (а): 13 раз
- Поблагодарили: 1 раз
Re: Расширения - это просто!
не понял вопроса. выкладываю весь листенер
Отправлено спустя 2 минуты 1 секунду:
что-то вродезабыл? 
listener.php
<?php
/**
*
* @package phpBB Extension - Peoples list
* @copyright (c) не важно
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace krab24\peopleslist\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
/**
* Assign functions defined in this class to event listeners in the core
*
* @return array
* @static
* @access public
*/
protected $auth;
static public function getSubscribedEvents()
{
return array(
'core.user_setup' => 'load_language_on_setup',
'core.page_header' => 'add_page_header_link',
);
}
/**
* Constructor
*/
public function __construct(\phpbb\template\template $template, $phpbb_root_path, \phpbb\auth\auth $auth)
{
$this->template = $template;
$this->phpbb_root_path = $phpbb_root_path;
$this->auth = $auth;
}
public function load_language_on_setup($event)
{
$lang_set_ext = $event['lang_set_ext'];
$lang_set_ext[] = array(
'ext_name' => 'krab24/peopleslist',
'lang_set' => 'peopleslist_lng',
);
$event['lang_set_ext'] = $lang_set_ext;
}
public function add_page_header_link($event)
{
$this->template->assign_vars(array(
'U_PEOPLES_LIST' => append_sid("{$this->phpbb_root_path}peopleslist"),
'U_CAN_VIEW_LIST' => !$this->auth->acl_gets('u_viewpeopleslistpage'),
'U_CAN_EDIT_LIST' => !$this->auth->acl_gets('u_editpeopleslistpage'),
));
}
}
/**
*
* @package phpBB Extension - Peoples list
* @copyright (c) не важно
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace krab24\peopleslist\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
/**
* Assign functions defined in this class to event listeners in the core
*
* @return array
* @static
* @access public
*/
protected $auth;
static public function getSubscribedEvents()
{
return array(
'core.user_setup' => 'load_language_on_setup',
'core.page_header' => 'add_page_header_link',
);
}
/**
* Constructor
*/
public function __construct(\phpbb\template\template $template, $phpbb_root_path, \phpbb\auth\auth $auth)
{
$this->template = $template;
$this->phpbb_root_path = $phpbb_root_path;
$this->auth = $auth;
}
public function load_language_on_setup($event)
{
$lang_set_ext = $event['lang_set_ext'];
$lang_set_ext[] = array(
'ext_name' => 'krab24/peopleslist',
'lang_set' => 'peopleslist_lng',
);
$event['lang_set_ext'] = $lang_set_ext;
}
public function add_page_header_link($event)
{
$this->template->assign_vars(array(
'U_PEOPLES_LIST' => append_sid("{$this->phpbb_root_path}peopleslist"),
'U_CAN_VIEW_LIST' => !$this->auth->acl_gets('u_viewpeopleslistpage'),
'U_CAN_EDIT_LIST' => !$this->auth->acl_gets('u_editpeopleslistpage'),
));
}
}
что-то вроде
Код: Выделить всё
public function add_permission($event)
{
$permissions = $event['permissions'];
$permissions['u_viewpeopleslistpage'] = array('lang' => 'ACL_U_VIEWPEOPLESLISTPAGE', 'cat' => 'misc');
$permissions['u_editpeopleslistpage'] = array('lang' => 'ACL_U_EDITPEOPLESLISTPAGE', 'cat' => 'misc');
$event['permissions'] = $permissions;
}

Последний раз редактировалось moonrise 27.06.2018 17:59, всего редактировалось 1 раз.
Просто хороший человек
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Расширения - это просто!
Да, что-то вроде того забыли (на какое событие эту функцию подписывать там же можно глянуть, где код посмотрели)
-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
Здравствуйте!
Подскажите, как правильно указать в шаблоне URL до папки с картинками в расширении, которые подключаются в контролере через тег
Пролистал тему, не увидел, как это сделать...
Спасибо.
Подскажите, как правильно указать в шаблоне URL до папки с картинками в расширении, которые подключаются в контролере через тег
<img>
?Пролистал тему, не увидел, как это сделать...
Спасибо.
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
Slash, либо через переменную, задаваемую самостоятельно в контроллере, либо через
{ROOT_PATH}ext/vendor/name/path/to/pictures
.-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
LavIgor, спасибо.
Как то так:
Код: Выделить всё
$this->template->assign_vars(array(
'U_IMG_EXT' => 'Тут в наглую: ext/User/nameExt/style/nameStyle/img',
));
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Расширения - это просто!
Slash, с
$this->phpbb_root_path
ещё (а то с форумом в папке может не работать)-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Re: Расширения - это просто!
А как можно в phpbb 3.2 отрезать часть текста с bbcode так, чтобы недостающие закрывающие bbcode автоматически "закрылись" бы?
Есть какой-нибудь оформленный текст и в него надо вставить разделитель вида "читать далее". Если просто ограничить число символов, то останутся незакрытые bbcode и форматирование поедет. В двойке я как-то с этим справлялся, а тут чёрт голову сломит
Есть какой-нибудь оформленный текст и в него надо вставить разделитель вида "читать далее". Если просто ограничить число символов, то останутся незакрытые bbcode и форматирование поедет. В двойке я как-то с этим справлялся, а тут чёрт голову сломит

Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
Тут только либо вообще очищать текст от форматирования, либо обрезать по закрытию тегов ббкодов.
-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Re: Расширения - это просто!
rxu, просто тут я нашёл

и не знаю оно ли это.., только даже если и оно, то как это использовать тоже не понимаюautoClose
Example: $tag->rules->autoClose(true);
Start tags of this tag are automatically closed if they are not paired with an end tag. This rule exists primarily to deal with void elements such as <img>.

Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
Это не проканает. Вот объяснение автора парсера https://www.phpbb.com/community/viewtop ... #p14713991
-
- Поддержка
- Сообщения: 5426
- Стаж: 20 лет 3 месяца
- Откуда: Питер
- Благодарил (а): 177 раз
- Поблагодарили: 749 раз
Re: Расширения - это просто!
Никак не пойму что за фигня..
Хочу, чтобы при каждом вызове функции
Но нифига из этого события не берутся данные. Ни в какую.

Хочу, чтобы при каждом вызове функции
update_session()
выполнялся sql-запрос update phpbb_users, но один параметр запроса должен браться из таблицы phpbb_sessions (это session_time текущего юзера). В функции update_session()
даже есть событие core.update_session_after
.
Код: Выделить всё
/**
* Event to send update session information to extension
* Read-only event
*
* @event core.update_session_after
* @var array session_data Associative array of session keys to be updated
* @var string session_id current user's session_id
* @since 3.1.6-RC1
*/
$session_time = $event['session_data']['session_time'];
нулевой. $session_data = $event['session_data']; $session_time = $session_data['session_time'];
тоже нулевой.Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb2.0.x 3.5.x)
Ты очистил кеш? © Sheer
https://siava.ru (phpbb