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

-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Расширения - это просто!
LavIgor
В 3.1 ссылки с get-параметрами выглядят так:
thankslist/givens/44631/true
И соответственно в
Не пойму, как записать случай, когда параметров много и они используются в разных комбинациях
К примеру, есть:
(Что нужны разные контроллеры в
В 3.1 ссылки с get-параметрами выглядят так:
thankslist/givens/44631/true
И соответственно в
routing.yml
Код: Выделить всё
gfksx_ThanksForPosts_thankslist_controller_user:
pattern: /thankslist/{mode}/{author_id}/{give}{tslash}
defaults: { _controller: gfksx.ThanksForPosts.controller.thankslist:main, top: 0, start: 0, sort_key: "a", sort_dir: "d", topic_id: 0, return_chars: 300 }
requirements:
mode: \w+
author_id: \d+
give: true|false
tslash : "/?"
К примеру, есть:
Код: Выделить всё
/page?i=6&y=8
/page?u=2&y=3
/page?m=2&mode=json
/page?u=3
routing.yml
это понятно. Как именно их можно записать, особенно с одинаковыми типами данных, - непонятно)-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
Татьяна5, это не GET-параметры. Это параметры маршрута.
И всё же нужно чётко знать, какими они могут быть. Даже GET-параметры не абсолютно произвольны.
И всё же нужно чётко знать, какими они могут быть. Даже GET-параметры не абсолютно произвольны.
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Расширения - это просто!
LavIgor
Более 10 параметров. Используются в разных вариациях.
Так что мне бы пример как это всё организовать...
Более 10 параметров. Используются в разных вариациях.
Так что мне бы пример как это всё организовать...
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
Татьяна5, для каждой комбинации по идее можно создать свой маршрут.
Тут всё зависит от конкретной задачи.
Можно обобщать маршруты и задавать значения по умолчанию, система очень гибкая в этом плане.
Отправлено спустя 2 минуты 14 секунд:
Вот здесь документация: http://symfony.com/doc/current/routing.html.
А вот один из примеров реализации в привязке к phpBB: https://github.com/phpbb/customisation- ... 2.x/config.
Тут всё зависит от конкретной задачи.
Можно обобщать маршруты и задавать значения по умолчанию, система очень гибкая в этом плане.
Отправлено спустя 2 минуты 14 секунд:
Вот здесь документация: http://symfony.com/doc/current/routing.html.
А вот один из примеров реализации в привязке к phpBB: https://github.com/phpbb/customisation- ... 2.x/config.
-
- Поддержка
- Сообщения: 12752
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Расширения - это просто!
То есть можно создать нечто вроде
Код: Выделить всё
/page/i/2/y/8
/page/u/3
/page/u/2/y/3
/page/m/2/mode/json
То, что надо
-
- phpBB 3.0.0 RC5
- Сообщения: 1668
- Стаж: 10 лет 5 месяцев
- Благодарил (а): 235 раз
- Поблагодарили: 173 раза
Re: Расширения - это просто!
Можно ли как-то узнать, есть ли прослушивающие определённое событие ядра расширения?
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Расширения - это просто!
Искать название события в перехватчике
Например
Отсюда видно, что в расширении используются события
Например
Код: Выделить всё
/**
* Assign functions defined in this class to event listeners in the core
*
* @return array
* @static
* @access public
*/
static public function getSubscribedEvents()
{
return array(
'core.user_setup' => 'load_language_on_setup',
'core.viewtopic_assign_template_vars_before' => 'get_topic_data',
'core.viewtopic_modify_post_row' => 'modify_post_row',
'core.page_header_after' => 'page_header_after',
);
}
core.user_setup
core.viewtopic_assign_template_vars_before
core.viewtopic_modify_post_row
core.page_header_after
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
Sumanai, есть такой метод как
Для конкретного события указывается его имя, например
Но вывод там очень большой - выводятся все элементы объекта класса слушателя и его зависимостей, чтобы получить только имена классов, нужна фильтрация.
Но, думаю, разберетесь.
Код: Выделить всё
$phpbb_dispatcher->getListeners();
Код: Выделить всё
$phpbb_dispatcher->getListeners('core.user_setup');
Но, думаю, разберетесь.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
Тогда лучше использовать
hasListeners()
, чтобы не кушало так много памяти.-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
Привет!
Подскажите, какое событие использовать для внесение правок в текст, перед тем, как текст (сообщения) будет сохранен в БД?
И что за переменная отвечает за текст поста?
Спасибо.

Подскажите, какое событие использовать для внесение правок в текст, перед тем, как текст (сообщения) будет сохранен в БД?
И что за переменная отвечает за текст поста?
Спасибо.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Расширения - это просто!
Event List
Отправлено спустя 1 минуту 35 секунд:
[dev] STK for phpBB 3.1.x & 3.2.x
Отправлено спустя 1 минуту 35 секунд:
[dev] STK for phpBB 3.1.x & 3.2.x
СРЕДСТВА РАЗРАБОТКИ
-- События ядра - Здесь перечислены все события ядра и шаблонов с их кратким описанием, которые можно использовать при создании расширенийОбщие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
Что-то я даже с подсказками не могу найти нужное. Ни событие, ни переменную.
-
- phpBB 1.4.4
- Сообщения: 153
- Стаж: 10 лет 6 месяцев
- Благодарил (а): 44 раза
- Поблагодарили: 41 раз
Re: Расширения - это просто!
Slash, как вариант: Re: [release] Быстрый ответ: перезагрузка (QuickReply Reloaded) (подводные камни там же).