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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Alexx007
phpBB 1.2.1
Сообщения: 23
Стаж: 7 лет 11 месяцев
Благодарил (а): 1 раз

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

Сообщение Alexx007 »

Sheer писал(а): Alexx007, полностью рабочую заготовку расширения можно создать за 10 секунд при помощи [dev] STK for phpBB 3.1.x
Классная штука!!!! СПАСИБО! Я в полном восторге :-) Спасибо!!!!!! Всем остальным тоже больше спасибо! Я думаю об этом СТК нужно вещать на главной странице и любому начавшему разработку расширений давать в руки "автоматически".
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 2 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

Ага...
Sheer писал(а): STK - это скальпель в руках хирурга. ... Блондинкам и коновалам в руки не брать!
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 5 месяцев
Благодарил (а): 257 раз
Поблагодарили: 195 раз

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

Сообщение Sumanai »

rxu писал(а): global сейчас не поощряется, видимо, по соображениям ресурсоемкости, ну и архитектурно.
Везде, где можно, используются зависимости и сервисы.
Никаких изменений в этом направлении нет? Может, успеем добавить в 3.2 языковой сервис для миграций?
Аватара пользователя
KimIV
phpBB 2.0.1
Сообщения: 286
Стаж: 8 лет 6 месяцев
Откуда: Кунгур
Благодарил (а): 166 раз
Поблагодарили: 21 раз

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

Сообщение KimIV »

Sumanai писал(а):
Можно модули ACP, UCP или MCP подменять при включении/ отключении расширения.
Можно где-то подробности почитать? Или ссылку на пример кода...
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 5 месяцев
Благодарил (а): 257 раз
Поблагодарили: 195 раз

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

Сообщение Sumanai »

Нигде, это обсуждали в одной из тем с моим расширением [RC] Уведомление об изменении подписей
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

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

Сообщение rxu »

Sumanai писал(а): Может, успеем добавить в 3.2 языковой сервис для миграций?
А зачем? Есть класс миграции с зависимостью контейнера, а оттуда можно получить любой сервис или системный параметр.

Отправлено спустя 1 минуту 25 секунд:
KimIV писал(а): Или ссылку на пример кода...
Смотря о чем речь. Например, в этом расширении https://github.com/rxu/advanced_warnings заменяется модуль предупреждений личного раздела.
Изображение
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 5 месяцев
Благодарил (а): 257 раз
Поблагодарили: 195 раз

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

Сообщение Sumanai »

rxu писал(а): А зачем? Есть класс миграции с зависимостью контейнера
Не вижу там контейнера.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

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

Сообщение rxu »

Большинство миграций наследуют от класса \phpbb\db\migration\migration, но есть еще один базовый класс миграций - \phpbb\db\migration\container_aware_migration. Второй отличается как раз наличием контейнера. Пример: https://github.com/phpbb/phpbb/blob/3.1 ... _5_rc1.php
Изображение
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 5 месяцев
Благодарил (а): 257 раз
Поблагодарили: 195 раз

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

Сообщение Sumanai »

И как вы только успеваете это откапывать :)
Аватара пользователя
KimIV
phpBB 2.0.1
Сообщения: 286
Стаж: 8 лет 6 месяцев
Откуда: Кунгур
Благодарил (а): 166 раз
Поблагодарили: 21 раз

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

Сообщение KimIV »

Sumanai писал(а): И как вы только успеваете это откапывать
Я тоже восхищаюсь! Без капли лести... искренне...
Ты должен делать добро из зла, потому что его больше не из чего делать. Уоренн Роберт Пенн.
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 13 лет 2 месяца
Благодарил (а): 62 раза
Поблагодарили: 22 раза

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

Сообщение Slash »

Здравствуйте.
Подскажите, как при помощи расширения можно заменить код в шаблоне и в ядре?

При портировании мода в расширение, попадается replace-with, как тут правильно сделать? Вот, например, кусок из инструкции мода:

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

        <find>                $colspan = (($mode == 'smilies') ? '7' : '5');</find>
        <action type="replace-with">                $colspan = (($mode == 'smilies') ? '8' : '5');</action> 
Спасибо.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

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

Сообщение rxu »

В данном случае в acp_icons.php в этом месте нет событий, поэтому пока никак.
Что за мод?
Изображение
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 13 лет 2 месяца
Благодарил (а): 62 раза
Поблагодарили: 22 раза

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

Сообщение Slash »

rxu писал(а): Что за мод?
Smilies Categories

А вообще пример можно, как делается замена? Не обязательно с этого мода.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

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

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

Для замены надо, чтобы $colspan и $mode были переданы в событие
Тогда дальше просто:

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

$mode = $event['mode'];
$colspan = (($mode == 'smilies') ? '8' : '5');
$event['colspan'] = $colspan;
А вообще надо думать, как обойтись без этого (иногда возможно чуть алгоритм изменить, чтобы обойтись событиями в текущей версии phpBB)
Аватара пользователя
Slash
phpBB 2.0.10
Сообщения: 794
Стаж: 13 лет 2 месяца
Благодарил (а): 62 раза
Поблагодарили: 22 раза

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

Сообщение Slash »

Татьяна5, а с шаблонами, как быть?

Например:

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

                <find><![CDATA[            <dl class="icon" style="background-image: url({forumrow.FORUM_FOLDER_IMG_SRC}); background-repeat: no-repeat;">]]></find>
                <action type="replace-with"><![CDATA[            <dl class="<!-- IF forumrow.S_THANKS_FORUM_REPUT_VIEW_COLUMN and not S_IS_BOT -->thanks<!-- ELSE -->icon<!-- ENDIF -->" style="background-image: url({forumrow.FORUM_FOLDER_IMG_SRC}); background-repeat: no-repeat;">]]></action>
Мод спасибо за пост.

Отправлено спустя 54 минуты 51 секунду:
Мне надо заменить этот код:

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

        <!-- IF S_SMILIES_ALLOWED and .smiley -->
            <strong>{L_SMILIES}</strong><br />
            <!-- BEGIN smiley -->
                <a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
            <!-- END smiley -->
        <!-- ENDIF -->
        <!-- IF S_SHOW_SMILEY_LINK and S_SMILIES_ALLOWED -->
            <br /><a href="{U_MORE_SMILIES}" onclick="popup(this.href, 750, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a>
        <!-- ENDIF -->
На свой... Это можно сделать? Как?

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