0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1673 Просмотров
*

Motor

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Роутер
« : 30.09.2010, 14:01:17 »
Привет всем! Сломал голову не могу разобрать с роутером.

Ссылки такие:

Категория с элементами
/index.php?option=com_catalogs&view=categories&cat=8&t=1&Itemid=6

t - это тип элемента (из базы вытаскивает по категории и по типу)

Подробнее посмотреть элемент
/index.php?option=com_catalogs&view=element&id=2

Как вот это переписать под мои нужды?
Код
 function  [Componentname]BuildRoute(&$query){         
  $segments = array();         
  if(isset( $query['catid'] ))         
  {                 
  $segments[] = $query['catid'];                 
  unset( $query['catid'] );         
  };         
  if( isset($query['id']) )         
  {                 
  $segments[] = $query['id'];                 
  unset( $query['id'] );         
  };         
  unset( $query['view'] );       
   return $segments; 
   }

function [Componentname]ParseRoute($segments)  {         
$vars = array();         
$menu =& JMenu::getInstance();         
$item =& $menu->getActive();         
// колличество сегментов         
$count = count( $segments );         
//обработчик вида и идентификатора         
switch( $item->query['view'] )         
{                 
case 'categories':                         
if($count == 1) {                                 
$vars['view'] = 'category';                         
}                         
if($count == 2) {                                 
$vars['view'] = 'article';                         
}                         
$id = explode( ':', $segments[$count] );                         
$vars['id'] = (int) $id[0];                         
break;                 
case 'category':                         
$id   = explode( ':', $segments[$count] );                         
$vars['id']   = (int) $id[0];                         
$vars['view'] = 'article';                         
break;         
}         
return $vars;  }


*

Motor

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Роутер
« Ответ #1 : 30.09.2010, 16:55:54 »
Написал, но есть проблемка ((

url для элемента получилось http://office02/cottedg/element/2
А мне нужно, либо http://office02/element/2
Либо http://office02/cottedg/2

Код
function CatalogsBuildRoute(&$query){
  $segments = array();
  if(isset($query['view'])) {
     $segments[] = $query['view'];
     unset( $query['view'] );
  }
   if(isset( $query['cat'] ))
  {
 $segments[] = $query['cat'];
 unset( $query['cat'] );
  };
  if(isset( $query['t'] ))
  {
 $segments[] = $query['t'];
 unset( $query['t'] );
  };

  if(isset( $query['id'] ))
  {
 $segments[] = $query['id'];
 unset( $query['id'] );
  };

  return $segments;
}

function CatalogsParseRoute($segments){
$vars = array();
     switch($segments[0])
     {
    case 'element':
    $vars['view'] = 'element';
    $id = explode( ':', $segments[1] );
    $vars['id'] = (int) $id[0];
    break;
     }
     return $vars;
 }
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Роутер
« Ответ #2 : 30.09.2010, 19:12:16 »
http://{domain}/{menu_alias}/... а вот далее уже путь через роутер
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Motor

  • Осваиваюсь на форуме
  • 49
  • 0 / 0
Re: Роутер
« Ответ #3 : 01.10.2010, 09:15:24 »
НУ так и есть http://office02/cottedg/... а вот далее уже путь через роутер
Установил sh404SEF.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться