* @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) { extract($args); $item_id = empty($instance['item_id']) ? '' : $instance['item_id']; echo $before_widget; echo self::output($item_id); echo $after_widget; } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['item_id'] = $new_instance['item_id']; return $instance; } function form($instance) { $instance = wp_parse_args((array) $instance, array('title' => '', 'item_id' => '')); $elementid = sanitize_title($instance['item_id']); $items = self::items_for_select(); ?> 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; } }