function blog_list_block($options) { $mydirname = empty($options[0]) ? 'xpress' : $options[0]; $this_template = empty($options[1]) ? 'db:' . $mydirname . '_block_category.html' : trim($options[1]); $orderby = empty($options[2]) ? 'name' : $options[2]; $order = empty($options[3]) ? 'ASC' : $options[3]; if (xpress_is_multiblog() && function_exists('get_blog_list')) { $blogs = get_blog_list(0, 'all'); $data = array(); foreach ($blogs as $blog) { $url = get_blog_option($blog['blog_id'], 'siteurl'); $blog_name = get_blog_option($blog['blog_id'], 'blogname'); $blog_link = "<a href=\" {$url} \"> {$blog_name} </a>"; $blog_id = $blog['blog_id']; $post_count = $blog['postcount']; $last_post_date = ''; $last_post_time = ''; $last_post_date_time = ''; $row_data = array('blog_id' => $blog_id, 'blog_name' => $blog_link, 'last_post_date' => $last_post_date, 'last_post_time' => $last_post_time, 'post_date_time' => $last_post_date_time, 'last_post_date_time' => $post_modified_date, 'post_count' => $post_count); $data[] = $row_data; } if (strcmp($order, 'ASC') == 0) { switch ($orderby) { case 'count': usort($data, "r_post_count_cmp"); break; case 'ID': usort($data, "r_blog_id_cmp"); break; default: usort($data, "r_blog_name_cmp"); } } else { switch ($orderby) { case 'count': usort($data, "post_count_cmp"); break; case 'ID': usort($data, "blog_id_cmp"); break; default: usort($data, "blog_name_cmp"); } } $block = array(); $item_no = 0; foreach ($data as $row) { $block['contents']['item' . $item_no] = $row; $item_no++; } // end of foreach $block['data_count'] = $item_no; //xml unserialise error } else { $block['err_message'] = __('This blog is not set to the multi blog.', 'xpress'); } return $block; }
function global_recent_posts_list_block($options) { $mydirname = empty($options[0]) ? 'xpress' : $options[0]; $this_template = empty($options[1]) ? 'db:' . $mydirname . '_global_recent_posts_list_block.html' : trim($options[1]); $disp_count = empty($options[2]) ? '10' : $options[2]; $disp_red = empty($options[3]) ? '1' : $options[3]; $disp_green = empty($options[4]) ? '7' : $options[4]; $date_format = empty($options[5]) ? '' : $options[5]; $time_format = empty($options[6]) ? '' : $options[6]; $shown_for_each_blog = empty($options[7]) ? false : true; $exclusion_blog = empty($options[8]) ? '0' : $options[8]; $mydirpath = get_xpress_dir_path(); if (xpress_is_multiblog() && function_exists('get_blog_list')) { if (empty($date_format)) { $date_format = get_settings('date_format'); } if (empty($time_format)) { $time_format = get_settings('time_format'); } if (empty($tag_select)) { $tag_where = ''; } else { $tag_where = "tag='{$tag_select}'&"; } global $wpdb, $wp_query; $block = array(); $data_array = xpress_grobal_recent_posts($disp_count, $exclusion_blog, $shown_for_each_blog); $item_no = 0; $red_sec = $disp_red * 60 * 60 * 24; $green_sec = $disp_green * 60 * 60 * 24; foreach ($data_array as $data) { $elapse = time() - $data->post_unix_time; $new_mark = ''; if ($elapse < $red_sec) { $new_mark = '<em style="color: red; font-size: small;">New! </em>'; } else { if ($elapse < $green_sec) { $new_mark = '<em style="color: green; font-size: small;">New! </em>'; } } $data->new_mark = $new_mark; $row_data = get_object_vars($data); $block['contents']['item' . $item_no] = $row_data; $item_no++; } $block['data_count'] = $item_no; //xml unserialise error $block['shown_for_each_blog'] = $shown_for_each_blog; } else { $block['err_message'] = __('This blog is not set to the multi blog.', 'xpress'); } return $block; }
function my_plugin_menu() { global $xpress_config, $xoops_config; $plugin_url = WP_PLUGIN_URL . "/xpressme/"; // Add a new top-level menu: add_menu_page('XPressME', 'XPressME', 8, __FILE__, 'display_option_page', $plugin_url . '/images/menu_icon.png'); // Add submenus to the custom top-level menu: add_submenu_page(__FILE__, __('Display Settings', 'xpressme'), __('Display Settings', 'xpressme'), 8, __FILE__, 'display_option_page'); add_submenu_page(__FILE__, __('Integration Settings', 'xpressme'), __('Integration Settings', 'xpressme'), 8, 'integration_option_page', 'integration_option_page'); add_submenu_page(__FILE__, __('Other Settings', 'xpressme'), __('Other Settings', 'xpressme'), 8, 'other_option_page', 'other_option_page'); // if (function_exists('wp_remote_get')) if (!xpress_is_multiblog() || xpress_is_multiblog_root()) { add_submenu_page(__FILE__, __('Upgrade', 'xpressme'), __('Upgrade', 'xpressme'), 8, 'upgrade_page', 'upgrade_page'); add_submenu_page(__FILE__, __('to Modules Admin', 'xpressme'), __('to Modules Admin', 'xpressme'), 8, 'redirect_xoops_admin', 'redirect_xoops_admin'); } }
function global_recent_comments_block($options) { $mydirname = empty($options[0]) ? 'xpress' : $options[0]; $this_template = empty($options[1]) ? 'db:' . $mydirname . '_global_recent_comments_block.html' : trim($options[1]); $disp_count = empty($options[2]) ? '10' : $options[2]; $disp_length = empty($options[3]) ? '30' : $options[3]; $date_format = empty($options[4]) ? '' : $options[4]; $time_format = empty($options[5]) ? '' : $options[5]; $com_select = empty($options[6]) ? '0' : $options[6]; $selected = explode(',', $com_select); $mydirpath = get_xpress_dir_path(); if (empty($date_format)) { $date_format = get_settings('date_format'); } if (empty($time_format)) { $time_format = get_settings('time_format'); } $disp_all = in_array('0', $selected); $disp_comment = in_array('1', $selected); $disp_trackback = in_array('2', $selected); $disp_pingback = in_array('3', $selected); $type_select = ''; if (!$disp_all) { if ($disp_comment) { $in_where = "''"; } if ($disp_trackback) { if (empty($in_where)) { $in_where = "'trackback' "; } else { $in_where .= ",'trackback'"; } } if ($disp_pingback) { if (empty($in_where)) { $in_where = "'pingback' "; } else { $in_where .= ",'pingback'"; } } if (!empty($in_where)) { $type_select = " AND comment_type IN({$in_where}) "; } } global $wpdb, $wp_rewrite, $switched, $blog_id; $block = array(); $comment_array = array(); if (xpress_is_multiblog()) { $blogs = get_blog_list(0, 'all'); foreach ($blogs as $blog) { switch_to_blog($blog['blog_id']); $wp_rewrite->init(); if (!is_null($wpdb)) { $comment_sql = "SELECT comment_ID,comment_post_ID,comment_author,comment_author_email,comment_author_url,comment_content, comment_type,UNIX_TIMESTAMP(comment_date) as comment_unix_time "; $comment_sql .= "FROM {$wpdb->comments} LEFT JOIN {$wpdb->posts} ON {$wpdb->posts}.ID = {$wpdb->comments}.comment_post_ID "; if (xpress_is_wp_version('<', '2.1')) { $comment_sql .= "WHERE comment_approved = '1' AND post_status = 'publish' {$type_select} "; } else { $comment_sql .= "WHERE comment_approved = '1' AND post_type = 'post' AND post_status = 'publish' {$type_select} "; } $comment_sql .= "ORDER BY comment_date_gmt DESC LIMIT {$disp_count}"; $comments = $wpdb->get_results($comment_sql); if ($comments) { $blog_title = get_bloginfo('name'); $blog_link = get_bloginfo('url'); $blog_title_link = '<a href="' . $blog_link . '">' . $blog_title . '</a>'; foreach ($comments as $comment) { $comment_content = $comment->comment_content; $comment_unix_time = $comment->comment_unix_time; $comment_excerpt = $disp_length > 0 ? xpress_substr($comment_content, 0, $disp_length) : $comment->comment_content; $comment_link = get_comment_link($comment->comment_ID); $comment_title = $comment_excerpt; $comment_title_link = "<a href='{$comment_link}' rel='external nofollow' class='url'>{$comment_title}</a>"; $post_link = get_permalink($comment->comment_post_ID); $post_title = get_the_title($comment->comment_post_ID); $post_title_link = '<a href="' . $post_link . '">' . $post_title . '</a>'; $author_link = $comment->comment_author_url; $author_name = $comment->comment_author; $author_name_link = empty($author_link) || 'http://' == $author_link ? $author_name : "<a href='{$author_link}' rel='external nofollow' class='url'>{$author_name}</a>"; $comment_type = empty($comment->comment_type) ? 'comment' : $comment->comment_type; $post_title_comment_link = '<a href="' . $comment_link . '">' . $post_title . '</a>'; $from_auther_to_post = sprintf(__('%1$s on %2$s', 'xpress'), $author_name_link, $post_title_comment_link); $row_data = array('blog_title' => $blog_title, 'blog_link' => $blog_link, 'blog_title_link' => $blog_title_link, 'comment_ID' => $comment->comment_ID, 'comment_post_ID' => $comment->comment_post_ID, 'comment_unix_time' => $comment_unix_time, 'comment_date' => date($date_format, $comment->comment_unix_time), 'comment_date_time' => date($date_format . ' ' . $time_format, $comment->comment_unix_time), 'comment_content' => $comment_content, 'comment_excerpt' => $comment_excerpt, 'comment_link' => $comment_link, 'comment_title' => $comment_title, 'comment_title_link' => $comment_title_link, 'post_link' => $post_link, 'post_title' => $post_title, 'post_title_link' => $post_title_link, 'author_link' => $author_link, 'author_name' => $author_name, 'author_name_link' => $author_name_link, 'comment_type' => $comment_type, 'from_auther_to_post' => $from_auther_to_post); $comment_array[] = $row_data; } $block['data_count'] = $item_no; } } restore_current_blog(); $wp_rewrite->init(); } // end of foreach usort($comment_array, "the_comment_time_cmp"); if (!empty($disp_count)) { $comment_array = array_slice($comment_array, 0, $disp_count); } $item_no = 0; foreach ($comment_array as $comment) { $block['contents']['item' . $item_no] = $comment; $item_no++; } $block['data_count'] = $item_no; } else { $block['err_message'] = __('This blog is not set to the multi blog.', 'xpress'); } return $block; }
<!-- <div id="menu_div" role="navigation"> --> <div id="menu_div"> <div id="access"> <?php if (function_exists('wp_nav_menu')) { wp_nav_menu(array('sort_column' => 'menu_order', 'container_class' => 'menu-aheader')); } ?> </div><!-- #access --> <div id="xpress-menu"> <div class="menu-header"> <div class="menu"> <ul> <?php if (xpress_is_multiblog()) { $blog_details = get_blog_details(1); $site_url = $blog_details->siteurl; echo '<li><a href="' . $site_url . '/">' . __('Main Page', 'xpress') . '</a></li>'; } ?> <li><a href="<?php echo get_option('home'); ?> /"><?php _e('Blogs Home', 'xpress'); ?> </a></li> <?php if (xpress_is_contributor()) { echo '<li>' . xpress_post_new_link('link_title=' . __('Post New', 'xpress') . '&echo=0') . '</li>';
function xpress_primary_blog_link() { global $xoops_config; global $current_user; global $blog_id; $ret = array(); if (xpress_is_multiblog() && is_user_logged_in()){ $blog_list = get_blog_list(); $root_path = get_blog_status(1,'path'); $primary_blog_id = @$current_user->primary_blog; if(empty($primary_blog_id)) return $ret; $primary_path = get_blog_status($primary_blog_id,'path'); $script = str_replace($root_path, "", $primary_path); if ($primary_blog_id !== $blog_id){ $ret['url'] = get_blogaddress_by_id($primary_blog_id); $ret['menu_url'] = $script; $ret['title'] = __('Your Primary Blog','xpressme'); $ret['link'] = '<a href="' . $ret['url'] . '">' . $ret['title'] . '</a>'; } } return $ret; }
function xpress_upload_filter($uploads) { global $xoops_config; global $blog_id, $blogname; if ($this->is_use_xoops_upload_path) { $wordpress_dir = ABSPATH; $xoops_dir = $xoops_config->xoops_upload_path . '/'; if (xpress_is_multiblog() && $blog_id != BLOG_ID_CURRENT_SITE) { $wordpress_base_url = $xoops_config->module_url; } else { $wordpress_base_url = get_option('siteurl'); } $xoops_upload_url = $xoops_config->xoops_upload_url; // @rmdir($uploads[path]); //remove wordpress side uploads_dir $uploads[path] = str_replace($wordpress_dir, $xoops_dir, $uploads[path]); $uploads[basedir] = str_replace($wordpress_dir, $xoops_dir, $uploads[basedir]); $uploads[url] = str_replace($wordpress_base_url, $xoops_upload_url, $uploads[url]); $uploads[baseurl] = str_replace($wordpress_base_url, $xoops_upload_url, $uploads[baseurl]); if (xpress_is_multiblog() && $blog_id != BLOG_ID_CURRENT_SITE) { $pat = str_replace($xoops_dir, '', $uploads[path]); $pat = preg_replace('/files.*/', '', $pat); $pat = str_replace('/', '\\/', $pat); $uploads[path] = preg_replace('/' . $pat . '/', $blogname . '/', $uploads[path]); $pat = str_replace($xoops_dir, '', $uploads[basedir]); $pat = preg_replace('/files.*/', '', $pat); $pat = str_replace('/', '\\/', $pat); $uploads[basedir] = preg_replace('/' . $pat . '/', $blogname . '/', $uploads[basedir]); } // Make sure we have an uploads dir if (!wp_mkdir_p($uploads[path])) { $message = sprintf(__('Unable to create directory %s. Is its parent directory writable by the server?'), $uploads[path]); return array('error' => $message); } } return $uploads; }
function get_xoops_group_role($uid = 0) { if ($uid == 0) { return ''; } global $xoops_db; $db_groups_users_link = get_xoops_prefix() . 'groups_users_link'; $db_group_role = get_wp_prefix() . 'group_role'; $db_groups = get_xoops_prefix() . 'groups'; $blog_id_list = array(); if (function_exists('is_multisite') && is_multisite()) { $blog_id_sql = "SELECT blog_id FROM {$db_group_role} GROUP BY blog_id"; $blog_id_list = $xoops_db->get_results($blog_id_sql); } else { $std = new stdClass(); $std->blog_id = 1; $blog_id_list[] = $std; } $is_multiblog = xpress_is_multiblog(); if (defined('BLOG_ID_CURRENT_SITE')) { $root_blog_id = BLOG_ID_CURRENT_SITE; } else { $root_blog_id = 1; } $ans_array = array(); foreach ($blog_id_list as $blog_id) { $ans = array(); $sql = "SELECT * "; $sql .= "FROM {$db_groups_users_link} "; $sql .= "LEFT JOIN {$db_group_role} ON {$db_groups_users_link}.groupid = {$db_group_role}.groupid "; $sql .= "LEFT JOIN {$db_groups} ON {$db_groups_users_link}.groupid = {$db_groups}.groupid "; $sql .= "WHERE uid = {$uid} AND {$db_group_role}.blog_id = {$blog_id->blog_id}"; $user_groups = $xoops_db->get_results($sql); //default value set $ans['blog_id'] = $blog_id->blog_id; $ans['capabillities'] = ''; $ans['allway_update'] = 0; //get maximum role foreach ($user_groups as $user_group) { $is_blog_root = !$is_multiblog || $user_group->blog_id == $root_blog_id; if ($user_group->group_type == 'Admin' && $is_blog_root) { $ans['capabillities'] = 'administrator'; if ($user_group->groupid = 1) { //It always rewrites it as WordPress adninistrator for an initial admin group of XOOPS. $ans['allway_update'] = 1; } else { // admin groups other than initial admin group of XOOPS // It group rewrites group_type of the data base in Admin. $ans['allway_update'] = $user_group->login_all; } break; } $before_level = get_role_level($ans['capabillities']); $now_level = get_role_level($user_group->role); if ($now_level > $before_level) { $ans['capabillities'] = $user_group->role; $ans['allway_update'] = $user_group->login_all; } } $ans_array[] = $ans; } return $ans_array; }
function global_popular_posts_block($options) { $mydirname = empty( $options[0] ) ? 'xpress' : $options[0] ; $this_template = empty( $options[1] ) ? 'db:'.$mydirname.'_grobal_popular_posts_block.html' : trim( $options[1] ); $disp_count = empty( $options[2] ) ? '10' : $options[2] ; $show_month_range = empty( $options[3] ) ? '0' : $options[3] ; $date_format = empty( $options[4] ) ? '' : $options[4] ; $time_format = empty( $options[5] ) ? '' : $options[5] ; $selected = explode(',' , $cat_select); $mydirpath = get_xpress_dir_path(); if (empty($date_format)) $date_format = get_settings('date_format'); if (empty($time_format)) $time_format = get_settings('time_format'); $cat_select; $block = array(); $item_no = 0; $selected_author_id = xpress_selected_author_id('echo=0'); $data_array = array(); global $wpdb,$wp_query,$xoops_db,$wp_rewrite; if (xpress_is_multiblog()){ $blogs = get_blog_list(0,'all'); foreach ($blogs AS $blog) { switch_to_blog($blog['blog_id']); $wp_rewrite->init(); $blog_title = get_bloginfo('name'); $blog_link = get_bloginfo('url'); $blog_title_link = '<a href="' . $blog_link . '">' . $blog_title . '</a>' ; $db_prefix = get_wp_prefix(); $post_tb = $wpdb->posts; $view_tb = $db_prefix . 'views'; $user_tb = $db_prefix . 'users'; $term_relationships_tb = $wpdb->term_relationships; // upper 2.3 $term_taxonomy = $wpdb->term_taxonomy; // upper 2.3 $terms_tb = $wpdb->terms; // upper 2.3 $post2cat_tb = $wpdb->post2cat; //under 2.3 $categories_tb = $wpdb->categories; //under 2.3 include ($mydirpath . '/wp-includes/version.php'); $select = "SELECT $view_tb.post_views, $post_tb.ID, $post_tb.post_title, $post_tb.post_date"; if ($wp_db_version >= 6124){ $from = " FROM ((("; $from .= " $post_tb LEFT JOIN $view_tb ON $post_tb.ID = $view_tb.post_id)"; $from .= " INNER JOIN $term_relationships_tb ON $post_tb.ID = $term_relationships_tb.object_id)"; $from .= " INNER JOIN $term_taxonomy ON $term_relationships_tb.term_taxonomy_id = $term_taxonomy.term_taxonomy_id)"; $from .= " INNER JOIN $terms_tb ON $term_taxonomy.term_id = $terms_tb.term_id "; $where = " WHERE $post_tb.post_type = 'post' AND $post_tb.post_status = 'publish'"; } else { $from = " FROM (("; $from .= " $post_tb LEFT JOIN $view_tb ON $post_tb.ID = $view_tb.post_id)"; $from .= " LEFT JOIN $post2cat_tb ON $post_tb.ID = $post2cat_tb.post_id)"; $from .= " INNER JOIN $user_tb ON $post_tb.post_author = $user_tb.ID"; $where = " WHERE ($post_tb.post_status = 'publish') AND (UNIX_TIMESTAMP($post_tb.post_date) <= UNIX_TIMESTAMP())" ; } if ($show_month_range > 0) { $where .= " AND (UNIX_TIMESTAMP($post_tb.post_date) >= UNIX_TIMESTAMP(DATE_ADD(CURRENT_DATE, INTERVAL -$show_month_range month)))"; } $order_limmit = " GROUP BY $post_tb.ID ORDER BY $view_tb.post_views DESC LIMIT 0, $disp_count"; $sql = $select . $from . $where . $order_limmit; $populars = $wpdb->get_results($sql); foreach ($populars as $popular){ $wp_query->in_the_loop = true; //for use the_tags() in multi lopp $r = new WP_Query("p=$popular->ID"); if($r->have_posts()){ $r->the_post(); ob_start(); the_ID(); $post_id = ob_get_contents(); ob_end_clean(); ob_start(); the_title(); $title = ob_get_contents(); ob_end_clean(); ob_start(); the_permalink(); $permalink = ob_get_contents(); ob_end_clean(); ob_start(); the_author_posts_link(); $author = ob_get_contents(); ob_end_clean(); ob_start(); the_category(' • '); $category = ob_get_contents(); ob_end_clean(); if (function_exists('the_tags')){ ob_start(); the_tags(__('Tags:', 'xpress') . ' ',' • ',''); $tags = ob_get_contents(); ob_end_clean(); } else { $tags = ''; } ob_start(); the_modified_date($date_format); $post_modified_date = ob_get_contents(); ob_end_clean(); ob_start(); the_modified_date($time_format); $post_modified_time = ob_get_contents(); ob_end_clean(); ob_start(); the_time($date_format); $post_date = ob_get_contents(); ob_end_clean(); ob_start(); the_time($time_format); $post_time = ob_get_contents(); ob_end_clean(); ob_start(); comments_popup_link(__('Comments (0)'), __('Comments (1)'), __('Comments (%)')); $comments_popup_link = ob_get_contents(); ob_end_clean(); $post_title = '<a href="' . $permalink . '">' . $title . '</a>'; $post_date_time = $post_date . ' ' . $post_time ; $post_modified_date_time = $post_modified_date . ' ' . $post_modified_time ; $trackback_url = trackback_url(false); $post_views = xpress_post_views_count('post_id=' . $post_id . '&format=' . __('Views :%d', 'xpress'). '&echo=0'); $post_views_num = (int) xpress_post_views_count("post_id={$post_id}&format=%d&echo=0"); $row_data = array( 'blog_title' => $blog_title , 'blog_link' => $blog_link , 'blog_title_link' => $blog_title_link , 'post_id' => $post_id , 'post_title' => $post_title , 'post_date' => $post_date , 'post_time' => $post_time , 'post_date_time' => $post_date_time , 'post_modified_date' => $post_modified_date , 'post_modified_time' => $post_modified_time , 'post_modified_date_time' => $post_modified_date_time , 'post_author' => $author , 'post_category' => $category , 'post_tags' => $tags, 'post_views' => $post_views, 'post_views_num' => $post_views_num, 'comment_link' => $comments_popup_link , 'trackback_url' => $trackback_url ); $data_array[] = $row_data; } } // end of foreach restore_current_blog(); $wp_rewrite->init(); } usort($data_array, "post_views_cmp"); if (!empty($disp_count)){ $data_array = array_slice($data_array,0,$disp_count); } $item_no = 0; foreach ($data_array as $data) { $block['contents']['item'.$item_no] = $data; $item_no++; } $block['data_count'] = $item_no; } else { $block['err_message'] = __('This blog is not set to the multi blog.', 'xpress'); } return $block ; }