Exemplo n.º 1
0
 function xpress_onupdate_base($module, $mydirname)
 {
     // transations on module update
     global $msgs;
     // TODO :-D
     // for Cube 2.1
     if (defined('XOOPS_CUBE_LEGACY')) {
         $root =& XCube_Root::getSingleton();
         $root->mDelegateManager->add('Legacy.Admin.Event.ModuleUpdate.' . ucfirst($mydirname) . '.Success', 'xpress_message_append_onupdate');
         $root->mDelegateManager->add('Legacy.Admin.Event.ModuleUpdate.' . ucfirst($mydirname) . '.Fail', 'xpress_message_append_onupdate');
         $msgs = array();
     } else {
         if (!is_array($msgs)) {
             $msgs = array();
         }
     }
     $db =& Database::getInstance();
     $mid = $module->getVar('mid');
     //XPressME Update
     global $wpdb, $wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query;
     global $xoops_db;
     $mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
     $path = $mydirpath . '/';
     // permission and wordpress files check
     require_once $path . 'include/pre_check.php';
     if (!xp_permission_check($mydirname, $mydirpath)) {
         $msgs = $GLOBALS["err_log"];
         return false;
     }
     //Site_url and home of an optional table are repaired.
     $site_url = XOOPS_URL . "/modules/" . $mydirname;
     xpress_put_siteurl($mydirname, $site_url);
     $home = get_xpress_option($mydirname, 'home');
     $home_check = 'home option is right';
     if (strcmp($site_url, $home) !== 0) {
         if (!@fclose(@fopen($home . '/xoops_version.php', "r"))) {
             xpress_put_home($mydirname, $site_url);
             $home_check = 'Change home option $home to $site_url';
         }
     }
     $msgs[] = $home_check;
     // XPressME orignal table update
     $t_mess = xpress_table_make($module, $mydirname);
     $msgs = array_merge($msgs, $t_mess);
     // make templates
     include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates_make.php';
     $mod_version = $module->getVar('version');
     $t_mess = xpress_clean_templates_file($mydirname, $mod_version);
     $msgs = array_merge($msgs, $t_mess);
     $t_mess = xpress_templates_make($mid, $mydirname);
     $msgs = array_merge($msgs, $t_mess);
     // The activation processing of the XPressME plugin is omitted.
     // Because the XPressME plugin is done with wp-config in activation
     /* activate the xpressme plugin */
     //	require_once dirname( __FILE__ ).'/xpress_active_plugin.php';
     //	if (xpress_pulugin_activation('xpressme/xpressme.php')){
     //		$msgs[] = 'The xpressme plug-in was activated.';
     //	}
     return true;
 }
Exemplo n.º 2
0
 function xpress_oninstall_base($module, $mydirname)
 {
     // transations on module install
     global $ret;
     // TODO :-D
     // for Cube 2.1
     if (defined('XOOPS_CUBE_LEGACY')) {
         $root =& XCube_Root::getSingleton();
         $root->mDelegateManager->add('Legacy.Admin.Event.ModuleInstall.' . ucfirst($mydirname) . '.Success', 'xpress_message_append_oninstall');
         $root->mDelegateManager->add('Legacy.Admin.Event.ModuleInstall.' . ucfirst($mydirname) . '.Fail', 'xpress_message_append_oninstall_err');
         $ret = array();
     } else {
         if (!is_array($ret)) {
             $ret = array();
         }
     }
     $db =& Database::getInstance();
     $mid = $module->getVar('mid');
     if (defined('XOOPS_CUBE_LEGACY')) {
         $ret[] = "********************************* Install Log ********************************<br />";
     } else {
         $ret[] = '<h4 style="border-bottom: 1px dashed rgb(0, 0, 0); text-align: left; margin-bottom: 0px;">Install Log</h4>';
     }
     //xpress
     global $wpdb, $wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query, $wp_embed;
     global $xoops_config;
     define("WP_INSTALLING", true);
     define('WP_FIRST_INSTALL', true);
     // For WPMU2.8
     $site_url = XOOPS_URL . "/modules/" . $mydirname;
     $mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
     $path = $mydirpath . '/';
     $site_name = ucfirst($mydirname) . ' ' . _MI_XP2_NAME;
     // permission and wordpress files check
     require_once $path . 'include/pre_check.php';
     if (!xp_permission_check($mydirname, $mydirpath)) {
         if (!defined('XOOPS_CUBE_LEGACY')) {
             $ret = $GLOBALS["err_log"];
             $ret[] = "<br /><span style=\"color:#ff0000;\">The uninstallation of the module is executed now. </span><br />";
             $ret[] = xoops_module_uninstall($mydirname);
         }
         return false;
     }
     // install WordPress
     if (file_exists($path . 'wp-load.php')) {
         require_once $path . 'wp-load.php';
     } else {
         require_once $path . 'wp-config.php';
     }
     include_once $mydirpath . '/wp-admin/upgrade-functions.php';
     wp_cache_flush();
     make_db_current_silent();
     $ret[] = "The data base of wordpress was made by prefix {$table_prefix}.<br />";
     $option_desc = __('WordPress web address');
     $wpdb->query("INSERT INTO {$wpdb->options} (blog_id, option_name,option_value, autoload) VALUES ('0', 'siteurl','{$site_url}', 'yes')");
     $wpdb->query("INSERT INTO {$wpdb->options} (blog_id, option_name,option_value, autoload) VALUES ('0', 'home','{$site_url}', 'yes')");
     populate_options();
     populate_roles();
     // create XPressME table
     $xp_prefix = preg_replace('/wordpress/', 'wp', $mydirname);
     $views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix . '_views';
     $charset_collate = '';
     if (version_compare(mysql_get_server_info(), '4.1.0', '>=')) {
         if (!empty($wpdb->charset)) {
             $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
         }
         if (!empty($wpdb->collate)) {
             $charset_collate .= " COLLATE {$wpdb->collate}";
         }
     }
     $views_queries = "CREATE TABLE {$views_table} (\n  \t\tblog_id bigint(20) unsigned NOT NULL default '0',\n  \t\tpost_id bigint(20) unsigned NOT NULL default '0',\n  \t\tpost_views bigint(20) unsigned NOT NULL default '0',\n  \t\tKEY post_id (post_id)\n\t\t){$charset_collate};";
     dbDelta($views_queries);
     $ret[] = "{$views_table} table of XPressME was made.<br />";
     $d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix . '_d3forum_link';
     $views_queries = "CREATE TABLE {$d3forum_link} (\n  \t\tcomment_ID bigint(20) unsigned NOT NULL default '0',\n  \t\tpost_id int(10) unsigned NOT NULL default '0' ,\n  \t\twp_post_ID bigint(20) unsigned NOT NULL default '0',\n  \t\tforum_id bigint(20) unsigned NOT NULL default '0',\n  \t\tblog_id bigint(20) unsigned NOT NULL default '0',\n  \t\tKEY post_id (post_id)\n\t\t){$charset_collate};";
     dbDelta($views_queries);
     $ret[] = "{$d3forum_link} table of XPressME was made.<br />";
     $group_role = XOOPS_DB_PREFIX . '_' . $xp_prefix . '_group_role';
     $views_queries = "CREATE TABLE {$group_role} (\n  \t\tgroupid smallint(5) unsigned NOT NULL default '0',\n  \t\tblog_id bigint(20) unsigned NOT NULL default '0',\n  \t\tname varchar(50)  NOT NULL default '' ,\n  \t\tdescription text  NOT NULL default '',\n  \t\tgroup_type varchar(50)  NOT NULL default '' ,\n\t\trole varchar(20)  NOT NULL default '' ,\n\t\tlogin_all smallint(5) unsigned NOT NULL default '0' ,\n  \t\tKEY groupid (groupid)\n\t\t){$charset_collate};";
     dbDelta($views_queries);
     $ret[] = "{$group_role} table of XPressME was made.<br />";
     $notify_reserve = XOOPS_DB_PREFIX . '_' . $xp_prefix . '_notify_reserve';
     $queries = "CREATE TABLE {$notify_reserve} (\n  \t\tnotify_reserve_id bigint(20) NOT NULL AUTO_INCREMENT ,\n  \t\tnotify_reserve_status varchar(20)  NOT NULL default '' ,\n  \t\tcategory text  NOT NULL default '',\n  \t\titem_id bigint(20) unsigned NOT NULL default '0',\n\t\tevent varchar(20) NOT NULL default '',\n\t\textra_tags_arry longtext NOT NULL default '' ,\n\t\tuser_list_arry longtext NOT NULL default '' ,\n  \t\tmodule_id smallint(5) unsigned NOT NULL default '0' ,\n  \t\tomit_user_id varchar(20) NOT NULL default '' ,\n  \t\tKEY notify_reserve_id (notify_reserve_id)\n\t\t)ENGINE=MyISAM";
     dbDelta($queries);
     $ret[] = "{$notify_reserve} table of XPressME was made.<br />";
     $sql = "INSERT INTO {$group_role} (groupid, role) VALUES (1, 'administrator')";
     $wpdb->query($sql);
     // make templates
     include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates_make.php';
     $t_mess = xpress_templates_make($mid, $mydirname);
     // Admin User Data write
     // Change uid field
     $wpdb->query("ALTER TABLE {$wpdb->posts} CHANGE `post_author` `post_author` mediumint(8) NOT NULL DEFAULT '0'");
     $user_name = is_object($GLOBALS["xoopsUser"]) ? $GLOBALS["xoopsUser"]->getVar("uname") : 'admin';
     $email = is_object($GLOBALS["xoopsUser"]) ? $GLOBALS["xoopsUser"]->getVar("email") : '*****@*****.**';
     $pass_md5 = is_object($GLOBALS["xoopsUser"]) ? $GLOBALS["xoopsUser"]->getVar("pass") : '';
     add_filter('sanitize_user', "sanitize_user_multibyte", 10, 3);
     if (!function_exists('username_exists')) {
         require_once $mydirpath . '/wp-includes/registration-functions.php';
     }
     $user_id = username_exists($user_name);
     if (!$user_id) {
         $random_password = '******';
         $user_id = wp_create_user($user_name, $random_password, $email);
     } else {
         $random_password = __('User already exists.  Password inherited.');
     }
     $user = new WP_User($user_id);
     $user->set_role('administrator');
     'User ' . $user_name . ' of the administrator was made.';
     // over write xoops md5 password
     $sql = "UPDATE {$wpdb->users} SET user_pass ='******' WHERE ID = {$user_id}";
     $wpdb->query($sql);
     $ret[] = 'The password of XOOPS was copied.<br />';
     // Set Default data
     // make WordPress Default data
     if (function_exists('wp_install_defaults')) {
         wp_install_defaults($user_id);
     } else {
         wp_install_old_defaults($user_id);
     }
     $ret[] = 'The first sample post & comment was written.<br />';
     // Rewrite Option for Xpress
     $xoops_config_tbl = XOOPS_DB_PREFIX . '_config';
     $sql = "SELECT conf_value FROM  {$xoops_config_tbl} WHERE `conf_name` = 'default_TZ'";
     $xoops_default_TZ = $wpdb->get_var($sql);
     update_option('gmt_offset', $xoops_default_TZ);
     if (WPLANG == 'ja_EUC') {
         $setup_charset = 'EUC-JP';
     } elseif (WPLANG == 'ja_SJIS') {
         $setup_charset = 'Shift_JIS';
     } else {
         $setup_charset = 'UTF-8';
     }
     update_option("blog_charset", $setup_charset);
     update_option('blogname', $site_name);
     update_option('blogdescription', 'WordPress for XOOPS');
     update_option("admin_email", $GLOBALS["xoopsConfig"]['adminmail']);
     update_option("ping_sites", "http://rpc.pingomatic.com/\nhttp://ping.xoopsforge.com/");
     update_option("home", $site_url);
     update_option("siteurl", $site_url);
     update_option("what_to_show", "posts");
     update_option('default_pingback_flag', 0);
     $ret[] = 'The initial data was written in the data base of wordpress.<br />';
     update_option("template", "xpress_default");
     update_option("stylesheet", "xpress_default");
     $ret[] = 'The default theme of wordpress was set to xpress_default.<br />';
     //	update_option('uploads_use_yearmonth_folders', 1);
     update_option('upload_path', 'wp-content/uploads');
     // activate the xpressme plugin
     require_once dirname(__FILE__) . '/xpress_active_plugin.php';
     if (xpress_pulugin_activation('xpressme/xpressme.php')) {
         $ret[] = 'The xpressme plug-in was activated.<br />';
     } else {
         $GLOBALS["err_log"][] = '<span style="color:#ff0000;">failed in the activation of xpressme plug-in.</span><br />';
         return false;
     }
     $ret = array_merge($ret, $t_mess);
     return true;
 }