Хак AJAX редактирование дополнительных полей

Тема в разделе "DLE", создана пользователем kent, 1 мар 2015.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. kent

    kent Создатель

    Регистр.:
    6 ноя 2011
    Сообщения:
    38
    Симпатии:
    2
    Сливаю хак, купил за 1к, а он не работает((( Автор не отвечает.
    Описание с сайта автора:
    Сайт автора хака:
    http://nowheredev.ru/developments/php/60-ajax-redaktirovanie-dopolnitelnyh-poley.html


    Может кто доделает хак, как написано на сайте автора, работает на DLE 9.0 и выше проверял на dle9.0 и dle10.3, не робит писал ошибку в консоли, исправил.
    А теперь хак пишет что дополнительное поле сохранено, а на самом деле ничего не изменилось.
    Сливаю хак на своей совести, в ожидании, что его кто нибудь подправит:

    оригинал (закодированный) https://yadi.sk/d/0I1Jo0K8exJQh

    раскодированный : https://yadi.sk/d/9zqvYqF6exJaZ
     
    Последнее редактирование: 1 мар 2015
  2. Attyla

    Attyla

    Регистр.:
    21 ноя 2012
    Сообщения:
    157
    Симпатии:
    42
    Он не сохраняет из-за того что в новых версиях DLE нет функции xfieldsdatasavesql и нет case "save": в engine/inc/xfields.php

    Код:
    // Запись данных XFields в базу данных, при добавлении, редактировании новости
    function xfieldsdatasavesql($id, $data) {
    
        global $parse, $config, $db;
    
        if ($config['safe_xfield']) {
        $parse->ParseFilter();
        $parse->safe_mode = true;
        }
    
          foreach ($data as $xfielddataname => $xfielddatavalue) {
            if ($xfielddatavalue == "") { continue;}
    
            $parse->allow_code = true;
            $xfielddatavalue = $db->safesql($parse->BB_Parse($parse->process($xfielddatavalue), false));
    
            $xfielddataname = $db->safesql($xfielddataname);
    
            $xfielddataname = str_replace("|", "&#124;", $xfielddataname);
            $xfielddataname = str_replace("\r\n", "__NEWL__", $xfielddataname);
            $xfielddatavalue = str_replace("|", "&#124;", $xfielddatavalue);
            $xfielddatavalue = str_replace("\r\n", "__NEWL__", $xfielddatavalue);
            $filecontents[0][] = "$xfielddataname|$xfielddatavalue";
          }
    
          $filecontents[0] = implode("||", $filecontents[0]);
    
    
    $db->query("UPDATE " . PREFIX . "_post set xfields = '$filecontents[0]' WHERE id='$id'");
    }
     
    Последнее редактирование: 21 мар 2015
    killoff нравится это.