Пример #1
0
function unlink_dir($dir)
{
    global $filesystem;
    $dir = $dir . "/";
    $d = dir($dir);
    while (false !== ($entry = $d->read())) {
        if (is_subdir($dir . $entry)) {
            unlink_dir($dir . $entry);
        }
        if (file_exists($dir . $entry) && is_file($dir . $entry) && filemtime($dir . $entry) < time() - 60 * 60) {
            $filesystem->unlink($dir . $entry);
        }
    }
    $d->close();
}
/**
 * 删除文件夹
 * @param string $dir 要删除的文件夹路径
 * @return bool 成功删除返回true,失败则false
 */
function unlink_dir($dir)
{
    $dh = opendir($dir);
    while ($file = readdir($dh)) {
        if ($file != '.' && $file != '..') {
            $fullpath = $dir . '/' . $file;
            if (is_dir($fullpath)) {
                unlink_dir($fullpath);
            } else {
                unlink($fullpath);
            }
        }
    }
    closedir($dh);
    return rmdir($dir);
}
Пример #3
0
/**
 * Deletes a directory and all of its contents
 * @return unknown_type
 */
function unlink_dir($dir)
{
    $dh = @opendir($dir);
    if (!is_resource($dh)) {
        return;
    }
    while (false !== ($obj = readdir($dh))) {
        if ($obj == '.' || $obj == '..') {
            continue;
        }
        $path = "{$dir}/{$obj}";
        if (is_dir($path)) {
            unlink_dir($path);
        } else {
            @unlink($path);
        }
    }
    @closedir($dh);
    @rmdir($dir);
}
 /**
  * Execute the script
  *
  * @param void
  * @return boolean
  */
 function execute()
 {
     // ---------------------------------------------------
     //  Check MySQL version
     // ---------------------------------------------------
     $mysql_version = mysql_get_server_info($this->database_connection);
     if ($mysql_version && version_compare($mysql_version, '4.1', '>=')) {
         $constants['DB_CHARSET'] = 'utf8';
         @mysql_query("SET NAMES 'utf8'", $this->database_connection);
         tpl_assign('default_collation', $default_collation = 'collate utf8_unicode_ci');
         tpl_assign('default_charset', $default_charset = 'DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci');
     } else {
         tpl_assign('default_collation', $default_collation = '');
         tpl_assign('default_charset', $default_charset = '');
     }
     // if
     tpl_assign('table_prefix', TABLE_PREFIX);
     if (defined('DB_ENGINE')) {
         tpl_assign('engine', DB_ENGINE);
     } else {
         tpl_assign('engine', 'InnoDB');
     }
     // ---------------------------------------------------
     //  Execute migration
     // ---------------------------------------------------
     $total_queries = 0;
     $executed_queries = 0;
     $installed_version = installed_version();
     if (version_compare($installed_version, "1.2.1") <= 0) {
         $upgrade_script = tpl_fetch(get_template_path('db_migration/1_3_matambrito'));
     } else {
         // change from es_uy to es_la
         $upgrade_script = "UPDATE `" . TABLE_PREFIX . "user_ws_config_options` SET `default_value` = 'es_la' WHERE `name` = 'localization' AND `default_value` = 'es_uy';\n\t\t\tUPDATE `" . TABLE_PREFIX . "user_ws_config_option_values` `v`, `" . TABLE_PREFIX . "user_ws_config_options` `o` SET `v`.`value` = 'es_la' WHERE `o`.`name` = 'localization' AND `o`.`id` = `v`.`option_id` AND `v`.`value` = 'es_uy';\n\t\t\tALTER TABLE `" . TABLE_PREFIX . "users` MODIFY COLUMN `default_billing_id` INTEGER(10) UNSIGNED DEFAULT 0;\n\t\t\tUPDATE `" . TABLE_PREFIX . "user_ws_config_options` SET\n\t\t\t\t`config_handler_class` = 'BoolConfigHandler',\n\t\t\t\t`dev_comment` = 'Notification checkbox default value'\n\t\t\t\tWHERE `name` = 'can notify from quick add';\n\t\t\t";
     }
     if ($this->executeMultipleQueries($upgrade_script, $total_queries, $executed_queries, $this->database_connection)) {
         $this->printMessage("Database schema transformations executed (total queries: {$total_queries})");
     } else {
         $this->printMessage('Failed to execute DB schema transformations. MySQL said: ' . mysql_error(), true);
         return false;
     }
     // if
     @unlink('templates/db_migration/onion.php');
     @unlink('templates/db_migration/dulceDeLeche.php');
     @unlink('templates/db_migration/tortaFrita.php');
     @unlink('templates/db_migration/churro.php');
     @unlink('templates/db_migration/empanada.php');
     @unlink('templates/db_migration/milanga.php');
     @unlink('templates/db_migration/bondiola.php');
     @unlink('templates/db_migration/chinchulin.php');
     @unlink('templates/db_migration/matambrito.php');
     @unlink('scripts/OnionUpgradeScript.class.php');
     @unlink('scripts/PapayaUpgradeScript.class.php');
     @unlink(INSTALLATION_PATH . '/language/es_uy.php');
     @unlink_dir(INSTALLATION_PATH . '/language/es_uy');
     $cookiepath = "/";
     $configfile = @file_get_contents(INSTALLATION_PATH . '/config/config.php');
     if ($configfile) {
         $configfile = str_replace("es_uy", "es_la", $configfile);
         $configfile = preg_replace("/[^\\(]*COOKIE_PATH[^,]*,[^\\)]*/", "'COOKIE_PATH', '/'", $configfile);
         @file_put_contents(INSTALLATION_PATH . '/config/config.php', $configfile);
     }
     $this->printMessage('Feng Office has been upgraded. You are now running Feng Office ' . $this->getVersionTo() . ' Enjoy!');
 }
Пример #5
0
/**
 * Deletes a directory and all of its contents
 * @return unknown_type
 */
function unlink_dir($dir) {
	$dh = @opendir($dir);
	if (!is_resource($dh)) return;
    while (false !== ($obj = readdir($dh))) {
		if($obj == '.' || $obj == '..') continue;
		$path = "$dir/$obj";
		if (is_dir($path)) {
			unlink_dir($path);
		} else {
			@unlink($path);
		}
	}
	@closedir($dh);
	@rmdir($dir);
}