ovi8 5 02/01/17 08:55 Как сделать, чтобы при нажатии кнопки "ответить" происходил переход в быстрый ответ без цитаты? Поделиться сообщением Ссылка на сообщение
newbie 1723 02/01/17 12:30 Это у русских видимо "Ответить". В англ. (оригинальной) версии кнопка называется "Quote" Как сделать, чтобы при нажатии кнопки "ответить" происходил переход в быстрый ответ без цитаты?Либо в public/js/ips.topic.js ищите pid = elem.readAttribute('pid'); var url = ipb.vars['base_url'] + 'app=forums&module=ajax§ion=topics&do=quote&t=' + ipb.topic.topic_id + '&p=' + pid + '&md5check=' + ipb.vars['secure_hash'] + '&isRte=' + ipb.textEditor.getEditor( ipb.topic.fastReplyId ).isRte(); и выше добавляйте editor = ipb.textEditor.getEditor( ipb.topic.fastReplyId ); editor.insert( '', 'always' ); return false; Либо в шаблон topicViewTemplate добавьте <script> ipb.delegate.register('._ips_trigger_quote', function(e) { Event.stop(e); editor = ipb.textEditor.getEditor( ipb.topic.fastReplyId ); editor.insert( '', 'always' ); }); </script> 1 Поделиться сообщением Ссылка на сообщение
ovi8 5 02/01/17 12:48 (изменено) Может лучше кнопку переименовать как вы считаете? Разработчики не зря ведь так сделали, проблема в том что обычный человек понимает ответить по-другому, не как цитату. Кстати, в IpbSkins.ru кнопка ответить ведет в расширенную форму без цитаты, возможно из-за версии 3.1 ... Изменено 1 февраля 2017 пользователем ovi8 Поделиться сообщением Ссылка на сообщение
newbie 1723 02/01/17 13:03 Может лучше кнопку переименовать? Разработчики не зря ведь так сделали, проблема в том что обычный человек понимает ответить по-другому, не как цитату.Вам решать. Кстати есть еще различные хуки "Цитировать", "Обратиться по нику", "Выделить текст и процитировать"Кстати, в IpbSkins.ru кнопка ответить ведет в расширенную форму без цитаты, возможно из-за версии 3.1 ... Тут скорее всего кастомная доработка, т.к. я не могу воспроизвести на 3.1.4. 1 Поделиться сообщением Ссылка на сообщение
ovi8 5 02/02/17 15:13 Кстати есть еще различные хуки "Обратиться по нику"Этот хук более приемлем, только где его сейчас найдешь? Вообще ситуация с цитатой и мультицитатой не понятна, скорее всего мало кто пользуется второй на обычных форумах :mellow: Если выпилить эту кнопку, то смотрится убого надо ещё что-то добавлять.. Поделиться сообщением Ссылка на сообщение
ovi8 5 02/02/17 15:25 Кстати, здоров работает добавление в шаблон :) Спасибо! На мой взгляд намного лучше даже чем обращение по нику, хотя тоже есть над чем подумать. Поделиться сообщением Ссылка на сообщение
Trotor 27 02/02/17 16:05 Вам решать. Кстати есть еще различные хуки "Цитировать", "Обратиться по нику", "Выделить текст и процитировать"Давно бьюсь над одним решением - как бы добавить в быструю цитату время и дату? Вот как реализована у меня, в шаблоне:<a href="#editor_fast-reply" onclick='frq_quote("{$post['author']['members_display_name' ]}",{$post['post'][ 'pid']})' title='Вставить выделенный текст в форму Ответа'>Цитировать Текст</a> И отвечающий код js function frq_put_to_editor(string){ if( !in_use ) { if( $('fast-reply_toolbar_1') ){ $('fast-reply_toolbar_1').show(); } if( $('fast-reply_toolbar_2') ){ $('fast-reply_toolbar_2').show(); } $('fast-reply_textarea').removeClassName('unloaded_editor').value = ''; ipb.editors[ 'fast-reply' ] = new ipb.editor( 'fast-reply', USE_RTE ); $( ipb.editors['fast-reply'] ).resize_to( 150 ); in_use = 1; } if(USE_RTE) { var text = ipb.editors[ 'fast-reply' ].editor_get_contents(); if(text == "\\n<br\\n") ipb.editors[ 'fast-reply' ].editor_set_content(string); else ipb.editors[ 'fast-reply' ].editor_set_content(text + '<br />' + string); } else document.getElementById("fast-reply_textarea").value += string; } function frq_quote(nick, pid) { txt = ''; if (window.getSelection) txt = window.getSelection().toString(); else if (document.getSelection) txt = document.getSelection(); else if (document.selection) txt = document.selection.createRange().text; if(txt == '') { items = $$('#post_id_'+pid+' div'); for (var i = 0; i < items.size(); i++) { if(items[i].hasClassName('entry-content')) { if (window.getSelection) { var range = document.createRange(); range.selectNode(items[i]); window.getSelection().addRange(range); txt = window.getSelection().toString(); } else if (document.getSelection) { var range = document.createRange(); range.selectNode(items[i]); document.getSelection().addRange(range); txt = document.getSelection(); } else if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(items[i]); range.select(); txt = document.getSelection(); } } } } if(USE_RTE) code = "[quote name='"+nick+"' post='"+pid+"']<br />"+txt+"<br />[/quote]<br />"; else code = "[quote name='"+nick+"' post='"+pid+"']"+txt+"[/quote]"; frq_put_to_editor(code); sel = false; if (document.selection && document.selection.empty) document.selection.empty(); if (window.getSelection) sel = window.getSelection(); if (document.getSelection) sel = document.getSelection(); if(sel && sel.removeAllRanges) sel.removeAllRanges(); } function frq_nick(nick, pid) { txt = ''; if (window.getSelection) txt = window.getSelection().toString(); else if (document.getSelection) txt = document.getSelection(); else if (document.selection) txt = document.selection.createRange().text; if(txt == '') { items = $$('#post_id_'+pid+' div'); for (var i = 0; i < items.size(); i++) { if(items[i].hasClassName('entry-content')) { if (window.getSelection) { var range = document.createRange(); range.selectNode(items[i]); window.getSelection().addRange(range); txt = window.getSelection().toString(); } else if (document.getSelection) { var range = document.createRange(); range.selectNode(items[i]); document.getSelection().addRange(range); txt = document.getSelection(); } else if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(items[i]); range.select(); txt = document.getSelection(); } } } } if(USE_RTE) code = "[b][member='"+nick+"'<br />"+txt+"<br />][/b]<br />"; else code = "[b][member='"+nick+"'"+txt+"][/b]"; frq_put_to_editor(code); sel = false; if (document.selection && document.selection.empty) document.selection.empty(); if (window.getSelection) sel = window.getSelection(); if (document.getSelection) sel = document.getSelection(); if(sel && sel.removeAllRanges) sel.removeAllRanges(); } Поделиться сообщением Ссылка на сообщение
mulan 0 03/09/21 09:35 01.02.2017 в 12:55, ovi8 сказал: Как сделать, чтобы при нажатии кнопки "ответить" происходил переход в быстрый ответ без цитаты? 02.02.2017 в 20:05, Trotor сказал: Давно бьюсь над одним решением - как бы добавить в быструю цитату время и дату? Вот как реализована у меня, в шаблоне: <a href="#editor_fast-reply" onclick='frq_quote("{$post['author']['members_display_name' ]}",{$post['post'][ 'pid']})' title='Вставить выделенный текст в форму Ответа'>Цитировать Текст</a> И отвечающий код js Показать содержимое function frq_put_to_editor(string){ if( !in_use ) { if( $('fast-reply_toolbar_1') ){ $('fast-reply_toolbar_1').show(); } if( $('fast-reply_toolbar_2') ){ $('fast-reply_toolbar_2').show(); } $('fast-reply_textarea').removeClassName('unloaded_editor').value = ''; ipb.editors[ 'fast-reply' ] = new ipb.editor( 'fast-reply', USE_RTE ); $( ipb.editors['fast-reply'] ).resize_to( 150 ); in_use = 1; } if(USE_RTE) { var text = ipb.editors[ 'fast-reply' ].editor_get_contents(); if(text == "\\n<br\\n") ipb.editors[ 'fast-reply' ].editor_set_content(string); else ipb.editors[ 'fast-reply' ].editor_set_content(text + '<br />' + string); } else document.getElementById("fast-reply_textarea").value += string; } function frq_quote(nick, pid) { txt = ''; if (window.getSelection) txt = window.getSelection().toString(); else if (document.getSelection) txt = document.getSelection(); else if (document.selection) txt = document.selection.createRange().text; if(txt == '') { items = $$('#post_id_'+pid+' div'); for (var i = 0; i < items.size(); i++) { if(items[i].hasClassName('entry-content')) { if (window.getSelection) { var range = document.createRange(); range.selectNode(items[i]); window.getSelection().addRange(range); txt = window.getSelection().toString(); } else if (document.getSelection) { var range = document.createRange(); range.selectNode(items[i]); document.getSelection().addRange(range); txt = document.getSelection(); } else if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(items[i]); range.select(); txt = document.getSelection(); } } } } if(USE_RTE) code = "[quote name='"+nick+"' post='"+pid+"']<br />"+txt+"<br />[/quote]<br />"; else code = "[quote name='"+nick+"' post='"+pid+"']"+txt+"[/quote]"; frq_put_to_editor(code); sel = false; if (document.selection && document.selection.empty) document.selection.empty(); if (window.getSelection) sel = window.getSelection(); if (document.getSelection) sel = document.getSelection(); if(sel && sel.removeAllRanges) sel.removeAllRanges(); } function frq_nick(nick, pid) { txt = ''; if (window.getSelection) txt = window.getSelection().toString(); else if (document.getSelection) txt = document.getSelection(); else if (document.selection) txt = document.selection.createRange().text; if(txt == '') { items = $$('#post_id_'+pid+' div'); for (var i = 0; i < items.size(); i++) { if(items[i].hasClassName('entry-content')) { if (window.getSelection) { var range = document.createRange(); range.selectNode(items[i]); window.getSelection().addRange(range); txt = window.getSelection().toString(); } else if (document.getSelection) { var range = document.createRange(); range.selectNode(items[i]); document.getSelection().addRange(range); txt = document.getSelection(); } else if (document.selection) { var range = document.body.createTextRange(); range.moveToElementText(items[i]); range.select(); txt = document.getSelection(); } } } } if(USE_RTE) code = "[b][member='"+nick+"'<br />"+txt+"<br />][/b]<br />"; else code = "[b][member='"+nick+"'"+txt+"][/b]"; frq_put_to_editor(code); sel = false; if (document.selection && document.selection.empty) document.selection.empty(); if (window.getSelection) sel = window.getSelection(); if (document.getSelection) sel = document.getSelection(); if(sel && sel.removeAllRanges) sel.removeAllRanges(); } У меня проблема с цитированием на 4.5.4 Поделиться сообщением Ссылка на сообщение
siv1987 2628 03/09/21 10:17 39 минут назад, mulan сказал: У меня проблема с цитированием на 4.5.4 В этой теме обсуждается редактор версии форума 3.x, для IPS 4.x есть отдельной раздел. Для 4.5 нужно создать тему в соотвествующий раздел с подробным описанием проблемы. 1 Поделиться сообщением Ссылка на сообщение