Уважаемые пользователи!
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 | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Роман 58
phpBB 1.0.0
Сообщения: 6
Стаж: 7 лет 3 месяца
Благодарил (а): 2 раза

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

Сообщение Роман 58 »

Ребята!
Не могу установить расширение,что только не делал а ничего не получается.. Что не так? Скачал с офф сайта. Распоковал. Установил в папку, а ничего нет.. Подскажите
Вложения
Сюда устанавливаю
Сюда устанавливаю
2017-01-10_202326.png (583 байт) 392 просмотра
Ничего не выходит,не появляется
Ничего не выходит,не появляется
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

Здесь форум для авторов расширений, причем здесь установка...
Изображение
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 472
Стаж: 12 лет 3 месяца
Благодарил (а): 161 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение Webliberty »

Добрый вечер! Подскажите, пожалуйста, существует ли возможность заменить строку в файле forumlist_body.html?

Ищу способ заменить строку:

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

<dl class="row-item {forumrow.FORUM_IMG_STYLE}">
на: Дело в том, что это единственная правка в этом файле в своем стиле с наследованием от prosilver, поэтому хочется сделать небольшое простенькое расширение для этого :roll:
Мой форум на phpBB 3.3.8 (начинал с phpBB 3.0.9)
Подпись заверена нотариусом :P
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

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

Webliberty, перекрыть ненужные стили в css - не вариант?
Можно ещё через javascript, но это более громоздко, да и срабатывать будет не сразу
Аватара пользователя
Webliberty
phpBB 2.0.5
Сообщения: 472
Стаж: 12 лет 3 месяца
Благодарил (а): 161 раз
Поблагодарили: 66 раз
Контактная информация:

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

Сообщение Webliberty »

Вариант, но думал есть более элегантное решение)
Мой форум на phpBB 3.3.8 (начинал с phpBB 3.0.9)
Подпись заверена нотариусом :P
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

Есть мысль добавить пару событий для манипуляции скомпилированным потоком перед выводом его в браузер, и я ее думаю.
Изображение
Аватара пользователя
Борис Бердичевский
phpBB 3.0.0 RC1
Сообщения: 1457
Стаж: 16 лет 2 месяца
Откуда: Израиль, Беэр-Шева
Благодарил (а): 45 раз
Поблагодарили: 81 раз
Контактная информация:

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

Сообщение Борис Бердичевский »

rxu писал(а): Борис Бердичевский, здесь пояснял другой способ использования изображений из расширений
Ну, это фактически первый способ, что я использовал, с INCLUDECSS.
После нескольких лет общения здесь и техсопровождения форумов я наконец понял, что ничего не понимаю в phpBB!
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

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

В движке есть файл config/parameters.yml. Как понимаю, подобным образом можно задать константы. Как грамотней использовать подобное в расширениях?
Konstancius
phpBB 1.2.1
Сообщения: 20
Стаж: 15 лет 4 месяца
Поблагодарили: 9 раз

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

Сообщение Konstancius »

Татьяна5 писал(а):В движке есть файл config/parameters.yml. Как понимаю, подобным образом можно задать константы. Как грамотней использовать подобное в расширениях?
Не уверен, что это будет просто и грамотно. Все таки там должны находиться настройки уровня приложения phpBB. А для расширения логичней задавать настройки в файлах расширения. Например, в первом сообщении темы файл services.yml:

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

parameters:
    my_ext.moderator.color: blue
    my_ext.admin.color: red
services:
    tatiana5.quickreply.listener:
        class: tatiana5\quickreply\event\listener
        arguments:
            - @auth
            - @config
            - @dbal.conn
            - @template
            - @user
            - %core.root_path%
            - %core.php_ext%
            - %my_ext.moderator.color%
            - %my_ext.admin.color%
        tags:
            - { name: event.listener }
Ну и соответственно изменить конструктор расширения, добавив в него переменные для хранения, например $modColor и $adminColor. Теоретически это должно сработать, я не пробовал.
А доступ к переменным из config.yml symfony можно получить из контейнера DI, например, написав в контроллере: $this->container->getParameter('Имя.параметра')
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

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

Konstancius писал(а): задавать настройки в файлах расширения
Спрашивала про аналог файла parameters.yml в расширении
Konstancius писал(а): файл services.yml
И что-то не подумала, что можно там задать параметры, без создания нового файла .yml (который ещё неизвестно подхватится ли)
Спасибо

Отправлено спустя 1 час 25 минут 33 секунды:
Сделала так:
services.yml

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

imports:
    - { resource: parameters.yml }

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

services:
    tatiana5.geotopics.listener:
        class: tatiana5\geotopics\event\listener
        arguments:
            - %const.ymsm_i_seamless%
parameters.yml

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

parameters:
    const.ymsm_i_seamless: 2
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 4 месяца
Благодарил (а): 267 раз
Поблагодарили: 216 раз
Контактная информация:

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

Сообщение Sumanai »

rxu писал(а): Есть мысль добавить пару событий для манипуляции скомпилированным потоком перед выводом его в браузер, и я ее думаю.
Я давно предлагал переделать всё для промежуточной компиляции в объектное представление и дать полную возможность манипулировать этим, но это потребует практически полного переписывания твига.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

Sumanai писал(а): это потребует практически полного переписывания твига
Лучше синица в руках https://github.com/phpbb/phpbb/pull/4633/files
Изображение
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12372
Стаж: 12 лет 7 месяцев
Благодарил (а): 223 раза
Поблагодарили: 3517 раз
Контактная информация:

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

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

Попала на ошибку "Circular reference detected for service"

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

Fatal error: Uncaught exception 'Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException' with message 'Circular reference detected for service "tatiana5.geotopics.ymsm_defaults", path: "tatiana5.geotopics.ymsm_defaults -> tatiana5.geotopics.ymsm_utils -> tatiana5.geotopics.ymsm_tagging -> tatiana5.geotopics.ymsm_display -> tatiana5.geotopics.ymsm_defaults".' in D:\WebServers\OpenServer\domains\phpbb319.zz\vendor\symfony\dependency-injection\Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass.php:67 Stack trace: #0 D:\WebServers\OpenServer\domains\phpbb319.zz\vendor\symfony\dependency-injection\Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass.php(70): Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass->checkOutEdges(Array) #1 D:\WebServers\OpenServer\domains\phpbb319.zz\vendor\symfony\dependency-injection\Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass.php(70): Symfony\Component\DependencyInjection in D:\WebServers\OpenServer\domains\phpbb319.zz\vendor\symfony\dependency-injection\Symfony\Component\DependencyInjection\Compiler\CheckCircularReferencesPass.php on line 67
Каким образом её можно обойти?
Нашла вариант с контейнером, но пример кода найти не вышло. И может быть есть что-то получше
(Заготовку расширения могу скинуть в ЛС, если надо)
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16313
Стаж: 17 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 2119 раз
Контактная информация:

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

Сообщение rxu »

Татьяна5, где-то получается циклическая инъекция зависимости сервиса ymsm_defaults. Надо смотреть код.

Отправлено спустя 1 минуту 34 секунды:
В принципе, в тексте ошибки прописано, как оно получается: path: "tatiana5.geotopics.ymsm_defaults -> tatiana5.geotopics.ymsm_utils -> tatiana5.geotopics.ymsm_tagging -> tatiana5.geotopics.ymsm_display -> tatiana5.geotopics.ymsm_defaults"
Изображение
Ответить

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