| 1 | <?php
 | 
|---|
| 2 | 
 | 
|---|
| 3 | function 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 | 
 | 
|---|
| 58 | function 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 |                         if( ! xoops_template_touch( $tplid ) ) {
 | 
|---|
| 81 |                                 $msg = '<span style="color:#ff0000;">ERROR: Failed compiling template <b>'.htmlspecialchars($file_name).'</b>.</span><br />';
 | 
|---|
| 82 |                         } else {
 | 
|---|
| 83 |                                 $msg = 'Template <b>'.htmlspecialchars($file_name).'</b> compiled.</span><br />';
 | 
|---|
| 84 |                         }
 | 
|---|
| 85 |                 }
 | 
|---|
| 86 |         }
 | 
|---|
| 87 |         return $msg;
 | 
|---|
| 88 | }
 | 
|---|
| 89 | 
 | 
|---|
| 90 | function is_template($file_name){
 | 
|---|
| 91 |         if (empty($file_name)) return false;
 | 
|---|
| 92 |         
 | 
|---|
| 93 |         $temp_list = array(
 | 
|---|
| 94 |                 'recent_comments_block.html',
 | 
|---|
| 95 |                 'recent_posts_content_block.html',
 | 
|---|
| 96 |                 'recent_posts_list_block.html',
 | 
|---|
| 97 |                 'calender_block.html',
 | 
|---|
| 98 |                 'popular_posts_block.html',
 | 
|---|
| 99 |                 'archives_block.html',
 | 
|---|
| 100 |                 'authors_block.html',
 | 
|---|
| 101 |                 'page_block.html',
 | 
|---|
| 102 |                 'search_block.html',
 | 
|---|
| 103 |                 'tag_cloud_block.html',
 | 
|---|
| 104 |                 'category_block.html',
 | 
|---|
| 105 |                 'meta_block.html' ,
 | 
|---|
| 106 |                 'sidebar_block.html' ,
 | 
|---|
| 107 |                 'widget_block.html' ,
 | 
|---|
| 108 |                 'enhanced_block.html' ,
 | 
|---|
| 109 |                 'blog_list_block.html' ,
 | 
|---|
| 110 |                 'global_recent_posts_list_block.html' ,
 | 
|---|
| 111 |                 'global_recent_comments_block.html',
 | 
|---|
| 112 |                 'global_popular_posts_block.html',
 | 
|---|
| 113 |                 'index.html',
 | 
|---|
| 114 |         );
 | 
|---|
| 115 |         foreach($temp_list as $ck_file){
 | 
|---|
| 116 |                 if (strcmp($ck_file,$file_name) ==  0) return true;
 | 
|---|
| 117 |         }
 | 
|---|
| 118 |         return false;
 | 
|---|
| 119 | }
 | 
|---|
| 120 | 
 | 
|---|
| 121 | function xpress_clean_templates_file($mydirname,$mod_version)
 | 
|---|
| 122 | {
 | 
|---|
| 123 |         $tpl_path = XOOPS_ROOT_PATH . '/modules/' . $mydirname . '/templates/' ;
 | 
|---|
| 124 |         $msgs = array();
 | 
|---|
| 125 |         if( $handler = @opendir( $tpl_path) ) {
 | 
|---|
| 126 |                 while( ( $file = readdir( $handler ) ) !== false ) {
 | 
|---|
| 127 |                         if( substr( $file , 0 , 1 ) == '.' ) continue ;
 | 
|---|
| 128 |                         if ( strcmp($file,'source')==0 ) continue ;
 | 
|---|
| 129 |                         if ( strcmp($file,'index.html')==0 ) continue ;
 | 
|---|
| 130 |                         $target_file_path = $tpl_path . $file;
 | 
|---|
| 131 |                         if (is_dir($target_file_path)){
 | 
|---|
| 132 |                                 rmDirectory($target_file_path);
 | 
|---|
| 133 |                                 $msgs[] = 'Template <b>'.htmlspecialchars($file).'</b> directory deleted.</span><br />';
 | 
|---|
| 134 |                         } else {
 | 
|---|
| 135 |                                 if ($mod_version >= 200){
 | 
|---|
| 136 |                                         $pattern = '^' . $mydirname . '_';
 | 
|---|
| 137 |                                         if (preg_match('/' . $pattern . '/' , $file, $match))  continue ;
 | 
|---|
| 138 |                                 }
 | 
|---|
| 139 |                                 $rcd = @unlink($target_file_path);
 | 
|---|
| 140 |                                 $msgs[] = 'Template <b>'.htmlspecialchars($file).'</b> file deleted.</span><br />';
 | 
|---|
| 141 |                         }
 | 
|---|
| 142 |                 }
 | 
|---|
| 143 |                 closedir( $handler ) ;
 | 
|---|
| 144 |         }
 | 
|---|
| 145 |         return $msgs;
 | 
|---|
| 146 | }
 | 
|---|
| 147 | 
 | 
|---|
| 148 | function rmDirectory($dir){
 | 
|---|
| 149 |         if ($handle = opendir("$dir")){
 | 
|---|
| 150 |                 while (false !== ($item = readdir($handle))){
 | 
|---|
| 151 |                         if ($item != "." && $item != ".."){
 | 
|---|
| 152 |                                 if (is_dir("$dir/$item")){
 | 
|---|
| 153 |                                         rmDirectory("$dir/$item");
 | 
|---|
| 154 |                                 }else{
 | 
|---|
| 155 |                                         unlink("$dir/$item");
 | 
|---|
| 156 |                                 }
 | 
|---|
| 157 |                         }
 | 
|---|
| 158 |                 }
 | 
|---|
| 159 |                 closedir($handle);
 | 
|---|
| 160 |                 rmdir($dir);
 | 
|---|
| 161 |         }
 | 
|---|
| 162 | }
 | 
|---|
| 163 | 
 | 
|---|
| 164 | ?> | 
|---|