Итак, камрады, меня не покидает назойливая идея самому реализовать некоторые из моих мечтаний.
На оф. форуме много глупости говорят, мол, невозможно. Ну не может же такого быть, чтобы ну вообще никак нельзя было реализовать.
Я подумал, покопался в коде, проанализировал ситуацию – а ведь все не так сложно, как нам пытаются внушить.
Может быть, кто-то владеет РНР в достаточной мере, чтобы решить… довольно несложные задачи. И тогда эти наработки станут нашим эксклюзивом)).
Итак, нумер один.
Показ формы быстрого ответа для гостей
По умолчанию, форма быстрого ответа для гостей не показывается ВООБЩЕ, даже если разрешен гостевой постинг. На оф. форуме Стив сказал, что это фича:
http://www.vbulletin.com/forum/showthread.php?t=206186
А я читаю, что это баг – если гостям разрешен постинг, то им должна показываться форма быстрого ответа. Например, у меня на всем форуме разрешен гостевой постинг. Ну, пусть не все такие дураки, как я, но ведь наверняка у многих есть специальные технические разделы типа «Решаем проблемы», в которых гости могут отписываться о, например, невозможности зарегистрироваться по той или иной причине. Поэтому пока формы быстрого ответа для гостей в разделах, где РАЗРЕШЕН гостевой постинг я считаю довольно полезной фичей.
На каком-то форуме, жаль сейчас не могу найти ссылку, я видел очень хорошую реализацию, правда там была 2 версия воблы.
Итак, путем простой правки шаблонов дело не решается, нужно редактировать файл showthread.php . За вывод формы быстрого ответа отвечает код:
PHP Code:
// work out if quickreply should be shown or not
if (
$vbulletin->options['quickreply']
AND
!$thread['isdeleted'] AND !is_browser('netscape') AND $vbulletin->userinfo['userid']
AND (
($vbulletin->userinfo['userid'] == $threadinfo['postuserid'] AND $forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyown'])
OR
($vbulletin->userinfo['userid'] != $threadinfo['postuserid'] AND $forumperms & $vbulletin->bf_ugp_forumpermissions['canreplyothers'])
) AND
($thread['open'] OR can_moderate($threadinfo['forumid'], 'canopenclose'))
)
{
$show['quickreply'] = true;
}
else
{
$show['quickreply'] = false;
$show['wysiwyg'] = 0;
$quickreply = '';
}
$show['largereplybutton'] = (!$thread['isdeleted'] AND !$show['threadedmode'] AND $forum['allowposting'] AND !$show['search_engine']);
if (!$forum['allowposting'])
{
$show['quickreply'] = false;
}
$show['multiquote_global'] = ($vbulletin->options['multiquote'] AND $vbulletin->userinfo['userid']);
if ($show['multiquote_global'])
{
$vbulletin->input->clean_array_gpc('c', array(
'vbulletin_multiquote' => TYPE_STR
));
$vbulletin->GPC['vbulletin_multiquote'] = explode(',', $vbulletin->GPC['vbulletin_multiquote']);
}
Собственно, самое простое – сменить тут
PHP Code:
else
{
$show['quickreply'] = false;
false на true.
Через жопу, но будет работать. Почему через жопу? А потому, что при отправке идет проверка на количество символов в нике. А мы не указывали ник т.к. отобразилась просто форма быстрого ответа, без поля ввода ника. Поэтому, при попытке отправки такого сообщения нас перебросит на полную форму, где уже в поле ник будет вписано «Гость» и можно будет отправить сообщение.
Хотя нет, еще не все. Ибо у любого здравомыслящего администратора для гостевого постинга включена проверка кодом. Отключать – не выход, а выход – модифицировать файл showthread.php
Итак, к чему мы пришли?
Мы пришли к тому, что нужно модифицировать файл showthread.php так, чтобы при просмотре темы гоcтям показывалась не только форма быстрого ответа, а и поле для ввода ника + поле для ввода букв/цифр с картинки. Если проще – как добиться результата, похожего на этот:
http://forums.disenteria.ru/index.ph...=4&t=334&st=25