Пример #1
0
 /**
  * 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);
         }
     }
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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;
 }