Current Path :
/
home
/
develito
/
public_html
/
components
/
com_dmod
/
helpers
/
Or
Select Your Path :
Upload File :
New :
File
Dir
/home/develito/public_html/components/com_dmod/helpers/route.php
<?php /*------------------------------------------------------------------------ # com_dmod - Dmod Module Manager # ------------------------------------------------------------------------ # author Jesus Vargas Garita # copyright Copyright (C) 2010 www.joomlahill.com. All Rights Reserved. # @license - http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL # Websites: http://www.joomlahill.com # Technical Support: Forum - http://www.joomlahill.com/forum -------------------------------------------------------------------------*/ // No direct access defined('_JEXEC') or die; jimport('joomla.application.component.helper'); jimport('joomla.application.categories'); abstract class DmodHelperRoute { protected static $lookup; public static function getDmodRoute($id, $catid) { $needles = array( 'dmod' => array((int) $id) ); //Create the link $link = 'index.php?option=com_dmod&view=dmod&id='. $id; if ($catid > 1) { $categories = JCategories::getInstance('Dmod'); $category = $categories->get($catid); if ($category) { $needles['category'] = array_reverse($category->getPath()); $needles['categories'] = $needles['category']; $link .= '&catid='.$catid; } } if ($item = self::_findItem($needles)) { $link .= '&Itemid='.$item; } elseif ($item = self::_findItem()) { $link .= '&Itemid='.$item; } return $link; } public static function getCategoryRoute($catid) { if ($catid instanceof JCategoryNode) { $id = $catid->id; $category = $catid; } else { $id = (int) $catid; $category = JCategories::getInstance('Dmod')->get($id); } if($id < 1) { $link = ''; } else { $needles = array( 'category' => array($id) ); if ($item = self::_findItem($needles)) { $link = 'index.php?Itemid='.$item; } else { //Create the link $link = 'index.php?option=com_dmod&view=category&id='.$id; if($category) { $catids = array_reverse($category->getPath()); $needles = array( 'category' => $catids, 'categories' => $catids ); if ($item = self::_findItem($needles)) { $link .= '&Itemid='.$item; } elseif ($item = self::_findItem()) { $link .= '&Itemid='.$item; } } } } return $link; } protected 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_dmod'); $items = $menus->getItems('component_id', $component->id); 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 (isset($item->query['id'])) { self::$lookup[$view][$item->query['id']] = $item->id; } } } } if ($needles) { foreach ($needles as $view => $ids) { if (isset(self::$lookup[$view])) { foreach($ids as $id) { if (isset(self::$lookup[$view][(int)$id])) { return self::$lookup[$view][(int)$id]; } } } } } else { $active = $menus->getActive(); if ($active) { return $active->id; } } return null; } }