Powered by Invision Power Board
Здравствуйте Гость ( Вход | Регистрация ) Выслать повторно письмо для активации

Forum Rules Правила раздела

В этом разделе пользователи форума могут только оставлять сообщения в темах.
Перед отправлением сообщений, пожалуйста, прочитайте правила форума.
В темах раздела задавайте вопросы правильно и, соблюдайте знаки препинания.

  Reply to this topicStart new topicStart Poll

> Ещё одна быстрая цитата
gagarin
Отправлено: Ноя 21 2015, 00:06
Quote Post


undefined is not a function
Group Icon

Группа: Пользователи
Сообщений: 81
Пользователь №: 3 061
Регистрация: 23-Марта 11
Member Offline

Репутация: 4




Что это?

Эта модификация, позволяющая цитировать выделенный текст и вставлять его в окно быстрого ответа. Может быть удобна при множественном цитировании в одном посте. Кнопка быстрого цитирования всплывает рядом с курсором мыши при выделении текста.

Как это выглядит?

user posted image
user posted image

Я ничего не понял, где посмотреть вживую?

Эта модификация установлена на http://maffss.ipb.su, но чтобы её оценить требуется регистрация.

Известные недостатки
  • цититует только текст из поста (изображения и стили текста игнорируются)
  • если на форуме включено отображение относительной даты, то в качестве даты цитаты также вставляется относительная дата
Известные аналогиДостоинства, в сравнении с аналогами
  • если в выделении встречается цитата, то она вырезается из процитированного сообщения
  • клёвое всплывающее окно у курсора с кнопкой цитирования
Недостатки, в сравнении с аналогами
  • если в выделении встречается цитата, то она вырезается из процитированного сообщения
  • надоедливое всплывающее окно у курсора с кнопкой цитирования
  • немного больше трудностей при установке
Я хочу это! Что нужно сделать?

Внимательно прочитать нижеследующую инструкцию с примечаниями и выполнить то, что там написано.

Поехали.

Шаг 1

Открываем шаблон "Просмотр темы (Topic View Section)" -> "Post Entry".

Находим строку:
Код
<div class='postcolor'>{$post['post']} {$post['attachment']}</div>

Заменяем на:
Код
<div class="postcontent"><div class='postcolor'>{$post['post']} {$post['attachment']}</div></div>


Сохраняем.

Примечание для продвинутых пользователей:
[Показать/Скрыть]
таким образом всё полезное содержимое поста помещается в один div и с ним удобно работать из скрипта)


Шаг 2

Открываем стили для вашего скина, добавляем в конец
Код
#quick-quote-popup {
display: none;
position: absolute;
}


Сохраняем.

Примечание для продвинутых пользователей:
[Показать/Скрыть]
Оба атрибута важны с точки зрения функциональности дополнения. Если вы хотите изменить внешний вид всплывающего окна с кнопкой цитирования, то можете добавить новые атрибуты.


Шаг 3

Открываем шаблон "Просмотр темы (Topic View Section)" -> "Footer".

Добавляем в конец
Код
<div id="quick-quote-popup">
<a href="#" id="quoter-do-quote"><{P_QUOTE}></a>
<a href="#" id="quoter-cancel"><img src="http://maffss.ipb.su/style_images/IPB2/f_closed.gif" /></a>
</div>


Пока не сохраняем.

Примечание для продвинутых пользователей:
[Показать/Скрыть]
Это div с всплывающим окном для цитирования. Можно изменить его оформления, но для правильной работы нужно сохранить id элементов: "quick-quote-popup" для самого всплывающего окна, "quoter-do-quote" для кнопки цитирования, "quoter-cancel" для кнопки закрытия всплывающего окна.


Шаг 4

В тот же шаблон ("Просмотр темы (Topic View Section)" -> "Footer") добавляем в конец
Код

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://ipb.su/html/jscripts/jquery.selection.js"></script>
<script src="http://ipb.su/html/jscripts/jquery.innerText.js"></script>
<script src="http://ipb.su/html/jscripts/quick_quote.js"></script>
<script>$.noConflict(true);</script>


Примечание для продвинутых пользователей:
[Показать/Скрыть]

Acknowledgements

При разработке я использовал:
  • jQuery
  • плагин jQuery selection
  • плагин для jQuery, реализующий innerText, найденный на просторах интернета, который, к сожалению, я не могу найти повторно


Это сообщение отредактировал gagarin - Ноя 21 2015, 01:48
Top
admin
Отправлено: Ноя 21 2015, 00:29
Quote Post


Разработчик
Group Icon

Группа: Администраторы
Сообщений: 5 535
Пользователь №: 1
Регистрация: 27-Октября 07
Member Offline

Репутация: 183




gagarin, здорово.
Закачал файлы из репозитория к нам на сервер. Таким образом, вместо "простыни" из шага 4 достаточно добавить вот это:
Код
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://ipb.su/html/jscripts/jquery.selection.js"></script>
<script src="http://ipb.su/html/jscripts/jquery.innerText.js"></script>
<script src="http://ipb.su/html/jscripts/quick_quote.js"></script>
<script>$.noConflict(true);</script>


--------------------
Ответы на очень многие вопросы уже много раз давались на форуме. Пожалуйста, перед созданием темы с вопросом пользуйтесь поиском.

user posted image
Top
gagarin
Отправлено: Ноя 21 2015, 00:41
Quote Post


undefined is not a function
Group Icon

Группа: Пользователи
Сообщений: 81
Пользователь №: 3 061
Регистрация: 23-Марта 11
Member Offline

Репутация: 4




admin, спасибо, исправил инструкцию.

Это сообщение отредактировал gagarin - Ноя 21 2015, 00:41
Top
gagarin
Отправлено: Дек 31 2015, 17:15
Quote Post


undefined is not a function
Group Icon

Группа: Пользователи
Сообщений: 81
Пользователь №: 3 061
Регистрация: 23-Марта 11
Member Offline

Репутация: 4




Пофиксил мелкие баги в quick_quote.js, изменения в репозитории
Top
admin
Отправлено: Янв 1 2016, 12:53
Quote Post


Разработчик
Group Icon

Группа: Администраторы
Сообщений: 5 535
Пользователь №: 1
Регистрация: 27-Октября 07
Member Offline

Репутация: 183




Цитата (gagarin @ Дек 31 2015, 17:15)
Пофиксил мелкие баги в quick_quote.js, изменения в репозитории

Перезалил файл на сервер.


--------------------
Ответы на очень многие вопросы уже много раз давались на форуме. Пожалуйста, перед созданием темы с вопросом пользуйтесь поиском.

user posted image
Top
Alex_63
Отправлено: Янв 1 2016, 14:54
Quote Post


Участник
Group Icon

Группа: Пользователи
Сообщений: 50
Пользователь №: 6 208
Регистрация: 20-Декабря 15
Member Offline

Репутация: 2




gagarin
Можно реализовать гораздо более коротким скриптом
Посмотрите Аналог для форумов Майбб
Код
<!--Всплывающее окно цитирования-->
<div id="Bubble" style="display:none;position:absolute;z-index:100000">
<span></span></div><script>function PopUpPL_Quote(){var fresh=false,SSsq='<img src="http://savepic.su/6532732.png">';
$("#Bubble").prependTo("body");$('.post').mouseup(function(pos){var theSelection='';if(window.getSelection&&!$.browser.opera){theSelection=window.getSelection().toString()}else if(document.getSelection){theSelection=document.getSelection()}else if(document.selection){theSelection=document.selection.createRange().text}if(!(theSelection==''||typeof theSelection=='undefined'||theSelection==null)&&!(fresh)){$("#Bubble").css({'left': (pos.pageX+5)+'px', 'top':(pos.pageY+4)+'px', 'display': 'none' });$("#Bubble span").html('<a href="'+$(this).find("li.pl-quote a:first").attr("href")+'">'+SSsq+'</a>');$("#Bubble").fadeIn(200);fresh=true}else if(fresh){fresh=false}});$('#Bubble span').click(function(){$('#Bubble').hide(200);fresh=false});$('.post').mousedown(function(){if(fresh){$("#Bubble:visible").hide(200);fresh=false}});}
if($("#pun-viewtopic").length){PopUpPL_Quote()}
</script>
Top
gagarin
Отправлено: Янв 22 2016, 19:04
Quote Post


undefined is not a function
Group Icon

Группа: Пользователи
Сообщений: 81
Пользователь №: 3 061
Регистрация: 23-Марта 11
Member Offline

Репутация: 4




Пофиксил баги в jquery.innerText.js (по нормальному всё, оказывается, работало только в Хроме), изменения, опять-таки, в репозитории.
Top
admin
Отправлено: Янв 23 2016, 00:56
Quote Post


Разработчик
Group Icon

Группа: Администраторы
Сообщений: 5 535
Пользователь №: 1
Регистрация: 27-Октября 07
Member Offline

Репутация: 183




gagarin, перезалил.


--------------------
Ответы на очень многие вопросы уже много раз давались на форуме. Пожалуйста, перед созданием темы с вопросом пользуйтесь поиском.

user posted image
Top
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Topic Options Reply to this topicStart new topicStart Poll