Уважаемые пользователи!
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 3.1.1 и php (код сапы)

У вас есть идея для расширения функциональности phpBB? Расскажите о ней здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
shvager
phpBB 1.4.4
Сообщения: 159
Стаж: 16 лет
Благодарил (а): 83 раза
Поблагодарили: 7 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение shvager »

rxu писал(а):Как-то так примерно
Теперь:
Parse error: syntax error, unexpected 'global' (T_GLOBAL) in /var/www/..../data/www/..../forum/414.../sape.php on line 186
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: phpBB 3.1.1 и php (код сапы)

Сообщение rxu »

Anvar писал(а):Да там во многих местах он напортачил..
Ого, только заметил. Перезалил.
Изображение
shvager
phpBB 1.4.4
Сообщения: 159
Стаж: 16 лет
Благодарил (а): 83 раза
Поблагодарили: 7 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение shvager »

Anvar писал(а):Да там во многих местах он напортачил..
Понял. Исправил и сам уже.

Но залил файл rxu

Форум заработал - буду ждать появления ссылок. Всем спасиб!)

ПыСы:
Появился в папке links.db
Кажися все нормуль)
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

Вот такой вот ответ от сапы, очень грамотно ответили, по-моему:

Здравствуйте,

собственно проблема в шаблонизаторе twig, который используется в phpBB 3.1.1 . Из него напрямую недоступны суперглобальные массивы, в том числе $_SERVER.

Это проблема конкретно шаблонизатора twig и к работоспособности клиентского кода отношения не имеет.

Если вы используете третьесторонний плагин для форума, то вам следует обратиться к его разработчику, поскольку мы не оказываем прямую поддержку третьестороннего кода.

Если вы размещаете код вручную, то решений три:

1. разрешить регистрацию суперглобальных массивов в twig. Это быстрый вариант, но он понижает безопасность ваших шаблонных файлов.

в коде шаблона:
$request->enable_super_globals();

или в конфигурационном файле config/parameters.yml:
core.disable_super_globals = false

2. формировать вывод ссылок при помощи вызовов return_links() или return_block_links() ДО вызова рендеринга шаблона (чтобы обойти его ограничения), т.е. в контроллере, вне файла шаблона, и выводить в шаблон уже сформированный html.

3. возможно, если разместить код в расширении twig, а не в самом файле шаблона, то оттуда будет доступен суперглобальный массив $_SERVER. Это является самым лучшим решением, если у вас нет возможность воспользоваться п. 2 и внедрить код в контроллер phpBB

За подробностями этих решений, пожалуйста, обратитесь к документации phpBB и Twig для разработчиков.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: phpBB 3.1.1 и php (код сапы)

Сообщение rxu »

Т.е. клиентский код нормальный, это основное приложение кривое. Молодцы, что тут скажешь.
Ну выше вы видели, как на самом деле.

Добавлено спустя 1 минуту 16 секунд:
Но одно могу сказать точно, будь я хозяином сапы, такие саппортеры бы уже там не работали.
Изображение
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: phpBB 3.1.1 и php (код сапы)

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

Thanx писал(а):то решений три:
Thanx писал(а):1. разрешить регистрацию суперглобальных массивов в twig.
Править код в 3.1 не рекомендуется
Thanx писал(а):2. ... т.е. в контроллере, вне файла шаблона, и выводить в шаблон уже сформированный html
В самом sape.php используется $_SERVER, что делает формирование ссылок невозможным
Thanx писал(а):3. возможно, если разместить код в расширении twig, а не в самом файле шаблона, то оттуда будет доступен суперглобальный массив $_SERVER
Недоступен
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: phpBB 3.1.1 и php (код сапы)

Сообщение rxu »

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

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Sheer »

Thanx писал(а):ответ от сапы
Мдя... бред конкретный.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

я поставил
core.disable_super_globals: false

хоть ошибка и исчезла, но вот эта строчка всё равно ничего не отображает:
echo $sape->return_links();

вывода ссылок нет.

Кстати, заливал файл sape.php от rxu (с первой страницы темы), - вообще всё зависает, прервыется вывод html страницы в месте расположения кода.

PS. У меня ещё есть вопросик по $_SERVER вот тут $_SERVER. Как от него легко избавиться?
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Anvar »

Thanx писал(а):echo $sape->return_links();
Вместо этого надо использовать такой метод:

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

$template->assign_var('SAPE_LINKS', $sape->return_links());
И в файле шаблона вывод ссылок будет доступен используя: {SAPE_LINKS}
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

Т.е. вы рекомендуете в index.php прописать

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

if (!defined('_SAPE_USER')){
 define('_SAPE_USER', '***'); 
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['multi_site'] = true;
$o['host'] = 'site.ru';
$o['charset'] = 'utf-8';
$sape = new SAPE_client($o);
unset($o);
$template->assign_var('SAPE_LINKS', $sape->return_links());
а уже в index_body.html

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

{SAPE_LINKS}
?

Я так сделал - ничего не выводит.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: phpBB 3.1.1 и php (код сапы)

Сообщение rxu »

Thanx писал(а):Я так сделал - ничего не выводит.
А кэш-то очистили?

Добавлено спустя 54 секунды:
Thanx писал(а):require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
Только парой постов выше говорили, что вызов $_SERVER надо заменять на $request->server().
Изображение
Thanx
phpBB 2.0.2
Сообщения: 334
Стаж: 18 лет 3 месяца
Благодарил (а): 16 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Thanx »

Кеш чистил, да.

Добавлено спустя 7 минут 16 секунд:
rxu писал(а):Только парой постов выше говорили, что вызов $_SERVER надо заменять на $request->server().
Вот такая конструкция у меня прекрасно работает:

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

$string=$_SERVER["REQUEST_URI"];
А вот эта не работает:

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

$string=$request->server('REQUEST_URI');
И даже такой код "вешает" рендеринг, не работает:

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

$request->server('REQUEST_URI');
А дело всё это в overall_header.html:

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

...
<table width="100%">
 <tr>
  <td align="center">
<!-- PHP -->
$string=$_SERVER["REQUEST_URI"];
$f=array();
parse_str($string,$f);
...
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 16359
Стаж: 17 лет 11 месяцев
Откуда: Красноярск
Благодарил (а): 521 раз
Поблагодарили: 1742 раза

Re: phpBB 3.1.1 и php (код сапы)

Сообщение rxu »

Thanx
Уже неоднократно сказано - не используйте PHP в шаблонах, это бессмысленно.
Изображение
Anvar
Former team member
Сообщения: 1965
Стаж: 14 лет
Благодарил (а): 57 раз
Поблагодарили: 625 раз

Re: phpBB 3.1.1 и php (код сапы)

Сообщение Anvar »

Thanx писал(а):if (!defined('_SAPE_USER')){
define('_SAPE_USER', '***');
}
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['multi_site'] = true;
$o['host'] = 'site.ru';
$o['charset'] = 'utf-8';
$sape = new SAPE_client($o);
unset($o);
Эту часть кода закиньте в самый верх, после <?php
Ну это тоже - хотя бы так)))
Перенесено из форума Поддержка phpBB 3.1.x в форум Запросы расширений для phpBB 04.02.2019 12:28 модератором Sheer

Вернуться в «Запросы расширений для phpBB»