XPressME Integration Kit

Trac

source: branches/XPressME_MU/xpressme_integration_kit/include/oninstall.php @ 406

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

WordPressMU対応をブランチ分け

File size: 13.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                $root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleInstall.' . ucfirst($mydirname) . '.Fail' , 'xpress_message_append_oninstall_err' ) ;
32                $ret = array() ;
33        } else {
34                if( ! is_array( $ret ) ) $ret = array() ;
35        }
36
37        $db =& Database::getInstance() ;
38        $mid = $module->getVar('mid') ;
39
40        if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
41                $ret[] = "********************************* Install Log ********************************<br />";
42        } else {
43                $ret[] = '<h4 style="border-bottom: 1px dashed rgb(0, 0, 0); text-align: left; margin-bottom: 0px;">Install Log</h4>';
44    }
45
46//xpress
47        global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles, $wp_query;
48        global $xoops_config;
49               
50        define("WP_INSTALLING", true);
51        define('WP_FIRST_INSTALL', true); // For WPMU2.8
52       
53        $site_url= XOOPS_URL."/modules/".$mydirname;
54        $mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
55        $path = $mydirpath . '/';
56        $site_name = ucfirst($mydirname) . ' ' . _MI_XP2_NAME;
57       
58// permission and wordpress files check
59        require_once ($path . 'include/pre_check.php');
60        if(! xp_permission_check($mydirname, $mydirpath)){
61                if( ! defined( 'XOOPS_CUBE_LEGACY' ) ) {
62                        $ret = $GLOBALS["err_log"];
63                        $ret[] = "<br /><span style=\"color:#ff0000;\">The uninstallation of the module is executed now. </span><br />";
64                        $ret[] = xoops_module_uninstall($mydirname);
65                }
66                return false;
67        }
68       
69// install WordPress
70        if (file_exists($path . 'wp-load.php')) {
71                require_once $path . 'wp-load.php';
72        } else {
73                require_once $path . 'wp-config.php';
74        }
75        include_once($mydirpath . '/wp-admin/upgrade-functions.php');
76        wp_cache_flush();
77        make_db_current_silent();
78        $ret[] = "The data base of wordpress was made by prefix $table_prefix.<br />";
79       
80        $option_desc = __('WordPress web address');
81        $wpdb->query("INSERT INTO $wpdb->options (blog_id, option_name,option_value, autoload) VALUES ('0', 'siteurl','$site_url', 'yes')");   
82        $wpdb->query("INSERT INTO $wpdb->options (blog_id, option_name,option_value, autoload) VALUES ('0', 'home','$site_url', 'yes')");
83
84        populate_options();
85        populate_roles();
86       
87// create XPressME table
88        $xp_prefix = $mydirname;
89        if ($xp_prefix == 'wordpress'){
90                $xp_prefix = 'wp';
91        }
92        $views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_views' ;
93
94        $charset_collate = '';
95        if ( version_compare(mysql_get_server_info(), '4.1.0', '>=') ) {
96                if ( ! empty($wpdb->charset) )
97                        $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
98                if ( ! empty($wpdb->collate) )
99                        $charset_collate .= " COLLATE $wpdb->collate";
100        }
101        $views_queries ="CREATE TABLE $views_table (
102                post_id bigint(20) unsigned NOT NULL default '0',
103                post_views bigint(20) unsigned NOT NULL default '0',
104                KEY post_id (post_id)
105                )$charset_collate;";
106        dbDelta($views_queries);
107        $ret[] = "$views_table table of XPressME was made.<br />";
108       
109        $d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
110        $views_queries ="CREATE TABLE $d3forum_link (
111                comment_ID bigint(20) unsigned NOT NULL default '0',
112                post_id int(10) unsigned NOT NULL default '0' ,
113                wp_post_ID bigint(20) unsigned NOT NULL default '0',
114                KEY post_id (post_id)
115                )$charset_collate;";
116        dbDelta($views_queries);
117        $ret[] = "$d3forum_link table of XPressME was made.<br />";
118       
119        $group_role = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_group_role' ;
120        $views_queries ="CREATE TABLE $group_role (
121                groupid smallint(5) unsigned NOT NULL default '0',
122                name varchar(50)  NOT NULL default '' ,
123                description text  NOT NULL default '',
124                group_type varchar(50)  NOT NULL default '' ,
125                role varchar(20)  NOT NULL default '' ,
126                login_all smallint(5) unsigned NOT NULL default '0' ,
127                KEY groupid (groupid)
128                )$charset_collate;";
129        dbDelta($views_queries);
130        $ret[] = "$group_role table of XPressME was made.<br />";
131       
132        $notify_reserve = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_notify_reserve' ;
133        $queries ="CREATE TABLE $notify_reserve (
134                notify_reserve_id bigint(20) NOT NULL AUTO_INCREMENT ,
135                notify_reserve_status varchar(20)  NOT NULL default '' ,
136                category text  NOT NULL default '',
137                item_id bigint(20) unsigned NOT NULL default '0',
138                event varchar(20) NOT NULL default '',
139                extra_tags_arry longtext NOT NULL default '' ,
140                user_list_arry longtext NOT NULL default '' ,
141                module_id smallint(5) unsigned NOT NULL default '0' ,
142                omit_user_id varchar(20) NOT NULL default '' ,
143                KEY notify_reserve_id (notify_reserve_id)
144                )TYPE=MyISAM";
145        dbDelta($queries);
146        $ret[] = "$notify_reserve table of XPressME was made.<br />";
147
148        $sql = "INSERT INTO $group_role (groupid, role) VALUES (1, 'administrator')";
149        $wpdb->query($sql);
150       
151// make templates
152        include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates_make.php' ;
153        $t_mess = xpress_templates_make($mid,$mydirname);
154       
155// Admin User Data write
156        // Change uid field
157        $wpdb->query("ALTER TABLE $wpdb->posts CHANGE `post_author` `post_author` mediumint(8) NOT NULL DEFAULT '0'");
158        $user_name = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("uname"):'admin';
159        $email = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("email"):'foo@exsample.com';
160        $pass_md5 = is_object($GLOBALS["xoopsUser"])?$GLOBALS["xoopsUser"]->getVar("pass"):'';
161       
162        if (!function_exists('username_exists')){
163                require_once($mydirpath . '/wp-includes/registration-functions.php');
164        }
165        $user_id = username_exists($user_name);
166        if ( !$user_id ) {
167                $random_password = 'admin';
168                if (!$xoops_config->is_wpmu){
169                        $user_id = wp_create_user($user_name, $random_password, $email);
170                } else {
171                        $user_id = wpmu_create_user($user_name, $random_password, $email);
172                }
173        } else {
174                $random_password = __('User already exists.  Password inherited.');
175        }
176
177        $user = new WP_User($user_id);
178        $user->set_role('administrator');
179        'User ' . $user_name . ' of the administrator was made.';
180        // over write xoops md5 password
181        $sql = "UPDATE $wpdb->users SET user_pass ='$pass_md5' WHERE ID = $user_id";
182        $wpdb->query($sql);
183        $ret[] = 'The password of XOOPS was copied.<br />';
184       
185       
186// Set Default data
187        if (!$xoops_config->is_wpmu){   // for WordPress
188                // make WordPress Default data 
189                if (function_exists('wp_install_defaults')){
190                        wp_install_defaults($user_id);
191                } else {
192                        wp_install_old_defaults($user_id);
193                }
194               
195                $ret[] = 'The first sample post & comment was written.<br />';
196               
197                // Rewrite Option for Xpress
198                        if (WPLANG == 'ja_EUC') {
199                                $setup_charset = 'EUC-JP';
200                        } elseif(WPLANG == 'ja_SJIS') {
201                                $setup_charset = 'Shift_JIS';
202                        } else {
203                                $setup_charset = 'UTF-8';
204                        }
205                        update_option("blog_charset", $setup_charset);
206
207                        update_option('blogname', $site_name );
208                        update_option('blogdescription', 'WordPress for XOOPS');
209                        update_option("admin_email", $GLOBALS["xoopsConfig"]['adminmail']);
210                        update_option("ping_sites", "http://rpc.pingomatic.com/\nhttp://ping.xoopsforge.com/");
211                        update_option("home", $site_url);
212                        update_option("siteurl", $site_url);
213                        update_option("what_to_show", "posts");
214                        update_option('default_pingback_flag', 0);
215                        $ret[] = 'The initial data was written in the data base of wordpress.<br />';
216                       
217                        update_option("template", "xpress_default");
218                        update_option("stylesheet", "xpress_default");
219                        $ret[] = 'The default theme of wordpress was set to xpress_default.<br />';
220                //      update_option('uploads_use_yearmonth_folders', 1);
221                        update_option('upload_path', 'wp-content/uploads');
222                       
223        } else {        // for WordPress MU
224                global $base,$current_site, $dirs, $wpmu_version;
225               
226                $base =  $xoops_config->mu_path_current_site;
227                $domain = $xoops_config->mu_domain_current_site;
228                $admin_email = $GLOBALS["xoopsConfig"]['adminmail'];
229                $admin_user_name = $user_name;
230                $admin_user_id = $user_id;
231                include_once($mydirpath . '/include/xpress_mu_function.php');
232               
233                do_htaccess( $xoops_config->module_path . '/htaccess.dist', $xoops_config->module_path . '/.htaccess', $base, '');
234                xpress_mu_install_defaults($domain,$base,$site_name,$admin_user_id,$admin_user_name,$admin_email);
235        }
236       
237// activate the xpressme plugin
238        require_once dirname( __FILE__ ).'/xpress_active_plugin.php';
239        if (xpress_pulugin_activation('xpressme/xpressme.php')){
240                $ret[] = 'The xpressme plug-in was activated.<br />';
241        } else {
242                $GLOBALS["err_log"][] =  '<span style="color:#ff0000;">failed in the activation of xpressme plug-in.</span><br />';
243                return false;
244        }
245
246        $ret = array_merge($ret,$t_mess);
247
248        return true ;
249}
250endif;
251
252if( ! function_exists( 'xpress_message_append_oninstall' ) ) :
253function xpress_message_append_oninstall( &$module_obj , &$log )
254{
255        if( is_array( @$GLOBALS['ret'] ) ) {
256                foreach( $GLOBALS['ret'] as $message ) {
257                        $log->add( strip_tags( $message ) ) ;
258                }
259        }
260
261        // use mLog->addWarning() or mLog->addError() if necessary
262}
263endif;
264
265if( ! function_exists( 'xpress_message_append_oninstall_err' ) ) :
266function xpress_message_append_oninstall_err( &$module_obj , &$log )
267{
268        if( is_array( @$GLOBALS["err_log"] ) ) {
269                foreach( $GLOBALS["err_log"] as $message ) {
270                        $log->add( strip_tags($message)) ;
271                }
272        }
273
274        // use mLog->addWarning() or mLog->addError() if necessary
275}
276endif;
277
278
279if( ! function_exists( 'wp_install_old_defaults' ) ) :
280function wp_install_old_defaults($user_id) {
281        global $wpdb;
282
283        // Now drop in some default links
284        $wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name) VALUES (1, '".$wpdb->escape(__('Blogroll'))."')");
285        $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/', '');");
286        $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/', '');");
287        $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/', '');");
288        $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/', '');");
289        $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/', '');");
290        $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', '');");
291        $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/', '');");
292
293        // Default category
294        $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', '')");
295
296        // First post
297        $now = date('Y-m-d H:i:s');
298        $now_gmt = gmdate('Y-m-d H:i:s');
299        $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', '', '', '')");
300
301        $wpdb->query( "INSERT INTO $wpdb->post2cat (`rel_id`, `post_id`, `category_id`) VALUES (1, 1, 1)" );
302
303        // Default comment
304        $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.'))."')");
305
306        // First Page
307
308        $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', '', '', '')");
309}
310endif;
311?>
Note: See TracBrowser for help on using the repository browser.