Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Спойлер для комментарий

Тема в разделе "Вопросы- ответы", создана пользователем Bayko, 29 дек 2022.

29.12.22 в 13:28
03.05.23 в 00:54
36
2.564
0
  1. TopicStarter Overlay
    Bayko

    Bayko Бывалый

    Регистрация:
    30 июл 2019
    Сообщения:
    110
    Лучших ответов:
    0
    Рейтинги:
    +5 / 1 / -0
    Добрый день всем знатаком!
    Ребята подскажите как сделать (checkbox спойлер) для комментарий без редактора? upload_2022-12-29_15-28-7.png
     
  2. Bashmak

    PRO Users

    Регистрация:
    25 фев 2017
    Сообщения:
    642
    Лучших ответов:
    1
    Рейтинги:
    +168 / 25 / -0
    Тоже интересует, если у кого есть решение готов купить.
     
  3. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Подпишусь
     
  4. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    С наступающим новым годом, вот подарок так сказать.

    1. Устанавливаем плагин.
    2. Открываем файл dle_js.js с папки Developer/uncompressed что идёт в архиве движка.
    Находим
    Код:
    if ( form.mail ) {
    Выше вставляем
    Код:
    spoiler = 0;
    if (form.spoiler) {
        if (form.spoiler.checked == true) {
           spoiler= 1;
        }
    }
    Потом заменить
    Код:
    $.post(dle_root + "engine/ajax/controller.php?mod=addcomments", { post_id: form.post_id.value, 
    На
    Код:
    $.post(dle_root + "engine/ajax/controller.php?mod=addcomments", { post_id: form.post_id.value, spoiler: spoiler, 
    Переходим на сайт JavaScript Minifier & Compressor | Toptal® вставляем весь код файла и нажимаем Minify, потом копируем код снизу в свой файл dle_js.js на сервере в папке /engine/classes/js
    3. В файле addcomments.tpl в нужном месте вставляем
    HTML:
    <input type="checkbox" name="spoiler" id="spoiler" value="1">Спойлер
    4. Чистим у себя кэш браузера и кэш в админ панели.
    5. Всё.

    Если вдруг захотите отблагодарить, вот реквизиты WMZ Z228640084773
     

    Вложения:

    #4 PunPun, 31 дек 2022
    Последнее редактирование: 1 янв 2023
    • Полезно Полезно x 3
    • Нравится Нравится x 1
    • Согласен Согласен x 1
  5. Bashmak

    PRO Users

    Регистрация:
    25 фев 2017
    Сообщения:
    642
    Лучших ответов:
    1
    Рейтинги:
    +168 / 25 / -0
    И тебя с наступающим!
    Спасибо за решение, завтра днём установлю и обязательно отблагодарю.
     
  6. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Добавляется как обычный комментарий, не отличается от других, по факту тут добавляется просто чекбокс и все, в сам комментарий ничего не добавляется
     
    #6 Terras, 1 янв 2023
    Последнее редактирование: 1 янв 2023
  7. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    Значит не верно установили.
     
  8. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Установил точно верно, вопрос даже в другом, какой код меняет стиль у комментария? Если его нет то ничего и не поменяется
     
  9. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    Никакой. Плагин если что, только для добавления комментариев без редактора.
     
  10. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Так вот я и спрашиваю как мне для комментов спойлеров сделать свой стиль, сейчас по факту просто чекбокс добавляется, только толку от него? (без редактора)
    В самом комментарии ничего не добавляется вот я к чему
     
  11. igrovik

    igrovik Местный

    Регистрация:
    11 дек 2016
    Сообщения:
    1.007
    Лучших ответов:
    8
    Рейтинги:
    +355 / 12 / -0
    В коде должно проставляться это
    Код:
    '[spoiler=Спойлер]' . $_POST['comments'] . '[/spoiler]'
    Но при условии что параметр
    Код:
    spoiler
    будет иметь положительный результат. Но скорее всего что параметр имеет все время отрицательный результат, и поэтому не происходит никакой замены.
     
  12. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Я так понимаю не добавляется

    Код прописал
    [​IMG]

    Плагин стоит без ошибок
    [​IMG]

    Чекбокс есть
    [​IMG]

    Результата нет =)))) первый коммент с галкой второй без
    [​IMG]
     
  13. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    А вы сделали правки дальше, этот js код нужно сжать и закинуть в файл engine/classes/js/dle_js.js + у вас может быть кэш js файла.
     
  14. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Конечно, да даже если не сжимать не работает. Кэш скинул
     
  15. igrovik

    igrovik Местный

    Регистрация:
    11 дек 2016
    Сообщения:
    1.007
    Лучших ответов:
    8
    Рейтинги:
    +355 / 12 / -0
    1 /admin.php?mod=options&action=syscon выбрать вкладку комментарии

    В Редактор для комментариев и персональных сообщений на сайте: без редактора
    далее

    Форма вывода ответа на комментарий: Под комментарием без редактора

    далее в файле engine/classes/js/dle_js.js
    ниже поле того где ставили код от Пана ставите после

    Код:
    post_id: e.post_id.value,
            comments: e.comments.value,
    Код:
    spoiler: spoiler,
    должно быть типа такого

    Код:
    function doAddComments() {
        var e = document.getElementById("dle-comments-form");
        
        var o = "",
            t = "",
            i = "",
            n = "",
            a = "0",
            d = "";
        return (("1" == dle_wysiwyg || "2" == dle_wysiwyg) && ("2" == dle_wysiwyg && tinyMCE.triggerSave(), o = "wysiwyg"), "" == e.name.value) ? (DLEalert(dle_req_field[0], dle_info), !1) : "" == e.comments.value ? (DLEalert(dle_req_field[1], dle_info), !1) : (e.question_answer && (t = e.question_answer.value), e.sec_code && (i = e.sec_code.value), "1" == dle_captcha_type ? "undefined" != typeof grecaptcha && (n = grecaptcha.getResponse()) : "2" == dle_captcha_type && (n = $("#g-recaptcha-response").val()), e.allow_subscribe && !0 == e.allow_subscribe.checked && (a = "1"), spoiler = 0, console.log(e), e.spoiler && !0 == e.spoiler.checked && (spoiler = 1), e.mail && (d = e.mail.value), ShowLoading(""), $.post(dle_root + "engine/ajax/controller.php?mod=addcomments", {
            post_id: e.post_id.value,
            comments: e.comments.value,
            spoiler: spoiler,
            name: e.name.value,
            mail: d,
            editor_mode: o,
            skin: dle_skin,
            sec_code: i,
            question_answer: t,
            g_recaptcha_response: n,
            allow_subscribe: a,
            user_hash: dle_login_hash
        }, function(o) {
     
  16. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Вообще такого кода нет

    PHP:
    function doAddComments(){

        var 
    form document.getElementById('dle-comments-form');
        var 
    editor_mode '';
        var 
    question_answer '';
        var 
    sec_code '';
        var 
    g_recaptcha_response'';
        var 
    allow_subscribe"0";
        var 
    mail '';
        
        if (
    dle_wysiwyg == "1" || dle_wysiwyg == "2") {

            if (
    dle_wysiwyg == "2") {
                
    tinyMCE.triggerSave();
            }

            
    editor_mode 'wysiwyg';

        }
        
        if (
    form.name.value == '')
        {
            
    DLEalert dle_req_field[0], dle_info );
            return 
    false;
        }
        
        if (
    form.comments.value == '')
        {
            
    DLEalert dle_req_field[1], dle_info );
            return 
    false;
        }

        if ( 
    form.question_answer ) {

           
    question_answer form.question_answer.value;

        }

        if ( 
    form.sec_code ) {

           
    sec_code form.sec_code.value;

        }

        if ( 
    dle_captcha_type == "1"  ) {
            if ( 
    typeof grecaptcha != "undefined"  ) {
                   
    g_recaptcha_response grecaptcha.getResponse();
               }
        } else if (
    dle_captcha_type == "2") {
            
    g_recaptcha_response = $('#g-recaptcha-response').val();
        }

        if ( 
    form.allow_subscribe ) {

            if ( 
    form.allow_subscribe.checked == true ) {
        
               
    allow_subscribe"1";

            }

        }

        
    spoiler 0;
        if (
    form.spoiler) {
            if (
    form.spoiler.checked == true) {
               
    spoiler1;
            }
        }
        
        if ( 
    form.mail ) {

           
    mail form.mail.value;

        }
     
  17. igrovik

    igrovik Местный

    Регистрация:
    11 дек 2016
    Сообщения:
    1.007
    Лучших ответов:
    8
    Рейтинги:
    +355 / 12 / -0
    Еще ниже опускаетесь до первого
    Код:
    ShowLoading(""), $.post(dle_root + "engine/ajax/controller.php?mod=addcomments", {
     
  18. igrovik

    igrovik Местный

    Регистрация:
    11 дек 2016
    Сообщения:
    1.007
    Лучших ответов:
    8
    Рейтинги:
    +355 / 12 / -0
    Если брать код с 2. Открываем файл dle_js.js с папки Developer/uncompressed что идёт в архиве движка.
    то примерно 928 строка
    upload_2023-1-1_12-14-24.png
     
  19. Terras

    PRO Users

    Регистрация:
    18 мар 2017
    Сообщения:
    306
    Лучших ответов:
    3
    Рейтинги:
    +56 / 1 / -0
    Это есть но в вашем примере код после

    function doAddComments() {
    var e = document.getElementById("dle-comments-form");

    [​IMG]
     
  20. igrovik

    igrovik Местный

    Регистрация:
    11 дек 2016
    Сообщения:
    1.007
    Лучших ответов:
    8
    Рейтинги:
    +355 / 12 / -0
    Верно этот код входит в функцию
    Код:
    doAddComments()
    И было же выше написано для примера что бы было понимание где примерно искать ))
    Да после проделанных манипуляций нужно чистить не только кэш дле но и кэш браузера. Так как js кэшируется браузером, как понял.
     
Яндекс.Метрика