url = $url[0]; $this -> register_plugin($this -> name, __FILE__); $this -> initialize_options(); $this -> add_action('widgets_init', 'mref_widget_register', 10, 1); $this -> add_action('admin_head'); $this -> add_action('wp_head'); return true; } function mref_widget($args = array(), $widget_args = array()) { extract($args, EXTR_SKIP); if (is_numeric($widget_args)) { $widget_args = array('number' => $widget_args); } $widget_args = wp_parse_args($widget_args, array('number' => -1)); extract($widget_args, EXTR_SKIP); $options = get_option('mref-widget'); $title = $options[$number]['title']; $candisplay=''; if($options[$number]['allcategories'] == '' && $options[$number]['postcategory']=='') { $candisplay='yes'; }else{ if (is_category()){ if($options[$number]['allcategories'] == 'Y') { //dispaly the widget here $candisplay='yes'; }else{ if($options[$number]['postcategory']!='') { $curcatid = get_query_var('cat'); $postcategory = explode(",", $options[$number]['postcategory']); foreach($postcategory as $postcat){ if($curcatid == $postcat) { $candisplay='yes'; }//endif }//endforeach }//endif }//end else }//endif }//endif if($candisplay){ //dispaly the widget here if (empty($options[$number])) { return; } $title = $options[$number]['title']; $recent = $options[$number]['recent']; $orderby = $options[$number]['orderby']; $order = $options[$number]['order']; $max_length = $options[$number]['max_length']; $exclude = $options[$number]['exclude']; $numberitems = $options[$number]['numberitems']; $rotateposts = $options[$number]['rotateposts']; $linkdescriptions = $options[$number]['linkdescriptions']; $catrsslinks = $options[$number]['catrsslinks']; $itemdates = $options[$number]['itemdates']; $dateformat = $options[$number]['dateformat']; $pagesparent = $options[$number]['pagesparent']; $hide_empty = $options[$number]['hide_empty']; $titlelink = $options[$number]['titlelink']; $titlelinkurl = $options[$number]['titlelinkurl']; $levels = $options[$number]['levels']; if (preg_match("%^([posts|pages]*)\-.*?$%si", $recent, $matches)) { $post_type = rtrim($matches[1], 's'); if ($post_type == "post") { preg_match("%^posts\-(.*?)$%si", $recent, $matches); $category = $matches[1]; $newcategory = (empty($category) || $category == "all") ? false : $category; //should posts be rotated by category? if (!empty($rotateposts) && $rotateposts == "Y") { $category_args = array( 'type' => "post", 'number' => false, 'orderby' => "name", 'order' => "ASC", 'hide_empty' => true, ); $currid = 0; if ($categories = get_categories($category_args)) { //check if a category's posts has been rotated if (${'rotateposts' . $number} = $this -> get_option('rotateposts' . $number)) { if (!empty($categories[${'rotateposts' . $number}])) { $newcategory = $categories[${'rotateposts' . $number}] -> cat_ID; $currid = ${'rotateposts' . $number}; } else { $newcategory = $categories[0] -> cat_ID; } } else { $newcategory = $categories[0] -> cat_ID; } } $this -> update_option('rotateposts' . $number, ($currid + 1)); } //WP post arguments for get_posts() $post_args = array( 'numberposts' => (empty($numberitems)) ? false : $numberitems, 'category' => $newcategory, 'orderby' => (empty($orderby) || $orderby == "name") ? 'title' : 'date', 'order' => (empty($order) || $order == "ASC") ? 'ASC' : 'DESC', 'exclude' => (empty($exclude)) ? false : $exclude, 'post_type' => $post_type ); if ($posts = get_posts($post_args)) { $items = array(); foreach ($posts as $post) { $items[] = array( 'title' => $post -> post_title, 'post_ID' => $post -> ID, 'href' => get_permalink($post -> ID), 'date' => date($dateformat, strtotime($post -> post_date)), ); } } } elseif ($post_type == "page") { preg_match("%^pages\-(.*?)$%si", $recent, $matches); $child_of = $matches[1]; if (!empty($child_of) && $child_of != "all" && $child_of != 0 && $pagesparent == "Y") { $parent = get_page($child_of); $args['parent']['title'] = $parent -> post_title; $args['parent']['href'] = get_permalink($parent -> ID); } $page_args = array( 'post_parent' => (empty($child_of) || $child_of == "all") ? 0 : $child_of, 'order' => (empty($order) || $order == "ASC") ? 'ASC' : 'DESC', 'orderby' => (empty($orderby) || $orderby == "name") ? 'post_title' : 'post_date', 'post__not_in' => (empty($exclude)) ? false : explode(",",$exclude), 'post_type' => 'page', 'posts_per_page' => (empty($numberitems)) ? false : (int)$numberitems ); $pages =query_posts($page_args); foreach ($pages as $page) { $items[] = array( 'title' => $page -> post_title, 'href' => get_permalink($page -> ID), 'date' => date($dateformat, strtotime($page -> post_date)), 'page_ID' => $page -> ID ); $childargs = array( 'child_of' => $page -> ID, 'order' => $order, 'orderby' => $orderby, 'exclude' => $exclude ); $usedpages[] = $page -> ID; $this -> get_pages($childargs); } wp_reset_query(); } } elseif (ereg("categories", $recent)) { preg_match("%^categories\-(.*?)$%i", $recent, $matches); $parent_id = $matches[1]; if (!empty($parent_id) && $parent_id != "all" && $parent_id != 0 && $pagesparent == "Y") { $parent = get_category($parent_id); $args['parent']['title'] = $parent -> cat_name; $args['parent']['href'] = get_category_link($parent -> cat_ID); $allcategories = false; } else { $allcategories = true; } $category_args = array( 'number' => (empty($numberitems)) ? false : $numberitems, 'parent' => ($parent_id == "all") ? false : $parent_id, 'order' => $order, 'orderby' => (empty($orderby) || $orderby != "date") ? 'name' : 'ID', 'exclude' => (empty($exclude)) ? false : $exclude, 'hide_empty' => (empty($hide_empty) || $hide_empty == "Y") ? true : false ); if ($categories = get_categories($category_args)) { global $items, $levels; $items = array(); $levels = $options[$number]['levels']; $c = 0; foreach ($categories as $category) { $items[$c] = array( 'title' => $category -> cat_name, 'href' => get_category_link($category -> cat_ID), 'cat_ID' => $category -> cat_ID ); $childargs = array( 'parent' => $category -> cat_ID, 'order' => $order, 'orderby' => (empty($orderby) || $orderby != "date") ? 'name' : 'ID', 'exclude' => (empty($exclude)) ? false : $exclude, 'hide_empty' => true ); $this -> get_categories($childargs); $c++; } } } elseif (ereg("links", $recent)) { preg_match("%^links\-(.*?)$%si", $recent, $matches); $category = $matches[1]; $link_args = array( 'orderby' => (empty($orderby) || $orderby != "date") ? 'name' : 'updated', 'order' => $order, 'limit' => $numberitems, 'category' => (empty($category) || $category == "all") ? false : $category, 'exclude' => (empty($exclude)) ? false : $exclude ); if ($links = get_bookmarks($link_args)) { $items = array(); $l = 0; foreach ($links as $link) { $items[$l] = array( 'title' => $link -> link_name, 'href' => $link -> link_url, 'description' => strip_tags($link -> link_description), 'date' => $link -> link_updated ); $items[$l]['date'] = (empty($link -> link_updated) || strtotime($link -> link_updated) == false || $link -> link_updated == "0000-00-00 00:00:00") ? date("Y-m-d H:i:s", time()) : $link -> link_updated; $items[$l]['date'] = date($dateformat, strtotime($items[$l]['date'])); $l++; } } } elseif (ereg("comments", $recent)) { if (!empty($exclude)) { $exludeids = explode(",", $exclude); if (!empty($excludeids) && is_array($excludeids)) { $where_exclude = " AND"; $c = 1; foreach ($excludeids as $cid) { if (!empty($cid)) { $where_exclude .= "`comment_ID` != '" . $cid . "'"; if ($c < count($excludeids)) { $where_exclude .= " AND"; } } $c++; } } } global $wpdb; $comments_query = "SELECT * FROM `" . $wpdb -> prefix . "comments` WHERE `comment_approved` = '1' " . $where_exclude . " ORDER BY `comment_date` " . $order . " LIMIT $numberitems ;"; if ($comments = $wpdb -> get_results($comments_query)) { $items = array(); foreach ($comments as $comment) { $items[] = array( 'title' => $comment -> comment_content, 'comment_ID' => $comment -> comment_ID, 'href' => get_permalink($comment -> comment_post_ID) . "#comment-" . $comment -> comment_ID, 'date' => date($dateformat, strtotime($comment -> comment_date)), ); } } } if (!empty($items)) { if (!empty($catrsslinks) && $catrsslinks == "Y") { $catrss = ''; if($recent == "categories-all") $catrss = 'rss2&cat=all'; else if($post_type == "post" ) { $catrss = 'rss2'; } else if($recent=="comments") { $catrss = "comments-rss2"; } else $catrss = 'rss2'; $oldtitle = $title; if($post_type != "page"){ $rssatag = $title = ''; $title .= '' . __('rss', $this -> plugin_name) . ''; $title .= ' '; $title .= $rssatag; $title .= $oldtitle; $title .= ''; } if (!empty($items)) { foreach ($items as $ikey => $ival) { if($recent == "comments") $items[$ikey]['rsslink'] = false; else $items[$ikey]['rsslink'] = true; } } } $args['title'] = (empty($title)) ? '' : $title; $args['titlelink'] = (empty($titlelink)) ? 'N' : $titlelink; $args['titlelinkurl'] = (empty($titlelinkurl)) ? '' : $titlelinkurl; $args['linkdescriptions'] = (empty($linkdescriptions)) ? '' : $linkdescriptions; $args['itemdates'] = (empty($itemdates)) ? '' : $itemdates; $args['max_length'] = (empty($max_length)) ? '' : $max_length; $this -> render('widget', array('args' => $args, 'items' => $items, 'children' => $children)); } } } function mref_widget_control($widget_args = array()) { global $wp_registered_widgets; static $updated = false; if (is_numeric($widget_args)) { $widget_args = array('number' => $widget_args); } $widget_args = wp_parse_args($widget_args, array('number' => -1)); if (!empty($widget_args['number']) && is_array($widget_args['number'])) { extract($widget_args['number'], EXTR_SKIP); } else { extract($widget_args, EXTR_SKIP); } $options = get_option('mref-widget'); if (empty($options) || !is_array($options)) { $options = array(); } if (!$updated && !empty($_POST['sidebar'])) { $sidebar = $_POST['sidebar']; $sidebars_widgets = wp_get_sidebars_widgets(); if (!empty($sidebars_widgets[$sidebar])) { $this_sidebar = $sidebars_widgets[$sidebar]; } else { $this_sidebar = array(); } if (!empty($this_sidebar)) { foreach ($this_sidebar as $_widget_id ) { if ('mref_widget' == $wp_registered_widgets[$_widget_id]['callback'] && isset($wp_registered_widgets[$_widget_id]['params'][0]['number'])) { $widget_number = $wp_registered_widgets[$_widget_id]['params'][0]['number']; if (!in_array("mref-" . $widget_number, $_POST['widget-id'])) { unset($options[$widget_number]); } } } } if (!empty($_POST['mref-widget'])) { foreach ($_POST['mref-widget'] as $widget_number => $widget_values) { if (!isset($widget_values['title']) && isset($options[$widget_number])) { continue; } $allcategories = $widget_values['allcategories']; if($widget_values['postcategory']!='') { $postcategory = implode(",", $widget_values['postcategory']); } $title = strip_tags(stripslashes($widget_values['title'])); $recent = $widget_values['recent']; $orderby = $widget_values['orderby']; $order = $widget_values['order']; $max_length = $widget_values['max_length']; $exclude = $widget_values['exclude']; $numberitems = $widget_values['numberitems']; $rotateposts = $widget_values['rotateposts']; $linkdescriptions = $widget_values['linkdescriptions']; $catrsslinks = $widget_values['catrsslinks']; $itemdates = $widget_values['itemdates']; $dateformat = $widget_values['dateformat']; $pagesparent = $widget_values['pagesparent']; $hide_empty = $widget_values['hide_empty']; $titlelink = $widget_values['titlelink']; $titlelinkurl = $widget_values['titlelinkurl']; $levels = $widget_values['levels']; $options[$widget_number] = compact('title', 'recent', 'orderby', 'order', 'max_length', 'exclude', 'numberitems', 'rotateposts', 'linkdescriptions', 'catrsslinks', 'itemdates', 'dateformat', 'pagesparent', 'hide_empty', 'titlelink', 'titlelinkurl', 'levels', 'postcategory', 'allcategories'); } } update_option('mref-widget', $options); $updated = true; } if (-1 == $number) { $number = '%i%'; $title = ''; $recent = 'posts-all'; $orderby = 'date'; $order = 'DESC'; $max_length = 50; $exclude = ''; $numberitems = 5; $rotateposts = false; $itemdates = false; $dateformat = "Y-m-d H:i:s"; $pagesparent = "Y"; $hide_empty = "Y"; $titlelink = ""; $titlelinkurl = ""; $levels = 1; } else { $title = $options[$number]['title']; $recent = $options[$number]['recent']; $orderby = $options[$number]['orderby']; $order = $options[$number]['order']; $max_length = $options[$number]['max_length']; $exclude = $options[$number]['exclude']; $numberitems = $options[$number]['numberitems']; $rotateposts = $options[$number]['rotateposts']; $linkdescriptions = $options[$number]['linkdescriptions']; $catrsslinks = $options[$number]['catrsslinks']; $itemdates = $options[$number]['itemdates']; $dateformat = $options[$number]['dateformat']; $pagesparent = $options[$number]['pagesparent']; $hide_empty = $options[$number]['hide_empty']; $titlelink = $options[$number]['titlelink']; $titlelinkurl = $options[$number]['titlelinkurl']; $levels = $options[$number]['levels']; $allcategories = $options[$number]['allcategories']; $postcategory = explode(',',$options[$number]['postcategory']); } ?> adversion) && $this -> adversion == true) : ?>

plugin_name); ?> plugin_name); ?> plugin_name); ?>

class="display active" /> class="location" />
;">

;">

plugin_name); ?>

;">

plugin_name); ?> :

;">

plugin_name); ?> :

plugin_name); ?> :



;">

;">

;">

value="Y" name="mref-widget[][allcategories]" id="mref_widget__allcategories"> plugin_name); ?>



Default : If you select nothing here, your widget will be displayed in position throughout your entire site, like other widgets. if you select "All Categories", it will be displayed only on Post Categories. If you Select only certain categories in the pop-down - this widget will only appear in those categories.

More Location Options Coming in Pro Version

 

Watch for our "Pro Version" of Max-Ref Widgets Coming Soon with More Locations, More Features. And a third tab full of more helpful options....WebFadds.com

'mref-widget', 'description' => __('Output comments, links, categories, posts and more in your sidebar(s)', $this -> plugin_name)); $control_options = array('id_base' => 'mref', 'width' => 350, 'height' => 300); $name = __('MaxRef Widgets', $this -> plugin_name); if (!empty($options)) { foreach ($options as $okey => $oval) { $id = 'mref-' . $okey; wp_register_sidebar_widget($id, $name, array($this, 'mref_widget'), $widget_options, array('number' => $okey)); wp_register_widget_control($id, $name, array($this, 'mref_widget_control'), $control_options, array('number' => $okey)); } } else { $id = 'mref-1'; wp_register_sidebar_widget($id, $name, array($this, 'mref_widget'), $widget_options, array('number' => -1)); wp_register_widget_control($id, $name, array($this, 'mref_widget_control'), $control_options, array('number' => -1)); } } } function admin_head() { $this -> render('head', false, true, 'admin'); } function wp_head() { $this -> render('head', false, true, 'default'); } } $mrefWidgets = new mrefWidgets(); ?>