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

-
- phpBB 3.0.0 RC5
- Сообщения: 1668
- Стаж: 10 лет 5 месяцев
- Благодарил (а): 235 раз
- Поблагодарили: 173 раза
Re: Расширения - это просто!
А в миграциях нет никакого способа переименовать колонку в таблице БД, кроме как писать голый запрос в БД?
Я посмотрел по файлам, вроде нету, но может чего упустил.
Я посмотрел по файлам, вроде нету, но может чего упустил.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 9 лет 3 месяца
Re: Расширения - это просто!
Доброго времени суток. Изучаю возможности функционала расширений.
Подскажите, если автором расширения установлен определенный стиль, можно ли добавить свой стиль, отличный от авторского?
(создав папку с новым стилем в папке стилей расширения)
Подскажите, если автором расширения установлен определенный стиль, можно ли добавить свой стиль, отличный от авторского?
(создав папку с новым стилем в папке стилей расширения)
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Расширения - это просто!
Можно.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 9 лет 3 месяца
Re: Расширения - это просто!
А при автоматическом обновлении расширения, например [release] Загрузка Расширений (Upload Extensions) 3.1.2 не "снесется" ли добавленный стиль? Или обновление будет касаться только оригинальных файлов автора, не затрагивая добавленные?
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
moveton, если обновляете через загрузчик, то новый стиль придётся заново добавить в обновлённую версию расширения.
-
- phpBB 1.0.0
- Сообщения: 5
- Стаж: 9 лет 3 месяца
Re: Расширения - это просто!
LavIgor, Спасибо за предупреждение, значит придется бекапить перед обновлениями свой стиль, и проверять каждый раз вдобавок авторский, и как понимаю, лучше его не трогать в своем варианте.
ИМХО Немного не правильно, конечно. Теряется весь смысл упрощенного обновления, так как придется делать много правок. Хотя по Вашему загрузчику уже столкнулся с тем, что все равно нужно ручками править, если хочешь что-то добавить. У меня например, не возможно было через ФТП добавить свой стиль, так как не мог установить права на запись в папке стилей. Автозагрузчиком владелец устанавливается у меня wwwdata, а через ФТП клиент я захожу под созданным у меня для этого пользователем. Приходится танцевать с бубном
ИМХО Немного не правильно, конечно. Теряется весь смысл упрощенного обновления, так как придется делать много правок. Хотя по Вашему загрузчику уже столкнулся с тем, что все равно нужно ручками править, если хочешь что-то добавить. У меня например, не возможно было через ФТП добавить свой стиль, так как не мог установить права на запись в папке стилей. Автозагрузчиком владелец устанавливается у меня wwwdata, а через ФТП клиент я захожу под созданным у меня для этого пользователем. Приходится танцевать с бубном

-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
moveton, были мысли добавить возможность восстановления стилей из архива предыдущей версии (который, кстати, делается автоматически при каждом обновлении). Пока что такое возможно только для файлов локализации.
Можно рассмотреть возможность добавления вкладки "Стили" по аналогии с вкладкой "Языки". Но любой функционал требует времени.
Можно рассмотреть возможность добавления вкладки "Стили" по аналогии с вкладкой "Языки". Но любой функционал требует времени.
-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
Перечитал тему и теперь в голове много каши.
Подскажите, как подключить свой языковой файл расширения, если расширение состоит из нескольких шаблонов (без php)?
Спасибо.
Подскажите, как подключить свой языковой файл расширения, если расширение состоит из нескольких шаблонов (без php)?
Спасибо.
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
Придётся создать слушатель (listener), подобрать правильное событие и подключить файл в нём с помощью
$this->user->add_lang_ext()
с подходящими параметрами.-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
А можно пример?
Типа того: файл event/listener.php:
Код: Выделить всё
<?php
namespace Slash\NameExt\event;
$this->user->add_lang_ext('Slash/NameExt', 'name_lang');
Какое должно быть условие для конкретного события? (Чтоб язык подключался только, там где это надо).
... Пошел перечитывать первый пост ...
Отправлено спустя 42 минуты 46 секунд:
Вот, что пока получилось, но язык не подключается, видимо в функции get_count чего то не хватает.
Код: Выделить всё
<?php
namespace Slash\CountSymbolsField\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class listener implements EventSubscriberInterface
{
static public function getSubscribedEvents()
{
return array(
'core.modify_posting_parameters' => 'get_count'
);
}
public function get_count($event)
{
$this->user->add_lang_ext('Slash/CountSymbolsField', 'count');
}
}
-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
Не ужели я такой ... ... Что бы дошло надо прочитать несколько раз...
Спасибо, получилось!
В конструкторе у меня одна переменная:
Так как в классе используется только она:
И файл: services.yml:
Всё это для пару фраз!
Спасибо, получилось!
В конструкторе у меня одна переменная:
Код: Выделить всё
protected $user;
public function __construct(\phpbb\user $user)
{
$this->user = $user;
}
Код: Выделить всё
$this->user->add_lang_ext('Slash/CountSymbolsField', 'count');
Код: Выделить всё
services:
Slash.CountSymbolsField.listener:
class: Slash\CountSymbolsField\event\listener
arguments:
- @user
tags:
- { name: event.listener }
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
Ответ набрал, но не отправил.
В общем, по поводу примеров.
Методы в классе содержатся, в данном случае нужно также правильно конструктор задать.
Примеров создания слушателя много, например этот.

В общем, по поводу примеров.
Если это вопрос, то ответ на него - почти.
Методы в классе содержатся, в данном случае нужно также правильно конструктор задать.
Примеров создания слушателя много, например этот.
-
- phpBB 2.0.10
- Сообщения: 794
- Стаж: 14 лет 3 месяца
- Благодарил (а): 58 раз
- Поблагодарили: 20 раз
Re: Расширения - это просто!
Вот весь файл:
Код: Выделить всё
<?php
namespace Slash\CountSymbolsField\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class listener implements EventSubscriberInterface
{
protected $user;
public function __construct(\phpbb\user $user)
{
$this->user = $user;
}
static public function getSubscribedEvents()
{
return array(
'core.modify_posting_parameters' => 'get_count'
);
}
public function get_count($event)
{
$this->user->add_lang_ext('Slash/CountSymbolsField', 'count');
}
}
Спасибо.
-
- Former team member
- Сообщения: 3468
- Стаж: 11 лет
- Благодарил (а): 39 раз
- Поблагодарили: 792 раза
Re: Расширения - это просто!
Если делаете для себя, то ошибок нет никаких, всё корректно.
Если хотите потом отправлять расширение на валидацию, то очень желательно добавить комментарии PHPDoc и запятую в конце последнего элемента массива.