Форум русской поддержки Joomla!® CMS
06.12.2016, 07:07:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Перенаправление на другую вьюшку

 (Прочитано 132 раз)
0 Пользователей и 1 Гость смотрят эту тему.
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« : 09.12.2015, 17:13:17 »

Здравствуйте, есть две вьюшки компонента eventform и event.
eventform привязана к пункту меню:
алиас - add-event 
линк пункта - index.php?option=com_mycomponent&view=eventform
В браузере когда набираю www.site.ru/add-event вьюшка открывается правильно т.е. форму вижу добавления event'а.
Если же набираю www.site.ru/add-event/34. В моем случае 34 это id записи. Т.е. я хочу заполнить форму при update'е записи, то Joomla перенаправляет меня в вьюшку event т.е. там выводится детальная информация о событии.
Такое чувство ка будто Joomla думает что я набрал  www.site.ru/event/34
Если же набираю www.site.ru/add-event?id=34 , то открывается форма для update'а записи с  данными, то что мне и нужно.
Подскажите в какую сторону копать может с роутером что не так хотя вроде норм все
Код:


function ComponentBuildRoute( &$query )
{

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

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



function ComponentParseRoute( $segments )
{
    $vars = array();
      $vars['view']=array_shift( $segments );
   
    $vars['id']=array_shift( $segments );
    return $vars;   
}





Записан
Aleks.Denezh
Практически профи
*******

Репутация: +372/-4
Offline Offline

Пол: Мужской
Сообщений: 2762



« Ответ #1 : 09.12.2015, 17:23:46 »

print_r( $segments ) пробовали делать?
но скорее всего у вас в $segments  только id
попробуйте так в ComponentParseRoute:
Код
	$menu = JMenu::getInstance( 'site' )->getActive();
$view = isset( $menu->query['view'] )? $menu->query['view'] : '';
 
if ( $view === 'eventform' && $count == 1 ) {
$vars['view'] = 'event'; //тут вид который вам нужно открыть при редактировании!
$vars['id'] = $segments[0];
return $vars;
}
 
 
Записан
spirit1086
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 135


« Ответ #2 : 10.12.2015, 08:40:24 »

Вы были правы спасибо, только я теперь почему-то не могу получить параметр компонента из этого пункта меню, если через ?id=56  то получаю если /56 то нет
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet