Changeset 135 for trunk/include/xpress_block_render.php
- Timestamp:
- Mar 23, 2009, 9:39:37 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/xpress_block_render.php
r134 r135 158 158 } 159 159 160 function xpress_block_cache_refresh() 161 { 162 global $xoops_db; 163 $mid = get_xpress_modid(); 164 $sql = "SELECT bid,options,func_file FROM " . get_xoops_prefix() . "newblocks WHERE mid = $mid AND visible = 1"; 165 $blocks = $xoops_db->get_results($sql); 166 $mydirname = get_xpress_dir_name(); 167 require_once get_xpress_dir_path() . '/include/xpress_block_render.php'; 168 169 foreach($blocks as $block){ 170 $func_file = $block->func_file; 171 $call_theme_function_name = str_replace(".php", "", $func_file); 172 $inc_theme_file_name = str_replace(".php", "", $func_file) . '_theme.php'; 173 $cache_title = str_replace(".php", "", $func_file); 174 $blockID = $block->bid; 175 $options = explode("|", $block->options); 176 177 $block_theme_file = get_block_file_path($mydirname,$inc_theme_file_name); 178 require_once $block_theme_file; 179 $render = $call_theme_function_name($options); //The block name and the called function name should be assumed to be the same name. 180 $render_array['block'] = $render; 181 $render_array['block']['options'] = $block->options; 182 if (xpress_block_cache_found($mydirname,$cache_title. $blockID)){ 183 $render_serialize = xpress_XML_serialize($render_array); 184 $render_md5 = md5($render_serialize); 185 186 $cache_serialize = xpress_cache_read($mydirname,$cache_title. $blockID.'.xml'); 187 $cache_md5 = md5($cache_serialize); 188 189 if ($render_md5 != $cache_md5){ 190 xpress_block_cache_write($mydirname,$cache_title. $blockID, $render_array); 191 } 192 } else { 193 xpress_block_cache_write($mydirname,$cache_title. $blockID, $render_array); 194 } 195 } 196 } 197 198 function xpress_unnecessary_block_cache_delete() 199 { 200 global $xoops_db,$xoops_config; 201 $mid = get_xpress_modid(); 202 $sql = "SELECT bid,options,func_file FROM " . get_xoops_prefix() . "newblocks WHERE mid = $mid AND visible = 1"; 203 $blocks = $xoops_db->get_results($sql); 204 $mydirname = get_xpress_dir_name(); 205 require_once get_xpress_dir_path() . '/include/xpress_block_render.php'; 206 207 $pattern =''; 208 foreach($blocks as $block){ 209 $cache_file_name = $mydirname . '_'. str_replace(".php", "", $block->func_file) . $block->bid; 210 if (!empty($pattern)) $pattern .= '|'; 211 $pattern .= $cache_file_name; 212 } 213 $pattern = '(' . $pattern . ')'; 214 215 $cache_dir = $xoops_config->xoops_root_path . '/cache/'; 216 $cache_time = 0; 217 if ($dh = opendir($cache_dir)) { 218 while (($file = readdir($dh)) !== false) { 219 if (preg_match('/^' . preg_quote($mydirname) . '/', $file)) { 220 if(! preg_match('/' . $pattern . '/', $file)) { 221 unlink($cache_dir.$file); 222 } 223 } 224 } 225 closedir($dh); 226 } 227 } 228 160 229 ?>
Note: See TracChangeset
for help on using the changeset viewer.