AetheldredaBG Главен Администратор


Регистриран на: 14 Сеп 2026 Мнения: 15 Местожителство: София, България
|
Пуснато на: Сря Сеп 16, 2026 11:18 pm Заглавие: Урок: Как да се показва подписът в профила |
|
|
Урок: Как да се показва подписът в профила
Тема: subSilver • phpBB 2.x • страница на профила • CLANGAMING.NET
Внимание: Този урок е писан специално за CLANGAMING.NET. Копирането, препубликуването или разпространението му без знание и съгласие на администрацията на CLANGAMING.NET не е позволено.
Какво ще получиш:
В профила на потребителя, най-отдолу, се появява блок Подпис. Текстът се показва със BBCode, линкове и усмивки, както в мненията. Ако потребителят няма подпис, блокът не се показва.
Файлове:
- includes/usercp_viewprofile.php
- templates/subSilver/profile_view_body.tpl
Направи копие на двата файла преди да пипаш.
Нови езикови редове не са нужни — phpBB2 вече има $lang['Signature'].
Стъпка 1 — Обработи подписа в PHP
Отвори:
| Код: | | includes/usercp_viewprofile.php |
Намери този край (след иконите за търсене):
| Код: | $temp_url = append_sid("search.$phpEx?search_author=" . urlencode($profiledata['username']) . "&showresults=posts");
$search_img = '<a href="' . $temp_url . '"><img src="' . $images['icon_search'] . '" alt="' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '" title="' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '" border="0" /></a>';
$search = '<a href="' . $temp_url . '">' . sprintf($lang['Search_user_posts'], $profiledata['username']) . '</a>';
//
// Generate page
// |
Между $search = ... и коментара Generate page постави:
| Код: | if ( !function_exists('bbencode_second_pass') )
{
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
}
$user_sig = '';
if ( $board_config['allow_sig'] && $profiledata['user_sig'] != '' )
{
$user_sig = $profiledata['user_sig'];
$user_sig_bbcode_uid = $profiledata['user_sig_bbcode_uid'];
if ( !$board_config['allow_html'] )
{
$user_sig = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $user_sig);
}
if ( $user_sig_bbcode_uid != '' )
{
$user_sig = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($user_sig, $user_sig_bbcode_uid) : preg_replace("/\:$user_sig_bbcode_uid/si", '', $user_sig);
}
$user_sig = make_clickable($user_sig);
if ( $board_config['allow_smilies'] && $profiledata['user_allowsmile'] )
{
$user_sig = smilies_pass($user_sig);
}
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
if ( count($orig_word) )
{
$user_sig = str_replace('\"', '"', substr(@preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "@preg_replace(\$orig_word, \$replacement_word, '\\0')", '>' . $user_sig . '<'), 1, -1));
}
$user_sig = str_replace("\n", "\n<br />\n", $user_sig);
} |
Този код:
- взима подписа от профила
- обработва BBCode
- прави линковете кликаеми
- показва усмивки
- цензурира забранени думи
- пази новите редове
Стъпка 2 — Предай подписа към шаблона
Все още в includes/usercp_viewprofile.php намери в $template->assign_vars:
| Код: | 'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ',
'AVATAR_IMG' => $avatar_img, |
Става:
| Код: | 'INTERESTS' => ( $profiledata['user_interests'] ) ? $profiledata['user_interests'] : ' ',
'AVATAR_IMG' => $avatar_img,
'USER_SIG' => $user_sig, |
После намери:
| Код: | | 'L_INTERESTS' => $lang['Interests'], |
Директно под него добави:
| Код: | | 'L_SIGNATURE' => $lang['Signature'], |
Накрая намери:
| Код: | 'S_PROFILE_ACTION' => append_sid("profile.$phpEx"))
);
$template->pparse('body'); |
Става:
| Код: | 'S_PROFILE_ACTION' => append_sid("profile.$phpEx"))
);
if ( $user_sig != '' )
{
$template->assign_block_vars('switch_user_sig', array());
}
$template->pparse('body'); |
Без switch_user_sig HTML блокът няма да се покаже.
Запази файла.
Стъпка 3 — Покажи блока в HTML
Отвори:
| Код: | | templates/subSilver/profile_view_body.tpl |
Намери края на основната таблица. Преди затварящия </table> на голямата forumline таблица (не на малката вътрешна) има:
| Код: | </table>
</td>
</tr>
</table> |
Това е след контактите (ICQ и т.н.). Замени го с:
| Код: | </table>
</td>
</tr>
<!-- BEGIN switch_user_sig -->
<tr>
<td class="catLeft" colspan="2" height="28"><b><span class="gen">{L_SIGNATURE}</span></b></td>
</tr>
<tr>
<td class="row1" colspan="2"><span class="postbody">{USER_SIG}</span></td>
</tr>
<!-- END switch_user_sig -->
</table> |
Запази файла.
Стъпка 4 — Проверка
- Качи файловете, ако редактираш локално
- Отвори профил на потребител, който има подпис
- Натисни Ctrl + F5
- Най-отдолу трябва да има заглавие Подпис и самият текст
- Отвори профил без подпис — този блок трябва да липсва
Често срещани грешки
- HTML е пипнат, но няма switch_user_sig в PHP — блокът не се показва
- В Админ панела подписите са изключени (allow_sig) — тогава нарочно не се показва нищо
- Потребителят няма попълнен подпис в Профил → Подпис
- Пипнат е грешният </table> (вътрешната таблица за контакти, а не голямата)
Авторски права
Този урок е писан за CLANGAMING.NET.
Копирането му без знание и съгласие не е позволено. _________________ CLANGAMING.Net Administrator
Гейминг общност & Уеб разработки
Гледайте ни в Twitch: AetheldredaBG |
|