コード例 #1
0
ファイル: Wp.php プロジェクト: bravadomizzou/dewdrop
 /**
  * Get a URL for a page in this component.  This method will automatically
  * return submenu-friendly URLs when a submenu item matches the supplied
  * page and params arguments.
  *
  * @param ComponentAbstract $component
  * @param string $page
  * @param array $params
  * @return string
  */
 public function url(ComponentAbstract $component, $page, array $params = array())
 {
     $base = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=' . $component->getSlug();
     $query = $this->assembleQueryString($params, $separator = '&');
     foreach ($component->getSubmenuPages() as $submenu) {
         if ($submenu['route'] === $page) {
             $submenuParams = $submenu['params'];
             $matchesSubmenu = true;
             foreach ($params as $name => $value) {
                 if (!isset($submenuParams[$name]) || $submenuParams['value'] !== $value) {
                     $matchesSubmenu = false;
                     break;
                 }
             }
             if ($matchesSubmenu) {
                 if ('Index' === $submenu['route']) {
                     $route = '';
                 } else {
                     $route = '/' . $submenu['route'];
                 }
                 return $this->filterUrl("{$base}{$route}{$query}");
             }
         }
     }
     return $this->filterUrl("{$base}&route={$page}{$query}");
 }