Цитирование без перезагрузки (как на drupal.ru)

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 20 июля 2012 в 20:45

Всем привет.
Предлагаю потестировать, так как модуль только сегодня сделан и будет ещё пилиться.
Вкратце - добавляет возможность цитирования как на этом форуме.
Устанавливается просто.

Особенно интересуют:
а. Совместимость с браузерами
б. Работа на мульти-язычных сайтах.

drupal.ru как всегда сработало через задницу, файл загрузить не дало.
Репозиторий модуля https://github.com/vstepankov/jsquote
Качать отсюда https://github.com/vstepankov/jsquote/zipball/master

p.s. Спонсором портирования выступил

0 Thanks

Комментарии

Аватар пользователя Shok211 Shok211 20 июля 2012 в 21:09

Немного придирок ( первое, что бросилось в глаза ).

dpm($form); Строка 87 ? Для админа будет выводить месседж о содержании формы (НЕ будет ли падать без devel ?).
Почему то не после всех функций перед { стоит пробел.
с 71 - 79 Пропущены пробелы перед if.
Страшненький js.

" Drupal.behaviors.exampleModule " xD

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 20 июля 2012 в 21:12
"Shok211" wrote:

dpm($form); Строка 87 ?

Fix. Поторопился выложить.

Форматирование кода пока не трогаем, кодил в nano.
JS унаследован от шестёрочной версии, а туда он попал из д.ру, а на д.ру...

Аватар пользователя iNFerNo iNFerNo 21 июля 2012 в 23:12

а без модуля никак второго,как в шестерке было, а то две ссылки не кошерно,даже не отклются.,

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 21 июля 2012 в 23:36
"iNFerNo" wrote:

а без модуля никак второго,как в шестерке было, а то две ссылки не кошерно,даже не отклются.,

Без второго никак, отключение сделаю, там половина кода для него есть.

Аватар пользователя iNFerNo iNFerNo 22 июля 2012 в 14:59

тогда гуд.

хорошо еще бы что бы возможность текстовой ссылки была и выбор картинкой.

Аватар пользователя emzzy emzzy 23 июля 2012 в 1:04
function jsquote_image_title($name){
  static $image = FALSE;
  static $js = FALSE;
  static $css   = FALSE;

  if(!$js){
    $js = drupal_add_js(drupal_get_path('module', 'jsquote').'/js/jsquote.js');
  }
       
  if(!$image){
    $image = '/'.drupal_get_path('module', 'jsquote').'/img/blog_pencil.gif';
    }
       
  if(!$css){
    $css = drupal_add_css(drupal_get_path('module', 'jsquote').'/css/jsquote.css');
    }
       
  return '<img class="js-quote" data-name="'.check_plain($name).'" title="Выделите текст и нажмите эту кнопку, чтобы вставить цитату" id="img_quote" src="'.$image.'" ilo-full-src="'.$image.'"/>';
}

1. Использовать drupal_static() вместо <?phpstatic?>.
2. Для формирование картинки использовать theme_image().
3. Использовать только английский текст обернутый в t().

Аватар пользователя Shok211 Shok211 23 июля 2012 в 1:17
"emzzy" wrote:

1. Использовать drupal_static() вместо <?phpstatic?>.

Пффф вообще не представляю где это может пригодиться в контексте данного модуля.

Разве что картинку поменять..

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 23 июля 2012 в 10:42
"emzzy" wrote:

1. Использовать drupal_static() вместо <?phpstatic?>.

Оверинженеринг, уже скорее static и вообще лишний, это в D6 было актуально

"emzzy" wrote:

2. Для формирование картинки использовать theme_image().

Ога, заодно вопрос иНфЕрНы решится

"emzzy" wrote:

3. Использовать только английский текст обернутый в t().

Я подумаю над этим

Аватар пользователя arturbaranok arturbaranok 16 августа 2012 в 13:58
"RxB" wrote:

Что вас конкретно интересует?

1. Корректно ли работает модуль с визуальным редактором ckeditor?
2. На drupal.org модуль размещен?

Аватар пользователя gendalfbug gendalfbug 10 ноября 2015 в 11:49
"musical_art" wrote:

для работы с CKeditor отредактировал jsquote.js - все в тестовом виде !

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

//...
         var el = $($(this).parents('.forum-post')); // берем эллемент родителя
         text = $('.field-name-comment-body .field-item',el).html(); // ищем и берем html элемента в родителе
         if(!text){ // если null  скорее всего нажали цитировать body (автора темы (первый пост))

             text = $('.field-name-body .field-item',el).html();// ищем и берем html элемента в родителе

         }
            text='***[***quote***="' + name + '"]' + text + '[***/***quote***]***\***n'; // убрать  ***

//...
         // решение #best // оптимальное решение
         var ck = "edit-comment-body-" + lang + "-0-value"; // id Ckeditor - посмотреть через firebug
         CKEDITOR.instances[ck].insertHtml(text); // вставка

//...

Аватар пользователя gendalfbug gendalfbug 10 ноября 2015 в 11:49

немного модерна , теперь два в одном если ckeditor не включен вставится в виде текста

       
//...
 var el = $($(this).parents('.forum-post'));

         text = $('.field-name-comment-body .field-item',el).html();

         if(!text){ // если null  скорее всего нажали цитировать body (автора темы (первый пост))

             text = $('.field-name-body .field-item',el).html();

         }

         text='***[***quote***="' + name + '"]' + text + '[***/***quote***]***\***n'; // убрать  ***

         // решение #best // оптимальное решение

         var ck = "edit-comment-body-" + lang + "-0-value";
         if(CKEDITOR.instances[ck]){

             CKEDITOR.instances[ck].insertHtml(text);

         } else {

             text = $('<div/>').html(text).text();
             insertAtCaret(document.getElementById("edit-comment-body-" + lang + "-0-value"),text);
             window.location.hash = "#comment-body-add-more-wrapper";

         }
//...

Аватар пользователя gendalfbug gendalfbug 17 октября 2013 в 18:25

наверное потому что нажав ctrl+a на странице а потом нажать цитата не подходит для меня =)
но кто очень захочет сможет совместить или исключить тот или иной функционал .

"RxB" wrote:

Спасибо за модуль .

Аватар пользователя Радосвет Радосвет 3 декабря 2015 в 23:27

Ребят, а без включения модуля Quote можно как-то обойтись?
Какие есть ещё варианты?

У меня модуль Quote на семёрке в какой-то момент стал глючить. Из-за него пропадают кнопки Ответить и Изменить. (проблема известная вроде)

Но и с ним не очень работает этот модуль. Цитата не вставляется визуально, хотя после перезагрузки страницы цитата появляется в поле.
Попробовал дополнить код строками от gendalfbug, срабатывает только на режиме простого текста (с CKEdotoром никак не заводится :(

Аватар пользователя Радосвет Радосвет 4 декабря 2015 в 15:00

gor, спасибо! Оказывается, обнова вышла недавно, я уже не надеялся...
Модуль Quote теперь работает!

Но модуль автора темы работает только с полем без CKEditora, а вариант gendalfbug-а всё также не запускается :(
Или я id неправильно указал, или что, не работает и всё :(

Аватар пользователя nortien nortien 19 января 2016 в 8:36

https://yadi.sk/d/dUv9_Pq2nJiGz
вот. работает на CKEditor 4.5.6

модуль вставляет если не выделить пустой тег: [quоte=admin][/quоte]

кто осилит так что бы при нажатии без выделения вставлял бы весь текст включая [quоte]?

upd: тестил только под адванцед_форум, при любых комбинациях работает и варнинги не сыпет

Аватар пользователя nortien nortien 19 января 2016 в 9:10
Радосвет wrote:

Спасибо! работает на стоковом форуме :)

пожалуйста
WYSIWYG и ББкод тоже я проверил, работает.... под них в принципе и делалось..... проблему с исчезновением кнопок решил?

Аватар пользователя Радосвет Радосвет 19 января 2016 в 12:00

Спасибо! Это приятная новость :)
А проблему да, решил, сейчас другая проблема нарисовалась, и я бессилен перед ней :(