Перейти к содержимому


Выбрать шаблон и создать сайт

Добавить свой текст в шаблон (динамический)

#1 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0
0

Отправлено 18 Март 2009 - 20:34

Вот эта функция (может это и не функция, я не знаю) проверяет в phpbb2 вошел ли человек, или он гость

<!-- BEGIN switch_user_logged_out -->
<a href="{U_REGISTER}">{L_REGISTER}</a>
<!-- END switch_user_logged_out -->

Если гость, то она выдает переменную {L_REGISTER}, это может быть чот-то типа "Вам нужно зарегистрироваться". А если не гость то она ничего не выдает. Мне нужно както примотать туда, чтобы если он вошел, то выдавало какую-нибудь другую переменную (например "Здравствуйте {Имя юзера} "). Из-языков програмирования я знаком только с паскалем, на нем для этого нужен был бы оператор else, что переводится как Иначе. Думаю уже понятно что я хочу, может быть этот код легко изменить, чтобы было такое "Если гость то ... , иначе ....

Если это не так просто как мне кажется, то направьте меня туда, где это можно почитать. Спасибо

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Март 2009 - 10:16

Это помоему ссылка для выхода с авторизации. Там же всё построено на шаблонах. Добавляешь своё {PARAM}, потом ищешь файл к примеру с языками и добавляешь туда переменную к примеру
$language['PARAM'] = "Мой текст";
Пример не бери за основу, я не знаю какие там массивы в языковом файле, сам посмотри и сделай подобное :unsure:
  • 0

#3 Bender

Bender
    Topic Starter
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 19 Март 2009 - 12:44

Не понял, куда нужно добавить {PARAM} ?
Вот у меня в языковом файле есть такое

$lang['Register'] = 'Регистрация';

В файле .tpl который содержит шапку есть такое

<!-- BEGIN switch_user_logged_out -->
<a href="{U_REGISTER}">{L_REGISTER}</a>
<!-- END switch_user_logged_out -->

Это работает так: если ты гость, то тебе ссылку на регистрацию, если ты не гость, то тебе ничего. Мне нужно, чтобы если ты не гость, то тебе выдавало, допустим, "Привет".
Я пропишу в языковой файл

$lang['PARAM'] = 'Привет';

И куда мне нужно вставить {PARAM} ?
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Март 2009 - 17:58

Хотя нет, так просто не получится

Смотри, в папке includes находятся модули, которые подключаются в зависимости от нужных данных и функций.
Вот строчки кода, которые показывают как идёт связь между {L_GO} и языковой переменной $lang['Go']
$template->assign_vars(array(
		'L_GO' => $lang['Go'],
		'L_JUMP_TO' => $lang['Jump_to'],
		'L_SELECT_FORUM' => $lang['Select_forum'],

		'S_JUMPBOX_SELECT' => $boxstring,
		'S_JUMPBOX_ACTION' => append_sid($action))
	);
Вам нужно просто найти кусок кода, где обрабатывается ваш файл *.tpl и вставить в формирование параметров свой
'PARAM' => $lang['ваш_ключ_в_языковом_массиве']

  • 0

#5 Bender

Bender
    Topic Starter
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 19 Март 2009 - 20:07

Я так понял, моя нкция должна быть гдето прописана так : switch_user_logged_out ?
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 19 Март 2009 - 21:07

Ладно так уж и быть.. не буду вас мучить и покажу куда вставить и как :unsure:
1) В файле language/lang_russian/lang_main.php (русский) и language/lang_english/lang_main.php (английский)
Вставить такую строчку
$lang['Hello_user'] = 'Приветствуем вас, <b>%s</b>';

2) Заходим в шаблон в файл templates/ваш_стиль/overall_header.tpl
Находим такой код
<span class="mainmenu"> <a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>   <a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>   <a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a> </span></td>
Заменяем его на:
<span class="mainmenu"> {L_HELLO_USER} <a href="{U_PROFILE}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_profile.gif" width="12" height="13" border="0" alt="{L_PROFILE}" hspace="3" />{L_PROFILE}</a>   <a href="{U_PRIVATEMSGS}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_message.gif" width="12" height="13" border="0" alt="{PRIVATE_MESSAGE_INFO}" hspace="3" />{PRIVATE_MESSAGE_INFO}</a>   <a href="{U_LOGIN_LOGOUT}" class="mainmenu"><img src="templates/subSilver/images/icon_mini_login.gif" width="12" height="13" border="0" alt="{L_LOGIN_LOGOUT}" hspace="3" />{L_LOGIN_LOGOUT}</a> </span></td>

3) Далее надо будет немного поправить программную часть.
Открываем файл includes/page_header.php
Ищем
if ( $userdata['session_logged_in'] )
{
	$u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
	$l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]';
}
Заменяем на
if ( $userdata['session_logged_in'] )
{
	$u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
	$l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]';
	$l_hello_user = $userdata['username'];
}

Затем ищем строку
'L_LOGIN_LOGOUT' => $l_login_logout,
Вставляем сразу после неё на новой строке
'L_HELLO_USER' => sprintf($lang['Hello_user'], $l_hello_user),


Всё теперь увидим приветствие перед профилем вида:

Приветствуем вас, логин


  • 0

#7 Bender

Bender
    Topic Starter
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 20 Март 2009 - 16:02

Спасибо ZiTosS за помощь, но у меня там уже все очень сильно переделано, видимо по этому не работает, на дефолте это наверное работать будет.

Свою проблему я уже решил, она была проста до смешного. Функция

<!-- BEGIN switch_user_logged_out -->
Привет
<!-- END switch_user_logged_out -->

Выдает "Привет" гостям, а если ее изменить вот так

<!-- BEGIN switch_user_logged_in -->
Привет
<!-- END switch_user_logged_in -->

То она выдает "Привет" только зарегиным. Исходя из этого можно сделать хорошее и информативное приветствие для пользователей, и просьбу зарегиться для гостей, над этим я сейчас и ломаю голову...
  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 20 Март 2009 - 16:26

Что ломать, я уже показал как...
То что вы написали:
switch_user_logged_in и switch_user_logged_out никакие не функции, попробуйте их найдите. Это просто одна из возможностей шаблонизации. В зависимости от определённых параметров выводить ту или иную часть файла-шаблона.
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru