XPressME Integration Kit

Trac

source: trunk/xpressme_integration_kit/include/xpress_templates_make.php @ 770

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

Xoops3 alpha2 では /class/template.php が /class/-template.phpになっている(仮?)為、一時的にinclude を変更

File size: 5.7 KB
Line 
1<?php
2
3function xpress_templates_make($mid,$mydirname)
4{
5        $msgs = array();
6        // TEMPLATES
7        $tplfile_handler =& xoops_gethandler( 'tplfile' ) ;
8        $tpl_path = XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/templates' ;
9       
10        //copy  template file from source
11        if( $handler = @opendir( $tpl_path . '/source/' ) ) {
12                while( ( $file = readdir( $handler ) ) !== false ) {
13                        if( substr( $file , 0 , 1 ) == '.' ) continue ;
14                        if(!is_template($file)) continue ;
15                        $file_path = $tpl_path . '/source/' . $file ;
16                        if( is_file( $file_path ) ) {
17                                $target_file_name = $mydirname . '_' . $file;
18                                $target_file_path = $tpl_path . '/'.$target_file_name;
19                                $rcd = @unlink($target_file_path);
20                                if ($mydirname != 'xpress') {           //old version file delete
21                                        $rcd = @unlink($tpl_path . '/xpress'.$file);
22                                }
23//                              $rcd = rename($file_path, $target_file_path);
24                                $rcd = copy($file_path, $target_file_path);
25                                if ($rcd){
26                                        $msgs[] = 'Template <b>'.htmlspecialchars($target_file_path).'</b> copy from ' . htmlspecialchars($file) . '<br />';
27                                } else {
28                                        $msgs[] = '<span style="color:#ff0000;">ERROR: Could not copy template <b>'.htmlspecialchars($target_file_name).'</b> from ' . htmlspecialchars($file). '(check templates directory permision (777))</span><br />';
29                                }                                       
30                        }
31                }
32                closedir( $handler ) ;
33        }
34       
35        // template added to the database.
36        if( $handler = @opendir( $tpl_path . '/' ) ) {
37                while( ( $file = readdir( $handler ) ) !== false ) {
38                        if( substr( $file , 0 , 1 ) == '.' ) continue ;
39                        $file_path = $tpl_path . '/' . $file ;
40                        $file_name = $file ;
41                        $pattern = '^' . $mydirname . '_';
42                        if (preg_match('/' . $pattern . '/' , $file_name, $match)){
43                                if( is_file( $file_path ) ) {
44                                        $msgs[] = xpress_create_db_template($file_name,$file_path,$mydirname,$mid);
45                                }
46                        }
47                }
48                closedir( $handler ) ;
49        }
50       
51        include_once XOOPS_ROOT_PATH.'/class/xoopsblock.php' ;
52        include_once XOOPS_ROOT_PATH.'/class/template.php' ;
53        xoops_template_clear_module_cache( $mid ) ;
54
55        return $msgs;
56}
57
58function xpress_create_db_template($file_name,$file_path,$mydirname,$mid){
59        if( is_file( $file_path ) ) {
60                $tplfile_handler =& xoops_gethandler( 'tplfile' ) ;
61                $tplfile =& $tplfile_handler->create() ;
62                $mtime = intval( @filemtime( $file_path ) ) ;
63                $tplfile->setVar( 'tpl_source' , file_get_contents( $file_path ) , true ) ;
64                $tplfile->setVar( 'tpl_refid' , $mid ) ;
65                $tplfile->setVar( 'tpl_tplset' , 'default' ) ;
66                $tplfile->setVar( 'tpl_file' ,  $file_name ) ;
67                $tplfile->setVar( 'tpl_desc' , '' , true ) ;
68                $tplfile->setVar( 'tpl_module' , $mydirname ) ;
69                $tplfile->setVar( 'tpl_lastmodified' , $mtime ) ;
70                $tplfile->setVar( 'tpl_lastimported' , 0 ) ;
71                $tplfile->setVar( 'tpl_type' , 'module' ) ;
72                if( ! $tplfile_handler->insert( $tplfile ) ) {
73                        $msg = '<span style="color:#ff0000;">ERROR: Template Could not added to the database. <b>'.htmlspecialchars($file_name).'</b> to the database.</span><br />';
74                } else {
75                        $tplid = $tplfile->getVar( 'tpl_id' ) ;
76                        $msg = 'Template <b>'.htmlspecialchars($file_name) .'</b> added to the database. (ID: <b>'.$tplid.'</b>)<br />';
77                        // generate compiled file
78                        include_once XOOPS_ROOT_PATH.'/class/xoopsblock.php' ;
79                        include_once XOOPS_ROOT_PATH.'/class/template.php' ;
80                        include_once XOOPS_ROOT_PATH.'/class/-template.php' ; // xoops3
81                        if( ! xoops_template_touch( $tplid ) ) {
82                                $msg = '<span style="color:#ff0000;">ERROR: Failed compiling template <b>'.htmlspecialchars($file_name).'</b>.</span><br />';
83                        } else {
84                                $msg = 'Template <b>'.htmlspecialchars($file_name).'</b> compiled.</span><br />';
85                        }
86                }
87        }
88        return $msg;
89}
90
91function is_template($file_name){
92        if (empty($file_name)) return false;
93       
94        $temp_list = array(
95                'recent_comments_block.html',
96                'recent_posts_content_block.html',
97                'recent_posts_list_block.html',
98                'calender_block.html',
99                'popular_posts_block.html',
100                'archives_block.html',
101                'authors_block.html',
102                'page_block.html',
103                'search_block.html',
104                'tag_cloud_block.html',
105                'category_block.html',
106                'meta_block.html' ,
107                'sidebar_block.html' ,
108                'widget_block.html' ,
109                'enhanced_block.html' ,
110                'blog_list_block.html' ,
111                'global_recent_posts_list_block.html' ,
112                'global_recent_comments_block.html',
113                'global_popular_posts_block.html',
114                'index.html',
115        );
116        foreach($temp_list as $ck_file){
117                if (strcmp($ck_file,$file_name) ==  0) return true;
118        }
119        return false;
120}
121
122function xpress_clean_templates_file($mydirname,$mod_version)
123{
124        $tpl_path = XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/templates/' ;
125        $msgs = array();
126        if( $handler = @opendir( $tpl_path) ) {
127                while( ( $file = readdir( $handler ) ) !== false ) {
128                        if( substr( $file , 0 , 1 ) == '.' ) continue ;
129                        if ( strcmp($file,'source')==0 ) continue ;
130                        if ( strcmp($file,'index.html')==0 ) continue ;
131                        $target_file_path = $tpl_path . $file;
132                        if (is_dir($target_file_path)){
133                                rmDirectory($target_file_path);
134                                $msgs[] = 'Template <b>'.htmlspecialchars($file).'</b> directory deleted.</span><br />';
135                        } else {
136                                if ($mod_version >= 200){
137                                        $pattern = '^' . $mydirname . '_';
138                                        if (preg_match('/' . $pattern . '/' , $file, $match))  continue ;
139                                }
140                                $rcd = @unlink($target_file_path);
141                                $msgs[] = 'Template <b>'.htmlspecialchars($file).'</b> file deleted.</span><br />';
142                        }
143                }
144                closedir( $handler ) ;
145        }
146        return $msgs;
147}
148
149function rmDirectory($dir){
150        if ($handle = opendir("$dir")){
151                while (false !== ($item = readdir($handle))){
152                        if ($item != "." && $item != ".."){
153                                if (is_dir("$dir/$item")){
154                                        rmDirectory("$dir/$item");
155                                }else{
156                                        unlink("$dir/$item");
157                                }
158                        }
159                }
160                closedir($handle);
161                rmdir($dir);
162        }
163}
164
165?>
Note: See TracBrowser for help on using the repository browser.