Не выводянся нек-рые штатные переменные во внешнюю страницу

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

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

Не выводянся нек-рые штатные переменные во внешнюю страницу

Сообщение putnik »

Описание проблемы: Форум - только часть сайта. Сам сайт "/", форум в "/forum". Настроил внешнюю страницу в стиле форума - все ок. Хочу добавить на нее форму логина, но не так, как вот тут External Login, потому как хочется с возможностью переключения языков. Выдрал кусок из \forum\styles\prosilver\template\login_body.html, вставил в созданную внешнюю страницу. Как оказалось, через эту форму зайти невозможно. Нашел причину: в шаблоне написано

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

<dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt><br>
<dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd>
А браузер видит как

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

<dt><label for="">Имя пользователя:</label></dt><br>
<dd><input tabindex="1" name="" id="" size="25" value="" class="inputbox autowidth" type="text"></dd>
То есть {L_USERNAME} заменилось на "Имя пользователя", а {USERNAME_CREDENTIAL} заменилось на пустую строку.

Сама страница (http://cenamonet.ru/):

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

<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

page_header('test');

$template->set_filenames(array(
    'body' => 'index_m.html',
));

make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();

?>
Шаблон (index_m.html, кусок, чтоб не перегружать пост. При необходимости покажу весь):

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

	<!-- IF not S_USER_LOGGED_IN -->
	<form action="{S_LOGIN_ACTION}" method="post" id="login">
	<div class="panel">
		<div class="inner"><span class="corners-top"><span></span></span>

		<div class="content">
			<h2><!-- IF LOGIN_EXPLAIN -->{LOGIN_EXPLAIN}<!-- ELSE -->{L_LOGIN}<!-- ENDIF --></h2>

			<fieldset <!-- IF not S_CONFIRM_CODE -->class="fields1"<!-- ELSE -->class="fields2"<!-- ENDIF -->>
			<!-- IF LOGIN_ERROR --><div class="error">{LOGIN_ERROR}</div><!-- ENDIF -->
			<dl>
				<dt><label for="{USERNAME_CREDENTIAL}">{L_USERNAME}:</label></dt><br>
				<dd><input type="text" tabindex="1" name="{USERNAME_CREDENTIAL}" id="{USERNAME_CREDENTIAL}" size="25" value="{USERNAME}" class="inputbox autowidth" /></dd>
			</dl>
			<dl>
				<dt><label for="{PASSWORD_CREDENTIAL}">{L_PASSWORD}:</label></dt>
				<dd><input type="password" tabindex="2" id="{PASSWORD_CREDENTIAL}" name="{PASSWORD_CREDENTIAL}" size="25" class="inputbox autowidth" /></dd>
				<!-- IF S_DISPLAY_FULL_LOGIN and (U_SEND_PASSWORD or U_RESEND_ACTIVATION) -->
					<!-- IF U_SEND_PASSWORD --><dd><a href="{U_SEND_PASSWORD}">{L_FORGOT_PASS}</a></dd><!-- ENDIF -->
					<!-- IF U_RESEND_ACTIVATION --><dd><a href="{U_RESEND_ACTIVATION}">{L_RESEND_ACTIVATION}</a></dd><!-- ENDIF -->
				<!-- ENDIF -->
			</dl>
			<!-- IF CAPTCHA_TEMPLATE and S_CONFIRM_CODE -->
				<!-- DEFINE $CAPTCHA_TAB_INDEX = 3 -->
				<!-- INCLUDE {CAPTCHA_TEMPLATE} -->
			<!-- ENDIF -->
			<!-- IF S_DISPLAY_FULL_LOGIN -->
			<dl>
				<!-- IF S_AUTOLOGIN_ENABLED --><dd><label for="autologin"><input type="checkbox" name="autologin" id="autologin" tabindex="4" /> {L_LOG_ME_IN}</label></dd><!-- ENDIF -->
				<dd><label for="viewonline"><input type="checkbox" name="viewonline" id="viewonline" tabindex="5" /> {L_HIDE_ME}</label></dd>
			</dl>
			<!-- ENDIF -->

			<input type="hidden" name="redirect" value="/" />
			<dl>
				<dt>&nbsp;</dt>
				<dd>{S_HIDDEN_FIELDS}<input type="submit" name="login" tabindex="6" value="{L_LOGIN}" class="button1" /> 
					<a href="{U_REGISTER}" class="button1">{L_REGISTER}</a> </dd> 
			</dl>
			</fieldset>
		</div>
		<!-- ENDIF -->
		<span class="corners-bottom"><span></span></span></div>
	</div>

	</form>
	<!-- ENDIF -->

Пробовал

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

$user->setup();
менять на

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

$user->setup('common');
но бестолку. Больше всего озадачивает то, что часть этих переменных все-таки подставляется.
Что я делаю не так? Спасибо.

Произведенные изменения, после которых начались неполадки: Чистый форум, только настраиваю
Версия phpBB: 3.0.10
Используемые стили: просильвер
Используемые моды: ACP_group_name_coloured_1.0.0 auto_backup_1_0_3 automod-1001.zip clickable_post_count_link.zip Legend Repositioning 1.0.3 Multi_Smile.zip
Версия PHP: PHP 5.3.3
Используемая СУБД и её версия: mysql 5.1
Ссылка на конференцию: http://cenamonet.ru/
Есть ли у вас тестовый аккаунт: до него дело не доходит
Использовался ли поиск для решения проблемы: да
Если да, то какие запросы вы использовали: не отображаются переменные. А еще читал Создание страниц в стиле конференции и http://www.phpbbguru.net/kb/modding/add ... stom-page/
Аватара пользователя
HAMMER663
Former team member
Сообщения: 2032
Стаж: 16 лет 5 месяцев
Откуда: Зеленоград
Благодарил (а): 77 раз
Поблагодарили: 249 раз

Re: Не выводянся нек-рые штатные переменные во внешнюю стран

Сообщение HAMMER663 »

Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Не выводянся нек-рые штатные переменные во внешнюю стран

Сообщение Nekstati »

putnik писал(а):{L_USERNAME} заменилось на "Имя пользователя", а {USERNAME_CREDENTIAL} заменилось на пустую строку.
Больше всего озадачивает то, что часть этих переменных все-таки подставляется.
Есть глобальные переменные, генерируемые в includes/functions.php (ищите по словам «The following assigns all _common_ variables that may be used at any point in a template»), а есть частные, генерируемые в index.php, viewtopic.php и т. п. Переменные, используемые в login_body.html, генерируются в ucp.php. А в форме входа в index_body.html используются только глобальные.
Аватара пользователя
putnik
phpBB 1.0.0
Сообщения: 9
Стаж: 14 лет 3 месяца
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Re: Не выводянся нек-рые штатные переменные во внешнюю стран

Сообщение putnik »

И по первому и по второму ответу выходит, что проще не заморачиваться а отсутствующее вписать руками.
Собственно, так и сделал, все заработало.

Спасибо обоим.

Вернуться в «Поддержка phpBB 3.0.х»