[744] | 1 | <?php
|
---|
| 2 | function xp_permission_check($mydirname , $mydirpath) {
|
---|
| 3 | global $ret ; // TODO :-D
|
---|
| 4 | // permission check
|
---|
| 5 |
|
---|
| 6 | $error = false;
|
---|
| 7 |
|
---|
| 8 | if (!file_exists($mydirpath . '/wp-settings.php')){
|
---|
| 9 | $error = true;
|
---|
| 10 | }
|
---|
| 11 | $check_files = array('/templates/', '/wp-content/');
|
---|
| 12 | foreach ($check_files as $check) {
|
---|
| 13 | $check_file = $mydirpath . $check;
|
---|
| 14 | if (!is_dir($check_file)) {
|
---|
| 15 | if ( file_exists($check_file) ) {
|
---|
| 16 | @chmod($check_file, 0666);
|
---|
| 17 | if (! is_writeable($check_file)) {
|
---|
| 18 | $GLOBALS["err_log"][] = "<span style=\"color:#ff0000;\">Permission Error $check_file is not writeable</span><br />";
|
---|
| 19 | $error = true;
|
---|
| 20 | }
|
---|
| 21 | }
|
---|
| 22 | } else {
|
---|
| 23 | @chmod($check_file, 0777);
|
---|
| 24 | if (! is_writeable($check_file)) {
|
---|
| 25 | $GLOBALS["err_log"][] = "<span style=\"color:#ff0000;\">Permission Error $check_file directory is not writeable</span><br />";
|
---|
| 26 | $error = true;
|
---|
| 27 | } else {
|
---|
| 28 | // Windows parmission check
|
---|
| 29 | $src_file = __FILE__ ;
|
---|
| 30 | $newfile = $check_file . 'write_check.txt';
|
---|
| 31 | if (!@copy($src_file, $newfile)) {
|
---|
| 32 | $GLOBALS["err_log"][] = "<span style=\"color:#ff0000;\">Permission Error $check_file directory is not writeable</span><br />";
|
---|
| 33 | $error = true;
|
---|
| 34 | } else {
|
---|
| 35 | unlink($newfile);
|
---|
| 36 | }
|
---|
| 37 | }
|
---|
| 38 | }
|
---|
| 39 | }
|
---|
| 40 | if($error) return false;
|
---|
| 41 |
|
---|
| 42 | return true;
|
---|
| 43 | }
|
---|
| 44 |
|
---|
| 45 | function wp_installer($mydirname ){
|
---|
| 46 | //xpress
|
---|
| 47 | global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query,$wp_embed;
|
---|
| 48 | global $xoops_config;
|
---|
| 49 | $msgs = array();
|
---|
| 50 |
|
---|
| 51 | $site_url= XOOPS_URL."/modules/".$mydirname;
|
---|
| 52 | $mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
|
---|
| 53 | $path = $mydirpath . '/';
|
---|
| 54 | $site_name = ucfirst($mydirname) . ' ' . _MI_XP2_NAME;
|
---|
| 55 |
|
---|
| 56 |
|
---|
| 57 | // install WordPress
|
---|
| 58 | define("WP_INSTALLING", true);
|
---|
| 59 | require_once $path . 'wp-load.php';
|
---|
| 60 | include_once($mydirpath . '/wp-admin/upgrade-functions.php');
|
---|
| 61 | wp_cache_flush();
|
---|
| 62 | make_db_current_silent();
|
---|
| 63 | $msgs[] = "The data base of wordpress was made by prefix $table_prefix.<br />";
|
---|
| 64 |
|
---|
| 65 | $option_desc = __('WordPress web address');
|
---|
| 66 | $wpdb->query("INSERT INTO $wpdb->options (blog_id, option_name,option_value, autoload) VALUES ('0', 'siteurl','$site_url', 'yes')");
|
---|
| 67 | $wpdb->query("INSERT INTO $wpdb->options (blog_id, option_name,option_value, autoload) VALUES ('0', 'home','$site_url', 'yes')");
|
---|
| 68 |
|
---|
| 69 | populate_options();
|
---|
| 70 | populate_roles();
|
---|
| 71 |
|
---|
| 72 | // Admin User Data write
|
---|
| 73 | // Change uid field
|
---|
| 74 | $wpdb->query("ALTER TABLE $wpdb->posts CHANGE `post_author` `post_author` mediumint(8) NOT NULL DEFAULT '0'");
|
---|
| 75 | $user_name = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("uname"):'admin';
|
---|
| 76 | $email = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("email"):'foo@exsample.com';
|
---|
| 77 | $pass_md5 = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("pass"):'';
|
---|
| 78 |
|
---|
| 79 | if (!function_exists('username_exists')){
|
---|
| 80 | require_once($mydirpath . '/wp-includes/registration-functions.php');
|
---|
| 81 | }
|
---|
| 82 | $user_id = username_exists($user_name);
|
---|
| 83 | if ( !$user_id ) {
|
---|
| 84 | $random_password = 'admin';
|
---|
| 85 | $user_id = wp_create_user($user_name, $random_password, $email);
|
---|
| 86 | } else {
|
---|
| 87 | $random_password = __('User already exists. Password inherited.');
|
---|
| 88 | }
|
---|
| 89 |
|
---|
| 90 | $user = new WP_User($user_id);
|
---|
| 91 | $user->set_role('administrator');
|
---|
| 92 | 'User ' . $user_name . ' of the administrator was made.';
|
---|
| 93 | // over write xoops md5 password
|
---|
| 94 | $sql = "UPDATE $wpdb->users SET user_pass ='$pass_md5' WHERE ID = $user_id";
|
---|
| 95 | $wpdb->query($sql);
|
---|
| 96 | $msgs[] = 'The password of XOOPS was copied.<br />';
|
---|
| 97 |
|
---|
| 98 | // Set Default data
|
---|
| 99 | // make WordPress Default data
|
---|
| 100 | if (function_exists('wp_install_defaults')){
|
---|
| 101 | wp_install_defaults($user_id);
|
---|
| 102 | } else {
|
---|
| 103 | wp_install_old_defaults($user_id);
|
---|
| 104 | }
|
---|
| 105 |
|
---|
| 106 | $msgs[] = 'The first sample post & comment was written.<br />';
|
---|
| 107 |
|
---|
| 108 | // Rewrite Option for Xpress
|
---|
| 109 | $xoops_config_tbl = XOOPS_DB_PREFIX . '_config' ;
|
---|
| 110 | $sql = "SELECT conf_value FROM $xoops_config_tbl WHERE `conf_name` = 'default_TZ'";
|
---|
| 111 | $xoops_default_TZ = $wpdb->get_var($sql);
|
---|
| 112 | update_option('gmt_offset', $xoops_default_TZ);
|
---|
| 113 |
|
---|
| 114 | if (WPLANG == 'ja_EUC') {
|
---|
| 115 | $setup_charset = 'EUC-JP';
|
---|
| 116 | } elseif(WPLANG == 'ja_SJIS') {
|
---|
| 117 | $setup_charset = 'Shift_JIS';
|
---|
| 118 | } else {
|
---|
| 119 | $setup_charset = 'UTF-8';
|
---|
| 120 | }
|
---|
| 121 | update_option("blog_charset", $setup_charset);
|
---|
| 122 |
|
---|
| 123 | update_option('blogname', $site_name );
|
---|
| 124 | update_option('blogdescription', 'WordPress for XOOPS');
|
---|
| 125 | update_option("admin_email", $GLOBALS["xoopsConfig"]['adminmail']);
|
---|
| 126 | update_option("ping_sites", "http://rpc.pingomatic.com/\nhttp://ping.xoopsforge.com/");
|
---|
| 127 | update_option("home", $site_url);
|
---|
| 128 | update_option("siteurl", $site_url);
|
---|
| 129 | update_option("what_to_show", "posts");
|
---|
| 130 | update_option('default_pingback_flag', 0);
|
---|
| 131 | $msgs[] = 'The initial data was written in the data base of wordpress.<br />';
|
---|
| 132 |
|
---|
| 133 | update_option("template", "xpress_default");
|
---|
| 134 | update_option("stylesheet", "xpress_default");
|
---|
| 135 | $msgs[] = 'The default theme of wordpress was set to xpress_default.<br />';
|
---|
| 136 | // update_option('uploads_use_yearmonth_folders', 1);
|
---|
| 137 | update_option('upload_path', 'wp-content/uploads');
|
---|
| 138 |
|
---|
| 139 | // activate the xpressme plugin
|
---|
| 140 | require_once dirname( __FILE__ ).'/xpress_active_plugin.php';
|
---|
| 141 | if (xpress_pulugin_activation('xpressme/xpressme.php')){
|
---|
| 142 | $msgs[] = 'The xpressme plug-in was activated.<br />';
|
---|
| 143 | } else {
|
---|
| 144 | $GLOBALS["err_log"][] = '<span style="color:#ff0000;">failed in the activation of xpressme plug-in.</span><br />';
|
---|
| 145 | return false;
|
---|
| 146 | }
|
---|
| 147 |
|
---|
| 148 |
|
---|
| 149 | // create XPressME table
|
---|
| 150 | $xp_prefix = preg_replace('/wordpress/','wp',$mydirname);
|
---|
| 151 | $views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_views' ;
|
---|
| 152 |
|
---|
| 153 | $charset_collate = '';
|
---|
| 154 | if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
|
---|
| 155 | if ( ! empty($wpdb->charset) )
|
---|
| 156 | $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
|
---|
| 157 | if ( ! empty($wpdb->collate) )
|
---|
| 158 | $charset_collate .= " COLLATE $wpdb->collate";
|
---|
| 159 | }
|
---|
| 160 | $views_queries ="CREATE TABLE $views_table (
|
---|
| 161 | blog_id bigint(20) unsigned NOT NULL default '0',
|
---|
| 162 | post_id bigint(20) unsigned NOT NULL default '0',
|
---|
| 163 | post_views bigint(20) unsigned NOT NULL default '0',
|
---|
| 164 | KEY post_id (post_id)
|
---|
| 165 | )$charset_collate;";
|
---|
| 166 | dbDelta($views_queries);
|
---|
| 167 | $msgs[] = "$views_table table of XPressME was made.<br />";
|
---|
| 168 |
|
---|
| 169 | $d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
|
---|
| 170 | $views_queries ="CREATE TABLE $d3forum_link (
|
---|
| 171 | comment_ID bigint(20) unsigned NOT NULL default '0',
|
---|
| 172 | post_id int(10) unsigned NOT NULL default '0' ,
|
---|
| 173 | wp_post_ID bigint(20) unsigned NOT NULL default '0',
|
---|
| 174 | forum_id bigint(20) unsigned NOT NULL default '0',
|
---|
| 175 | blog_id bigint(20) unsigned NOT NULL default '0',
|
---|
| 176 | KEY post_id (post_id)
|
---|
| 177 | )$charset_collate;";
|
---|
| 178 | dbDelta($views_queries);
|
---|
| 179 | $msgs[] = "$d3forum_link table of XPressME was made.<br />";
|
---|
| 180 |
|
---|
| 181 | $group_role = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_group_role' ;
|
---|
| 182 | $views_queries ="CREATE TABLE $group_role (
|
---|
| 183 | groupid smallint(5) unsigned NOT NULL default '0',
|
---|
| 184 | blog_id bigint(20) unsigned NOT NULL default '0',
|
---|
| 185 | name varchar(50) NOT NULL default '' ,
|
---|
| 186 | description text NOT NULL default '',
|
---|
| 187 | group_type varchar(50) NOT NULL default '' ,
|
---|
| 188 | role varchar(20) NOT NULL default '' ,
|
---|
| 189 | login_all smallint(5) unsigned NOT NULL default '0' ,
|
---|
| 190 | KEY groupid (groupid)
|
---|
| 191 | )$charset_collate;";
|
---|
| 192 | dbDelta($views_queries);
|
---|
| 193 | $msgs[] = "$group_role table of XPressME was made.<br />";
|
---|
| 194 | $sql = "INSERT INTO $group_role (groupid, role) VALUES (1, 'administrator')";
|
---|
| 195 | $wpdb->query($sql);
|
---|
| 196 |
|
---|
| 197 | $notify_reserve = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_notify_reserve' ;
|
---|
| 198 | $queries ="CREATE TABLE $notify_reserve (
|
---|
| 199 | notify_reserve_id bigint(20) NOT NULL AUTO_INCREMENT ,
|
---|
| 200 | notify_reserve_status varchar(20) NOT NULL default '' ,
|
---|
| 201 | category text NOT NULL default '',
|
---|
| 202 | item_id bigint(20) unsigned NOT NULL default '0',
|
---|
| 203 | event varchar(20) NOT NULL default '',
|
---|
| 204 | extra_tags_arry longtext NOT NULL default '' ,
|
---|
| 205 | user_list_arry longtext NOT NULL default '' ,
|
---|
| 206 | module_id smallint(5) unsigned NOT NULL default '0' ,
|
---|
| 207 | omit_user_id varchar(20) NOT NULL default '' ,
|
---|
| 208 | KEY notify_reserve_id (notify_reserve_id)
|
---|
| 209 | )TYPE=MyISAM";
|
---|
| 210 | dbDelta($queries);
|
---|
| 211 | $msgs[] = "$notify_reserve table of XPressME was made.<br />";
|
---|
| 212 |
|
---|
| 213 | return $msgs ;
|
---|
| 214 | }
|
---|
| 215 |
|
---|
| 216 | ?> |
---|