Итак, спасибо за ссылку на phpBB.ком, где рассказано, как заставить работать ббпанель.
По аналогии, можно сделать и смайлы.
смотрим, как они формируются в posting.php:
Код: Выделить всё
// HTML, BBCode, Smilies, Images and Flash status
..........
$smilies_status = ($config['allow_smilies'] && $auth->acl_get('f_smilies', $forum_id)) ? true : false;
Вот эта строка, которая нам и нужна для определения разрешения смайлов.
открываем viewtopic.php и после строки:
Код: Выделить всё
($topic_data['topic_status'] == ITEM_LOCKED) ? $qr_hidden_fields['lock_topic'] = 1 : true;
добавляем определение статуса и собственно генерацию смайлов (взято из posting.php):
Код: Выделить всё
$smilies_status = ($config['allow_smilies'] && $auth->acl_get('f_smilies', $forum_id)) ? true : false;
if ($smilies_status) {
generate_smilies('inline', $forum_id);
}
и чтобы эта функция была доступна, подключаем файл функций: нужно добавить еще
Код: Выделить всё
include($phpbb_root_path . 'includes/functions_posting.' . $phpEx);
после
Код: Выделить всё
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
Ну и кидаем переменную статуса в шаблон. в массив добавляем "'S_SMILIES_ALLOWED' => $smilies_status,":
Код: Выделить всё
$template->assign_vars(array(
'S_QUICK_REPLY' => true,
.......
'S_SMILIES_ALLOWED' => $smilies_status,
));
в styles/prosilver/template/quickreply_editor.html добавляем блок смайликов. После блока текста сообщения
добавляем:
Код: Выделить всё
<div id="smiley-box">
<!-- IF S_SMILIES_ALLOWED and .smiley -->
<strong>{L_SMILIES}</strong><br />
<!-- BEGIN smiley -->
<a href="#" onclick="insert_text('{smiley.A_SMILEY_CODE}', true); return false;"><img src="{smiley.SMILEY_IMG}" width="{smiley.SMILEY_WIDTH}" height="{smiley.SMILEY_HEIGHT}" alt="{smiley.SMILEY_CODE}" title="{smiley.SMILEY_DESC}" /></a>
<!-- END smiley -->
<!-- ENDIF -->
<!-- IF S_SHOW_SMILEY_LINK and S_SMILIES_ALLOWED-->
<br /><a href="{U_MORE_SMILIES}" onclick="popup(this.href, 300, 350, '_phpbbsmilies'); return false;">{L_MORE_SMILIES}</a>
<!-- ENDIF -->
</div>
У меня блок смайлов съезжал вниз ниже текстового поля... подправил styles/prosilver/theme/forms.css. Добавил float:left для текстового поля. Такого свойства в обычной форме ответа нет, но там ничего не съезжает. Глубоко копать не стал, добавление этого свойства ничего плохого сделать не должно на других страницах.
Код: Выделить всё
/* Main message box */
#message-box {
width: 80%;
float: left;
}
Вроде всё.