예제 #1
0
파일: route.php 프로젝트: ForAEdesWeb/AEW4
 public static function _findItem($needles = null)
 {
     $app = JFactory::getApplication();
     $menus = $app->getMenu('site');
     // Prepare the reverse lookup array.
     if (self::$lookup === null) {
         self::$lookup = array();
         $component = JComponentHelper::getComponent('com_djcatalog2');
         $items = $menus->getItems('component_id', $component->id);
         if (count($items)) {
             foreach ($items as $item) {
                 if (isset($item->query) && isset($item->query['view'])) {
                     $view = $item->query['view'];
                     if (!isset(self::$lookup[$view])) {
                         self::$lookup[$view] = array();
                     }
                     if ($view == 'items') {
                         $cid = 0;
                         if (isset($item->query['cid'])) {
                             $cid = $item->query['cid'];
                         }
                         $cid = isset($item->query['cid']) ? (int) $item->query['cid'] : 0;
                         if (isset($item->query['pid']) && (int) $item->query['pid'] > 0) {
                             $cid .= '-' . $item->query['pid'];
                         }
                         self::$lookup[$view][$cid] = $item->id;
                     } else {
                         if ($view == 'producer') {
                             if (isset($item->query['pid'])) {
                                 self::$lookup[$view][$item->query['pid']] = $item->id;
                             }
                         } else {
                             if ($view == 'item') {
                                 if (isset($item->query['id'])) {
                                     self::$lookup[$view][$item->query['id']] = $item->id;
                                 }
                             } else {
                                 if ($view == 'myitems') {
                                     self::$lookup[$view][0] = $item->id;
                                 } else {
                                     if ($view == 'producers') {
                                         self::$lookup[$view][0] = $item->id;
                                     } else {
                                         self::$lookup[$view][0] = $item->id;
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     if ($needles) {
         foreach ($needles as $view => $ids) {
             if (isset(self::$lookup[$view])) {
                 if (is_array($ids)) {
                     foreach ($ids as $id) {
                         if (isset(self::$lookup[$view][$id])) {
                             return self::$lookup[$view][$id];
                         }
                     }
                 } else {
                     if (isset(self::$lookup[$view][$ids])) {
                         return self::$lookup[$view][$ids];
                     }
                 }
             }
         }
     }
     //else {
     /*$active = $menus->getActive();
     		if ($active && $active->component == 'com_djcatalog2') {
     			return $active->id;
     		}*/
     /*else {
     			$default = $menus->getDefault();
     			return $default->id;
     		}*/
     //}
     return null;
 }
예제 #2
0
 public static function _findItem($needles = null)
 {
     $app = JFactory::getApplication();
     $menus = $app->getMenu('site');
     $params = JComponentHelper::getParams('com_djcatalog2');
     // Prepare the reverse lookup array.
     if (self::$lookup === null) {
         self::$lookup = array();
         $component = JComponentHelper::getComponent('com_djcatalog2');
         $items = $menus->getItems('component_id', $component->id);
         $seoMenus = $params->get('seo_menus', array());
         $seoMenusLookup = count($seoMenus) > 0 ? true : false;
         $seoMenuItems = $params->get('seo_menuitems', array());
         $seoMenuItemsLookup = count($seoMenuItems) > 0 ? true : false;
         $activeMenu = $menus->getActive();
         $templateStyle = !empty($activeMenu) && isset($activeMenu->template_style_id) ? $activeMenu->template_style_id : 0;
         $keepTemplateStyle = (bool) $params->get('seo_style_consistency', false);
         if (count($items)) {
             foreach ($items as $item) {
                 if ($seoMenusLookup && !in_array($item->menutype, $seoMenus) && !in_array($item->id, $seoMenuItems)) {
                     continue;
                 }
                 if ($seoMenuItemsLookup && !in_array($item->id, $seoMenuItems)) {
                     continue;
                 }
                 if ($keepTemplateStyle && $templateStyle != $item->template_style_id) {
                     continue;
                 }
                 if (isset($item->query) && isset($item->query['view'])) {
                     $view = $item->query['view'];
                     if (!isset(self::$lookup[$view])) {
                         self::$lookup[$view] = array();
                     }
                     if ($view == 'items') {
                         $cid = 0;
                         if (isset($item->query['cid'])) {
                             $cid = $item->query['cid'];
                         }
                         $cid = isset($item->query['cid']) ? (int) $item->query['cid'] : 0;
                         if (isset($item->query['pid']) && (int) $item->query['pid'] > 0) {
                             $cid .= '-' . $item->query['pid'];
                         }
                         self::$lookup[$view][$cid] = $item->id;
                     } else {
                         if ($view == 'producer') {
                             if (isset($item->query['pid'])) {
                                 self::$lookup[$view][$item->query['pid']] = $item->id;
                             }
                         } else {
                             if ($view == 'item') {
                                 if (isset($item->query['id'])) {
                                     self::$lookup[$view][$item->query['id']] = $item->id;
                                 }
                             } else {
                                 if ($view == 'myitems') {
                                     self::$lookup[$view][0] = $item->id;
                                 } else {
                                     if ($view == 'producers') {
                                         self::$lookup[$view][0] = $item->id;
                                     } else {
                                         self::$lookup[$view][0] = $item->id;
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     if ($needles) {
         foreach ($needles as $view => $ids) {
             if (isset(self::$lookup[$view])) {
                 if (is_array($ids)) {
                     foreach ($ids as $id) {
                         if (isset(self::$lookup[$view][$id])) {
                             return self::$lookup[$view][$id];
                         }
                     }
                 } else {
                     if (isset(self::$lookup[$view][$ids])) {
                         return self::$lookup[$view][$ids];
                     }
                 }
             }
         }
     }
     //else {
     /*$active = $menus->getActive();
     		if ($active && $active->component == 'com_djcatalog2') {
     			return $active->id;
     		}*/
     /*else {
     			$default = $menus->getDefault();
     			return $default->id;
     		}*/
     //}
     return null;
 }