Хак для Vbulleten - обратиться по нику

12
Unlock
На сайте с 01.08.2004
Offline
757
1888

Люди добрые :)

Подскажите, что за хак на этом форуме установлен, которые дает такие фичи:

Обратиться по нику
Цитата выделенного

Только именно в том виде, как здесь, т.е. ссылкой.

Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
DeveloperRu
На сайте с 27.02.2009
Offline
72
#1

Unlock, проверка, как это работает :)

имхо, ответ простой - при помощи javascript

<a class="smallfont" title="Ник в ответ" href="javascript:insertnick('Unlock');"><b>Обратиться по нику</b></a>

а вот и функция JS

function insertnick(nickname) {
document.vbform.message.focus();
document.vbform.message.value+= '' + nickname + ', ';
}

в шаблоне у тебя есть доступ к меткам с именем ника - просто вставь эту метку вместо Unlock в javascript:insertnick('Unlock');

Ответы на вопросы (http://telenok.com)
Unlock
На сайте с 01.08.2004
Offline
757
#2

Что-то мне кажется все не так просто. Хотелось бы знать что это за хак, а это врядли локальные поделки.

DeveloperRu
На сайте с 27.02.2009
Offline
72
#3

вот полная подсказка

http://www.vbsupport.org/forum/archive/index.php/t-1114.html



дописываем к конец clientscript\vbulletin_quick_reply.js
// START nick to quick relpay

function insertnick(nickname){
if(document.selection){
document.vbform.message.focus();
document.selection.createRange().text += '' + nickname + ', ';
}
else{
document.vbform.message.focus();
document.vbform.message.value+= '' + nickname + ', ';
}
}
// END nick to quick relpay


находим в postbit_legacy
<div id="postmenu_$post[postid]">
<if condition="$show['profile']">
<a class="bigusername" href="member.php?$session[sessionurl]u=$post[userid]">$post[musername]</a>
<script type="text/javascript"> vbmenu_register("postmenu_$post[postid]", true); </script>
<else />
$post[musername]
</if>
</div>

и заменяем на
<if condition="$show['quickreply']">
<a class="bigusername" href="javascript:insertnick('$post[username]');" title="Вставить ник в форму быстрого ответа"><b>$post[musername]</b></a>
<else />
<b>$post[musername]</b>
</if>
<span id="postmenu_$post[postid]">
<img src="$stylevar[imgdir_misc]/menu_open.gif" border=0 />
<script type="text/javascript"> vbmenu_register("postmenu_$post[postid]", true); </script>
</span>

-----
при клике по ники ник вставляется в быстрый ответ а рядом с ником появляется стрелочка с ненюшкой, проверял на опере8,5, эксплорере, маие, лисе

PR
На сайте с 30.12.2007
Offline
93
#4

Сделаем как на этом форуме. Импортируйте продукт, который я прикрепил к сообщению. И отредактируйте шаблон postbit_legacy. (Если не знаете где он: раскрываете список Стили и шаблоны -> Поиск в шаблонах, выбирает в каком шаблоне искать и вводите в поле postbit_legacy).

Находите в нем код:

<div>$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon]</div>

И ниже вставляете следующий:

<if condition="$show['quickreply']">

<div><a href="javascript:insertNick('$post[usernamequick]', '$post[postid]');"><b>Обратиться по нику</b></a><br />
<a href="javascript:insertQuote('$post[usernamequick]', selection, '$post[postid]')" onMouseOver="catchSelection()"><b>Цитата выделенного</b></a></div>
</if>

Сохраняете и тестируете.

zip product-nick_in_qr_quote_selected.zip
Константинович
На сайте с 13.09.2008
Offline
319
#5
Unlock:
Подскажите, что за хак на этом форуме установлен, которые дает такие фичи:

а поиск уже не рулит? :)

а зачем офф. форум булки?

обучение поиску в гугле

Нужны финансы? Быстрая скупка (http://dragmettorg.com/skupka_zolota/). Цены на сайте. А потом отыграй из на казино онлайн правила (http://premium-games.ru/)
Unlock
На сайте с 01.08.2004
Offline
757
#6

Константинович, а читать сообщение уже не модно? :)

Это другой вариант, по крайней мере в случае с "обратиться по нику".

Ну и напоследок для самых умных, есть тема более свежая чем от 2006 года:

http://vbsupport.org/forum/showthread.php?t=28479

DeveloperRu, мне для 3.8 надо.

PROGRAMMATOR, спасибо. Это для 3.8 подойдет?

PR
На сайте с 30.12.2007
Offline
93
#7

Конечно, проверено на 3.6.4, 3.7.3 и 3.8.2

Unlock
На сайте с 01.08.2004
Offline
757
#8

PROGRAMMATOR, не работает на 3.8.3 Какая-то ошибка javascript. Кстати, кодировка на что-то влияет? У меня cp1251. Кроме xml файла ничего не должно быть?

PR
На сайте с 30.12.2007
Offline
93
#9

Unlock, что-то упустил, конечно должно быть. :) Откройте /clientscript/vbulletin_quick_reply.js и перед строкой:

var vB_QuickReply = true;

Добавьте следующее:

function insertQuote(nickname, text)
{
if (text!="")
paste("
+nickname+:
"+text+"
\n", 0);
document.vbform.message.focus();
}
function paste(text, flag)
{
if ((document.selection)&&(flag))
{
document.vbform.message.focus();
document.vbform.document.selection.createRange().text = text;
}
else document.vbform.message.value += text;
}

function get_selection()
{
if (document.getSelection)
{
selection = document.getSelection();
selection = selection.replace(/\r\n\r\n/gi, "_doublecaret_");
selection = selection.replace(/\r\n/gi, " ");
while (selection.indexOf(" ") !=-1) selection = selection.replace(/ /gi, "");
selection = selection.replace(/_doublecaret_/gi, "\r\n\r\n");
}
else
selection = document.selection.createRange().text;
}
function catchSelection()
{
if (window.getSelection)
{
selection = window.getSelection().toString();
}
else if (document.getSelection)
{
selection = document.getSelection();
}
else if (document.selection)
{
selection = document.selection.createRange().text;
}
}
function insertNick(nickname)
{
if(document.selection)
{
document.vbform.message.focus();
document.selection.createRange().text += '' + nickname + ', ';
}
else
{
document.vbform.message.focus();
document.vbform.message.value+= '' + nickname + ', ';
}
}
Unlock
На сайте с 01.08.2004
Offline
757
#10

У меня в самом конце файла вот такая строка:

{qr_errors_shown=true;fetch_object("qr_error_tbody").style.display="none";return false}}var vB_QuickReply=true;

Что вставлять код прямо между } и var?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий