XPressME Integration Kit

Trac

source: trunk/xpressme_integration_kit/include/onupdate.php @ 352

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

予約投稿、xmlrpc 投稿時のイベント通知問題の修正 fixes #194
イベント通知のデバッグ用の処理追加

File size: 7.4 KB
Line 
1<?php
2$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
3
4eval( ' function xoops_module_update_'.$mydirname.'( $module ) { return xpress_onupdate_base( $module , "'.$mydirname.'" ) ; } ' ) ;
5
6
7if( ! function_exists( 'xpress_onupdate_base' ) ) :
8function xpress_onupdate_base( $module , $mydirname )
9{
10        // transations on module update
11
12        global $msgs ; // TODO :-D
13        // for Cube 2.1
14        if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
15                $root =& XCube_Root::getSingleton();
16                $root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleUpdate.' . ucfirst($mydirname) . '.Success', 'xpress_message_append_onupdate' ) ;
17                $msgs = array() ;
18        } else {
19                if( ! is_array( $msgs ) ) $msgs = array() ;
20        }
21
22        $db =& Database::getInstance() ;
23        $mid = $module->getVar('mid') ;
24
25//XPressME Update
26        global $wpdb,$wp_rewrite, $wp_queries, $table_prefix, $wp_db_version, $wp_roles,$wp_query;
27        global $xoops_db;
28        $mydirpath = XOOPS_ROOT_PATH . '/modules/' . $mydirname;
29        $path = $mydirpath . '/';
30       
31//Site_url and home of an optional table are repaired.
32        $site_url= XOOPS_URL."/modules/".$mydirname;
33        xpress_put_siteurl($mydirname,$site_url);
34        xpress_put_home($mydirname,$site_url);
35
36// XPressME orignal table update
37        $t_mess = xpress_table_make($module , $mydirname);
38        $msgs = array_merge($msgs,$t_mess);
39
40// make templates
41        include_once XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/include/xpress_templates_make.php' ;
42        $t_mess = xpress_templates_make($mid,$mydirname);
43       
44        $msgs = array_merge($msgs,$t_mess);
45
46// The activation processing of the XPressME plugin is omitted.
47// Because the XPressME plugin is done with wp-config in activation
48
49        /* activate the xpressme plugin */
50//      require_once dirname( __FILE__ ).'/xpress_active_plugin.php';
51//      if (xpress_pulugin_activation('xpressme/xpressme.php')){
52//              $msgs[] = 'The xpressme plug-in was activated.';
53//      }
54       
55        return true ;
56}
57endif;
58
59if( ! function_exists( 'xpress_put_siteurl' ) ) :
60function xpress_put_siteurl($mydirname,$url){
61                global $xoopsModule;
62                $wp_prefix = $mydirname;
63                if ($wp_prefix == 'wordpress'){
64                        $wp_prefix = 'wp';
65                }
66                $xoopsDB =& Database::getInstance();
67                $db_xpress_option = $xoopsDB->prefix($wp_prefix . '_options');
68
69                $sql = "UPDATE $db_xpress_option SET option_value = '$url' WHERE option_name = 'siteurl'";
70                $res = $xoopsDB->queryF($sql, 0, 0);
71}
72endif;
73
74if( ! function_exists( 'xpress_put_home' ) ) :
75function xpress_put_home($mydirname,$url){
76                global $xoopsModule;
77                $wp_prefix = $mydirname;
78                if ($wp_prefix == 'wordpress'){
79                        $wp_prefix = 'wp';
80                }
81                $xoopsDB =& Database::getInstance();
82                $db_xpress_option = $xoopsDB->prefix($wp_prefix . '_options');
83
84                $sql = "UPDATE $db_xpress_option SET option_value = '$url' WHERE option_name = 'home'";
85                $res = $xoopsDB->queryF($sql, 0, 0);
86}
87endif;
88
89
90if( ! function_exists( 'xpress_message_append_onupdate' ) ) :
91function xpress_message_append_onupdate( &$module_obj , &$log )
92{
93        if( is_array( @$GLOBALS['msgs'] ) ) {
94                foreach( $GLOBALS['msgs'] as $message ) {
95                        $log->add( strip_tags( $message ) ) ;
96                }
97        }
98
99        // use mLog->addWarning() or mLog->addError() if necessary
100}
101endif;
102
103if( ! function_exists( 'get_db_version' ) ) :
104function get_db_version($mydirname){
105                global $xoopsModule;
106                $wp_prefix = $mydirname;
107                if ($wp_prefix == 'wordpress'){
108                        $wp_prefix = 'wp';
109                }
110                $xoopsDB =& Database::getInstance();
111                $db_xpress_option = $xoopsDB->prefix($wp_prefix . '_options');
112
113                $sql = "SELECT option_value FROM $db_xpress_option WHERE option_name = 'db_version'";
114                $res = $xoopsDB->query($sql, 0, 0);
115                if ($res === false){
116                        return false;
117                } else {
118                        $row = $xoopsDB->fetchArray($res);
119                        return $row['option_value'];
120                }
121}
122endif;
123
124if( ! function_exists( 'xpress_block_check' ) ) :
125function xpress_block_check($mydirname){
126        include_once(dirname(dirname(__FILE__)) . '/class/check_blocks_class.php');
127
128        $xoops_block_check =& xoops_block_check::getInstance();
129
130        if ( !$xoops_block_check->is_admin() )
131        {
132                $cont = 'Block Check Pass';
133                return cont;
134        }
135
136        switch ( $xoops_block_check->get_op() )
137        {
138                case "remove_block":
139                        $cont = $xoops_block_check->remove_block();
140                        break;
141
142                default:
143                        $cont = $xoops_block_check->check_blocks($mydirname);
144                        break;
145        }
146        return $cont;
147}
148endif;
149
150if( ! function_exists( 'xpress_table_make' ) ) :
151function xpress_table_make($module, $mydirname)
152{
153        $xp_prefix = $mydirname;
154        if ($xp_prefix == 'wordpress'){
155                $xp_prefix = 'wp';
156        }
157        $db =& Database::getInstance() ;
158        $mid = $module->getVar('mid') ;
159
160// XPressME orignal table update
161        $xp_prefix = $mydirname;
162        if ($xp_prefix == 'wordpress'){
163                $xp_prefix = 'wp';
164        }
165        $msgs = array();
166
167        if (! enhanced_table_check($mydirname,'views')){
168                $views_table = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_views' ;
169                $queries ="CREATE TABLE $views_table (
170                post_id bigint(20) unsigned NOT NULL default '0',
171                post_views bigint(20) unsigned NOT NULL default '0',
172                KEY post_id (post_id)
173                ) TYPE=MyISAM";
174                $db->queryF( $queries ) ;
175                $msgs[] = "$views_table table of XPressME was made.";
176        }
177       
178        if (! enhanced_table_check($mydirname,'d3forum_link')){
179                $d3forum_link = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_d3forum_link' ;
180                $queries ="CREATE TABLE $d3forum_link (
181                        comment_ID bigint(20) unsigned NOT NULL default '0',
182                        post_id int(10) unsigned NOT NULL default '0' ,
183                        wp_post_ID bigint(20) unsigned NOT NULL default '0',
184                        KEY post_id (post_id)
185                        )TYPE=MyISAM";
186                $db->queryF( $queries ) ;
187                $msgs[] = "$d3forum_link table of XPressME was made.";
188        }
189
190        if (! enhanced_table_check($mydirname,'group_role')){
191                $group_role = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_group_role' ;
192                $queries ="CREATE TABLE $group_role (
193                        groupid smallint(5) unsigned NOT NULL default '0',
194                        name varchar(50)  NOT NULL default '' ,
195                        description text  NOT NULL default '',
196                        group_type varchar(50)  NOT NULL default '' ,
197                        role varchar(20)  NOT NULL default '' ,
198                        login_all smallint(5) unsigned NOT NULL default '0' ,
199                        KEY groupid (groupid)
200                        )TYPE=MyISAM";
201                $db->queryF( $queries ) ;
202                $sql = "INSERT INTO $group_role (groupid, role) VALUES (1, 'administrator')";
203                $db->queryF( $sql ) ;
204                $msgs[] = "$group_role table of XPressME was made.";
205        }
206       
207        if (! enhanced_table_check($mydirname,'notify_reserve')){
208                $notify_reserve = XOOPS_DB_PREFIX . '_' . $xp_prefix .'_notify_reserve' ;
209                $queries ="CREATE TABLE $notify_reserve (
210                        notify_reserve_id bigint(20) NOT NULL AUTO_INCREMENT ,
211                        notify_reserve_status varchar(20)  NOT NULL default '' ,
212                        category text  NOT NULL default '',
213                        item_id bigint(20) unsigned NOT NULL default '0',
214                        event varchar(20) NOT NULL default '',
215                        extra_tags_arry longtext NOT NULL default '' ,
216                        user_list_arry longtext NOT NULL default '' ,
217                        module_id smallint(5) unsigned NOT NULL default '0' ,
218                        omit_user_id varchar(20) NOT NULL default '' ,
219                        KEY notify_reserve_id (notify_reserve_id)
220                        )TYPE=MyISAM";
221                $db->queryF( $queries ) ;
222                $msgs[] = "$notify_reserve table of XPressME was made.";
223        }
224        return $msgs;
225}
226endif;
227
228if( ! function_exists( 'enhanced_table_check' ) ) :
229function enhanced_table_check($mydirname,$table_name){
230                global $xoopsModule;
231               
232                $xoopsDB =& Database::getInstance();
233                if ($mydirname == 'wordpress'){
234                        $xpress_prefix=  $xoopsDB->prefix('wp_');
235                } else {
236                        $xpress_prefix=  $xoopsDB->prefix($mydirname . '_');
237                }
238                $db_enhanced = $xpress_prefix . $table_name;
239
240                $sql = "show tables like '$db_enhanced'";
241                $res = $xoopsDB->query($sql, 0, 0);
242                if ($res === false){
243                        return false;
244                } else {
245                        if ($xoopsDB->getRowsNum($res)  > 0)
246                                return true;
247                        else
248                                return false;
249                }
250}
251endif;
252
253
254
255?>
Note: See TracBrowser for help on using the repository browser.