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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
mike2003
phpBB 2.0.5
Сообщения: 452
Стаж: 8 лет 3 месяца
Благодарил (а): 25 раз
Поблагодарили: 7 раз

Re: Создание страниц в стиле конференции

Сообщение mike2003 »

м... лучше там наверное это написать. а это уже исправлено? или расширение заброшено?
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 4 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

Re: Создание страниц в стиле конференции

Сообщение Sheer »

Ну вообще-то об этом написано здесь [FAQ] Как устанавливать расширения
rxu писал(а): Строка "name": указывает на то, в какой папке необходимо разместить содержимое
А в файле composer.json расширения написано

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

"name": "Sheer/knowlegebase",
именно в верхнем регистре, значит и нужно было создать папку ext/Sheer
Не совсем правильно это, признаю, но не смертельно. Что интересно, другие расширения, где написано, например

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

"name": "sheer/connectionlog", 
работают без проблем, будучи установлены в папку ext/Sheer
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
mike2003
phpBB 2.0.5
Сообщения: 452
Стаж: 8 лет 3 месяца
Благодарил (а): 25 раз
Поблагодарили: 7 раз

Re: Создание страниц в стиле конференции

Сообщение mike2003 »

Sheer писал(а): Ну вообще-то об этом написано здесь
ты не учитываешь расширение "загрузчик", которое делает все автоматом и которое активно тут продвигается
в любом случае я имел ввиду ту же проблему путей app.php, которую ты не учитываешь при составлении УРЛ
Аватара пользователя
Sumanai
phpBB 3.0.0 RC5
Сообщения: 1668
Стаж: 9 лет 7 месяцев
Благодарил (а): 257 раз
Поблагодарили: 195 раз

Re: Создание страниц в стиле конференции

Сообщение Sumanai »

mike2003 писал(а): ты не учитываешь расширение "загрузчик", которое делает все автоматом и которое активно тут продвигается
Вполне возможно, что это расширение не учитывает случай разного регистра в названии каталога вендора.
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет 1 месяц
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Создание страниц в стиле конференции

Сообщение LavIgor »

Sumanai, загрузчик просто делает свою работу: берёт ту самую строку name и делает mkdir(). mike2003 говорит не об этом.
lite
phpBB 1.0.0
Сообщения: 5
Стаж: 10 лет 7 месяцев
Благодарил (а): 3 раза

Re: Создание страниц в стиле конференции

Сообщение lite »

Здравствуйте. По теме возникли два вопроса. Поиск в нете и по конференции толкового ничего не дал. Где искать в документации на английском даже не пойму где искать.
1. При задании глобальной переменной в конструкторе, например $phpbb_root_path,
обратиться к ней в вызываемой public функции можно так: $this->phpbb_root_path
Вопрос : как обратиться к этой переменной в private function
global $phpbb_root_path вызывает ошибку. Задавать её заранее правкой кода не правильно с точки зрения концепции расширений phpbb3.1.х
2. Как обратиться к суперглобальным переменным типа $_SERVER.
Нашел простое, не правильное решение отключить в конфиге блокировку суперглобальных переменных core.disable_super_globals: false
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12478
Стаж: 12 лет 10 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2494 раза

Re: Создание страниц в стиле конференции

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

1. Никак, в них $this нет. Только изменять видимость функции
2. Лучше не отключать, всё доступно в $request ($_SERVER - $request->server)
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет 1 месяц
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Создание страниц в стиле конференции

Сообщение LavIgor »

lite писал(а): 05.07.2017 11:50как обратиться к этой переменной в private function
Приведите пример кода, сейчас не особо понятно, о чём именно вы говорите.
Обращаться к закрытым свойствам класса из его наследников нельзя, однако описанных проблем с доступом к $phpbb_root_path при правильном подходе к созданию классов возникать не должно.
lite писал(а): 05.07.2017 11:50Как обратиться к суперглобальным переменным типа $_SERVER
Через объект $request, как ответили выше.
Изучите все методы соответствующего класса для дальнейшей работы.
lite
phpBB 1.0.0
Сообщения: 5
Стаж: 10 лет 7 месяцев
Благодарил (а): 3 раза

Re: Создание страниц в стиле конференции

Сообщение lite »

Туплю. Не пойму как вставить:
$request->server - Trying to get property of non-object
тут в общем то понятно, переменной в функции и не объявлено
пробую так:
$this->request->server - Undefined property: phpbb/request/request::$server
$this->request['server'] - Undefined property: phpbb/request/request::$server

Нужные данные в объекте вроде есть:

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

phpbb\request\request Object
(
    [super_globals:protected] => Array
        (
            [0] => _POST
            [1] => _GET
            [2] => _REQUEST
            [3] => _COOKIE
            [4] => _SERVER
            [5] => _FILES
        )
...
     [input:protected] => Array
         (
         ...
            [4] => Array
                (...
                    [REQUEST_URI] => /viewtopic.php?f=4&t=4525
		...) 
Но как обратиться никак не пойму.
LavIgor писал(а):Изучите все методы соответствующего класса для дальнейшей работы.
Тройка конечно проще и старше, по ней много чего есть и на русском. По тройке ни одного вопроса не задавал, а тут выдохся. В мануале https://area51.phpbb.com/docs/code/3.1.x/ вроде всё есть, но не понятно как пользоваться в реале.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16463
Стаж: 18 лет 1 месяц
Откуда: Красноярск
Благодарил (а): 533 раза
Поблагодарили: 1773 раза

Re: Создание страниц в стиле конференции

Сообщение rxu »

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

$this->request->server('MY_COOL_VARIABLE_IN_SERVER_SUPERGLOBAL_ARRAY', $optional_default_value_if_not_exist);
Изображение
lite
phpBB 1.0.0
Сообщения: 5
Стаж: 10 лет 7 месяцев
Благодарил (а): 3 раза

Re: Создание страниц в стиле конференции

Сообщение lite »

rxu, если использовать дословно, ошибка Undefined variable: optional_default_value_if_not_exist
Если убрать из кода переменную или заменить так: $this->request->server('MY_COOL_VARIABLE_IN_SERVER_SUPERGLOBAL_ARRAY', 'REQUEST_URI')), то ошибки нет, результат - пустая строка.
В соседней теме
LavIgor писал(а): 04.07.2016 19:20Если же Вы работаете с классом, то в нём должен быть подходящий конструктор.
Видимо засада в неправильном конструкторе.

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

	public function __construct(
	\phpbb\config\config $config,
	\phpbb\request\request $request,
	\phpbb\user $user,
	\phpbb\auth\auth $auth, 
	\phpbb\path_helper $path_helper,
	\phpbb\db\driver\driver_interface $db,
	\phpbb\template\template $template, 
	$phpbb_root_path, 
	$php_ext
	)
	{
		$this->config = $config;
		$this->request = $request;
		$this->user = $user;
		$this->auth = $auth;
		$this->path_helper = $path_helper;
		$this->db = $db;
		$this->template = $template;		
		$this->phpbb_root_path = $phpbb_root_path;
		$this->php_ext = $php_ext;
	}
чего не хватает или ещё что то не вижу?
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет 1 месяц
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Создание страниц в стиле конференции

Сообщение LavIgor »

lite, проблема в понимании английского языка.
Переведу сообщение rxu:
rxu писал(а): 05.07.2017 18:10

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

$this->request->server('ПЕРЕМЕННАЯ_В_СУПЕРГЛОБАЛЬНОМ_МАССИВЕ_SERVER', 'ЗНАЧЕНИЕ_ПО_УМОЛЧАНИЮ');
Надеюсь, стало понятнее.
lite
phpBB 1.0.0
Сообщения: 5
Стаж: 10 лет 7 месяцев
Благодарил (а): 3 раза

Re: Создание страниц в стиле конференции

Сообщение lite »

Да Спасибо! Уже сам понял, правильно так:
$this->request->server( 'REQUEST_URI','')
Аватара пользователя
LavIgor
Former team member
Сообщения: 3468
Стаж: 10 лет 1 месяц
Благодарил (а): 41 раз
Поблагодарили: 831 раз

Re: Создание страниц в стиле конференции

Сообщение LavIgor »

lite, второй параметр не обязателен, он по умолчанию пустой.
А код лучше привыкнуть оформлять правильно, а не как попало.
В Вашем случае - $this->request->server('REQUEST_URI');
lite
phpBB 1.0.0
Сообщения: 5
Стаж: 10 лет 7 месяцев
Благодарил (а): 3 раза

Re: Создание страниц в стиле конференции

Сообщение lite »

LavIgor, Спасибо учту

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