Страница 40 из 55

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

Добавлено: 10.01.2017 20:45
Роман 58
Ребята!
Не могу установить расширение,что только не делал а ничего не получается.. Что не так? Скачал с офф сайта. Распоковал. Установил в папку, а ничего нет.. Подскажите

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

Добавлено: 10.01.2017 20:51
Татьяна5

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

Добавлено: 10.01.2017 21:00
rxu
Здесь форум для авторов расширений, причем здесь установка...

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

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

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

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

<dl class="row-item {forumrow.FORUM_IMG_STYLE}">
на: Дело в том, что это единственная правка в этом файле в своем стиле с наследованием от prosilver, поэтому хочется сделать небольшое простенькое расширение для этого :roll:

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

Добавлено: 10.01.2017 21:38
Татьяна5
Webliberty, перекрыть ненужные стили в css - не вариант?
Можно ещё через javascript, но это более громоздко, да и срабатывать будет не сразу

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

Добавлено: 10.01.2017 21:58
Webliberty
Вариант, но думал есть более элегантное решение)

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

Добавлено: 10.01.2017 22:06
rxu
Есть мысль добавить пару событий для манипуляции скомпилированным потоком перед выводом его в браузер, и я ее думаю.

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

Добавлено: 11.01.2017 9:45
Борис Бердичевский
rxu писал(а): Борис Бердичевский, здесь пояснял другой способ использования изображений из расширений
Ну, это фактически первый способ, что я использовал, с INCLUDECSS.

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

Добавлено: 11.01.2017 13:15
Татьяна5
В движке есть файл config/parameters.yml. Как понимаю, подобным образом можно задать константы. Как грамотней использовать подобное в расширениях?

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

Добавлено: 11.01.2017 14:49
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('Имя.параметра')

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

Добавлено: 11.01.2017 15:03
Татьяна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

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

Добавлено: 11.01.2017 18:34
Sumanai
rxu писал(а): Есть мысль добавить пару событий для манипуляции скомпилированным потоком перед выводом его в браузер, и я ее думаю.
Я давно предлагал переделать всё для промежуточной компиляции в объектное представление и дать полную возможность манипулировать этим, но это потребует практически полного переписывания твига.

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

Добавлено: 11.01.2017 19:12
rxu
Sumanai писал(а): это потребует практически полного переписывания твига
Лучше синица в руках https://github.com/phpbb/phpbb/pull/4633/files

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

Добавлено: 21.01.2017 15:17
Татьяна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
Каким образом её можно обойти?
Нашла вариант с контейнером, но пример кода найти не вышло. И может быть есть что-то получше
(Заготовку расширения могу скинуть в ЛС, если надо)

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

Добавлено: 21.01.2017 15:36
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"