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

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


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

В 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?

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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