/** * Constructor. * * @since 1.0.0 * * @param array $data The data what has to be associated with this render. */ public function __construct($data = array()) { static $Simulate = null; $this->data = $data; /** * Actions to execute when constructing the parent View. * * @since 1.0.0 * @param object $this The MS_View object. */ do_action('ms_view_construct', $this); if (null === $Simulate && MS_Model_Simulate::can_simulate()) { $Simulate = MS_Factory::load('MS_Model_Simulate'); self::$is_simulating = $Simulate->is_simulating(); } }
/** * Add membership description nodes. * * @since 1.0.0 * */ private function add_detail_nodes() { global $wp_admin_bar; /** * Info menu is currently only available on the front-end. * * @todo add information also for admin side (Admin-Protection/Capabilities) */ if (is_admin()) { return; } if (!$this->simulate->is_simulating()) { return; } $membership = MS_Factory::load('MS_Model_Membership', $this->simulate->membership_id); $wp_admin_bar->add_menu(array('id' => 'membership-details', 'title' => __('Protection Details', 'membership2'), 'href' => '#')); $details = lib3()->session->get('ms-access'); $parent1 = ''; $parent2 = ''; foreach ($details as $req_ind => $request) { if (!is_array($request)) { continue; } $parent1 = 'membership-details-' . $req_ind; $url = explode('?', $request['url']); $url = str_replace(site_url(), '', reset($url)); $wp_admin_bar->add_node(array('id' => $parent1, 'parent' => 'membership-details', 'title' => 1 + $req_ind . ': ' . $url, 'href' => $request['url'])); if (isset($request['reason'])) { foreach ($request['reason'] as $key => $item) { if (is_array($item)) { foreach ($item as $child => $note) { $wp_admin_bar->add_node(array('id' => $parent2 . '-' . $child, 'parent' => $parent2, 'title' => $note)); } } else { $parent2 = $parent1 . '-' . $key; $wp_admin_bar->add_node(array('id' => $parent2, 'parent' => $parent1, 'title' => $item)); } } } } }