Перейти к контенту

"Быстрая цитата" как в вобле


Рекомендуемые сообщения

В 1.3 справа под каждым сообщением висит кнопочка скролинга к началу страницы, вот такая: http://www.medicinform.ru/style_images/1/p_up.gif

В вобле на ее месте кнопочка быстрой цитаты, о-о-о-очень удобная.

Решил я кнопочку перевернуть, сделать вот такой: http://vesvalo.net/style_images/1/p_up.gif

А на кнопочку повесить "быструю цитату" - чтобы не только текст цитировала, но, как при самой настоящей цитате, вводила и имя автора, и дату-время цитируемого сообщения.

 

Для этого модифицированы файлы:

 

html/quote.js

добавляю функцию:

function Insertranged(text,autorpost,datapost){
if (text!="") paste("[quote="+autorpost+","+datapost+"]"+text+"[/quote]\n", 1);
}

 

sources/Topics.php

У меня модифицированный форум, который по клику на имя постера вставляет имя в быстрый ответ.

Закомментировал строку:

$poster['name']="<a href=\"javascript:ins('{$poster['name']}')\">{$poster['name']}</a>";

Гиперлинк вынес позже в скиновой файл.

 

У кого по клику на имя постера открывается профиль, нужно будет найти строку

$poster['name'] = "<a href='{$this->base_url}showuser={$poster['id']}'>{$poster['name']}</a>";

и заменить на

$poster['name']=str_replace(" ", " ", $poster['name']);

а гиперлинк вынести в скин, это я не делал.

 

skin_topic.php

Найти:

<a href='javascript:scroll(0,0);'><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Top' border='0' /></a>

Заменить на:

<a href="javascript:Insertranged(selection,'{$author['name']}','{$post['post_date']}')" onMouseOver="get_selection()" title="Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда"><img src='{$ibforums->vars['img_url']}/p_up.gif' alt='Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда' border='0' /></a>

 

Для восстановления функции вставки имени в быстрый ответ по клику на имени над сообщением, найти:

<td align='center' valign='middle' class='row4' width="1%"><a name='entry{$post['pid']}'></a><span class='{$post['name_css']}'>{$author['name']}</span></td>

 

Заменить на:

<td align='center' valign='middle' class='row4' width="1%"><a name='entry{$post['pid']}'></a><span class='{$post['name_css']}'><a href="javascript:ins('{$author['name']}')">{$author['name']}</a></span></td>

 

 

__________________________

UPD 18.03.07:

Подправил код, чтобы при вставке цитаты страница сама проматывалась к форме быстрого ответа.

Замеченные баги: теперь кликабельными стали не только имена зарегистрированных пользователей, но и имена гостей. Лично мне так даже больше нравится.

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

  • 11 месяцев спустя...

текст цитаты вставляется простым paste. если фокус не на форме ввода, то может и не сработать. можно доработать функцию Insertranged в файле quote.js:

 

function Insertranged(text,autorpost,datapost){
if (text!=""){
var input=document.REPLIER.Post;
input.value=input.value+ "[quote="+autorpost+","+datapost+"]"+text+"[/quote]\n";
document.REPLIER.Post.focus();
}
}

Ссылка на комментарий
Поделиться на других сайтах

текст цитаты вставляется простым paste.

У меня сборка от Игорька М., и функция paste в ней совсем не такая простая:

function paste(text, flag){
if (document.REPLIER) {
	if ((document.selection)&&(flag)) {
		document.REPLIER.Post.focus();
		document.REPLIER.document.selection.createRange().text = text;
	} else document.REPLIER.Post.value += text;
}
}

 

 

 

если фокус не на форме ввода

Код document.REPLIER.Post.focus(); для того и нужен.

 

В итоге, имеем:

В глупой лисе мой и Ваш код будут работать одинаково.

В ИЕ и в Опере мой код разрешит вставлять цитату не только в конец, но и в нужное место набранного текста по позиции курсора.

Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...
Извините, так и не понял, где выложен конечный вариант мода, который к тому же будет работать на 2.3.5?

Вам ответили в соседнем топике.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.