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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 5 месяцев
Благодарил (а): 124 раза
Поблагодарили: 138 раз

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

Сообщение Shredder »

LBeaver
Типа этого:

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

		if ($this->phpbb_extension_manager->is_enabled('phpbbseo/usu'))
		{
			$seo_core = $this->phpbb_container->get('phpbbseo.usu.core');
		}
Вместо phpbbseo/usu / core - подставить названия нужного расширения.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

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

Сообщение rxu »

Контейнер в расширениях лучше не использовать ввиду его тяжести.
Надо прописать класс как сервис и использовать зависимости.
Изображение
LBeaver
phpBB 1.4.4
Сообщения: 153
Стаж: 9 лет 6 месяцев
Благодарил (а): 47 раз
Поблагодарили: 44 раза

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

Сообщение LBeaver »

Shredder, спасибо за ответ, но я имел ввиду немного другое.

Пример. Надо организовать загрузку файлов с сервера TeamSpeak 3, для этого можно использовать TeamSpeak 3 PHP Framework. В 3.0 всё было просто: кидаем содержимое архива на форумом, require_once('libraries/TeamSpeak3/TeamSpeak3.php'); и погнали.

А вот как в 3.1 воспользоваться этой библиотекой?
Shredder
Former team member
Сообщения: 2224
Стаж: 15 лет 5 месяцев
Благодарил (а): 124 раза
Поблагодарили: 138 раз

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

Сообщение Shredder »

rxu писал(а):Надо прописать класс как сервис и использовать зависимости.
Можно пример, как это сделать? Или расширение, где это реализовано.

Добавлено спустя 5 минут 20 секунд:
Если правильно понял, о чём речь, то я однажды пытался прописать класс чужого расширения в services.yml, и при отсутствии подключаемого расширения на сервере были ошибки. Может, просто неправильно подключал.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 3 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

Ну примерно как-то так
В папке ext\ есть vendor\path\lib\my_function.php

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

<?php

namespace vendor\path\lib;

class my_functions
{
	public function __construct($var)
	{
		$this->var = $var;
	}
//		...
	public function foo()
	{
		return;
	}
}
В папке \ext есть vendor\path\acp\module.php

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

<?php

namespace vendor\path\acp;

class module
{
	function main()
	{
		$var = 'foo';

		$my_functions = new \vendor\path\lib\my_functions($var); // подключение класса

		$info = $my_functions->foo(); // вызов функции из этого класса
	}
}
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
LBeaver
phpBB 1.4.4
Сообщения: 153
Стаж: 9 лет 6 месяцев
Благодарил (а): 47 раз
Поблагодарили: 44 раза

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

Сообщение LBeaver »

То есть без ручного прописывания namespace во всех нужных vendor/path/lib/my_function.php не обойтись? Ну что же, хотя бы так.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 3 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

LBeaver писал(а):не обойтись?
Нет, почитайте, авось поможет Создание страниц в стиле конференции
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 3 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

Борис Бердичевский писал(а):Вот это сработало!
<link href="./ext/borisba/usernotice/styles/prosilver/theme/custom_link_colors.css?assets_version=71" rel="stylesheet" type="text/css" media="screen, projection" />
Вот это неправильно. Нужно так

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

<link href="{ROOT_PATH}ext/_имя_/_название_расширения_/styles/prosilver/theme/_имя_файла.css?assets_version={T_ASSETS_VERSION}" rel="stylesheet" type="text/css" media="screen, projection" />
Сохранить в файле /ext/_имя_/название_расширения_/styles/prosilver/template/event/overall_header_stylesheets_after.html
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

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

Сообщение rxu »

Sheer писал(а):Вот это неправильно. Нужно так
И это тоже неправильно. Нужно так

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

<!-- INCLUDECSS @имя_расширение/стиль.css -->
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 3 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

А что там неправильного?
rxu писал(а):Нужно так
А вот если так, то как подцепить css для адаптивного стиля?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12457
Стаж: 12 лет 9 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2484 раза

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

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

Прописать @media в самом файле css
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

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

Сообщение rxu »

Sheer писал(а):А что там неправильного?
Технически всё правильно, при использовании INCLUDECSS примерно такая строка и будет выведена.
Изображение
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 3 месяца
Откуда: Калининград не Кенигсберг
Благодарил (а): 41 раз
Поблагодарили: 1716 раз

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

Сообщение Sheer »

Тогда не вижу разницы. Где-то в официальных экстах overall_header_stylesheets_after.html используют для внедрения туда java, так почему же туда не засунуть css, или даже сделать это инлайн?
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
UncleAndy
phpBB 1.4.1
Сообщения: 44
Стаж: 9 лет 3 месяца
Благодарил (а): 7 раз

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

Сообщение UncleAndy »

Есть такой простой вопрос - возможно-ли чисто через расширение создать свой способ авторизации?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16384
Стаж: 18 лет
Откуда: Красноярск
Благодарил (а): 524 раза
Поблагодарили: 1749 раз

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

Сообщение rxu »

Возможно. Но инструкции и примеры пока только на английском:
Authentication providers
https://www.phpbb.com/community/viewtop ... &t=2271041
Пример расширения (работоспособность не проверялась): https://github.com/ck-ws/phpbb-ext-auth-shibboleth
Изображение

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