Пример #1
0
/**
 * lg_folder_newfolder()
 * Insert a new folder in the gallery
 * 
 * @since 1.1.0
 * @return void
 */
function lg_folder_newfolder()
{
    global $lg_gallery;
    $nonce = $_POST['_wpnonce'];
    $from_gallery = wp_verify_nonce($nonce, 'lg_manage_gallery');
    $from_folder = wp_verify_nonce($nonce, 'lg_manage_folder');
    if (!($from_gallery || $from_folder)) {
        die;
    }
    if (isset($_POST['create_new_folder'])) {
        if (isset($_POST['folder'])) {
            $id = $_POST['folder'];
            $newname = $_POST['new_folder_name'];
            if ('0' != $id) {
                $file = trailingslashit(utf8_decode(stripslashes(rawurldecode($_POST['directory']))));
                $_POST['folder'] = $_POST['directory'];
                include_once $lg_gallery->plugin_dir . '/inc/manager.php';
                $parentfolder = new LazyestAdminFolder($file);
                if ($parentfolder->valid()) {
                    $parentfolder->open();
                    $foldername = $parentfolder->curdir . $newname;
                }
            } else {
                unset($_POST['folder']);
                $foldername = $newname;
            }
        }
        $message = sprintf('Folder %s cannot be opened.', htmlentities($newname));
        trailingslashit($newname);
        $result = $lg_gallery->new_gallery_folder($foldername);
        if (true === $result) {
            $i = 0;
            $found = false;
            $folders = '0' != $id ? $parentfolder->subfolders() : $lg_gallery->folders('root', 'hidden');
            while (!$found || $i > count($folders)) {
                // find pagination information
                $folder = $folders[$i];
                $found = $newname;
                $folder->dirname();
                $i++;
            }
            if ($found) {
                $page = ceil(20 / $i);
                $_POST['lg_paged'] = $page;
                // set pagination request
                $action = '0' != $id ? $parentfolder->foldersbox() : $lg_gallery->foldersbox($folders);
            } else {
                $lg_gallery->message = $message;
                $lg_gallery->success = false;
                $lg_gallery->options_message();
            }
        } else {
            $lg_gallery->message = $result;
            $lg_gallery->success = false;
            $lg_gallery->options_message();
        }
    }
    die;
}