示例#1
0
 function filesystem_dirlist($path, $include_hidden = true, $recursive = false)
 {
     if (is_file($path)) {
         $limit_file = basename($path);
         $path = dirname($path);
     } else {
         $limit_file = false;
     }
     if (!is_dir($path)) {
         return false;
     }
     $dir = @dir($path);
     if (!$dir) {
         return false;
     }
     $ret = array();
     while (false !== ($entry = $dir->read())) {
         $struc = array();
         $struc['name'] = $entry;
         if ('.' == $struc['name'] || '..' == $struc['name']) {
             continue;
         }
         if (!$include_hidden && '.' == $struc['name'][0]) {
             continue;
         }
         if ($limit_file && $struc['name'] != $limit_file) {
             continue;
         }
         $struc['type'] = is_dir($path . '/' . $entry) ? 'd' : 'f';
         if ('d' == $struc['type']) {
             if ($recursive) {
                 $struc['files'] = WOWSlider_Helpers::filesystem_dirlist($path . '/' . $struc['name'], $include_hidden, $recursive);
             } else {
                 $struc['files'] = array();
             }
         }
         $ret[$struc['name']] = $struc;
     }
     $dir->close();
     unset($dir);
     return $ret;
 }
示例#2
0
function wowslider_delete($id, $type = 'permanently')
{
    global $wpdb;
    $where = '';
    if ($id !== 'all' && $id !== '*') {
        if (is_string($id)) {
            $id = preg_split('/,\\s*/', $id);
        } else {
            if (!is_array($id)) {
                $id = array($id);
            }
        }
        $id = array_map(create_function('$v', 'return (int)$v;'), $id);
        $where = ' ID IN (' . implode(',', array_unique($id)) . ') AND';
    }
    if ($type == 'permanently') {
        if (!($id = $wpdb->get_results('SELECT ID FROM ' . $wpdb->prefix . 'wowslider WHERE' . $where . ' slider_public = 0 ORDER BY ID ASC LIMIT 200', ARRAY_A))) {
            return false;
        }
        $indexes = array_map(create_function('$v', 'return (int)$v[\'ID\'];'), $id);
        foreach ($indexes as $id) {
            WOWSlider_Helpers::filesystem_delete(wowslider_upload_dir() . $id . '/', true);
            $wpdb->query('DELETE FROM ' . $wpdb->prefix . 'wowslider WHERE ID = ' . $id . ';');
        }
        return $indexes;
    } else {
        if ($type == 'restore') {
            $wpdb->query('UPDATE ' . $wpdb->prefix . 'wowslider SET slider_public = 1 WHERE' . $where . ' slider_public = 0;');
        } else {
            $wpdb->query('UPDATE ' . $wpdb->prefix . 'wowslider SET slider_public = 0 WHERE' . $where . ' slider_public = 1;');
        }
    }
    return $id;
}
示例#3
0
function wowslider_old_version()
{
    $dir = WOWSLIDER_PLUGIN_PATH . 'sliders/';
    if (is_dir($dir)) {
        require_once ABSPATH . 'wp-admin/includes/file.php';
        if ($list = WOWSlider_Helpers::filesystem_dirlist($dir)) {
            foreach ($list as $item) {
                WOWSlider_Helpers::filesystem_move($source . $dir . $item['name'], wowslider_upload_dir() . $item['name']);
            }
        }
        WOWSlider_Helpers::filesystem_delete($dir, true);
    }
}