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; }
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; }
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); } }