/** * Removes expired tmp directories. It calls by WPL cronjobs * @author Howard <*****@*****.**> * @static */ public static function delete_expired_tmp() { $path = wpl_global::get_tmp_path(); $folders = wpl_folder::folders($path); $now = time(); $_3days = 259200; #3days in seconds foreach ($folders as $folder) { $full_path = $path . $folder; $latest_modification_time = filemtime($full_path); if ($now - $latest_modification_time > $_3days) { wpl_folder::delete($full_path); } } }
/** * Uninstalling WPL * @author Howard <*****@*****.**> * @return boolean */ public function uninstall_wpl() { $tables = wpl_db::select('SHOW TABLES'); $database = wpl_db::get_DBO(); foreach ($tables as $table_name => $table) { if (strpos($table_name, $database->prefix . 'wpl_') !== false) { /** drop table **/ wpl_db::q("DROP TABLE `{$table_name}`"); } } /** delete options **/ wpl_db::q("DELETE FROM `#__options` WHERE `option_name` LIKE 'wpl_%' AND `option_name` NOT LIKE 'wpl_theme%'", 'delete'); /** remove WPL upload directory **/ if (function_exists('is_multisite') and is_multisite() and wpl_global::check_addon('multisite')) { $original_blog_id = wpl_global::get_current_blog_id(); // Get all blogs $blogs = wpl_db::select("SELECT `blog_id` FROM `#__blogs`", 'loadColumn'); foreach ($blogs as $blog) { if (!isset($blog->blog_id)) { continue; } switch_to_blog($blog->blog_id); $upload_path = wpl_global::get_upload_base_path($blog->blog_id); if (wpl_folder::exists($upload_path)) { wpl_folder::delete($upload_path); } } switch_to_blog($original_blog_id); } else { $upload_path = wpl_global::get_upload_base_path(); if (wpl_file::exists($upload_path)) { wpl_file::delete($upload_path); } } return true; }
/** * Purge a property completely * @author Howard <*****@*****.**> * @static * @param int $property_id * @param boolean $trigger_event * @return boolean */ public static function purge($property_id, $trigger_event = true) { /** first validation **/ if (!trim($property_id)) { return false; } $property_data = self::get_property_raw_data($property_id); /** trigger event **/ if ($trigger_event) { wpl_global::event_handler('property_before_purge', array('property_id' => $property_id, 'property_data' => $property_data)); } /** purging property related data **/ _wpl_import('libraries.items'); wpl_items::delete_all_items($property_id, $property_data['kind']); /** purging property record **/ wpl_db::delete('wpl_properties', $property_id); /** purging property folder **/ wpl_folder::delete(wpl_items::get_path($property_id)); /** trigger event **/ if ($trigger_event) { wpl_global::event_handler('property_purged', array('property_id' => $property_id, 'property_data' => $property_data)); } return true; }