XPressME Integration Kit

Trac

source: trunk/xpressme_integration_kit/include/oninstall.php @ 345

Last change on this file since 345 was 345, checked in by toemon, 15 years ago

WP2011(EUC)ベースのインストール時blog_charsetがUTF-8に設定されてしまうバグを修正 fixes #188

File size: 11.5 KB
Line 
1<?php
2$mydirpath = dirname(dirname(__FILE__));
3$mydirname = basename($mydirpath);
4$lang = @$GLOBALS["xoopsConfig"]['language'];
5global $wp_db_version,$wp_rewrite;
6include_once $mydirpath .'/wp-includes/version.php' ;
7
8// language file (modinfo.php)
9
10if( file_exists( $mydirpath .'/language/'.$lang.'/modinfo.php' ) ) {
11        include_once $mydirpath .'/language/'.$lang.'/modinfo.php' ;
12} else if( file_exists(  $mydirpath .'/language/english/modinfo.php' ) ) {
13        include_once $mydirpath .'/language/english/modinfo.php' ;
14}
15
16
17eval( ' function xoops_module_install_'.$mydirname.'( $module ) { return xpress_oninstall_base( $module , "'.$mydirname.'" ) ; } ' ) ;
18
19
20if( ! function_exists( 'xpress_oninstall_base' ) ) :
21function xpress_oninstall_base( $module , $mydirname )
22{
23        // transations on module install
24
25        global $ret ; // TODO :-D
26
27        // for Cube 2.1
28        if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
29                $root =& XCube_Root::getSingleton();
30                $root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleInstall.' . ucfirst($mydirname) . '.Success' , 'xpress_message_append_oninstall' ) ;
31                $ret = array() ;
32        } else {
33                if( ! is_array( $ret ) ) $ret = array() ;
34        }
35
36        $db =& Database::getInstance() ;
37        $mid = $module->getVar('mid') ;
38
39//xpress
40        global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query;
41        global $xoops_config;
42               
43        define("WP_INSTALLING", true);
44        $site_url= XOOPS_URL."/modules/".$mydirname;
45        $mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
46        $path = $mydirpath . '/';
47        $site_name = ucfirst($mydirname) . ' ' . _MI_XP2_NAME;
48       
49// install WordPress
50        if (file_exists($path . 'wp-load.php')) {
51                require_once $path . 'wp-load.php';
52        } else {
53                require_once $path . 'wp-config.php';
54        }
55        include_once($mydirpath . '/wp-admin/upgrade-functions.php');
56        wp_cache_flush();
57        make_db_current_silent();
58        $ret[] = "The data base of wordpress was made by prefix $table_prefix.";
59       
60        $option_desc = __('WordPress web address');
61        $wpdb->query("INSERT INTO $wpdb->options (blog_id, option_name,option_value, autoload) VALUES ('0', 'siteurl','$site_url', 'yes')");   
62        $wpdb->query("INSERT INTO $wpdb->options (blog_id, option_name,option_value, autoload) VALUES ('0', 'home','$site_url', 'yes')");
63
64        populate_options();
65        populate_roles();
66       
67// create XPressME table
68        $xp_prefix = $mydirname;
69        if ($xp_prefix == 'wordpress'){
70                $xp_prefix = 'wp';
71        }
72        $views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_views' ;
73
74        $charset_collate = '';
75        if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
76                if ( ! empty($wpdb->charset) )
77                        $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
78                if ( ! empty($wpdb->collate) )
79                        $charset_collate .= " COLLATE $wpdb->collate";
80        }
81        $views_queries ="CREATE TABLE $views_table (
82                post_id bigint(20) unsigned NOT NULL default '0',
83                post_views bigint(20) unsigned NOT NULL default '0',
84                KEY post_id (post_id)
85                )$charset_collate;";
86
87        dbDelta($views_queries);
88        $ret[] = "$views_table table of XPressME was made.";
89
90       
91        $d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
92        $views_queries ="CREATE TABLE $d3forum_link (
93                comment_ID bigint(20) unsigned NOT NULL default '0',
94                post_id int(10) unsigned NOT NULL default '0' ,
95                wp_post_ID bigint(20) unsigned NOT NULL default '0',
96                KEY post_id (post_id)
97                )$charset_collate;";
98        dbDelta($views_queries);
99        $ret[] = "$d3forum_link table of XPressME was made.";
100       
101        $group_role = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_group_role' ;
102        $views_queries ="CREATE TABLE $group_role (
103                groupid smallint(5) unsigned NOT NULL default '0',
104                name varchar(50)  NOT NULL default '' ,
105                description text  NOT NULL default '',
106                group_type varchar(50)  NOT NULL default '' ,
107                role varchar(20)  NOT NULL default '' ,
108                login_all smallint(5) unsigned NOT NULL default '0' ,
109                KEY groupid (groupid)
110                )$charset_collate;";
111        dbDelta($views_queries);
112        $ret[] = "$group_role table of XPressME was made.";
113
114        $sql = "INSERT INTO $group_role (groupid, role) VALUES (1, 'administrator')";
115        $wpdb->query($sql);
116       
117// make templates
118        include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates_make.php' ;
119        $t_mess = xpress_templates_make($mid,$mydirname);
120       
121// Admin User Data write
122        // Change uid field
123        $wpdb->query("ALTER TABLE $wpdb->posts CHANGE `post_author` `post_author` mediumint(8) NOT NULL DEFAULT '0'");
124        $user_name = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("uname"):'admin';
125        $email = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("email"):'foo@exsample.com';
126        $pass_md5 = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("pass"):'';
127       
128        if (!function_exists('username_exists')){
129                require_once($mydirpath . '/wp-includes/registration-functions.php');
130        }
131        $user_id = username_exists($user_name);
132        if ( !$user_id ) {
133                $random_password = 'admin';
134                if (!$xoops_config->is_wpmu){
135                        $user_id = wp_create_user($user_name, $random_password, $email);
136                } else {
137                        $user_id = wpmu_create_user($user_name, $random_password, $email);
138                }
139        } else {
140                $random_password = __('User already exists.  Password inherited.');
141        }
142
143        $user = new WP_User($user_id);
144        $user->set_role('administrator');
145        'User ' . $user_name . ' of the administrator was made.';
146        // over write xoops md5 password
147        $sql = "UPDATE $wpdb->users SET user_pass ='$pass_md5' WHERE ID = $user_id";
148        $wpdb->query($sql);
149        $ret[] = 'The password of XOOPS was copied.';
150       
151       
152// Set Default data
153        if (!$xoops_config->is_wpmu){   // for WordPress
154                // make WordPress Default data 
155                if (function_exists('wp_install_defaults')){
156                        wp_install_defaults($user_id);
157                } else {
158                        wp_install_old_defaults($user_id);
159                }
160               
161                $ret[] = 'The first sample post & comment was written.';
162               
163                // Rewrite Option for Xpress
164                        if (WPLANG == 'ja_EUC') {
165                                $setup_charset = 'EUC-JP';
166                        } elseif(WPLANG == 'ja_SJIS') {
167                                $setup_charset = 'Shift_JIS';
168                        } else {
169                                $setup_charset = 'UTF-8';
170                        }
171                        update_option("blog_charset", $setup_charset);
172
173                        update_option('blogname', $site_name );
174                        update_option('blogdescription', 'WordPress for XOOPS');
175                        update_option("admin_email", $GLOBALS["xoopsConfig"]['adminmail']);
176                        update_option("ping_sites", "http://rpc.pingomatic.com/\nhttp://ping.xoopsforge.com/");
177                        update_option("home", $site_url);
178                        update_option("siteurl", $site_url);
179                        update_option("what_to_show", "posts");
180                        update_option('default_pingback_flag', 0);
181                        $ret[] = 'The initial data was written in the data base of wordpress.';
182                       
183                        update_option("template", "xpress_default");
184                        update_option("stylesheet", "xpress_default");
185                        $ret[] = 'The default theme of wordpress was set to xpress_default.';
186                //      update_option('uploads_use_yearmonth_folders', 1);
187                        update_option('upload_path', 'wp-content/uploads');
188                       
189        } else {        // for WordPress MU
190                global $base,$current_site, $dirs, $wpmu_version;
191               
192                $base =  $xoops_config->mu_path_current_site;
193                $domain = $xoops_config->mu_domain_current_site;
194                $admin_email = $GLOBALS["xoopsConfig"]['adminmail'];
195                $admin_user_name = $user_name;
196                $admin_user_id = $user_id;
197                include_once($mydirpath . '/include/xpress_mu_function.php');
198               
199                do_htaccess( $xoops_config->module_path . '/htaccess.dist', $xoops_config->module_path . '/.htaccess', $base, '');
200                xpress_mu_install_defaults($domain,$base,$site_name,$admin_user_id,$admin_user_name,$admin_email);
201        }
202       
203// activate the xpressme plugin
204        require_once dirname( __FILE__ ).'/xpress_active_plugin.php';
205        if (xpress_pulugin_activation('xpressme/xpressme.php')){
206                $ret[] = 'The xpressme plug-in was activated.';
207        }
208
209        $ret = array_merge($ret,$t_mess);
210
211        return true ;
212}
213endif;
214
215if( ! function_exists( 'xpress_message_append_oninstall' ) ) :
216function xpress_message_append_oninstall( &$module_obj , &$log )
217{
218        if( is_array( @$GLOBALS['ret'] ) ) {
219                foreach( $GLOBALS['ret'] as $message ) {
220                        $log->add( strip_tags( $message ) ) ;
221                }
222        }
223
224        // use mLog->addWarning() or mLog->addError() if necessary
225}
226endif;
227
228if( ! function_exists( 'wp_install_old_defaults' ) ) :
229function wp_install_old_defaults($user_id) {
230        global $wpdb;
231
232        // Now drop in some default links
233        $wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name) VALUES (1, '".$wpdb->escape(__('Blogroll'))."')");
234        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://blogs.linux.ie/xeer/', 'Donncha', 1, 'http://blogs.linux.ie/xeer/feed/', '');");
235        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://zengun.org/weblog/', 'Michel', 1, 'http://zengun.org/weblog/feed/', '');");
236        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://boren.nu/', 'Ryan', 1, 'http://boren.nu/feed/', '');");
237        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://photomatt.net/', 'Matt', 1, 'http://xml.photomatt.net/feed/', '');");
238        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://zed1.com/journalized/', 'Mike', 1, 'http://zed1.com/journalized/feed/', '');");
239        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://www.alexking.org/', 'Alex', 1, 'http://www.alexking.org/blog/wp-rss2.php', '');");
240        $wpdb->query("INSERT INTO $wpdb->links (link_url, link_name, link_category, link_rss, link_notes) VALUES ('http://dougal.gunters.org/', 'Dougal', 1, 'http://dougal.gunters.org/feed/', '');");
241
242        // Default category
243        $wpdb->query("INSERT INTO $wpdb->categories (cat_ID, cat_name, category_nicename, category_count, category_description) VALUES ('0', '".$wpdb->escape(__('Uncategorized'))."', '".sanitize_title(__('Uncategorized'))."', '1', '')");
244
245        // First post
246        $now = date('Y-m-d H:i:s');
247        $now_gmt = gmdate('Y-m-d H:i:s');
248        $wpdb->query("INSERT INTO $wpdb->posts (post_author, post_date, post_date_gmt, post_content, post_excerpt, post_title, post_category, post_name, post_modified, post_modified_gmt, comment_count, to_ping, pinged, post_content_filtered) VALUES ('1', '$now', '$now_gmt', '".$wpdb->escape(__('Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!'))."', '', '".$wpdb->escape(__('Hello world!'))."', '0', '".$wpdb->escape(__('hello-world'))."', '$now', '$now_gmt', '1', '', '', '')");
249
250        $wpdb->query( "INSERT INTO $wpdb->post2cat (`rel_id`, `post_id`, `category_id`) VALUES (1, 1, 1)" );
251
252        // Default comment
253        $wpdb->query("INSERT INTO $wpdb->comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_date, comment_date_gmt, comment_content) VALUES ('1', '".$wpdb->escape(__('Mr WordPress'))."', '', 'http://wordpress.org/', '$now', '$now_gmt', '".$wpdb->escape(__('Hi, this is a comment.<br />To delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.'))."')");
254
255        // First Page
256
257        $wpdb->query("INSERT INTO $wpdb->posts (post_author, post_date, post_date_gmt, post_content, post_excerpt, post_title, post_category, post_name, post_modified, post_modified_gmt, post_status, to_ping, pinged, post_content_filtered) VALUES ('1', '$now', '$now_gmt', '".$wpdb->escape(__('This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many pages like this one or sub-pages as you like and manage all of your content inside of WordPress.'))."', '', '".$wpdb->escape(__('About'))."', '0', '".$wpdb->escape(__('about'))."', '$now', '$now_gmt', 'static', '', '', '')");
258}
259endif;
260
261?>
Note: See TracBrowser for help on using the repository browser.