Example #1
0
 /**
  * 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));
                 }
             }
         }
     }
 }