Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

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

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

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

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

Сообщение moonrise »

Тогда буду считать, что все получилось (руками добавил видимость в админке)
Просто хороший человек
Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Стаж: 5 лет 9 месяцев
Благодарил (а): 13 раз
Поблагодарили: 1 раз

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

Сообщение moonrise »

Умучился с этими правами :(
создал в миграторе пермишн и добавил его администраторам.
кусок мигратора 
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
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

Сообщение Татьяна5 »

moonrise писал(а): 27.06.2018 17:18 нужного пермишена просто нет
В listener'е отображение прав прописано?
Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Стаж: 5 лет 9 месяцев
Благодарил (а): 13 раз
Поблагодарили: 1 раз

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

Сообщение moonrise »

не понял вопроса. выкладываю весь листенер
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
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

Сообщение Татьяна5 »

Да, что-то вроде того забыли (на какое событие эту функцию подписывать там же можно глянуть, где код посмотрели)
Аватара пользователя
moonrise
phpBB 1.4.2
Сообщения: 57
Стаж: 5 лет 9 месяцев
Благодарил (а): 13 раз
Поблагодарили: 1 раз

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

Сообщение moonrise »

заработало. Благодарствую.
Просто хороший человек
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 13 лет 1 месяц
Благодарил (а): 101 раз
Поблагодарили: 79 раз
Контактная информация:

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

Сообщение Slash »

Здравствуйте!
Подскажите, как правильно указать в шаблоне URL до папки с картинками в расширении, которые подключаются в контролере через тег <img>?
Пролистал тему, не увидел, как это сделать...
Спасибо.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 9 лет 11 месяцев
Благодарил (а): 41 раз
Поблагодарили: 932 раза

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

Сообщение LavIgor »

Slash, либо через переменную, задаваемую самостоятельно в контроллере, либо через {ROOT_PATH}ext/vendor/name/path/to/pictures.
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 13 лет 1 месяц
Благодарил (а): 101 раз
Поблагодарили: 79 раз
Контактная информация:

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

Сообщение Slash »

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

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

$this->template->assign_vars(array(
    'U_IMG_EXT' => 'Тут в наглую: ext/User/nameExt/style/nameStyle/img',
));
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

Сообщение Татьяна5 »

Slash, с $this->phpbb_root_path ещё (а то с форумом в папке может не работать)
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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

Сообщение Siava »

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

Есть какой-нибудь оформленный текст и в него надо вставить разделитель вида "читать далее". Если просто ограничить число символов, то останутся незакрытые bbcode и форматирование поедет. В двойке я как-то с этим справлялся, а тут чёрт голову сломит :oops:
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

Тут только либо вообще очищать текст от форматирования, либо обрезать по закрытию тегов ббкодов.
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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

Сообщение Siava »

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
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

Это не проканает. Вот объяснение автора парсера https://www.phpbb.com/community/viewtop ... #p14713991
Изображение
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5270
Стаж: 19 лет 2 месяца
Откуда: Питер
Благодарил (а): 188 раз
Поблагодарили: 800 раз
Контактная информация:

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

Сообщение Siava »

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

Хочу, чтобы при каждом вызове функции 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 (phpbb 2.0.x 3.5.x)
Ответить

Вернуться в «Для разработчиков»