get_var("SELECT mid FROM $modules_db WHERE dirname = '$module_dir'");
if (empty($moduleID)) return null;
$conf_value = $xoops_db->get_var("SELECT conf_value FROM $config_db WHERE (conf_modid = $moduleID) AND (conf_name = '$config_name')");
if (empty($conf_value)) return null;
return $conf_value;
}
// xoops db
function get_xpress_dir_path()
{
return ABSPATH;
}
function get_xpress_dir_name()
{
return basename(ABSPATH);
}
function get_wp_prefix_only()
{
$dir_name = get_xpress_dir_name();
$prefix = $dir_name;
if ($prefix == 'wordpress') $prefix = 'wp';
$prefix = $prefix . '_';
return $prefix;
}
function get_xoops_prefix()
{
global $xoops_config;
$ret =$xoops_config->xoops_db_prefix . '_';
return $ret;
}
function get_xoops_trust_path()
{
global $xoops_config;
$ret =$xoops_config->xoops_trust_path;
return $ret;
}
function get_xoops_root_path()
{
global $xoops_config;
$ret =$xoops_config->xoops_root_path;
return $ret;
}
function get_wp_prefix()
{
$prefix = get_xoops_prefix() . get_wp_prefix_only();
return $prefix;
}
function get_xoops_url()
{
global $xoops_config;
$ret =$xoops_config->xoops_url ;
return $ret;
}
function get_xpress_url()
{
global $xoops_config;
$ret =$xoops_config->module_url ;
return $ret;
}
function get_xpress_modid()
{
global $xoops_db;
$modulename = get_xpress_dir_name();
$sql = "SELECT mid FROM " . get_xoops_prefix() . "modules WHERE dirname = '$modulename'";
$mid = $xoops_db->get_var($sql);
return $mid;
}
function get_xpress_db_version()
{
include get_xpress_dir_path() . '/wp-includes/version.php';
return $wp_db_version;
}
function is_xpress_mobile()
{
//ktai_style
if (function_exists('is_ktai')){
if (is_ktai()) {
// $file_path = $GLOBALS['xoopsModuleConfig']["ktai_style_tmpdir"] . '/comments.php';
return true;
}
}
//mobg
if (function_exists('is_mobile')) {
if (is_mobile()){
return true;
}
}
if (
preg_match("/DoCoMo/", $_SERVER['HTTP_USER_AGENT']) ||
preg_match("/softbank/", $_SERVER['HTTP_USER_AGENT']) ||
preg_match("/vodafone/", $_SERVER['HTTP_USER_AGENT']) ||
preg_match("/J-PHONE/", $_SERVER['HTTP_USER_AGENT']) ||
preg_match("/UP\.Browser/", $_SERVER['HTTP_USER_AGENT']) ||
preg_match("/ASTEL/", $_SERVER['HTTP_USER_AGENT']) ||
preg_match("/PDXGW/", $_SERVER['HTTP_USER_AGENT'])
)
{
return true;
} else {
return false;
}
}
function block_cache_refresh()
{
global $xoops_db;
$mid = get_xpress_modid();
$sql = "SELECT bid,options,func_file FROM " . get_xoops_prefix() . "newblocks WHERE mid = $mid";
$blocks = $xoops_db->get_results($sql);
$mydirname = get_xpress_dir_name();
require_once get_xpress_dir_path() . '/include/xpress_block_render.php';
foreach($blocks as $block){
$func_file = $block->func_file;
$call_theme_function_name = str_replace(".php", "", $func_file);
$inc_theme_file_name = str_replace(".php", "", $func_file) . '_theme.php';
$cache_title = str_replace(".php", "", $func_file);
$blockID = $block->bid;
$options = explode("|", $block->options);
$block_theme_file = get_block_file_path($mydirname,$inc_theme_file_name);
require_once $block_theme_file;
$block_render = $call_theme_function_name($options); //The block name and the called function name should be assumed to be the same name.
$xml['block'] = $block_render;
$xml['block']['options'] = $block->options;
xpress_block_cache_write($mydirname,$cache_title. $blockID, $xml);
}
}
function is_wordpress_style()
{
global $xpress_config;
if ($xpress_config->viewer_type == 'wordpress') return true;
if ($xpress_config->viewer_type == 'xoops') return false;
// user select
$get_style = isset($_GET["style"]) ? $_GET["style"] : '';
$cookie_style = isset($_COOKIE["xpress_style"]) ? $_COOKIE["xpress_style"] : '';
// set style
if (!empty($get_style)){
$style = $get_style;
} else {
if (!empty($cookie_style)){
$style = $cookie_style;
} else {
$style = 'x';
}
}
// set cookie
if (empty($cookie_style)){
setcookie("xpress_style", $style);
$_COOKIE["xpress_style"] = $style;
} else {
if ($style != $cookie_style) {
setcookie("xpress_style", $style);
$_COOKIE["xpress_style"] = $style;
}
}
if ($style == 'w') {
return true;
} else {
return false;
}
}
function wp_meta_add_xpress_menu()
{
global $xpress_config;
if ($xpress_config->viewer_type == 'user_select'){
echo disp_mode_set();
}
if (function_exists('wp_theme_switcher') ) {
echo '
' . __('Themes') . ':';
wp_theme_switcher('dropdown');
echo '';
}
}
function disp_mode_set(){
global $xpress_config;
$select ="";
if ($xpress_config->viewer_type == 'user_select'){
$style = isset($_GET["style"]) ? $_GET["style"] : (isset($_COOKIE["xpress_style"]) ? $_COOKIE["xpress_style"] : "");
switch($style) {
case 'w':
$select =''.__('Switch to XOOPS mode','xpressme').'';
// $select.='
';
break;
case 'x':
$select=''.__('Switch to WordPress mode','xpressme').'';
break;
default:
$select=''.__('Switch to WordPress mode','xpressme').'';
break;
}
}
return $select;
}
function xpress_comment_count( $count ) {
global $id;
$post_comments =get_comments('status=approve&post_id=' . $id);
$comments_by_type = &separate_comments($post_comments);
return count($comments_by_type['comment']);
}
function xpress_set_author_cookie($query_vars)
{
global $wp , $wpdb;
if (is_admin()) return $query_vars;
$author_cookie = get_xpress_dir_name() . "_select_author" ;
if(xpress_is_multi_user()){
if (!empty($_GET)){
$auth = intval( @$_GET["author"] );
if ($auth > 0){
setcookie($author_cookie, $auth, time()+3600, COOKIEPATH);
$_COOKIE[$author_cookie] = $auth;
}
} else {
if(xpress_is_wp_version('<','2.1')){ // Maybe, I think that it is ver2.1 or less.
if (!empty($wp->matched_query) ){
if (strpos($wp->matched_query,'author_name') !== false ){
$pattern = "author_name\s*=\s*(.*)\s*";
if ( preg_match ( "/".$pattern."/i", $wp->matched_query, $match ) ){
$author_name = "$match[1]";
$auth = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$author_name'");
setcookie($author_cookie, $auth, time()+3600, COOKIEPATH);
$_COOKIE[$author_cookie] = $auth;
}
}
} else {
setcookie($author_cookie, 0, time()+3600, COOKIEPATH);
$_COOKIE[$author_cookie] = 0;
}
} else {
if (!empty($wp->query_vars) ){
if (!empty($wp->query_vars['author_name']) ){
$author_name = $wp->query_vars['author_name'];
$auth = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login = '$author_name'");
setcookie($author_cookie, $auth, time()+3600, COOKIEPATH);
$_COOKIE[$author_cookie] = $auth;
}
} else {
setcookie($author_cookie, 0, time()+3600, COOKIEPATH);
$_COOKIE[$author_cookie] = 0;
}
}
}
}else{
// $GLOBALS["wp_xoops_author"] = null;
setcookie($author_cookie, 0, time()+3600, COOKIEPATH);
$_COOKIE[$author_cookie] = 0;
}
return $query_vars;
}
function xpress_query_filter(&$query)
{
if (is_admin()) return $query;
$author_cookie = get_xpress_dir_name() . "_select_author" ;
if (strpos($query,'SELECT') === false) return $query;
$select_pattern = "SELECT(.*)post_author(.*)FROM";
if (preg_match ( "/".$select_pattern."/i", $query, $select_match ))
return $query;
$query = preg_replace('/\s\s+/', ' ', $query);
if (!empty($_COOKIE[$author_cookie])){
if(xpress_is_wp_version('<','2.1')){
$pattern = "WHERE.*AND\s?\(*post_author\s*=";
if ( preg_match ( "/".$pattern."/i", $query, $match ) ){
return $query;
}
$pattern = "WHERE\s?post_author\s*="; // get_usernumposts()
if ( preg_match ( "/".$pattern."/i", $query, $match ) ){
return $query;
}
$pattern = "WHERE.*post_status\s*=\s*'publish'\s*\)?";
if ( preg_match ( "/".$pattern."/i", $query, $match ) ){
$where_str = "$match[0]";
$where_arry = split(' ',$where_str);
$post_prefix = '';
foreach ($where_arry as $p){
if ( preg_match ( "/post_status/", $p, $match3 ) ){
$post_prefix = preg_replace("/post_status/", "", $p);
$post_prefix = preg_replace("/\(/", "", $post_prefix);
break;
}
}
$patern = 'WHERE';
$replace = "WHERE {$post_prefix}post_author = " . intval($_COOKIE[$author_cookie]) . " AND ";
$query = preg_replace("/$patern/", $replace, $query);
}
} else {
$pattern = "WHERE.*post_type\s*=\s*'post'\s*\)?";
if ( preg_match ( "/".$pattern."/i", $query, $match ) ){
$where_str = "$match[0]";
$where_arry = split(' ',$where_str);
$post_prefix = '';
foreach ($where_arry as $p){
if ( preg_match ( "/post_type/", $p, $match3 ) ){
$post_prefix = preg_replace("/post_type/", "", $p);
$post_prefix = preg_replace("/\(/", "", $post_prefix);
break;
}
}
preg_match ( "/post_type(.*)/", $where_str, $p_match );
$patern_s = $p_match[0];
$patern = preg_replace('/\)/', '\)', $patern_s);
$replace = $patern_s . " AND {$post_prefix}post_author = " . intval($_COOKIE[$author_cookie]) . " ";
$query = preg_replace("/$patern/", $replace, $query);
}
}
}
// xpress_show_sql_quary($query);
return $query;
}
function safe_site_url_filter($site_url){
global $xoops_config;
if (!$xoops_config->is_wpmu){
if ($site_url != get_xpress_url()) $site_url = get_xpress_url();
}
return $site_url;
}
?>