[dQuoteSelection Mod] - выделенного текста и уведомление о цитировании

Автор digger®, 07 августа 2007, 03:53:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Remix

Цитата: digger от 22 марта 2008, 15:51:40
А если у человека нет аватара?
:)
всегда есть "no avatar" :) а ты, как админ позаботься об этом))
"Лучше сделать и пожалеть, чем не сделать и пожалеть".
-=Китайская пословиц=-

Adept

[quote author=deadbead link=topic=2472.msg24802#msg24802
Для экономии места не добавлять кнопочку а подменять функционал старой) Если есть выделение, то цитировать выделенное, иначе полностью сообщение.
[/quote]
Об этом я писал Здесь, но поддержки не нашел похоже. Я всеми руками ЗА такой функционал, у самого не получилось, а больше руки не доходили.

Rustami

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

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


Rustami

Странно, у меня вообще на все пакеты так ругается.

dedmazai


Rustami


mixman

Я ставил ручками и сначала не заработало...
Удалил строчку if (quickReplyCollapsed) swapQuickReply(); и все заработало нормально...


mixman

#109
стандарнтная, но с этой строкой сопротивлялся... убрал и все гуд стало

только в логах вижу ошибку

http://mysite/index.php?/topic,743.new.html
8: Undefined index: dQuoteSelection_txt
Файл: /home/domains/mysite/public_html/Sources/Subs.php
Строка: 3587

Я так понял что это языковые стринги не прописаны... но я все прописал в index.russian.php

Шаннар

Цитата: digger от 07 августа 2007, 03:53:13
Добавляет в сообщения кнопку "Цитировать выделенное". Работает только с быстрым ответом.
При выделении произвольного текста сообщения и нажатии на кнопку, добавляет в быстрый ответ цитату с указанием автора, даты, и ссылки цитируемого сообщения.
Можно ли как-то "научить" мод цитировать коды смайлов, а не их текстовый эквивалент?..


deadbead

Цитата: Шаннар, 2:463/587 от 17 апреля 2008, 14:18:21
Можно ли как-то "научить" мод цитировать коды смайлов, а не их текстовый эквивалент?..
Теоретически да.
При захвате тянуть из базы сообщение целиком, искать в нем выделенную часть цитаты и вставлять ее в сообщение... Через AJAX... но к сожалению я с этой технологией не дружу... :(
Это же самый страшный разум во вселенной. Высылайте беспилотный модуль.

Nemo000

Цитата: deadbead от 21 марта 2008, 19:16:01
А функционал добавления имени в сообщения предлагаю выполнить в виде кнопочки возде ника пользователя.
У меня это уже реализовано при щелчке на самом имени автор, для входа в профиль хватает одной стандартной кнопки. Хотелось бы все таки попросить сделать версию мода с одной кнопкой цитировать. Если текст выделен то цитировать выделенное, иначе цитировать весь топик. А то мод нужный но из за двух кнопок я его не ставлю.

digger®

Цитата: Nemo000 от 17 апреля 2008, 15:32:51
У меня это уже реализовано при щелчке на самом имени автор, для входа в профиль хватает одной стандартной кнопки. Хотелось бы все таки попросить сделать версию мода с одной кнопкой цитировать. Если текст выделен то цитировать выделенное, иначе цитировать весь топик. А то мод нужный но из за двух кнопок я его не ставлю.
Наверное переделаю.

Nemo000


Шаннар

Цитата: deadbead от 17 апреля 2008, 15:24:39
Теоретически да.
При захвате тянуть из базы сообщение целиком, искать в нем выделенную часть цитаты и вставлять ее в сообщение... Через AJAX... но к сожалению я с этой технологией не дружу... :(
О! Таким образом ещё и "внутренние" цитаты и иное оформление можно было бы цитировать!..

Nemo000


Adept

 Когда-то обращался с предложением сделать цитату выделенного и цитату всего сообщения через одну кнопку, но никто не реализовал этого. Пришлось самому. Хочу предложить свою доработку мода dQuoteSelection.
Если выделен текст, то цитируется он с указанием автора, даты и ссылки на все это. Если текст не выделен, то функция работает как изначальная - цитируется весь текст.
Возможно это можно сделать и по другому, но меня устраивает. Т.к. было необходимо обойтись одной кнопкой.
P.S. В Опере цитата выделенного не срабатывает, срабатывает только как цитата всего сообщения. Если кто знает как поправить - буду очень благодарен. Работает в  Эксплорере и Мозиле.
Добавляем в xml_topic.js код:
function doQuote2( messageid, cur_session_id, author, topic, date)
{
if (document.getSelection) selection = document.getSelection();
    else if (document.selection.createRange().text) selection = document.selection.createRange().text;
    else selection = false;

if (selection == false)
{
if (quickReplyCollapsed)
window.location.href = smf_scripturl + "?action=post;quote=" + messageid + ";topic=" + smf_topic + "." + smf_start + ";sesc=" + cur_session_id;
else
{
if (window.XMLHttpRequest)
{
if (typeof window.ajax_indicator == "function")
ajax_indicator(true);
getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + messageid + ";sesc=" + cur_session_id + ";xml", onDocReceived);
}
else
reqWin(smf_scripturl + "?action=quotefast;quote=" + messageid + ";sesc=" + cur_session_id, 240, 90);

if (navigator.appName == "Microsoft Internet Explorer")
window.location.hash = "quickreply";
else
window.location.hash = "#quickreply";
}
}
else
{
if (quickReplyCollapsed) swapQuickReply();
      var link = 'topic=' + topic + '.msg' + messageid + '#msg' + messageid;
      document.postmodify.message.value += '[quote author=' + author + ' link=' + link + ' date=' + date + ']' + selection.replace(/(^\s+)|(\s+$)/g, "") + '[/quote]\n';
      if (navigator.appName == "Microsoft Internet Explorer")
   window.location.hash = "quickreply";
  else
   window.location.hash = "#quickreply";
}
}

Потом в Display.template.php заменяем
<a href="', $scripturl, '?action=post;quote=', $message['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';num_replies=', $context['num_replies'], ';sesc=', $context['session_id'], '" onclick="doQuote(', $message['id'], ', \'', $context['session_id'], '\'); return false;">', $reply_button, '</a>';
  на код:
<a href="', $scripturl, '?action=post;quote=', $message['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';num_replies=', $context['num_replies'], ';sesc=', $context['session_id'], '" onclick="doQuote2(', $message['id'], ', \'', $context['session_id'], '\', \'', $message['member']['name'], '\', \'', $context['current_topic'], '\', \'', $message['timestamp'], '\'); return false;">', $reply_button, '</a>';

Nemo000

Adept

Зачем писать новую функцию doQuote2, если можно модернизировать существующую doQuote?
У тебя этот код почемуто не работает с быстрым ответом, а мне надо...

Nemo000

Adept

Зачем писать новую функцию doQuote2, если можно модернизировать существующую doQuote?
У тебя этот код почемуто не работает с быстрым ответом, а мне надо...

Adept

 Функцию doQuote2 я написал для того, чтобы при желании можно было быстро вернуться к старой функциональности, не стал как говориться лезть в правильные коды. Можно модернизировать (заменить) старую, только параметров  в нее больше передается.
С быстрым ответом работает у меня отлично (не считая Оперы). Поскольку обращение к функции doQuote2 идет только для быстрого ответа (см. код), к другим ответам не делал, поскольку важнее для быстрого ответа для меня.
Проверь код в Display.template.php. Можно просто заменить оригинальный вызов  onclick="doQuote(', $message['id'], ', \'', $context['session_id'], '\'); return false;">', $reply_button, '</a>';
на  onclick="doQuote2(', $message['id'], ', \'', $context['session_id'], '\', \'', $message['member']['name'], '\', \'', $context['current_topic'], '\', \'', $message['timestamp'], '\'); return false;">', $reply_button, '</a>';
Проверял на разных компьютерах и в разных браузерах. Работает (кроме Оперы).


Nemo000

Да мне можно и не собирать мод. Мне главное расширить (цитировать выделенное если выделено, иначе цитировать все) функцию doQuote,  что бы работала во всех браузерах.

Adept

 Не много еще подумал и сделал поддержку в Опере (теперь точно работает в Opera, Mozilla, Explorer). Дорабатывать так:
файл xml_topic.js заменить:  function doQuote(messageid, cur_session_id)
{
if (quickReplyCollapsed)
window.location.href = smf_scripturl + "?action=post;quote=" + messageid + ";topic=" + smf_topic + "." + smf_start + ";sesc=" + cur_session_id;
else
{
if (window.XMLHttpRequest)
{
if (typeof window.ajax_indicator == "function")
ajax_indicator(true);
getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + messageid + ";sesc=" + cur_session_id + ";xml", onDocReceived);
}
else
reqWin(smf_scripturl + "?action=quotefast;quote=" + messageid + ";sesc=" + cur_session_id, 240, 90);

if (navigator.appName == "Microsoft Internet Explorer")
window.location.hash = "quickreply";
else
window.location.hash = "#quickreply";
}
}
  На: // QuoteSelection'
function get_selection() {
    if (document.getSelection) selection = document.getSelection();
    else if (document.selection.createRange().text) selection = document.selection.createRange().text;
    else selection = false;
    return selection;
}

function doQuote( messageid, cur_session_id, author, topic, date, selection)
{
if (selection == false)
{
if (quickReplyCollapsed)
window.location.href = smf_scripturl + "?action=post;quote=" + messageid + ";topic=" + smf_topic + "." + smf_start + ";sesc=" + cur_session_id;
else
{
if (window.XMLHttpRequest)
{
if (typeof window.ajax_indicator == "function")
ajax_indicator(true);
getXMLDocument(smf_scripturl + "?action=quotefast;quote=" + messageid + ";sesc=" + cur_session_id + ";xml", onDocReceived);
}
else
reqWin(smf_scripturl + "?action=quotefast;quote=" + messageid + ";sesc=" + cur_session_id, 240, 90);

if (navigator.appName == "Microsoft Internet Explorer")
window.location.hash = "quickreply";
else
window.location.hash = "#quickreply";
}
}
else
{
if (quickReplyCollapsed) swapQuickReply();
      var link = 'topic=' + topic + '.msg' + messageid + '#msg' + messageid;
      document.postmodify.message.value += '[quote author=' + author + ' link=' + link + ' date=' + date + ']' + selection.replace(/(^\s+)|(\s+$)/g, "") + '[/quote]\n';
      if (navigator.appName == "Microsoft Internet Explorer")
   window.location.hash = "quickreply";
  else
   window.location.hash = "#quickreply";
}
}
// QuoteSelection'
  В файле Display.template.php заменить: <a href="', $scripturl, '?action=post;quote=', $message['id'], ';topic=', $context['current_topic'], '.', $context['start'], ';num_replies=', $context['num_replies'], ';sesc=', $context['session_id'], '" onclick="doQuote(', $message['id'], ', \'', $context['session_id'], '\'); return false;">', $reply_button, '</a>'; На:echo '<a href="javascript:doQuote(', $message['id'], ', \'', $context['session_id'], '\', \'', $message['member']['name'], '\', \'', $context['current_topic'], '\', \'', $message['timestamp'], '\', selection)" onMouseOver="get_selection();">',  $reply_button, '</a>';
И будет благо, по крайней мере для меня и моих пользователей функция очень полезная.

Nemo000


Adept

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

Adept

 А еще хотелось бы переделать цитату при написании полного ответа, а не только быстрого ответа. Нашел, что за данные действия отвечает function insertQuoteFast в Post.template.php. Кто сможет переделать на работу с цитатой выделенного?

Alder

Установил на 1.1.5. Не работает с Огнелисом 3. Опера, ИЕ полет нормальный. Варианты есть как переделать?


Alder


Adept

Цитата: Adept от 27 мая 2008, 14:41:31
А еще хотелось бы переделать цитату при написании полного ответа, а не только быстрого ответа. Нашел, что за данные действия отвечает function insertQuoteFast в Post.template.php. Кто сможет переделать на работу с цитатой выделенного?
Ситуация не изменилась? Никто  не переделал случайно за прошедшее время?

catHD

ну дайте что ли, мод под 1.1.5 работующий :) а то тут уже как НИИ но ни чё не пашет:)


RJ

SMF 2.0 Beta 3.1 Public
при попытке установки
ЦитироватьПакет, который Вы пытаетесь установить, поврежден, либо не совместим с этой версией SMF.


Serifa

Что-то я не поняла, зачем тему перенесли.
Насчет цитаты выделенного, форум 1.1.5. Если уж доводить до совершенства, то добавить, чтобы кнопка появлялась при выводе "Все сообщения пользователя", а то там просто "Цитата" и просто "Ответ".
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге срочно нужны читатели!

digger®

Цитата: His Divine Shadow от 07 сентября 2008, 22:33:19
Если уж доводить до совершенства, то добавить, чтобы кнопка появлялась при выводе "Все сообщения пользователя", а то там просто "Цитата" и просто "Ответ".
А там есть форма быстрого ответа?

Serifa

При чем тут "Быстрый ответ", если мы говорим про "Цитату выделенного"? Быстрый ответ тут вообще не касается, нам ведь нужна именно цитата. Все равно, в каком месте и где. Да?
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге срочно нужны читатели!

digger®

Цитата: His Divine Shadow от 08 сентября 2008, 18:31:16
При чем тут "Быстрый ответ", если мы говорим про "Цитату выделенного"? Быстрый ответ тут вообще не касается, нам ведь нужна именно цитата. Все равно, в каком месте и где. Да?
Первое сообщение темы внимательно читаем, да?

Serifa

Ну я же говорю об улучшении мода! На перспективу, так сказать. Вдруг кто-то собрался его усовершенствовать. Я так и написала!
«- Помощник капитана Бакстер, - заявил Лумис, - безбожно врет. Все отнюдь не под контролем, вернее, не под его контролем. Корабль захвачен представителями небелковой формы разумной жизни, которые маскируются под обслуживающих роботов, а некоторые даже не делают и этого...»
«То, что у тебя есть, лечится антибиотиками» (nowhere man, 1995)
В телеге срочно нужны читатели!

mixman

А подскажите, что надо изменить в моде для SMF 2.0.4 ?

Шаннар

Цитата: digger от 07 августа 2008, 23:16:21
Для тех кто грамоте не обучен, мод обновил.
Только для работы из под версии 1.1.5 или внесены также изменения Adept-а?

mixman

и НИКТО НЕ ПОМОЖЕТ? очень нужен этот мод под SMF 2.0.4


mixman

digger = Вроде форум этот работает в бескорыстных целях...

Может кто все-таки поможет с этим модом для 2.0.4?


dend

#147
подскажите плз. что надо изменить для корректной работы этого мода в 1.1.6 ..

т.е пункт "Цитировать выделенное" .. появился ( javascript:InsertSelected(selection,%20'dend',1,18,1225476448) ) .. но при нажатии .. текст в окне быстрого редактирования .. не появляется .. :(

ps .. в IE работает .. и только в нем .. ( .. последние изменения , которые были описаны в Ответ #124 .. не помогли :(


digger®

Цитата: dend от 31 октября 2008, 23:35:05
подскажите плз. что надо изменить для корректной работы этого мода в 1.1.6 ..
Одну цифру в установщике. Мод в шапке обновил.

Цитировать
т.е пункт "Цитировать выделенное" .. появился ( javascript:InsertSelected(selection,%20'dend',1,18,1225476448) ) .. но при нажатии .. текст в окне быстрого редактирования .. не появляется .. :(

ps .. в IE работает .. и только в нем .. ( .. последние изменения , которые были описаны в Ответ #124 .. не помогли :(


В шапке указаны браузеры, работа с которыми  протестирована.

mixman