XPressME Integration Kit

Trac

source: branches/Ver3.0/xpressme_integration_kit/include/onuninstall.php @ 752

Last change on this file since 752 was 752, checked in by toemon, 14 years ago

Xoops3 の moduleデータベースのmid が id に変更されたため直接DBアクセスでdirnameからmidを取得できないので
$xoopsModule->getVar('mid')で取得するように変更。

File size: 2.7 KB
Line 
1<?php
2$mydirname = basename( dirname( dirname( __FILE__ ) ) ) ;
3
4eval( ' function xoops_module_uninstall_'.$mydirname.'( $module ) { return xpress_onuninstall_base( $module , "'.$mydirname.'" ) ; } ' ) ;
5
6
7if( ! function_exists( 'xpress_onuninstall_base' ) ) {
8
9function xpress_onuninstall_base( $module , $mydirname )
10{
11        global $xoopsDB,$xoopsModule;
12        // transations on module uninstall
13
14        global $ret ; // TODO :-D
15
16        // for Cube 2.1
17        if( defined( 'XOOPS_CUBE_LEGACY' ) ) {
18                $root =& XCube_Root::getSingleton();
19                $root->mDelegateManager->add( 'Legacy.Admin.Event.ModuleUninstall.' . ucfirst($mydirname) . '.Success' , 'xpress_message_append_onuninstall' ) ;
20                $ret = array() ;
21        } else {
22                if( ! is_array( $ret ) ) $ret = array() ;
23        }
24
25        $mid = $xoopsModule->getVar('mid') ;
26       
27        $xp_prefix = preg_replace('/wordpress/','wp',$mydirname);
28       
29        $xoops_prefix = $xoopsDB->prefix();
30
31        if (empty($xoops_prefix) || empty($xp_prefix)) {
32                $ret[] = '<span style="color:#ff0000;">ERROR: Empty Prefix.</span><br />';
33                return false;
34        }
35       
36        $prefix_mod = $xoops_prefix  . '_' . $xp_prefix;
37        $sql = "SHOW TABLES LIKE '$prefix_mod%'";
38        if ($result = $xoopsDB->query($sql)) {
39                while ($table = $xoopsDB->fetchRow($result)){
40                        $drop_sql = 'DROP TABLE '. $table[0] ;
41                        if (!$xoopsDB->queryF($drop_sql)) {
42                                $ret[] = '<span style="color:#ff0000;">ERROR: Could not drop table <b>'.htmlspecialchars($table[0]).'<b>.</span><br />';
43                        } else {
44                                $ret[] = 'Table <b>'.htmlspecialchars($table[0]).'</b> dropped.<br />';
45                        }
46                }
47        } else {
48                $ret[] = '<span style="color:#ff0000;">ERROR: Table not found of prefix <b>'.htmlspecialchars($prefix_mod).'<b> .</span><br />';
49                return false;
50        }
51
52
53        // TEMPLATES (Not necessary because modulesadmin removes all templates)
54        /* $tplfile_handler =& xoops_gethandler( 'tplfile' ) ;
55        $templates =& $tplfile_handler->find( null , 'module' , $mid ) ;
56        $tcount = count( $templates ) ;
57        if( $tcount > 0 ) {
58                $ret[] = 'Deleting templates...' ;
59                for( $i = 0 ; $i < $tcount ; $i ++ ) {
60                        if( ! $tplfile_handler->delete( $templates[$i] ) ) {
61                                $ret[] = '<span style="color:#ff0000;">ERROR: Could not delete template '.$templates[$i]->getVar('tpl_file','s').' from the database. Template ID: <b>'.$templates[$i]->getVar('tpl_id','s').'</b></span><br />';
62                        } else {
63                                $ret[] = 'Template <b>'.$templates[$i]->getVar('tpl_file','s').'</b> deleted from the database. Template ID: <b>'.$templates[$i]->getVar('tpl_id','s').'</b><br />';
64                        }
65                }
66        }
67        unset($templates); */
68
69
70        return true ;
71}
72
73function xpress_message_append_onuninstall( &$module_obj , &$log )
74{
75        if( is_array( @$GLOBALS['ret'] ) ) {
76                foreach( $GLOBALS['ret'] as $message ) {
77                        $log->add( strip_tags( $message ) ) ;
78                }
79        }
80
81        // use mLog->addWarning() or mLog->addError() if necessary
82}
83
84}
85
86?>
Note: See TracBrowser for help on using the repository browser.