mDelegateManager->add( 'Legacy.Admin.Event.ModuleInstall.' . ucfirst($mydirname) . '.Success' , 'xpress_message_append_oninstall' ) ;
$ret = array() ;
} else {
if( ! is_array( $ret ) ) $ret = array() ;
}
$db =& Database::getInstance() ;
$mid = $module->getVar('mid') ;
//xpress
global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query;
define("WP_INSTALLING", true);
$site_url= XOOPS_URL."/modules/".$mydirname;
$mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
$path = $mydirpath . '/';
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.";
$option_desc = __('WordPress web address');
$wpdb->query("INSERT INTO $wpdb->options (option_id, blog_id, option_name,option_value, autoload) VALUES ('1', '0', 'siteurl','$site_url', 'yes')");
$wpdb->query("INSERT INTO $wpdb->options (option_id, blog_id, option_name,option_value, autoload) VALUES ('1', '0', 'home','$site_url', 'yes')");
populate_options();
populate_roles();
// Rewrite Option for Xpress
// update_option("blog_charset", wp_blog_charset());
update_option('blogname', ucfirst($mydirname) . ' ' . _MI_XPRESS_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.';
update_option("template", "xpress_default");
update_option("stylesheet", "xpress_default");
$ret[] = 'The default theme of wordpress was set to xpress_default.';
/* add new option for uploads */
// update_option('uploads_use_yearmonth_folders', 1);
// update_option('upload_path', $module->getVar("dirname"));
// 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"):'foo@exsample.com';
$pass_md5 = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("pass"):'';
$user_id = username_exists($user_name);
if ( !$user_id ) {
$random_password = 'admin';
$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 ='$pass_md5' WHERE ID = $user_id";
$wpdb->query($sql);
$ret[] = 'The password of XOOPS was copied.';
// Set Default data
wp_install_defaults($user_id);
$ret[] = 'The first sample post & comment was written.';
// generate_page_uri_index();
/* activate the XPressME plugin */
$plugin_current = "xpressme/xpressme.php";
update_option('active_plugins', array($plugin_current));
include_once(dirname(__FILE__) . '/../wp-content/plugins/'.$plugin_current);
do_action('activate_'.$plugin_current);
$ret[] = 'The xpressme plug-in was activated.';
// create views table
$xp_prefix = $mydirname;
if ($xp_prefix == 'wordpress'){
$xp_prefix = 'wp';
}
$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 (
post_id bigint(20) unsigned NOT NULL default '0',
post_views bigint(20) unsigned NOT NULL default '0',
KEY post_id (post_id)
)$charset_collate;";
dbDelta($views_queries);
$ret[] = "$views_table table of XPressME was made.";
$d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
$views_queries ="CREATE TABLE $d3forum_link (
comment_ID bigint(20) unsigned NOT NULL default '0',
post_id int(10) unsigned NOT NULL default '0' ,
wp_post_ID bigint(20) unsigned NOT NULL default '0',
KEY post_id (post_id)
)$charset_collate;";
dbDelta($views_queries);
$ret[] = "$d3forum_link table of XPressME was made.";
$group_role = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_group_role' ;
$views_queries ="CREATE TABLE $group_role (
groupid smallint(5) unsigned NOT NULL default '0',
name varchar(50) NOT NULL default '' ,
description text NOT NULL default '',
group_type varchar(10) NOT NULL default '' ,
role varchar(20) NOT NULL default '' ,
login_all smallint(5) unsigned NOT NULL default '0' ,
KEY groupid (groupid)
)$charset_collate;";
dbDelta($views_queries);
$ret[] = "$group_role table of XPressME was made.";
$sql = "INSERT INTO $group_role (groupid, role) VALUES (1, 'administrator')";
$wpdb->query($sql);
// TEMPLATES
$tplfile_handler =& xoops_gethandler( 'tplfile' ) ;
$tpl_path = dirname( dirname( __FILE__ ) ).'/templates/source' ;
if( $handler = @opendir( $tpl_path . '/' ) ) {
while( ( $file = readdir( $handler ) ) !== false ) {
if( substr( $file , 0 , 1 ) == '.' ) continue ;
$file_path = $tpl_path . '/' . $file ;
if( is_file( $file_path ) ) {
$mtime = intval( @filemtime( $file_path ) ) ;
$tplfile =& $tplfile_handler->create() ;
$tplfile->setVar( 'tpl_source' , file_get_contents( $file_path ) , true ) ;
$tplfile->setVar( 'tpl_refid' , $mid ) ;
$tplfile->setVar( 'tpl_tplset' , 'default' ) ;
$tplfile->setVar( 'tpl_file' , $mydirname . '_' . $file ) ;
$tplfile->setVar( 'tpl_desc' , '' , true ) ;
$tplfile->setVar( 'tpl_module' , $mydirname ) ;
$tplfile->setVar( 'tpl_lastmodified' , $mtime ) ;
$tplfile->setVar( 'tpl_lastimported' , 0 ) ;
$tplfile->setVar( 'tpl_type' , 'block' ) ;
if( ! $tplfile_handler->insert( $tplfile ) ) {
$ret[] = 'ERROR: Could not insert template '.htmlspecialchars($mydirname.'_'.$file).' to the database.
';
} else {
$tplid = $tplfile->getVar( 'tpl_id' ) ;
$ret[] = 'Template '.htmlspecialchars($mydirname.'_'.$file).' added to the database. (ID: '.$tplid.')
';
// generate compiled file
include_once XOOPS_ROOT_PATH.'/class/xoopsblock.php' ;
include_once XOOPS_ROOT_PATH.'/class/template.php' ;
if( ! xoops_template_touch( $tplid ) ) {
$ret[] = 'ERROR: Failed compiling template '.htmlspecialchars($mydirname.'_'.$file).'.
';
} else {
$ret[] = 'Template '.htmlspecialchars($mydirname.'_'.$file).' compiled.
';
}
}
}
}
closedir( $handler ) ;
}
include_once XOOPS_ROOT_PATH.'/class/xoopsblock.php' ;
include_once XOOPS_ROOT_PATH.'/class/template.php' ;
xoops_template_clear_module_cache( $mid ) ;
return true ;
}
endif;
if( ! function_exists( 'xpress_message_append_oninstall' ) ) :
function xpress_message_append_oninstall( &$module_obj , &$log )
{
if( is_array( @$GLOBALS['ret'] ) ) {
foreach( $GLOBALS['ret'] as $message ) {
$log->add( strip_tags( $message ) ) ;
}
}
// use mLog->addWarning() or mLog->addError() if necessary
}
endif;
?>