Редактирование статей ajax для PHP-Fusion

Редактирование статей ajax для PHP-Fusion


Редактирование статей на ajax. При редактировании можно поменять Название, Категорию, Краткий текст, Полный текст, Опции (сохранить как черновик, разрешить комментарии, разрешить рейтинги).

Файл includes/theme_functions_include.php
Ищем функцию itemoptions
В ней ищем строку

} elseif ($item_type == "A") {


Ниже дописываем

if (iADMIN && checkrights($item_type)) { $res .= " &middot; <a href='#edit' onclick=\"edit_a('".$item_id."'); return false;\">[e]</a> "; }


Сохраняем и закрываем.

Файл themes/шаблон/theme.php
Ищем функцию render_article
В ней строки отвечающие за вывод названия и текста статьи.
Дописываем id's как показано ниже:

echo "<td class='capmain' id='subject-".$info['article_id']."'>".$subject."</td>\n";


и..

echo "<td class='main-body middle-border' id='text-".$info['article_id']."'>".($info['article_breaks'] == "y" ? nl2br($article) : $article)."</td>\n";


Файл includes/jscript.js
В самом низу вставляем js код:

/*********************
* Ajax edit articles *
**********************/
var a_cach = new Array();
 
function edit_a(aid) {
    if (a_cach[aid] != '') { edita_close(aid); }
    if (!a_cach[aid] || a_cach[aid] == '') {
        a_cach[aid] = $('#text-'+aid).html();
    }
    $.post('/includes/articles_edit.php', { id: aid, action: 'edit' }, function(data){
        $('#text-'+aid).html(data);
    });
    return false;
};
 
function edita_close(aid) {
    if (a_cach[aid] != '') {
        $('#text-'+aid).html(a_cach[aid]);
    }
    a_cach[aid] = '';
    return false;
};
 
function save_a(aid) {
    var subject = $('#subject').val();
    var cat = $('#cat').val();
    var body = $('#body').val();
    var body2 = $('#body2').val();
    var draft = $('input[id=\'draft\']:checked').val();
    var comments = $('input[id=\'comments\']:checked').val();
    var ratings = $('input[id=\'ratings\']:checked').val();
    if (subject == '' || body == '' || body2 == '') {
        alert('Поля не должны быть пустыми!');
        return false;
    }
    $.post('/includes/articles_edit.php', { id: aid, subject: subject, cat: cat, body: body, body2: body2, draft: draft, comments: comments, ratings: ratings, action: 'save' },
    function(data){
        $('#subject-'+aid).html(data.subject);
        $('#text-'+aid).html(data.text);
        a_cach[aid] = '';
    }, 'json');
    return false;
};


Закидываем папку includes в корневой каталог сайта.



Просмотров: 3357
20.06.2015, 18:43 -

Категория: Web-скрипты » PHP-Fusion