Цитата выделенного через всплывающее окно

Если у вас не установлен Quick Reply (Быстрый ответ), устанавливаем.

Скачиваем архив, распаковываем и заливаем себе на форум (Архив заменён - 01.04.2015 // CabinetAdmina)

Prosilver

Идём в overall_header.html, перед закрывающим тегом </head> ставим:

Код: Выделить всё

<script type="text/javascript" src="путь до файла/jquery-1.3.2.js"></script>
<script type="text/javascript" src="путь до файла/jquery.timers.js"></script>
Пути до скрипта указываем свои.
Если у вас уже подключена библиотека jQuery, то:

Код: Выделить всё

<script type="text/javascript" src="путь до файла/jquery-1.3.2.js"></script>
ставить не нужно.

Идём в quick_reply.html, в самом начале добавляем:

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
$(document).ready(function(){
   $("div.postbody").mouseup(function(e){
      pt = $(this).parents("div.post");
      if (window.getSelection)
      {
         theSelection = window.getSelection().toString();
      }
      else if (document.getSelection)
      {
         theSelection = document.getSelection();
      }
         else if (document.selection)
      {
         theSelection = document.selection.createRange().text;
      }   
      if (theSelection)
      {
         $("#addQuote").remove();
         $("body").append('<div id="addQuote" style="left: '+(e.pageX+15)+'px; top: '+(e.pageY+15)+'px;">Цитировать</div>');
         $("#addQuote").click(function () {
            $(this).hide();   
            username = pt.find("a[class='postauthor']:first").text();
            insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
         });
         $("#addQuote").oneTime(3000, function() {
            if ($(this).is(':visible')) {$(this).animate({height:0 , opacity:0}, 150)};
         });
      }
   });
});
// ]]>
</script>
Идём во viewtopic_body.html находим:

Код: Выделить всё

<!-- IF QUICK_REPLY --><a href="#postform" onclick="insert_text('[b]{postrow.POSTER_QUOTE}[/b]\r\n'); return false;"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}" <!-- ENDIF -->>{postrow.POST_AUTHOR}</a><!-- ELSE --><!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF --><!-- ENDIF -->
Заменяем на:

Код: Выделить всё

<!-- IF QUICK_REPLY --><a class="postauthor" href="#postform" onclick="insert_text('[b]{postrow.POSTER_QUOTE}[/b]\r\n'); return false;"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}" <!-- ENDIF -->>{postrow.POST_AUTHOR}</a><!-- ELSE --><!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF --><!-- ENDIF -->
Идём в тему вашего стиля. Находим:

Код: Выделить всё

/* Post body styles
----------------------------------------*/
Добавляем после:

Код: Выделить всё

#addQuote {
	position: absolute;
	z-index:100; 
	border: 1px solid #8FBC8F; 
	padding: 3px; 
	background: #E0FFE0; 
	color: #008000;
	cursor: pointer;
	font-size: 11px;
}


Subsilver2

Идём в overall_header.html, перед закрывающим тегом </head> ставим:

Код: Выделить всё

<script type="text/javascript" src="путь до файла/jquery-1.3.2.js"></script>
<script type="text/javascript" src="путь до файла/jquery.timers.js"></script>
Пути до скрипта указываем свои.
Если у вас уже подключена библиотека jQuery, то:

Код: Выделить всё

<script type="text/javascript" src="путь до файла/jquery-1.3.2.js"></script>
ставить не нужно.

Идём в quick_reply.html, в самом начале добавляем:

Код: Выделить всё

<script type="text/javascript">
// <![CDATA[
$(document).ready(function(){
   $("div.postbody").mouseup(function(e){
      pt = $(this).parents("table.tablebg");
      if (window.getSelection)
      {
         theSelection = window.getSelection().toString();
      }
      else if (document.getSelection)
      {
         theSelection = document.getSelection();
      }
         else if (document.selection)
      {
         theSelection = document.selection.createRange().text;
      }   
      if (theSelection)
      {
         $("#addQuote").remove();
         $("body").append('<div id="addQuote" style="left: '+(e.pageX+15)+'px; top: '+(e.pageY+15)+'px;">Цитата</div>');
         $("#addQuote").click(function () {
            $(this).hide();   
            username = pt.find("b[class='postauthor']:first").text();
            insert_text('[quote="' + username + '"]' + theSelection + '[/quote]');
         });
         $("#addQuote").oneTime(3000, function() {
            if ($(this).is(':visible')) {$(this).animate({height:0 , opacity:0}, 150)};
         });
      }
   });
});
// ]]>
</script>


Идём в тему вашего стиля. Находим:

Код: Выделить всё

.postbody {
	font-size: 1.3em;
	line-height: 1.4em;
	font-family: "Lucida Grande", "Trebuchet MS", Helvetica, Arial, sans-serif;
}
Добавляем перед:

Код: Выделить всё

#addQuote {
	position: absolute;
	z-index:100; 
	border: 1px solid #8FBC8F; 
	padding: 3px; 
	background: #E0FFE0; 
	color: #008000;
	cursor: pointer;
	font-size: 11px;
}
Стиль всплывающей подсказки можно сделать любой. Под свой стиль.
Последний раз редактировалось CabinetAdmin 08 авг 2012, 20:28, всего редактировалось 3 раза.
Комментарии: 70

Uzanka 21 янв 2014, 18:31 Сообщение

CabinetAdmin
спасибо :Rose: у меня всё получилось. только один вопрос. Почему у меня слово цитата всплывает достаточно далеко от текста, который я цитирую. Вот скрин с моего сайта.
http://www.scienceclub.listbb.ru/viewto ... 313#p11313

Это можно поправить как-то? У вас на форуме слово цитата всплывает сразу же рядом с текстом.
  • 0
Форум Science-Леди www.scienceclub.listbb.ru

CabinetAdmin 21 янв 2014, 19:19 Сообщение

Интересно:)
Попробуйте поиграть со значениями:

Код: Выделить всё

$("body").append('<div id="addQuote" style="left: '+(e.pageX+15)+'px; top: '+(e.pageY+15)+'px;">Цитировать</div>');
попробуйте сначала поставить 10, посмотрите как будет всплывать...
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

Uzanka 28 янв 2014, 19:34 Сообщение

CabinetAdmin » 21 янв 2014, 19:19 писал(а):попробуйте сначала поставить 10, посмотрите как будет всплывать...
честно говоря, ничего не меняется :pardon: в принципе, и так можно жить.. просто инетерсно почему у меня не так поставилось :unknown
  • 0
Форум Science-Леди www.scienceclub.listbb.ru

Uzanka 28 янв 2014, 21:08 Сообщение

Ой, я заметила от чего зависит расположение всплывающего окна "Цитата". Если выделяю текст мышкой слева направо, то всплывающий текст будет стоять далеко. А вот если справа налево, то почти под цитатой. Т.е. он, видимо, привязан к координатам последней точки... правда, изменение 15 на 1 ничем не помогло... может быть просто не в этом месте нужно поменять? :unknown
  • 0
Форум Science-Леди www.scienceclub.listbb.ru

CabinetAdmin 29 янв 2014, 14:05 Сообщение

Uzanka » Сегодня, 00:08 писал(а):А вот если справа налево, то почти под цитатой.
А как здесь на форуме? У меня что туда, что обратно, примерно в одинаковом от мыши расстоянии появляется...
Может какой конфликт скриптов?... Возможно.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 05 июн 2014, 17:47 Сообщение

CabinetAdmin » 22 май 2013, 17:53 писал(а):Если нужно чтобы кроме имени была ещё и дата, а заголовок вёл на сообщение, то нужно внести небольшие правки.
А если я хочу, чтобы только заголовок был ссылкой на сообщение и без даты и времени, то всё, что касается даты и времени, можно пропустить? :)
  • 0

CabinetAdmin 05 июн 2014, 18:29 Сообщение

Да, конечно.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 05 июн 2014, 21:29 Сообщение

Не знаю, насколько правильно или насколько неправильно это, но в скрипте в коде

Код: Выделить всё

           insert_text('[quote="[url=http://cabinetadmina.ru/viewtopic.php?p=' + idposts + '#p' + idposts + ']' + username + ' » ' + idfrom + '[/url]"]' + theSelection + '[/quote]');
убрал просто » ' + idfrom +. Работает :D И при цитировании только ссылку с ником пишет, как и хотел :)
  • 0

silver073000Василий 05 июн 2014, 22:32 Сообщение

А вот с subsilver`ом фокус не прокатывает :( Упорно отказывается ник ссылкой делать.
  • 0

CabinetAdmin 06 июн 2014, 15:22 Сообщение

BOJIK » Сегодня, 00:29 писал(а):убрал просто » ' + idfrom +.
» ' + idfrom + '. Последнюю кавычку тоже надо удалять, а то не парное количество получается.
BOJIK » Сегодня, 01:32 писал(а):А вот с subsilver`ом фокус не прокатывает
Видимо ошибся где-то.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 06 июн 2014, 16:14 Сообщение

Всё по инструкции делал :)
Нашёл проблему, но не знаю, как решить. Если нет Цитаты в стиле старой бумаги со старинным компасом, то эта цитата работает. А две вместе не уживаются и получается вот что. В стиль добавлены только эти две цитаты.
  • 0

CabinetAdmin 06 июн 2014, 19:18 Сообщение

Ну, с компасом, это не стандартная цитата, особенности её стиля:)
Добавьте:

Код: Выделить всё

.quotetitle a {
position: relative;
z-index: 2;
}
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!

silver073000Василий 06 июн 2014, 19:26 Сообщение

Премного благодарен :drink: Заработало :Yahoo!:
  • 0

vikweb 06 июл 2014, 16:02 Сообщение

CabinetAdmin писал(а):Цитата выделенного через всплывающее окно

автор Uho [hide]вот эта тема[/hide]
  • 0
Последний раз редактировалось CabinetAdmin 07 июл 2014, 13:47, всего редактировалось 1 раз.
Причина: Для ссылок на сторонние ресурсы используйте тег [hide]

CabinetAdmin 06 июл 2014, 20:27 Сообщение

vikweb писал(а):автор Uho вот эта тема
Нет. Автор владимир1983 на форуме phpbbguru.net.
  • 0
Хочешь поблагодарить? Есть способы: заходи на форум, создавай темы, делись опытом и наработками, общайся!