< script >< link > tag is pulled out from the header of html contents. function get_mod_header($contents) { global $xpress_config; $pattern = "]*?>(.*)<\/body>"; $body_cut = preg_replace("/".$pattern."/s" , '' , $contents); $pattern = "]*?>(.*)<\/head>"; $head_str = ''; if (preg_match("/".$pattern."/s", $body_cut, $head_matches)){ $head_str = $head_matches[1]; } $pattern = ']*?>'; $head_str = preg_replace("/".$pattern."/s" , '' , $head_str); $pattern = '<\/head>'; $head_str = preg_replace("/".$pattern."/s" , '' , $head_str); $pattern = '<\s*html\s+xmlns[^>]*?>'; $head_str = preg_replace("/".$pattern."/s" , '' , $head_str); $pattern = '<\s*head\s+profile[^>]*?>'; $head_str = preg_replace("/".$pattern."/s" , '' , $head_str); $pattern = '<\s*meta\s+http-equiv[^>]*?>'; $head_str = preg_replace("/".$pattern."/s" , '' , $head_str); $pattern = ']*?>(.*)<\s*\/\s*title\s*>'; $head_str = preg_replace("/".$pattern."/s" , '' , $head_str); $head_str = meta_name_cut('robots',$head_str); $head_str = meta_name_cut('keywords',$head_str); $head_str = meta_name_cut('description',$head_str); $head_str = meta_name_cut('rating',$head_str); $head_str = meta_name_cut('author',$head_str); $head_str = meta_name_cut('copyright',$head_str); $head_str = meta_name_cut('generator',$head_str); $head_str = preg_replace("/^(\s)*(\r|\n|\r\n)/m", "", $head_str); $pattern = "^"; $head_str = preg_replace("/".$pattern."/m" , "\t" , $head_str); return $head_str; } function meta_name_cut($name = '', $head_str) { $pattern = '<\s*meta\s+name\s*=\s*["\']' . $name . '["\'][^>]*?>'; $head_str = preg_replace("/".$pattern."/i" , '' , $head_str); return $head_str; } // for title reprace plugin (all in one seo pack) function get_xpress_title($contents) { $pattern = ']*?>(.*)<\s*\/\s*title\s*>'; $title_str = ''; if (preg_match("/".$pattern."/i", $contents, $head_matches)){ $title_str = $head_matches[1]; } return $title_str; } function get_xpress_meta_name($name = '',$contents) { $pattern = '<\s*meta\s+name\s*=\s*["\']' . $name . '["\']\s*content\s*=\s*[\'"](.*)[\'"]\s*\/\s*>'; $meta = ''; if (preg_match("/".$pattern."/i", $contents, $head_matches)){ $meta = @$head_matches[1]; } return $meta; } // get sidebar rendaring function get_sidebar_rander($name = null) { $templates = array(); if ( isset($name) ) $templates[] = "sidebar-{$name}.php"; $templates[] = "sidebar.php"; $link= locate_template($templates, false); if ('' == $link){ // $link = get_theme_root() . '/default/sidebar.php'; return ''; } else { ob_start(); require($link); $sidebar = ob_get_contents(); ob_end_clean(); return $sidebar; } } // < body > tag is pulled out from the header of html contents. function get_body($contents) { global $xpess_config; if (!is_object($xpess_config)) $xpess_config = new XPressME_Class(); $pattern = "]*?>(.*)<\/body>"; $body = ''; if(preg_match("/".$pattern."/s", $contents, $body_matches)){ $body = $body_matches[1]; } if ($xpess_config->is_theme_sidebar_disp){ $xpress_class = 'xpress-body'; } else { $xpress_class = 'xpress-body onecolumn'; } $pattern = ']*)>'; $body_class = 'class="' . $xpress_class . '"'; if(preg_match("/".$pattern."/s", $contents, $body_matches)){ $body_tag_option = $body_matches[1]; $pattern = 'class\s*=\s*[\'|"]([^\'|^"]*)[\'|"]'; if(preg_match("/".$pattern."/", $body_tag_option, $class_matches)){ $class_value = $class_matches[1]; $reprace = $xpress_class . ' '. $class_value; $body_class = preg_replace("/".$class_value."/", $reprace, $body_tag_option); } else { $body_class = 'class="' . $xpress_class . '" ' . $body_tag_option; } } if (!$xpess_config->is_theme_sidebar_disp){ $side_panel = get_sidebar_rander(); $body = str_replace($side_panel,'',$body); } $body = "\n
\n" . $body . "\n
\n"; return $body; } //Making of module header function get_xpress_module_header($contents) { global $xoopsTpl; if( defined( 'XOOPS_CUBE_LEGACY' ) ) { $preload_make_module_header = $xoopsTpl->get_template_vars('xoops_module_header'); } else { $preload_make_module_header = ''; } if (! empty($preload_make_module_header)){ $preload_make_module_header = ' ' . $preload_make_module_header . ' '; } $wp_module_header = ' ' . get_mod_header($contents) . ' '; $wp_module_header .= "\n\n"; return $preload_make_module_header . $wp_module_header; } //PHP_SELF and GET are remake for the XOOPS event notification. function xpress_remake_global_for_permlink(){ global $wp_db,$wp_query; $php_self = $_SERVER['PHP_SELF']; $get = $_GET; if (preg_match('/\/$/',$php_self) && !preg_match('/index.php/',$php_self)) { $php_self = $php_self . 'index.php'; $_SERVER['PHP_SELF'] = $php_self; } if (empty($_GET)){ $query_vars = $wp_query->query_vars; $post = $wp_query->post; if ($wp_query->is_single) { $_GET = array('p'=>$post->ID); } else if($wp_query->is_category){ $_GET = array('cat'=>$query_vars['cat']); } else if($wp_query->is_author){ $_GET = array('author'=>$query_vars['author']); } } } function xpress_meta_assign($meta_key,$meta_word){ global $xoopsTpl,$xoTheme; //for XOOPS if (!empty($meta_key) && !empty($meta_word)){ if (defined('LEGACY_MODULE_VERSION') && version_compare(LEGACY_MODULE_VERSION, '2.2', '>=')) { // For XCL 2.2 $xclRoot =& XCube_Root::getSingleton(); $headerScript = $xclRoot->mContext->getAttribute('headerScript'); $headerScript->addMeta($meta_key, $meta_word); } elseif (isset($xoTheme) && is_object($xoTheme)) { // For XOOPS 2.3 or higher & Impress CMS. $xoTheme->addMeta('meta', $meta_key, $meta_word); } $xoopsTpl->assign('xoops_meta_'. $meta_key, $meta_word); } } function xpress_get_xoops_meta($meta_key){ global $xoopsTpl,$xoTheme; //for XOOPS if (defined('LEGACY_MODULE_VERSION') && version_compare(LEGACY_MODULE_VERSION, '2.2', '>=')) { // For XCL 2.2 $moduleHandler =& xoops_gethandler('module'); $legacyRender =& $moduleHandler->getByDirname('legacyRender'); $configHandler =& xoops_gethandler('config'); $configs =& $configHandler->getConfigsByCat(0, $legacyRender->get('mid')); $ret = htmlspecialchars($configs['meta_'.$meta_key]); } elseif (isset($xoTheme) && is_object($xoTheme)) { $ret = $xoTheme->metas['meta'][$meta_key]; } else { $ret = $xoopsTpl->get_template_vars('xoops_meta_'.$meta_key); } return $ret; } //rendering for the module header and the body function xpress_render($contents){ global $xoops_config; global $xoopsUser , $xoopsTpl,$xpress_config , $xoopsModule , $xoopsLogger, $xoopsConfig ; //for XOOPS //disable cache $xoopsConfig['module_cache'][$xoopsModule->getVar('mid')] = 0; require_once( ABSPATH .'/include/xpress_breadcrumbs.php' ); $xoops_breadcrumbs = get_breadcrumbs(); xpress_remake_global_for_permlink(); $mydirname = basename(dirname(dirname(__FILE__))); if (defined('LEGACY_BASE_VERSION') && version_compare(LEGACY_BASE_VERSION, '2.2.1.1', '>=')) { $module_handler =& xoops_gethandler('module'); $thisModule =& $module_handler->getByDirname($mydirname); $thisModule->modinfo = null; } include $xoops_config->xoops_root_path ."/header.php"; $xoopsTpl->assign('xoops_breadcrumbs', $xoops_breadcrumbs); $xoopsTpl->assign('xoops_module_header', get_xpress_module_header($contents)); $page_title = $GLOBALS["xoopsModule"]->getVar("name"). ' »'. get_xpress_title($contents); $xoopsTpl->assign('xoops_pagetitle', $page_title); $xoops_keywords = xpress_get_xoops_meta('keywords'); $wp_keyword = get_xpress_meta_name('keywords',$contents); switch ($xpress_config->meta_keyword_type){ case 'xoops': break; case 'wordpress': if (!empty($wp_keyword)){ xpress_meta_assign('keywords', $wp_keyword); } break; case 'wordpress_xoops': if (!empty($wp_keyword)){ if (!empty($xoops_keywords)){ $keywords = $wp_keyword . ', ' . $xoops_keywords; } else { $keywords = $wp_keyword; } xpress_meta_assign('keywords', $keywords); } break; default : } $xoops_description = xpress_get_xoops_meta('description'); $wp_description = get_xpress_meta_name('description',$contents); switch ($xpress_config->meta_description_type){ case 'xoops': break; case 'wordpress': if (!empty($wp_description)){ xpress_meta_assign('description', $wp_description); } break; case 'wordpress_xoops': if (!empty($wp_description)){ if (!empty($xoops_description)){ $description = $wp_description . ' ' . $xoops_description; } else { $description = $wp_description; } xpress_meta_assign('description', $description); } break; default : } $wp_robots = get_xpress_meta_name('robots',$contents); switch ($xpress_config->meta_robot_type){ case 'xoops': break; case 'wordpress': if (!empty($wp_robots)) xpress_meta_assign('robots', $wp_robots); break; default : } if (empty($contents)){ $template_name = get_option('template'); $xpress_data['body_contents'] = "

Themes \"$template_name\" is broken or doesn't exist.

Please choose the right theme from the admin page of wordpress.

"; } else { $xpress_data['body_contents'] = get_body($contents); } // used $GLOBALS. becose xpress_left_arrow_post_link() and xpress_right_arrow_post_link() is other loop in this position $xpress_data['left_post_link'] = @$GLOBALS['left_arrow_post_link']; $xpress_data['right_post_link'] = @$GLOBALS['right_arrow_post_link']; $xpress_data['left_posts_link'] = str_replace('«','',xpress_left_arrow_posts_link('echo=0')); $xpress_data['right_posts_link'] = str_replace('»','',xpress_right_arrow_posts_link('echo=0')); $xpress_data['now_user_level'] = xpress_now_user_level('echo=0'); //If notification_select.php is not executed in CMS other than XCL, the selector of in-line is not displayed. if (is_object($xoopsModule) && $xoopsModule->getVar('hasnotification') == 1 && is_object($xoopsUser)) { require_once $xoops_config->xoops_root_path . '/include/notification_select.php'; } $xoopsTpl->assign('xpress', $xpress_data); $templates_file = 'db:'.$mydirname. '_index.html'; echo $xoopsTpl->fetch( $templates_file ) ; include $xoops_config->xoops_root_path . '/footer.php'; } ?>