/** * return content of a placement * * @since 1.1.0 * @param string $id slug of the display * @param array $args optional arguments (passed to child) */ public static function output($id = '', $args = array()) { // get placement data for the slug if ($id == '') { return; } $placements = Advanced_Ads::get_ad_placements_array(); if (isset($placements[$id]['item']) && $placements[$id]['item'] !== '') { $_item = explode('_', $placements[$id]['item']); if (!isset($_item[1]) || empty($_item[1])) { return; } // inject options if (isset($placements[$id]['options']) && is_array($placements[$id]['options'])) { foreach ($placements[$id]['options'] as $_k => $_v) { if (!isset($args[$_k])) { $args[$_k] = $_v; } } } // return either ad or group content switch ($_item[0]) { case 'ad': case Advanced_Ads_Select::AD: // create class from placement id (not if header injection) if (!isset($placements[$id]['type']) || $placements[$id]['type'] !== 'header') { if (!isset($args['output'])) { $args['output'] = array(); } if (!isset($args['output']['class'])) { $args['output']['class'] = array(); } $class = 'advads-' . $id; if (!in_array($class, $args['output']['class'])) { $args['output']['class'][] = $class; } } // fix method id $_item[0] = Advanced_Ads_Select::AD; break; // avoid loops (programmatical error) // avoid loops (programmatical error) case Advanced_Ads_Select::PLACEMENT: return; case Advanced_Ads_Select::GROUP: default: } // add the placement to the global output array $advads = Advanced_Ads::get_instance(); $advads->current_ads[] = array('type' => 'placement', 'id' => $id, 'title' => $placements[$id]['name']); return Advanced_Ads_Select::get_instance()->get_ad_by_method((int) $_item[1], $_item[0], $args); } }
/** * Render the debug page * * @since 1.0.1 */ public function display_plugin_debug_page() { // load array with ads by condition $plugin = Advanced_Ads::get_instance(); $plugin_options = $plugin->options(); $ad_placements = Advanced_Ads::get_ad_placements_array(); // -TODO use model include ADVADS_BASE_PATH . 'admin/views/debug.php'; }
/** * get widget placements for select field * * @since 1.6.11 * @return arr $items for select field */ public static function widget_placements_for_select() { $select = array(); $placements = Advanced_Ads::get_ad_placements_array(); foreach ($placements as $_placement_slug => $_placement) { if (isset($_placement['type']) && 'sidebar_widget' === $_placement['type']) { $select['placements']['placement_' . $_placement_slug] = $_placement['name']; } } return $select; }