Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » jQuery » Цитирование как в DLE 9.7

Цитирование как в DLE 9.7


     12.04.2014    Все вопросы » jQuery    3242

вопрос
Здравствуйте, дорогие друзья. Кто мне поможет по такому вопросу: как вернуть цитирование как в DLE 9.7. Способы типа этого не предлагать - http://webfull.ru/data-life-engine/haki_dle/10-citirovanie-v-dle-98.html . Мне нужно цитирование точь в точь как на 9.7. То есть при выделении определённого текста и нажатия на кнопку "Цитировать" цитировался выделенный текст, а просто при нажатии выводился бы ник выделенный жирным, запятая и Enter. Пробовал заменять файл dle_js.js тем, который в dle 9.7. Всё нормально работает, но при нажатии на кнопку "Цитировать" вместо ника выделенного жирным, появляется номер комментария выделенный жирным, не знаю как исправить. Прошу, помогите вернуть цитирование как в DLE 9.7. Думаю это многим пригодится.

Ответил: vitnet


engine/classes/js/dle_js.js



engine/classes/comments.class.php
найти
                    $tpl->set( '[fast]', "<a onmouseover=\"dle_copy_quote('" . str_replace( array (" ", "'" ), array (" ", "&#039;" ), $row['name'] ) . "');\" href=\"#\" onclick=\"dle_ins('{$row['id']}'); return false;\">" );

заменить на
                    $tpl->set( '[fast]', "<a onmouseover=\"dle_copy_quote('" . str_replace( array (" ", "'" ), array (" ", "&#039;" ), $row['name'] ) . "');\" href=\"#\" onclick=\"dle_ins('{$row['name']}'); return false;\">" );

24 комментария

vitnet
PHP-developer

vitnet - 12 апреля 2014 18:49 -

Вы наверное шутите? Код идентичен
9.7
function dle_copy_quote(a){dle_txt="";window.getSelection?dle_txt=window.getSelection():document.selection&&(dle_txt=document.selection.createRange().text);""!=dle_txt&&(dle_txt="[quote="+a+"]"+dle_txt+"[/quote]\n")}

10.2
function dle_copy_quote(a){dle_txt="";window.getSelection?dle_txt=window.getSelection():document.selection&&(dle_txt=document.selection.createRange().text);""!=dle_txt&&(dle_txt="[quote="+a+"]"+dle_txt+"[/quote]\n")}

NeZoX
Юзер

NeZoX - 12 апреля 2014 18:50 -

vitnet,
но цитирование-то по разному происходит.

В DLE 9.7 присутствует ещё и это:
function dle_ins(name) 
{
    if ( !document.getElementById('dle-comments-form') ) return false;

    var input=document.getElementById('dle-comments-form').comments;
    var finalhtml = "";

    if (dle_wysiwyg == "0") {
        if (dle_txt!= "") {
            input.value += dle_txt;
        }
        else {
            input.value += "[b]"+name+"[/b],"+"\n";
        }
    } else {
        if (dle_txt!= "") {
            finalhtml = dle_txt;
        }
        else {
            finalhtml = "<b>"+name+"</b>,";
        }

        if (dle_wysiwyg == "1") {
            oUtil.obj.focus();    
            oUtil.obj.insertHTML(finalhtml+"<br />");
        } else {
            tinyMCE.execInstanceCommand('comments', 'mceInsertContent', false, finalhtml, true)
        }
    }

};

vitnet
PHP-developer

vitnet - 12 апреля 2014 19:09 -

Тогда в чем проблема?

G-3p
Юзер

G-3p - 12 апреля 2014 18:55 -

1 сек у меня 10.2 и работает так как вы описали, сейчас найду этот хак.
Сори, не так. Прочитал и понял, что у меня по другому)

sadan
Юзер

sadan - 12 апреля 2014 19:00 -

в этом хаке Цитирование удалить тег
== "yes"
и все будет хорошо

NeZoX
Юзер

NeZoX - 12 апреля 2014 19:09 -

sadan,
где именно удалить? Тут?
if( ($user_group[$member_id['user_group']]['allow_addc']) and $config['allow_comments'] == "yes" ) {
                    if( ! $row['is_register'] or $row['name'] == '' ) $row['name'] = $row['gast_name'];
                    else $row['name'] = $row['name'];
                    $tpl->set( '[fast_author]', "<a href=\"#\" onclick=\"emoticon('[b]" . str_replace( array (" ", "&#039;" ), array ("&nbsp;", "&amp;#039;" ), $row['name'] ) . "[/b],'); return false;\" title=\"Обратиться по нику\">" );
                    $tpl->set( '[/fast_author]', "</a>" );
                } else
                    $tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );

G-3p
Юзер

G-3p - 12 апреля 2014 19:25 -

Хак не рабочий, но если удалить
if( ($user_group[$member_id['user_group']]['allow_addc']) and $config['allow_comments'] == "yes" )
то становится рабочим)

NeZoX
Юзер

NeZoX - 12 апреля 2014 19:17 -

vitnet,
Дело в том, что у меня раскодированный dle_js.js

vitnet
PHP-developer

vitnet - 12 апреля 2014 20:03 -

Там пофиг какой

sadan
Юзер

sadan - 12 апреля 2014 19:29 -

Найти:
if ($area == 'lastcomments') {

                $tpl->set_block( "'\\[fast\\](.*?)\\[/fast\\]'si", "" );

Ниже вставить:
$tpl->set_block( "'\\[fast_author\\](.*?)\\[/fast_author\\]'si", "" );


Найти:

ниже вставить:

G-3p
Юзер

G-3p - 12 апреля 2014 19:34 -

Автор же написал)
Способы типа этого не предлагать - http://webfull.ru/data-life-engine/haki_dle/10-citirovanie-v-dle-98.html . Мне нужно цитирование точь в точь как на 9.7

G-3p
Юзер

G-3p - 12 апреля 2014 19:36 -

Лично у меня две кнопки: Цитирование (стандарт) и Ответить (хак упомянутый выше).

NeZoX
Юзер

NeZoX - 12 апреля 2014 19:38 -

Мне нужно всё через одну кнопку.

NeZoX
Юзер

NeZoX - 12 апреля 2014 19:37 -

G-3p,
вот именно, мне нужно точь в точь как на DLE 9.7. Чтобы при выделении какого-либо текста и нажатии на кнопку "Цитировать" цитировался этот выделенный текст, а при просто нажатии на кнопку "Цитировать" появлялся выделенный жирным ник юзера, запятая и ENTER.

G-3p
Юзер

G-3p - 12 апреля 2014 19:49 -

Можешь выложить файл engine/classes/comments.class.php от 9.7 и ссылку дать?

NeZoX
Юзер

NeZoX - 12 апреля 2014 19:55 -


DaivZ
Юзер

DaivZ - 12 апреля 2014 19:58 -

Сделайте заново по инструкции, что написана для DLE 10.2
http://webfull.ru/data-life-engine/haki_dle/10-citirovanie-v-dle-98.html

NeZoX
Юзер

NeZoX - 12 апреля 2014 20:08 -

DaivZ,
внимательно читайте вопрос.

G-3p
Юзер

G-3p - 12 апреля 2014 20:31 -

Опередил меня)))

Serik
Местный

Serik - 12 апреля 2014 20:42 -

Цитата: NeZoX
Чтобы при выделении какого-либо текста и нажатии на кнопку "Цитировать" цитировался этот выделенный текст, а при просто нажатии на кнопку "Цитировать" появлялся выделенный жирным ник юзера


Немного не логично, Вам не кажется? "Цитировать" это цитировать автора, его слова или их часть, а "Ответить" или "Обратиться по нику" ну никаким боком, даже при огромном желании нельзя назвать Цитатой. Ваще никак. Это обращение к человеку и многим юзерам наверняка будет непонятно как вставить ник собеседника в своё смс, если есть только кнопка цитаты. И будут они его копировать, выделять в BB, ставить запятую... Так что тот хак идеален в плане юзабилити сайта.

Я понимаю что Вам нужно именно так, но я считаю это неправильным. Без обид - ничего личного ))

СПАСИБО надо тыкать в кнопку!

NeZoX
Юзер

NeZoX - 12 апреля 2014 20:48 -

Мне уже ответили. В ответе всё верно, мне это было и нужно. Мне важен удобный функционал, а пользователям, уж поверьте, всё равно в правильном или неправильном значении употреблено слово "Цитировать".

Serik
Местный

Serik - 12 апреля 2014 20:52 -

Ну, главное что Вам удобно ))

СПАСИБО надо тыкать в кнопку!

NeZoX
Юзер

NeZoX - 12 апреля 2014 20:58 -

Ну да, это самое главное ))

G-3p
Юзер

G-3p - 12 апреля 2014 21:05 -

Мне важен удобный функционал, а пользователям, уж поверьте, всё равно в правильном или неправильном значении употреблено слово "Цитировать".

Я не согласен.

По поводу функционала, то я согласен с Serik. Так удобнее.
Пользователь видит две кнопочки и может выбрать - обратиться по нику или же полностью цитировать комментарий, ненужно ничего выделять и совершать лишних действий. А самый главный минус цитирования 9.7 в том, то обычный пользователь видит лишь кнопку "Обратится по нику" ( NeZoX,) и думает: А как цитировать? Ведь не на всех сайтах так можно (выделить и нажать кнопку), да и мало кто знает из обычных посетителей об этом способе.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 15.06.2012 xEoN  jQuery
наверх