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; }
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; }