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

-
- Former team member
- Сообщения: 933
- Стаж: 12 лет 8 месяцев
- Откуда: Израиль
- Благодарил (а): 72 раза
- Поблагодарили: 248 раз
Re: Расширения - это просто!
Может кто подскажет:
в шаблон кастомной страницы хочу включить posting_buttons.html. Шаблон находится в myExt/styles/all/template
Пишу так
получаю
в шаблон кастомной страницы хочу включить posting_buttons.html. Шаблон находится в myExt/styles/all/template
Пишу так
Код: Выделить всё
<!-- INCLUDE {T_TEMPLATE_PATH}/posting_buttons.html -->
, но выдеденный синеньким путь вроде бы и правильныйUnable to find template "./styles/prosilver/template/posting_buttons.html" (looked into: ./ext/alg/myExt/styles/all/template, ./ext/alg/myExt/styles/all/theme, ./styles/prosilver/template, ./styles/prosilver/theme) in "leaderpanel_body.html" at line 157.
Там упёртость и инертность, могут, кстати, в морду дать.
А ты проявляй интеллигентность, постарайся убеждать...
Т. Шаов
А ты проявляй интеллигентность, постарайся убеждать...
Т. Шаов
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 10 лет 2 месяца
- Благодарил (а): 7 раз
Re: Расширения - это просто!
Сделал по этому примеру.Anvar писал(а):Там же есть событияcore.login_box_redirect
иcore.login_box_failed
, подключить можно свой шаблон в listener.
...
Разместить в расширении@ext_name/
В config/services.yml (часть):
Код: Выделить всё
gplvote.signdoc.listener:
class: gplvote\signdoc\event\listener
arguments:
- @auth
- @config
- @dbal.conn
- @template
- @user
- %core.root_path%
- %core.php_ext%
tags:
- { name: event.listener }
Код: Выделить всё
namespace gplvote\signdoc\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
protected $auth;
protected $config;
protected $db;
protected $template;
protected $user;
protected $phpbb_root_path;
protected $php_ext;
public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver $db, \phpbb\template\template $template, \phpbb\user $user, $phpbb_root_path, $php_ext)
{
$this->auth = $auth;
$this->config = $config;
$this->db = $db;
$this->template = $template;
$this->user = $user;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;
}
static public function getSubscribedEvents()
{
return array(
'core.login_box_redirect' => 'login_box',
'core.login_box_failed' => 'login_box',
);
}
public function login_box($event)
{
page_header($this->user->lang['LOGIN'], false);
$this->template->set_filenames(array('body' => '@gplvote_signdoc/login_body.html'));
page_footer();
exit();
}
}
Поставил логирование - в метод login_box исполнение не передается вообще.
Добавлено спустя 1 час 43 минуты 36 секунд:
Через метод get_login_data auth-провайдера мне удалось добиться того, что-бы контент из моего шаблона разместился ниже формы логина. Но этого недостаточно. Мне нужно еще и как-то отключить стандартную форму логина.
-
- phpBB 3.0.0 RC7
- Сообщения: 1798
- Стаж: 12 лет 11 месяцев
- Благодарил (а): 97 раз
- Поблагодарили: 91 раз
- Забанен: Бессрочно
Re: Расширения - это просто!
Может вот так:UncleAndy писал(а): Мне нужно еще и как-то отключить стандартную форму логина
Код: Выделить всё
#login {
display: none;
}
phpBBex
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 10 лет 2 месяца
- Благодарил (а): 7 раз
Re: Расширения - это просто!
Не - так не получится. Вывод шаблона из провайдера производится внутри этой формы. Я так скрою и нужный вывод.xisp писал(а):Может вот так:
В принципе, можно так сделать для #login .panel .inner .content. Тогда скроется именно нужный блок.
Где в расширении можно разместить этот CSS?
-
- phpBB 3.0.0 RC7
- Сообщения: 1798
- Стаж: 12 лет 11 месяцев
- Благодарил (а): 97 раз
- Поблагодарили: 91 раз
- Забанен: Бессрочно
Re: Расширения - это просто!
В данном случаи лучше всего включить его в код страницы. Выделять в отдельный файл три строчки- это лишнее. Вот если у вас будут ещё стили, то подключайте их обычным методом (примеры есть во многих расширениях).UncleAndy писал(а):Где в расширении можно разместить этот CSS?
phpBBex
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 10 лет 2 месяца
- Благодарил (а): 7 раз
Re: Расширения - это просто!
В принципе, получилось. Но как-то этот вариант коряво выглядит. Как костыль. Неужели нет штатного способа в расширении заменить страницу логина целиком?xisp писал(а):В данном случаи лучше всего включить его в код страницы.
-
- Former team member
- Сообщения: 1965
- Стаж: 15 лет 1 месяц
- Благодарил (а): 57 раз
- Поблагодарили: 622 раза
Re: Расширения - это просто!
UncleAndy, Как вариант, заменить ссылку для гостей
{U_LOGIN_LOGOUT}
и сделать свою страницу.-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
UncleAndy
У вас метод аутентификации реализован отдельным контроллером, или как?
У вас метод аутентификации реализован отдельным контроллером, или как?
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 10 лет 2 месяца
- Благодарил (а): 7 раз
Re: Расширения - это просто!
У этого метода аутентификации две части, которые работают совместно - контроллер, которые обрабатывает роуты для приема данных из мобильного приложения, и auth провайдер, который выдает пользователю QR-код для сканирования мобильным приложением и проверяет полноту имеющихся данных для логина после нажатия пользователем кнопки "Вход".rxu писал(а):У вас метод аутентификации реализован отдельным контроллером, или как?
В принципе, мне уже удалось добиться что-бы метод работал. Остались два вопроса:
1. При возврате из метода login() со статусом LOGIN_SUCCESS_CREATE_PROFILE у меня сейчас происходит повторная выдача формы логина. Возможно-ли сделать так, что-бы и пользователь автоматически создавался и что-бы он сразу-же логинился?
2. Т.к. у меня получается так что имя пользователя генерируется автоматически, хотелось-бы давать пользователям возможность изменять его. Но навскидку я таковой не обнаружил. Ее можно где-то включить?
-
- phpBB 3.0.0 RC7
- Сообщения: 1798
- Стаж: 12 лет 11 месяцев
- Благодарил (а): 97 раз
- Поблагодарили: 91 раз
- Забанен: Бессрочно
Re: Расширения - это просто!
Администраторский раздел- Функции конференции- Разрешить смену имени пользователя: поставить в да.UncleAndy писал(а):Ее можно где-то включить?
Но для вашего метода уместнее сделать другой вариант, с разрешением однократной смены ника. Я бы не хотел, чтобы пользователи сами меняли ники (а вдруг спам или нецензурщина у старого пользователя?), но сменить ник "улогин100500" (или что там у вас) на человеческий хотелось бы.
phpBBex
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 10 лет 2 месяца
- Благодарил (а): 7 раз
Re: Расширения - это просто!
Согласен. Но как это организовать технически? Если это возможно, было-бы неплохо включать эту опцию прямо из расширения.xisp писал(а):Но для вашего метода уместнее сделать другой вариант, с разрешением однократной смены ника.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
UncleAndy
Кастомный провайдер может быть добавлен расширением, так, что его можно будет выбрать в качестве основного в админразделе. См. Authentication providers
или я уже писал об этом.
Кастомный провайдер может быть добавлен расширением, так, что его можно будет выбрать в качестве основного в админразделе. См. Authentication providers
или я уже писал об этом.
-
- phpBB 1.4.1
- Сообщения: 44
- Стаж: 10 лет 2 месяца
- Благодарил (а): 7 раз
Re: Расширения - это просто!
Поправка по данной ситуации. При этом пользователь в базе создается, но в форму логина возвращается ошибка "Не удалось создать профиль пользователя.". Из-за чего такое может быть?UncleAndy писал(а):1. При возврате из метода login() со статусом LOGIN_SUCCESS_CREATE_PROFILE у меня сейчас происходит повторная выдача формы логина. Возможно-ли сделать так, что-бы и пользователь автоматически создавался и что-бы он сразу-же логинился?
Добавлено спустя 1 минуту 5 секунд:
Не совсем понял на какой именно вопрос этот ответ. Я уже написал, что у меня есть и работает свой кастомный провайдер в расширении. Осталось только разобраться с нюансами.rxu писал(а):Кастомный провайдер может быть добавлен расширением