XPressME Integration Kit

Trac

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

Last change on this file since 252 was 252, checked in by toemon, 16 years ago

WordPressME2.0.11への対応,(ブロック周りは未完)

File size: 11.3 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                //      update_option("blog_charset", wp_blog_charset());
165                        update_option('blogname', $site_name );
166                        update_option('blogdescription', 'WordPress for XOOPS');
167                        update_option("admin_email", $GLOBALS["xoopsConfig"]['adminmail']);
168                        update_option("ping_sites", "http://rpc.pingomatic.com/\nhttp://ping.xoopsforge.com/");
169                        update_option("home", $site_url);
170                        update_option("siteurl", $site_url);
171                        update_option("what_to_show", "posts");
172                        update_option('default_pingback_flag', 0);
173                        $ret[] = 'The initial data was written in the data base of wordpress.';
174                       
175                        update_option("template", "xpress_default");
176                        update_option("stylesheet", "xpress_default");
177                        $ret[] = 'The default theme of wordpress was set to xpress_default.';
178                //      update_option('uploads_use_yearmonth_folders', 1);
179                        update_option('upload_path', 'wp-content/uploads');
180                       
181        } else {        // for WordPress MU
182                global $base,$current_site, $dirs, $wpmu_version;
183               
184                $base =  $xoops_config->mu_path_current_site;
185                $domain = $xoops_config->mu_domain_current_site;
186                $admin_email = $GLOBALS["xoopsConfig"]['adminmail'];
187                $admin_user_name = $user_name;
188                $admin_user_id = $user_id;
189                include_once($mydirpath . '/include/xpress_mu_function.php');
190               
191                do_htaccess( $xoops_config->module_path . '/htaccess.dist', $xoops_config->module_path . '/.htaccess', $base, '');
192                xpress_mu_install_defaults($domain,$base,$site_name,$admin_user_id,$admin_user_name,$admin_email);
193        }
194       
195// activate the xpressme plugin
196        require_once dirname( __FILE__ ).'/xpress_active_plugin.php';
197        if (xpress_pulugin_activation('xpressme/xpressme.php')){
198                $ret[] = 'The xpressme plug-in was activated.';
199        }
200
201        $ret = array_merge($ret,$t_mess);
202
203        return true ;
204}
205endif;
206
207if( ! function_exists( 'xpress_message_append_oninstall' ) ) :
208function xpress_message_append_oninstall( &$module_obj , &$log )
209{
210        if( is_array( @$GLOBALS['ret'] ) ) {
211                foreach( $GLOBALS['ret'] as $message ) {
212                        $log->add( strip_tags( $message ) ) ;
213                }
214        }
215
216        // use mLog->addWarning() or mLog->addError() if necessary
217}
218endif;
219
220if( ! function_exists( 'wp_install_old_defaults' ) ) :
221function wp_install_old_defaults($user_id) {
222        global $wpdb;
223
224        // Now drop in some default links
225        $wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name) VALUES (1, '".$wpdb->escape(__('Blogroll'))."')");
226        $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/', '');");
227        $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/', '');");
228        $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/', '');");
229        $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/', '');");
230        $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/', '');");
231        $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', '');");
232        $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/', '');");
233
234        // Default category
235        $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', '')");
236
237        // First post
238        $now = date('Y-m-d H:i:s');
239        $now_gmt = gmdate('Y-m-d H:i:s');
240        $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', '', '', '')");
241
242        $wpdb->query( "INSERT INTO $wpdb->post2cat (`rel_id`, `post_id`, `category_id`) VALUES (1, 1, 1)" );
243
244        // Default comment
245        $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.'))."')");
246
247        // First Page
248
249        $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', '', '', '')");
250}
251endif;
252
253?>
Note: See TracBrowser for help on using the repository browser.