* @license GPL-2.0+ * @link http://webgilde.com * @copyright 2014 Thomas Maier, webgilde GmbH */ /** * Ad widget * */ class Advads_Widget extends WP_Widget { function __construct() { $widget_ops = array('classname' => 'advads_widget', 'description' => __('Display Ads and Ad Groups.', ADVADS_SLUG)); $control_ops = array(); parent::__construct('advads_ad_widget', __('Advanced Ads', ADVADS_SLUG), $widget_ops, $control_ops); } function widget($args, $instance) { /** This filter is documented in wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base ); extract($args); $item_id = empty($instance['item_id']) ? '' : $instance['item_id']; $title = empty($instance['title']) ? '' : $instance['title']; echo $before_widget; if ( ! empty( $title ) ) { echo $before_title . $title . $after_title; } echo self::output($item_id); echo $after_widget; } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = $new_instance['title']; $instance['item_id'] = $new_instance['item_id']; return $instance; } function form($instance) { $instance = wp_parse_args((array) $instance, array('title' => '', 'item_id' => '')); $title = strip_tags($instance['title']); $elementid = $instance['item_id']; ?>
ID] = $_ad->post_title; } // load all ad groups $groups = Advanced_Ads::get_ad_groups(); foreach($groups as $_group){ $select['groups']['group_' . $_group->term_id] = $_group->name; } return $select; } /** * return content of an in a widget * * @since 1.2 * @param string $id slug of the display */ static function output($id = ''){ // get placement data for the slug if(empty($id)) return; $item = explode('_', $id); if(isset($item[1])) $item_id = absint($item[1]); elseif(empty($item_id)) return; // return either ad or group content if($item[0] == 'ad'){ return get_ad($item_id); } elseif($item[0] == 'group'){ return get_ad_group($item_id); } return; } }