Пример #1
0
 /**
  *    完成安装
  *
  *    @author    Garbin
  *    @return    void
  */
 function install_done()
 {
     extract($_POST);
     /* 无实际用途 */
     $_code = rand(10000, 99999);
     setcookie('__INTECODE__', $_code, 0, '/');
     /* 连接数据库 */
     $con = mysql_connect($db_host . ':' . $db_port, $db_user, $db_pass);
     if (!$con) {
         show_process(r(Lang::get('connect_db'), false), 'parent.show_warning("' . Lang::get('connect_db_error') . '")');
         return false;
     }
     show_process(r(Lang::get('connect_db'), true));
     $version = mysql_get_server_info();
     $charset = str_replace('-', '', CHARSET);
     if ($version > '4.1') {
         if ($charset != 'latin1') {
             mysql_query("SET character_set_connection={$charset}, character_set_results={$charset}, character_set_client=binary", $con);
         }
         if ($version > '5.0.1') {
             mysql_query("SET sql_mode=''", $con);
         }
     }
     /* 选择数据库 */
     $selected_db = mysql_select_db($db_name, $con);
     if (!$selected_db) {
         show_process(r(Lang::get('selecte_db'), false), 'parent.show_warning("' . Lang::get('selecte_db_error') . '");');
         return false;
     }
     /* 建立数据库结构 */
     show_process(r(Lang::get('start_setup_db'), true));
     $sqls = get_sql(version_data('structure.sql'));
     foreach ($sqls as $sql) {
         $sql = replace_prefix('ecm_', $db_prefix, $sql);
         if (substr($sql, 0, 12) == 'CREATE TABLE') {
             $name = preg_replace("/CREATE TABLE `{$db_prefix}([a-z0-9_]+)` .*/is", "\\1", $sql);
             mysql_query(create_table($sql));
             show_process(r(sprintf(Lang::get('create_table'), $name), true, 1));
         } else {
             mysql_query($sql, $con);
         }
     }
     /* 安装初始数据 TODO 暂时不完整 */
     $sqls = get_sql(version_data('initdata.sql'));
     $password = md5($admin_pass);
     $sqls[] = "INSERT INTO `ecm_member`(user_name, email, password, reg_time) VALUES('{$admin_name}', '{$admin_email}', '{$password}', " . gmtime() . ")";
     foreach ($sqls as $sql) {
         $rzt = mysql_query(replace_prefix('ecm_', $db_prefix, $sql), $con);
         if (!$rzt) {
             show_process(r(Lang::get('install_initdata'), false), 'parent.show_warning("' . mysql_error() . '");');
             return false;
         }
     }
     if (mysql_errno()) {
         echo mysql_error();
     }
     show_process(r(Lang::get('install_initdata'), true));
     /* 安装初始配置 */
     $db_config = "mysql://{$db_user}:{$db_pass}@{$db_host}:{$db_port}/{$db_name}";
     $ecm_key = get_ecm_key();
     $mall_site_id = product_id();
     save_config_file(array('SITE_URL' => $site_url, 'DB_CONFIG' => $db_config, 'DB_PREFIX' => $db_prefix, 'LANG' => LANG, 'COOKIE_DOMAIN' => '', 'COOKIE_PATH' => '/', 'ECM_KEY' => $ecm_key, 'MALL_SITE_ID' => $mall_site_id, 'ENABLED_GZIP' => 0, 'DEBUG_MODE' => 0, 'CACHE_SERVER' => 'default', 'MEMBER_TYPE' => 'default', 'ENABLED_SUBDOMAIN' => 0, 'SUBDOMAIN_SUFFIX' => ''));
     /* 写入系统信息 */
     save_system_info(array('version' => VERSION, 'release' => RELEASE));
     show_process(r(Lang::get('setup_config'), true));
     /* 锁定安装程序 */
     touch(LOCK_FILE);
     show_process(r(Lang::get('lock_install'), true));
     if (is_file(ROOT_PATH . '/integrate/index.php')) {
         /* 跳至整合程序 */
         show_process(r(Lang::get('install_done'), true), 'parent.goon_install("' . $site_url . '/integrate/index.php", "' . $_code . '");');
     } else {
         /* 安装完成 */
         show_process(r(Lang::get('install_done'), true), 'parent.install_successed();');
         return false;
     }
 }
Пример #2
0
 /**
  *    完成安装
  *
  *    @author    Garbin
  *    @return    void
  */
 function install_done()
 {
     extract($_POST);
     /* 无实际用途 */
     $_code = rand(10000, 99999);
     setcookie('__INTECODE__', $_code, 0, '/');
     /* 连接数据库 */
     $con = mysql_connect($db_host . ':' . $db_port, $db_user, $db_pass);
     if (!$con) {
         show_process(r(get_lang('connect_db'), false), 'parent.show_warning("' . get_lang('connect_db_error') . '")');
         return false;
     }
     show_process(r(get_lang('connect_db'), true));
     $version = mysql_get_server_info();
     $charset = str_replace('-', '', CHARSET);
     if ($version > '4.1') {
         if ($charset != 'latin1') {
             mysql_query("SET character_set_connection={$charset}, character_set_results={$charset}, character_set_client=binary", $con);
         }
         if ($version > '5.0.1') {
             mysql_query("SET sql_mode=''", $con);
         }
     }
     /* 选择数据库 */
     $selected_db = mysql_select_db($db_name, $con);
     if (!$selected_db) {
         show_process(r(get_lang('selecte_db'), false), 'parent.show_warning("' . get_lang('selecte_db_error') . '");');
         return false;
     }
     /* 建立数据库结构 */
     show_process(r(get_lang('start_setup_db'), true));
     $sqls = get_sql(version_data('structure.sql'));
     foreach ($sqls as $sql) {
         $sql = replace_prefix('ecm_', $db_prefix, $sql);
         if (substr($sql, 0, 12) == 'CREATE TABLE') {
             $name = preg_replace("/CREATE TABLE `{$db_prefix}([a-z0-9_]+)` .*/is", "\\1", $sql);
             mysql_query(create_table($sql));
             show_process(r(sprintf(get_lang('create_table'), $name), true, 1));
         } else {
             mysql_query($sql, $con);
         }
     }
     /* 安装初始数据 TODO 暂时不完整 */
     $sqls = get_sql(version_data('initdata.sql'));
     //$password = md5($admin_pass);//不加密密码
     $password = md5($admin_name . md5($admin_pass));
     // $sqls[] = "INSERT INTO `ecm_member`(user_name, email, password, reg_time) VALUES('{$admin_name}', '{$admin_email}', '{$password}', " . gmtime() . ")";
     $sqls[] = "INSERT INTO `ecm_user` (`username`, `password`, `grade`, `name`, `gender`, `mobile`, `email`, `url`, `remark`) VALUES\r\n('{$admin_name}', '{$password}', 1, NULL, NULL, NULL, '{$admin_email}', NULL, NULL)";
     foreach ($sqls as $sql) {
         $rzt = mysql_query(replace_prefix('ecm_', $db_prefix, $sql), $con);
         if (!$rzt) {
             show_process(r(get_lang('install_initdata'), false), 'parent.show_warning("' . mysql_error() . '");');
             return false;
         }
     }
     if (mysql_errno()) {
         echo mysql_error();
     }
     show_process(r(get_lang('install_initdata'), true));
     /* 安装初始配置 */
     $db_config = "mysql://{$db_user}:{$db_pass}@{$db_host}:{$db_port}/{$db_name}";
     //$ecm_key   = get_ecm_key();
     //$mall_site_id = product_id();
     /*        save_config_file(array(
                 'SITE_URL'  => $site_url,
                 'DB_CONFIG'  => $db_config,
                 'DB_PREFIX'  => $db_prefix,
                 'LANG'  => LANG,
                 'COOKIE_DOMAIN'  => '',
                 'COOKIE_PATH'  => '/',
                 'ECM_KEY'  => $ecm_key,
                 'MALL_SITE_ID'  => $mall_site_id,
                 'ENABLED_GZIP'  => 0,
                 'DEBUG_MODE'  => 0,
                 'CACHE_SERVER'  => 'default',
                 'MEMBER_TYPE'  => 'default',
                 'ENABLED_SUBDOMAIN' => 0,
                 'SUBDOMAIN_SUFFIX'  => '',
             ));*/
     save_config_file(array('autoload_enable' => true, 'autoload_path' => '@modules', 'framework_function' => 'front::main', 'framework_enable' => true, 'framework_module' => '[go]!(self)|welcome', 'framework_action' => '[do]|index', 'template_path' => '@templates/', 'connect_server' => $db_host, 'connect_username' => $db_user, 'connect_password' => $db_pass, 'connect_dbname' => $db_name, 'connect_port' => $db_port, 'connect_charset' => 'UTF8', 'prefix_search' => $db_prefix, 'prefix_replace' => $db_prefix, 'extension_path' => '@includes', 'extension_enable' => 'myfunction', 'debug_enable' => false, 'sql_format' => false, 'debug_file' => '', 'front_action' => '', 'front_online' => 'online', 'front_class' => 'user', 'front_table' => $db_prefix . 'user', 'front_fuzzy' => '', 'front_username' => '', 'front_password' => '', 'front_redirect' => 'index.php'));
     /* 写入系统信息 */
     // save_system_info(array(
     //     'version'   => VERSION,
     //     'release'   => RELEASE,
     // ));
     show_process(r(get_lang('setup_config'), true));
     /* 锁定安装程序 */
     touch(LOCK_FILE);
     show_process(r(get_lang('lock_install'), true));
     /* 安装完成 */
     show_process(r(get_lang('install_done'), true), 'parent.install_successed();');
     return false;
 }
Пример #3
0
         $middle = render_str('foobar/audio', array('src' => 'image.php?' . http_build_query(array('f' => $file->realpath()))));
     }
     break;
 case 'video/mp4':
     if (begins($file->realpath(), $_SERVER['DOCUMENT_ROOT'])) {
         $middle = render_str('foobar/video', array('src' => replace_prefix($file->realpath(), $_SERVER['DOCUMENT_ROOT'], '/')));
     } else {
         $middle = render_str('foobar/video', array('src' => 'image.php?' . http_build_query(array('f' => $file->realpath()))));
     }
     break;
 case 'image/svg+xml':
 case 'image/png':
 case 'image/jpeg':
 case 'image/gif':
     if (begins($file->realpath(), $_SERVER['DOCUMENT_ROOT'])) {
         $middle = render_str('foobar/thumbnail', array('src' => replace_prefix($file->realpath(), $_SERVER['DOCUMENT_ROOT'], '/')));
     } else {
         $middle = render_str('foobar/thumbnail', array('src' => 'image.php?' . http_build_query(array('f' => $file->realpath()))));
     }
     break;
 case 'application/zip':
     $fields = array(new TableField('Name', 'name'), new TableFieldFormat('CRC', 'crc', 'dechex'), new TableFieldFormat('Size', 'size', 'format_bytes'), new TableFieldFormat('Compressed', 'comp_size', 'format_bytes'), new TableField('Method', 'comp_method'), new TableFieldFormat('Time', 'mtime', 'format_date_mysql'));
     $zip = new ZipArchive();
     $zip->open($file->realpath());
     $rows = array();
     for ($index = 0, $end = $zip->numFiles; $index < $end; ++$index) {
         $rows[] = new TableRow($zip->statIndex($index), $fields);
     }
     $zip->close();
     $middle = render_str('foobar/table', compact('fields', 'rows'));
     break;