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

-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
global сейчас не поощряется, видимо, по соображениям ресурсоемкости, ну и архитектурно.
Везде, где можно, используются зависимости и сервисы.
Везде, где можно, используются зависимости и сервисы.
-
- Former team member
- Сообщения: 2233
- Стаж: 16 лет 4 месяца
- Благодарил (а): 142 раза
- Поблагодарили: 140 раз
Re: Расширения - это просто!
Нужно в файл message_parser к стандартным проверкам содержимого текста добавить ещё одну, свою. Например, после этой:
Как я понимаю, нужных событий нету?
Код: Выделить всё
// Minimum message length check for post only
if ($mode === 'post')
{
if (!$message_length || $message_length < (int) $config['min_post_chars'])
{
$this->warn_msg[] = (!$message_length) ? $user->lang['TOO_FEW_CHARS'] : ($user->lang('CHARS_POST_CONTAINS', $message_length) . '<br />' . $user->lang('TOO_FEW_CHARS_LIMIT', (int) $config['min_post_chars']));
return (!$update_this_message) ? $return_message : $this->warn_msg;
}
}
-
- Former team member
- Сообщения: 2233
- Стаж: 16 лет 4 месяца
- Благодарил (а): 142 раза
- Поблагодарили: 140 раз
Re: Расширения - это просто!
rxu
Вижу, уже что-то добавили:
https://github.com/rxu/phpbb3/commit/89 ... 8702010c40
А ошибку там свою можно будет задать? Как в примере выше, чтобы при определённом условии выводилась языковая строка.
Вижу, уже что-то добавили:
https://github.com/rxu/phpbb3/commit/89 ... 8702010c40
А ошибку там свою можно будет задать? Как в примере выше, чтобы при определённом условии выводилась языковая строка.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
Еще нет, только PR.Shredder писал(а):Вижу, уже что-то добавили:
Думаю, что да.Shredder писал(а):ошибку там свою можно будет задать
-
- Former team member
- Сообщения: 2233
- Стаж: 16 лет 4 месяца
- Благодарил (а): 142 раза
- Поблагодарили: 140 раз
Re: Расширения - это просто!
А как можно задать, чтобы расширение не включалось на phpBB ниже 3.1.2? Или так сделать нельзя?
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
composer.json
Код: Выделить всё
"soft-require": {
"phpbb/phpbb": ">=3.1.2"
},
-
- Former team member
- Сообщения: 2233
- Стаж: 16 лет 4 месяца
- Благодарил (а): 142 раза
- Поблагодарили: 140 раз
Re: Расширения - это просто!
Я так и сделал, но оно всё равно включается.
Можно, конечно, сделать эту проверку в администраторском модуле, чтобы там выдавалось предупреждение, но всё же.
Можно, конечно, сделать эту проверку в администраторском модуле, чтобы там выдавалось предупреждение, но всё же.
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
Shredder
OK, тогда в ext.php добавить функцию is_enableable() с телом вроде
OK, тогда в ext.php добавить функцию is_enableable() с телом вроде
Код: Выделить всё
public function is_enableable()
{
$version_helper = $this->container->get('version_helper');
return $version_helper->compare($version_helper->current, '3.1.2', '>=');
}
-
- phpBB 2.0.5
- Сообщения: 473
- Стаж: 13 лет 4 месяца
- Благодарил (а): 109 раз
- Поблагодарили: 47 раз
Re: Расширения - это просто!
Есть два расширения и оба они используют одно и тоже php событие, например,
Будут ли в таком случае работать оба расширения или необходимо использовать разные события?
core.viewtopic_get_post_data
. Но событию сопоставлены разные функции:
Код: Выделить всё
'core.viewtopic_get_post_data' => 'data1',
'core.viewtopic_get_post_data' => 'data2',
Начинал с phpBB 3.0.9, закончил на phpBB 3.3.11 и продал форум...
Подпись заверена нотариусом
Подпись заверена нотариусом

-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
seodirection
Тут всё просто. Функция
Т.е. здесь ничего особенного нет, обычная работа с массивами PHP.
Тут всё просто. Функция
static public function getSubscribedEvents()
возвращает ассоциативный массив, в котором ключ - имя события, значение - его подписчик. Таким образом, у вас не получится задать более одного подписчика с одним и тем же ключом, т.е. именем события. Если вы сначала сделаете 'core.viewtopic_get_post_data' => 'data1',
и потом 'core.viewtopic_get_post_data' => 'data2',
- то последнее значение перезапишет предыдущее и выполнится подписчик, указанный последним.Т.е. здесь ничего особенного нет, обычная работа с массивами PHP.
-
- Former team member
- Сообщения: 2233
- Стаж: 16 лет 4 месяца
- Благодарил (а): 142 раза
- Поблагодарили: 140 раз
Re: Расширения - это просто!
Будут. И думаю, это не сложно проверить. Если случится конфликт, то можно использовать приоритет: Карта сайта для ботов (phpBB3 SEO Sitemap)seodirection писал(а):Есть два расширения и оба они используют одно и тоже php событие
Приоритет делается обычной цифрой:
Код: Выделить всё
'core.viewtopic_get_post_data' => array('viewtopic_handle_thanks', -2),
rxu
Он про разные расширения говорит. Либо я что-то не так понял.
-
- phpBB 2.0.5
- Сообщения: 473
- Стаж: 13 лет 4 месяца
- Благодарил (а): 109 раз
- Поблагодарили: 47 раз
Re: Расширения - это просто!
Так и получилось у меня, расширение которое включил вторым работает, зато первое перестало, хотя до написания второго работало) Поэтому объединил функции в одно расширение и заработало.
Начинал с phpBB 3.0.9, закончил на phpBB 3.3.11 и продал форум...
Подпись заверена нотариусом
Подпись заверена нотариусом

-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
Re: Расширения - это просто!
seodirection
И в разных будут, надо определить приоритет, как указал выше Shredder.
И в разных будут, надо определить приоритет, как указал выше Shredder.
-
- phpBB 2.0.5
- Сообщения: 473
- Стаж: 13 лет 4 месяца
- Благодарил (а): 109 раз
- Поблагодарили: 47 раз
Re: Расширения - это просто!
Да, говорю про два разных расширения, когда они по отдельности используют одно событие - не работает.
Shredder, т.е. если задать приоритеты то все должно получиться?
Добавлено спустя 44 секунды:
rxu, Shredder, спасибо, теперь понял. Задам приоритеты)
Shredder, т.е. если задать приоритеты то все должно получиться?
Добавлено спустя 44 секунды:
rxu, Shredder, спасибо, теперь понял. Задам приоритеты)
Начинал с phpBB 3.0.9, закончил на phpBB 3.3.11 и продал форум...
Подпись заверена нотариусом
Подпись заверена нотариусом
