Запись вводимых данных при добавлении новостей


Небольшой хак поможет вам сохранить введенные данные, если при добавлении новости у вас вдруг отключат электричество или вы случайно закроете окно с формой добавления новости в админпанели.


Установка:
1. Открыть engine/inc/addnews.php и найти:
echo "<form method=post name=\"addnews\" id=\"addnews\" onsubmit=\"if(checkxf()=='fail') return false;\" action=\"$PHP_SELF\">";

Добавить выше:
echo '<script type="text/javascript">
$(document).ready(function() {
var olddatathisform = JSON.parse(localStorage.getItem(\'addnews_form\')); //получаем данные записи
if(olddatathisform){
$("#data_get,#data_del").show();
}     

$(\'#data_del\').click(function() {
localStorage.removeItem(\'addnews_form\');
$("#data_get,#data_del").hide();
    });    

$(\'#data_get\').click(function() {
$.each(olddatathisform, function(i, val) {
document.addnews.elements[\'\'+val.name+\'\'].value = \'\'+val.value+\'\';
});    
});         

$(\'#data_recording\').click(function() {
setInterval(data_recording, 1000);
});
});

function data_recording(){
    localStorage.removeItem(\'addnews_form\');
    var info = $(\'#addnews\').serializeArray();
localStorage.setItem(\'addnews_form\',JSON.stringify(info));
$(\'#data_recording\').html("Идет запись...");
    }
</script>';

Найти далее:
{$lang['addnews_news']}

Добавить после:
<b><a href="javascript:void();" style="float:right;padding-right:10px;" id="data_recording">Начать запись</a></b>
        <a href="javascript:void();" style="float:right;padding-right:10px;display:none;" id="data_get">Получить данные</a>
        <a href="javascript:void();" style="float:right;padding-right:10px;display:none;" id="data_del">Удалить запись</a>

2. Если вы хотите, что бы и пользователи могли использовать данный хак, то открываем файл addnews.tpl шаблона и вставляем:
<script type="text/javascript">
$(document).ready(function() {
var olddatathisform = JSON.parse(localStorage.getItem('addnews_form')); //получаем данные записи
if(olddatathisform){
$("#data_get,#data_del").show();
}     

$('#data_del').click(function() {
localStorage.removeItem('addnews_form');
$("#data_get,#data_del").hide();
    });    

$('#data_get').click(function() {
$.each(olddatathisform, function(i, val) {
document.entryform.elements[''+val.name+''].value = ''+val.value+'';
});    
});         

$('#data_recording').click(function() {
setInterval(data_recording, 1000);
});
});

function data_recording(){
    localStorage.removeItem('addnews_form');
    var info = $('#entryform').serializeArray();
localStorage.setItem('addnews_form',JSON.stringify(info));
$('#data_recording').html("Идет запись...");
    }
</script>

<b><a href="javascript:void();" style="float:right;padding-right:10px;" id="data_recording">Начать запись</a></b>
        <a href="javascript:void();" style="float:right;padding-right:10px;display:none;" id="data_get">Получить данные</a>
        <a href="javascript:void();" style="float:right;padding-right:10px;display:none;" id="data_del">Удалить запись</a>

Готово!
 
Версия DLE: 10.0-10.2
Автор: rocksmart
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.