Ejemplo n.º 1
0
 /**
  * Construct plugin's settings page URL.
  *
  * @author Vova Feldman (@svovaf)
  * @since  1.0.4
  *
  * @param string $page
  * @param array  $params
  *
  * @return string
  */
 function _get_admin_page_url($page = '', $params = array())
 {
     if (empty($page) && !$this->_menu->is_top_level()) {
         // If not a Top-Level menu and asking for main settings page,
         // then try to replicate plugin's main setting original page URL.
         switch ($this->_menu->get_type()) {
             case 'tools':
                 return add_query_arg(array('page' => $this->_menu->get_raw_slug()), admin_url('tools.php'));
             case 'settings':
                 return add_query_arg(array('page' => $this->_menu->get_raw_slug()), admin_url('options-general.php'));
         }
     }
     if ($this->_menu->is_cpt()) {
         if (empty($page) && $this->is_activation_mode()) {
             return add_query_arg(array_merge($params, array('page' => $this->_menu->get_raw_slug())), admin_url('admin.php', 'admin'));
         } else {
             if (!empty($page)) {
                 $params['page'] = trim("{$this->_menu->get_raw_slug()}-{$page}", '-');
             }
             return add_query_arg(array_merge($params, array('post_type' => $this->_menu->get_raw_slug())), admin_url('edit.php', 'admin'));
         }
     } else {
         if (false === strpos($this->_menu->get_raw_slug(), '.php?')) {
             return add_query_arg(array_merge($params, array('page' => trim("{$this->_menu->get_raw_slug()}-{$page}", '-'))), admin_url('admin.php', 'admin'));
         } else {
             return add_query_arg(array_merge($params, array('page' => trim("{$this->_slug}-{$page}", '-'))), admin_url('admin.php', 'admin'));
         }
     }
 }