Расширения - это просто!

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Зарегистрирован: 31.05.2018 10:25
Благодарил (а): 13 раз
Поблагодарили: 1 раз

Re: Расширения - это просто!

Сообщение moonrise » 21.06.2018 23:53

Тогда буду считать, что все получилось (руками добавил видимость в админке)
Просто хороший человек

Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Зарегистрирован: 31.05.2018 10:25
Благодарил (а): 13 раз
Поблагодарили: 1 раз

Re: Расширения - это просто!

Сообщение moonrise » 27.06.2018 17:18

Умучился с этими правами :(
создал в миграторе пермишн и добавил его администраторам.
кусок мигратора 
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)),
);
Как сделать, что бы такое право можно было присвоить через админку выбранному пользователю?
В настройках пользовательских ролей стоит у этого права стоит "Нет".
В отображаемом списке глобальных прав пользователей нужного пермишена просто нет :(
Просто хороший человек

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 27.06.2018 17:40

moonrise писал(а):
27.06.2018 17:18
нужного пермишена просто нет
В listener'е отображение прав прописано?

Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Зарегистрирован: 31.05.2018 10:25
Благодарил (а): 13 раз
Поблагодарили: 1 раз

Re: Расширения - это просто!

Сообщение moonrise » 27.06.2018 17:43

не понял вопроса. выкладываю весь листенер
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'),
));
}
}
Отправлено спустя 2 минуты 1 секунду:
что-то вроде

Код: Выделить всё

	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;
	}	
забыл? :oops:
Последний раз редактировалось moonrise 27.06.2018 17:59, всего редактировалось 1 раз.
Просто хороший человек

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 27.06.2018 17:48

Да, что-то вроде того забыли (на какое событие эту функцию подписывать там же можно глянуть, где код посмотрели)

Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Зарегистрирован: 31.05.2018 10:25
Благодарил (а): 13 раз
Поблагодарили: 1 раз

Re: Расширения - это просто!

Сообщение moonrise » 27.06.2018 17:53

заработало. Благодарствую.
Просто хороший человек

Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 788
Зарегистрирован: 30.01.2011 21:08
Благодарил (а): 96 раз
Поблагодарили: 80 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Slash » 28.07.2018 16:45

Здравствуйте!
Подскажите, как правильно указать в шаблоне URL до папки с картинками в расширении, которые подключаются в контролере через тег <img>?
Пролистал тему, не увидел, как это сделать...
Спасибо.

Аватара пользователя
LavIgor
Поддержка
Поддержка
Сообщения: 3452
Зарегистрирован: 28.04.2014 8:16
Благодарил (а): 38 раз
Поблагодарили: 922 раза

Re: Расширения - это просто!

Сообщение LavIgor » 29.07.2018 0:29

Slash, либо через переменную, задаваемую самостоятельно в контроллере, либо через {ROOT_PATH}ext/vendor/name/path/to/pictures.

Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 788
Зарегистрирован: 30.01.2011 21:08
Благодарил (а): 96 раз
Поблагодарили: 80 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Slash » 29.07.2018 5:35

LavIgor, спасибо.
LavIgor писал(а):
29.07.2018 0:29
через переменную, задаваемую самостоятельно в контроллере
Как то так:

Код: Выделить всё

$this->template->assign_vars(array(
    'U_IMG_EXT' => 'Тут в наглую: ext/User/nameExt/style/nameStyle/img',
));

Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 9550
Зарегистрирован: 08.08.2011 2:02
Благодарил (а): 170 раз
Поблагодарили: 2650 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение Татьяна5 » 29.07.2018 7:11

Slash, с $this->phpbb_root_path ещё (а то с форумом в папке может не работать)

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4097
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 105 раз
Поблагодарили: 423 раза
Контактная информация:

Re: Расширения - это просто!

Сообщение Siava » 23.10.2018 14:27

А как можно в phpbb 3.2 отрезать часть текста с bbcode так, чтобы недостающие закрывающие bbcode автоматически "закрылись" бы?

Есть какой-нибудь оформленный текст и в него надо вставить разделитель вида "читать далее". Если просто ограничить число символов, то останутся незакрытые bbcode и форматирование поедет. В двойке я как-то с этим справлялся, а тут чёрт голову сломит :oops:
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14311
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 343 раза
Поблагодарили: 1487 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение rxu » 23.10.2018 20:14

Тут только либо вообще очищать текст от форматирования, либо обрезать по закрытию тегов ббкодов.
Изображение

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4097
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 105 раз
Поблагодарили: 423 раза
Контактная информация:

Re: Расширения - это просто!

Сообщение Siava » 23.10.2018 22:03

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>.
и не знаю оно ли это.., только даже если и оно, то как это использовать тоже не понимаю :mrgreen:
Еще одно нарушение правил и будете забанены. © Mr. Anderson
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 14311
Зарегистрирован: 12.05.2006 18:16
Откуда: Красноярск
Благодарил (а): 343 раза
Поблагодарили: 1487 раз
Контактная информация:

Re: Расширения - это просто!

Сообщение rxu » 24.10.2018 20:19

Это не проканает. Вот объяснение автора парсера https://www.phpbb.com/community/viewtop ... #p14713991
Изображение

Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4097
Зарегистрирован: 11.01.2005 14:29
Откуда: Питер
Благодарил (а): 105 раз
Поблагодарили: 423 раза
Контактная информация:

Re: Расширения - это просто!

Сообщение Siava » 02.02.2019 13:33

Никак не пойму что за фигня.. :?

Хочу, чтобы при каждом вызове функции 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
https://siava.ru/forum/ (phpbb 2.0.x, 3.1.x 3.2.x)

Ответить

Вернуться в «Для авторов»