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

-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 7 лет 6 месяцев
- Благодарил (а): 1 раз
Re: Как закрыть тему для гостей
Татьяна5, таким образом?
Функция forbidden_topic должна что-то возвращать? Или она просто вставляется типа inline?
Sheer, Спасибо. Сейчас установлю и создам. Хочется для начала понять, как мне закодить сам функционал.
Код: Выделить всё
class listener implements EventSubscriberInterface
{
/**
* Constructor
*
* @param \phpbb\config\config $config Config object
*/
public function __construct( \phpbb\user $user )
{
$this->user = $user;
}
static public function getSubscribedEvents()
{
return array(
'core.viewforum_get_topic_ids_data' => 'forbidden_topic',
);
}
public function forbidden_topic()
{
if (!$this->user->data['is_registered'])
{
$sql_ary = $event['sql_ary'];
$sql_ary['WHERE'] .= ' AND t.topic_id <> 49';
$event['sql_ary'] = $sql_ary;
}
}
}
Sheer, Спасибо. Сейчас установлю и создам. Хочется для начала понять, как мне закодить сам функционал.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Как закрыть тему для гостей
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- Поддержка
- Сообщения: 12751
- Стаж: 13 лет 8 месяцев
- Благодарил (а): 159 раз
- Поблагодарили: 2276 раз
Re: Как закрыть тему для гостей
public function forbidden_topic($event)
В остальном вроде всё верно
Она возвращает элемент массива
$event
обратно в код движка. В строке
Код: Выделить всё
$event['sql_ary'] = $sql_ary;
А файл
composer.json
составили? (Он в теме не мелькал)
Последний раз редактировалось Татьяна5 29.10.2017 19:29, всего редактировалось 1 раз.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Как закрыть тему для гостей
Нет, но объявлятся должна так
Код: Выделить всё
public function forbidden_topic($event)
Ну, грубо говоря, не возвращает, а переназначает.
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 7 лет 6 месяцев
- Благодарил (а): 1 раз
Re: Как закрыть тему для гостей
Создал болванку расширения с помощью stk
В итоге
Всё так? ничего не забыл
В итоге
Код: Выделить всё
<?php
/**
*
* @package phpBB Extension -
* @copyright (c) 2017 Anton Charov
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
namespace Anton\forbiddentopic\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
/**
* Assign functions defined in this class to event listeners in the core
*
* @return array
* @static
* @access public
*/
static public function getSubscribedEvents()
{
return array(
'core.viewforum_get_topic_ids_data' => 'forbidden_topic',
);
}
/** @var \phpbb\template\template */
protected $template;
//** @var string phpbb_root_path */
protected $phpbb_root_path;
/**
* Constructor
*/
public function __construct(\phpbb\user $user)
{
$this->user = $user;
}
public function forbidden_topic($event)
{
if (!$this->user->data['is_registered'])
{
$sql_ary = $event['sql_ary'];
$sql_ary['WHERE'] .= ' AND t.topic_id <> 49';
$event['sql_ary'] = $sql_ary;
}
}
}
-
- phpBB Guru
- Сообщения: 16947
- Стаж: 18 лет 11 месяцев
- Откуда: Красноярск
- Благодарил (а): 549 раз
- Поблагодарили: 1700 раз
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Как закрыть тему для гостей
и вместо
нужно
Код: Выделить всё
/** @var \phpbb\template\template */
protected $template;
//** @var string phpbb_root_path */
protected $phpbb_root_path;
Код: Выделить всё
protected $user;
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 7 лет 6 месяцев
- Благодарил (а): 1 раз
Re: Как закрыть тему для гостей
По идее созданное stk расширение должно отображаться в админке-->персонализация-->управление расширениями
Что-то там ничего не появилось.
Что-то там ничего не появилось.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Как закрыть тему для гостей
По идее да, а вы вот создайте новую болванку и НЕ внося туда никаких правок, зайдите в админку.
И
Всё. Имена вендора, папок, файлов, расширения. Всё!
И
Отправлено спустя 1 минуту 11 секунд:
Всё. Имена вендора, папок, файлов, расширения. Всё!
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 7 лет 6 месяцев
- Благодарил (а): 1 раз
Re: Как закрыть тему для гостей
Sheer, Создал ещё одно. Все в нижнем регистре. ничего в админке не появилось. файлы создались.
-
- Former team member
- Сообщения: 12113
- Стаж: 18 лет 2 месяца
- Откуда: Калининград не Кенигсберг
- Благодарил (а): 36 раз
- Поблагодарили: 1526 раз
Re: Как закрыть тему для гостей
Ага, мой косяк.
composer.json
Найти
Заменить на
Отправлено спустя 6 минут 50 секунд:
Исправлено https://github.com/AlexSheer/phpBB3.2-S ... fe49dab98c
composer.json
Найти
Код: Выделить всё
"php": ">=5.3.3,"
Код: Выделить всё
"php": ">=5.3.3",
Исправлено https://github.com/AlexSheer/phpBB3.2-S ... fe49dab98c
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
-
- phpBB 1.2.0
- Сообщения: 13
- Стаж: 7 лет 6 месяцев
- Благодарил (а): 1 раз
Re: Как закрыть тему для гостей
Sheer, Исправил и всё заработало! Спасибо огромное за терпение и массу полезной информации!