Вход Регистрация
Файл: sys/inc/ajax.php
Строк: 246
<?php 

do_event
('pre_init_ajax'); 

$action ''
if (isset(
$_GET['action'])) {
    
$action $_GET['action']; 
} elseif (isset(
$_POST['action'])) {
    
$action $_POST['action']; 
}

if (
is_user_access('adm_themes')) {
    if (
$action == 'widgets_area_save') {
        
$area = (isset($_POST['area_id']) ? $_POST['area_id'] : ''); 
        
$area_id '_widgets-' $area
        
update_option($area_id$_POST['widgets'], 'widgets'); 
        die(
json_encode(array('save' => 1))); 
    }

    
// Обновление настроек виджета
    
if ($action == 'widget_edit_save') {
        
$widget_name = (isset($_POST['widget_name']) ? $_POST['widget_name'] : ''); 
        
$widget_id = (isset($_POST['widget_id']) ? $_POST['widget_id'] : '_widget_no_id'); 
        
$widget_area = (isset($_POST['widget_area']) ? $_POST['widget_area'] : '_widget_no_area'); 
        
$widgets get_widgets(); 

        if (isset(
$widgets[$widget_name])) {
            
$className $widgets[$widget_name]['id']; 
            
$widget = new $className();  
            
$widget->setup($widget_id); 
            
$widget->save($widget_id, array(
                
'widget_name' => $widget_name
                
'widget_area' => $widget_area
            )); 

            
$ajax $widget->instance

            die(
json_encode($ajax)); 
        }

        
$ajax['widget_name'] = $widget_name
        
$ajax['widget_id'] = $widget_id

        die(
json_encode($ajax)); 
    }
    
    if (
$action == 'widget_edit_form') {
        
$widget_name = (isset($_POST['widget_name']) ? $_POST['widget_name'] : ''); 
        
$widget_id = (isset($_POST['widget_id']) ? $_POST['widget_id'] : 0); 
        
$widget_area = (isset($_POST['widget_area']) ? $_POST['widget_area'] : ''); 

        
$widgets get_widgets(); 

        if (isset(
$widgets[$widget_name])) {
            
$className $widgets[$widget_name]['id']; 
            
$widget = new $className();  
            
$widget->setup($widget_id); 

            echo 
'<form class="widget_form" method="POST">'

            if (!
$widget_id) {
                
$widget_id '_widget_' $widget_area '-' time(); 
            }

            
$widget_form $widget->form($widget->instance); 

            if (
$widget_form !== false) {
                echo 
'<input type="hidden" name="widget_name" value="' text($widget_name) . '">';
                echo 
'<input type="hidden" name="widget_id" value="' text($widget_id) . '">';
                echo 
'<input type="hidden" name="widget_area" value="' text($widget_area) . '">';
                echo 
'<button class="button button-primary" type="submit">Сохранить</button> <span class="widget-alert"></span>'
            } else {
                echo 
__('Этот виджет не имеет настроек'); 
            }
            echo 
'</form>'

            die();
        }
    }
}

if (
is_user_access('plugins')) {

    
/**
    * API: Список плагинов
    */ 

    
if ($action == 'plugins_search_api') {
        
$search = (isset($_GET['s']) ? urlencode($_GET['s']) : ''); 
        
$page = (isset($_GET['page']) ? urlencode($_GET['page']) : 1); 
        
$sort = (isset($_GET['sort']) ? urlencode($_GET['sort']) : 'popular'); 

        
$list get_http_content('https://cms-social.ru/api/v1/plugins/list', array(
            
's' => $search
            
'sort' => $sort
            
'page' => $page
        )); 

        
$array json_decode($list1); 

        foreach(
$array['list'] AS $plugin) {
            echo 
'<div class="cards-item">'
            echo 
'<div class="card">'
            echo 
'<img class="card-image" src="' $plugin['thumbnail'] . '" />'
            echo 
'<div class="card-title">' $plugin['title'] . '</div>'
            echo 
'<div class="card-description">' $plugin['description'] . '</div>'

            
$author = ($plugin['author_uri'] ? '<a target="_blank" href="' $plugin['author_uri'] . '">' $plugin['author'] . '</a>' $plugin['author']); 
            echo 
'<div class="card-description">' __('Автор: %s'$author) . '</div>'

            echo 
'<div class="card-action">'
            if (!
plugin_exists($plugin['slug'])) {
                echo 
'<a class="button plugin-install" data-slug="' $plugin['slug'] . '" href="' get_admin_url('plugins.php''action=install&slug=' $plugin['slug']) . '">' __('Установить') . '</a>'
            } elseif (!
is_plugin_active($plugin['slug'])) {
                echo 
'<a class="button button-primary" href="' get_admin_url('plugins.php''action=activate&slug=' $plugin['slug']) . '">' __('Активировать') . '</a>'
            } else {
                echo 
'<span class="button button-disabled">' __('Активен') . '</span>'
            }
            echo 
'</div>'
            echo 
'</div>'
            echo 
'</div>'
        }
        die(); 
    }    

    
/**
    * API: Установка плагина из репозитория
    */ 

    
if ($action == 'plugins_install_api') {
        
$plug = (isset($_GET['slug']) ? $_GET['slug'] : ''); 

        
ds_plugin_install($plug); 
        
        if (!
is_errors()) {
            
$ajax = array(
                
'status' => 'success'
                
'message' => __('Установлено'), 
                
'href' => 'plugins.php?action=activate&slug=' $plug
                
'title' => __('Активировать'), 
            ); 

        } else {
            
$ajax = array(
                
'status' => 'error'
                
'message' => __('Установка не удалась'), 
                
'errors' => get_errors(), 
            ); 
        }


        die(
json_encode($ajax)); 
    }

    
/**
    * API: Обновление плагина из репозитория
    */ 

    
if ($action == 'plugins_update_api') {
        
$plug = (isset($_GET['slug']) ? $_GET['slug'] : ''); 

        
do_event('ds_plugin_update'$plug); 

        
$active is_plugin_active($plug); 

        
ds_plugin_deactivate($plug); 
        
ds_plugin_remove($plug); 
        
ds_plugin_install($plug); 
        
        if (!
is_errors()) {
            if (
$active === true) {
                
ds_plugin_activate($plug); 
            }

            
$update_file_required ds_plugin_directory_path($plug) . '/ds-plugin-update.php'

            if (
is_file($update_file_required)) {
                require 
$update_file_required
                
unlink($update_file_required); 
            }

            
do_event('ds_plugin_updated'$plug); 

            
$ajax = array(
                
'status' => 'success'
                
'message' => __('Обновлено'), 
            ); 
            
            if (
is_file(PATH_CACHE '/ds_update_plugins.json')) {
                
unlink(PATH_CACHE '/ds_update_plugins.json');
            }
        } else {
            
do_event('ds_plugin_updated_error'$plugget_errors()); 

            
$ajax = array(
                
'status' => 'error'
                
'message' => __('Установка не удалась'), 
                
'errors' => get_errors(), 
            ); 
        }

        die(
json_encode($ajax)); 
    }
}

if (
$action == 'ds_media_manager') {
    
$json = array(); 

    if (!
is_user()) {
        die(
json_encode(array('error' => __('Вы не авторизованы')))); 
    } 

    
// Тип файлов
    
$mediaType = (isset($_GET['type']) ? db::esc($_GET['type']) : 'files'); 
    
$mediaConfig get_media_type($mediaType);


    
$term_id = (isset($_GET['term']) ? (int) $_GET['term'] : 0); 

    if (!
$mediaConfig) {
        die(
json_encode(array('error' => __('Такого типа файлов не существует')))); 
    } 

    if (!
$term_id) {
        
$term get_files_term_root($user['id'], $mediaType); 

        if (empty(
$term) && $term_id == 0) {
            
$term_id files_term_create(array(
                
'term_type' => $mediaType
                
'privacy' => ($mediaType == 'attachments' 'personal' 'public'), 
                
'parent' => 0
                
'user_id' => $user['id'], 
                
'title' => (isset($mediaConfig['labels']['root_term_name']) ? $mediaConfig['labels']['root_term_name'] : __('Файлы')), 
            ));

            
$term get_files_term($term_id);
        }
    } else {
        
$term get_files_term($term_id$user['id']);
    }

    
$json['title'] = $term['title']; 
    
$json['files_type'] = $mediaType;
    
$json['term'] = $term
    
$json['labels'] = $mediaConfig['labels']; 
    
$json['config'] = $mediaConfig
    
$json['accept'] = join(','$mediaConfig['accept']); 

    
$terms get_files_terms_child($term['term_id']); 

    
$mask = array(
        
'%user_nick%' => $user['nick']
    );

    
$list = array(); 
    foreach(
$terms AS $dir) {
        
$mask_link array_merge($mask, array(
            
'%term_id%' => isset($dir['term_id']) ? $dir['term_id'] : 0
        ));

        
$list[] = array(
            
'term_id' => $dir['term_id'], 
            
'title' => trim($dir['title']), 
            
'link' => str_replace(array_keys($mask_link), array_values($mask_link), $mediaConfig['permalinks']['term']), 
            
'count' => $dir['files'], 
        ); 
    }

    
$json['folders'] = $list

    
$query = new DB_Files(array(
        
'files_type' => $mediaType
        
'user_id' => $user['id'], 
        
'term_id' => $term['term_id'], 
    )); 

    
$list = array(); 

    if (
$query->total) {
        foreach(
$query->files AS $key => $file
        {
            
$thumbnail ''
            if (
is_file_thumbnail($file['id'], 'thumbnail')) {
                
$thumbnail get_file_thumbnail_url($file['id'], 'thumbnail'); 
            }

            
$list[] = array(
                
'file_id' => $file['id'], 
                
'title' => text($file['title']), 
                
'link' => get_file_link($file), 
                
'icon' => get_file_icon($filetrue), 
                
'thumbnail' => $thumbnail
                
'size' => size_file($file['size']), 
                
'type' => $mediaType
            ); 
        }        
    }

    
$json['files'] = $list
    
$json['filesTotal'] = $query->total
    
$json['filesPages'] = $query->pages
    
$json['filesPage'] = $query->paged

    die(
json_encode($json)); 
}

if (
$action == 'ds_files_upload') {
    if (
is_user()) {
        if (!empty(
$_POST['term_id'])) {
            
$term_id = (int) $_POST['term_id']; 
        } else {
            
$term_id 0
        }

        if (!empty(
$_POST['term_type'])) {
            
$mediaType db::esc($_POST['term_type']); 
        } else {
            
$mediaType 'attachments'
        }

        
$ds_files_config get_media_type($mediaType);

        if (!
$term_id) {
            
$term get_files_term_root($user['id'], $mediaType); 

            if (empty(
$term) && $term_id == 0) {
                
$term_id files_term_create(array(
                    
'term_type' => $mediaType
                    
'privacy' => ($mediaType == 'attachments' 'personal' 'public'), 
                    
'parent' => 0
                    
'user_id' => $user['id'], 
                    
'title' => (isset($ds_files_config['labels']['root_term_name']) ? $ds_files_config['labels']['root_term_name'] : __('Файлы')), 
                ));

                
$term get_files_term($term_id);
            }
        } else {
            
$term get_files_term($term_id$user['id']);
        }
        
        
$_FILES['file'] = use_filters('ds_pre_upload_file'$_FILES['file']); 

        
$hash get_file_hash($_FILES['file']['tmp_name']); 
        
$duplicate get_file_duplicate($hash$_FILES['file']['size']); 

        if (!isset(
$duplicate['id'])) {
            
$uploadFile file_handle_upload($_FILES['file'], $term['term_id']);
        }
        
        if (!
is_errors()) {
            if (!isset(
$duplicate['id'])) {
                
$file use_filters('json_file_uploaded'$uploadFile); 
            } else {
                
$file $duplicate
            }
            
            
$thumbnail ''
            if (
is_file_thumbnail($file['id'], 'thumbnail')) {
                
$thumbnail get_file_thumbnail_url($file['id'], 'thumbnail'); 
            }

            
$json['file'] = array(
                
'file_id' => $file['id'], 
                
'title' => text($file['title']), 
                
'link' => get_file_link($file), 
                
'icon' => get_file_icon($filetrue), 
                
'thumbnail' => $thumbnail
                
'size' => size_file($file['size']), 
                
'type' => $mediaType
            );
        } else {
            
$json['errors'] = get_errors(); 
        }

        die(
json_encode($json));
    }
}

if (
$action == 'ds_events') {
    
$ajax = array(); 

    if (
is_user()) {
        if (isset(
$_POST['user']['request'])) {
            
update_user_meta(get_user_id(), '__location'db::esc($_POST['user']['request'])); 
        }

        if (!empty(
$_POST['user']['hash'])) {
            
update_user_meta(get_user_id(), '__prints_hash'db::esc($_POST['user']['hash'])); 
        }
    }

    foreach(
json_decode($_POST['json'], 1) AS $type => $data
    {
        
$ajax[$type] = use_filters('ds_events_' $type '_ajax'$data$_POST['user']); 
        if (
$ajax[$type] === false) {
            unset(
$ajax[$type]); 
        }
    }

    die(
json_encode($ajax)); 
}

if (
$action == 'mod_rewrite_test') {
    die(
'OK'); 
}

if (
$action) { 
    
do_event('ajax_' $action '_callback'); 
}

die(
json_encode(array('error' => '0')));
Онлайн: 1
Реклама