Новости Joomla

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

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #60 : 12.12.2012, 09:38:50 »
Вот сам роутер:

Код
function MyshopBuildRoute(&$query) {
  
$segments = array();

if (isset($query['view'])) {
      
if($query['view'] == 'myshop'){
$segments[] = 'uchastok';
unset($query['view']);

} elseif($query['view'] == 'myshops'){

$segments[] = 'search';
unset($query['view']);

} elseif (empty($query['view'])){


$segments[] = 'myshop';
unset($query['view']);
}
    }

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

$segments[] = 'com_myshop';
unset($query['option']);
}

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

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

 
    return $segments;
}
 
function MyshopParseRoute($segments) {
    $vars = array();

switch($segments[0])
    {
        case 'uchastok':
            $vars['view'] = 'myshop';
            $vars['id'] = $segments[1];
            break;
        case 'search':
            $vars['view'] = 'myshops';
          
            break;
    }

return $vars;
}
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #61 : 12.12.2012, 09:45:43 »
Ну во-первых у Вас синтаксическая ошибка
Код
if(isset($query['option'])){
$segments[] = $query['option'] );//тут вот скобка не нужна
unset($query['option']);
}

Во вторых, Вы не указываете никакой пункт меню дефолтным. т.е. Опираться не на что. Вы не делали привязок к пунктам меню? Т.е. Ваш компонент с модулем меню работает?
« Последнее редактирование: 12.12.2012, 09:49:27 от xchesh »
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #62 : 12.12.2012, 10:00:09 »
Ошибку поправил спасибо (устал просто не заметил). Только не поменялось ничего. Мой компонент с модулем меню работает конечно, а как же. Дефолтным пунктом меню является в моём случае "Автомобили".
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #63 : 12.12.2012, 10:11:44 »
Ошибку поправил спасибо (устал просто не заметил). Только не поменялось ничего. Мой компонент с модулем меню работает конечно, а как же. Дефолтным пунктом меню является в моём случае "Автомобили".
А какую ссылку Вы передаете в роутер?
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #64 : 12.12.2012, 10:20:10 »
А какую ссылку Вы передаете в роутер?

Код
print JRoute::_('index.php?view=myshop&id=' . $item->id);
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #65 : 12.12.2012, 10:22:12 »
Вот если заходим в компонент с пункта меню который отмечен как главный в админке роутер такое ощущение что вообще не отрабатывает, хотя вызывается - вывожу массив $query - в нём всё есть:
Код
Array
(
    [Itemid] => 127
    [option] => com_myshop
)
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #66 : 12.12.2012, 10:24:57 »
Код
print JRoute::_('index.php?view=myshop&id=' . $item->id);
Ну и в каком месте Вы передаете пункт меню или указываете дефолтный? Кроме id ничего нету. Ваш роутер будет возвращать совсем не привлекательную строку.
Попробуйте:
Код
$app = JFactory::getApplication();
$menu = $app->getMenu();
$menuItem = $menu->getActive();
$itemid = $menuItem->id;
        if (empty($query['Itemid'])){//устанавливаем Itemid если его нету
            $query['Itemid']=$itemid;
        }
и не в коем случае не делайте unset($query['Itemid']).
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #67 : 12.12.2012, 10:25:39 »
Вот если заходим в компонент с пункта меню который отмечен как главный в админке роутер такое ощущение что вообще не отрабатывает, хотя вызывается - вывожу массив $query - в нём всё есть:
Код
Array
(
    [Itemid] => 127
    [option] => com_myshop
)
Так может роутер и не работает. Проверьте.
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #68 : 12.12.2012, 10:31:21 »
В общем то что Вы посоветовали сделал. Но результата нет ((( Itemid ничего не дал как была кривая сылка так и есть. А как проверить подключается ли роутер вообще или нет?
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #69 : 12.12.2012, 11:06:55 »
В общем то что Вы посоветовали сделал. Но результата нет ((( Itemid ничего не дал как была кривая сылка так и есть. А как проверить подключается ли роутер вообще или нет?
Все просто)))
Сделайте var_dump и die() ))))) Будете знать, обрабатывается ли роутер))))
Код
function MyshopBuildRoute(&$query) {
       var_dump($query);die();
}
Если увидите страницу со строкой $query - значит работает)))
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #70 : 12.12.2012, 11:21:06 »
Ничего я не вижу var_dump не показывает print_r показывает. ((( Тупик! Я возможно неправильно изъясняюсь . Выслал вам лтчкой сайт с логином и паролем для просмотра сами посмотрите что твориться. SEF включен.
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #71 : 12.12.2012, 11:28:58 »
Вы главное die() сделайте. Если сработает, то покажет пустую страницу.
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #72 : 12.12.2012, 11:33:23 »
Просто прописал в начале функции
Код
MyshopBuildRoute(){
         unset($query['view']);
unset($query['id']);
}

Никакой реакции как была ссылка видна http://domain.ru/?view=myshop&id=35 так и осталась - роутер видимо и в правду не работет (((( как его заставить рабоать?
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #73 : 12.12.2012, 11:36:41 »
Вы видимо пропустили мимо ушей что я говорю.
Код
function MyshopBuildRoute(&$query) {
       var_dump($query);die();
}
Что вы видите когда написали этот код?
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #74 : 12.12.2012, 11:39:18 »
Вы видимо пропустили мимо ушей что я говорю.
Код
function MyshopBuildRoute(&$query) {
       var_dump($query);die();
}
Что вы видите когда написали этот код?

Вижу кривую страницу с товарами и внизу сам dump, но там нет той вьюшки которая нужна.

string(10) "com_myshop" ["view"]=> string(10) "myshopcart" }
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #75 : 12.12.2012, 11:42:30 »
Вижу кривую страницу с товарами и внизу сам dump, но там нет той вьюшки которая нужна.

string(10) "com_myshop" ["view"]=> string(10) "myshopcart" }
Хорошая новость, Ваш роутер работает.
Теперь покажите ссылку из шаблоне, которую Вы формируете для роутера.
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #76 : 12.12.2012, 11:43:19 »
Я Вам её уже показывал.

print JRoute::_('index.php?view=myshop&id=' . $item->id);
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #77 : 12.12.2012, 11:46:56 »
Окей.
Код
function MyshopBuildRoute(&$query) {
   
$segments = array();

if (isset($query['view'])) {
if($query['view'] == 'myshop'){
$segments[] = 'uchastok';
unset($query['view']);
} elseif($query['view'] == 'myshops'){
$segments[] = 'search';
unset($query['view']);
} else {
$segments[] = 'myshop';
unset($query['view']);
}
    }

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

$segments[] = 'com_myshop';
unset($query['option']);
}

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

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

 
    return $segments;
}
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #78 : 12.12.2012, 11:58:06 »
не рабтает - имею поломанный сайт. ((
Вот parseRoute
Код
function MyshopParseRoute($segments) {
    $vars = array();

switch($segments[0])
    {
        case 'uchastok':
            $vars['view'] = 'myshop';
            $vars['id'] = $segments[1];
            break;
        case 'search':
            $vars['view'] = 'myshops';
           
            break;
    }

return $vars;
}
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #79 : 12.12.2012, 11:59:24 »
сделайте
Код
function MyshopParseRoute($segments) {
    var_dumt($segments);die()
}
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #80 : 12.12.2012, 12:00:43 »
сделайте
Код
function MyshopParseRoute($segments) {
    var_dumt($segments);die()
}

Хмммм пусто вообще !
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #81 : 12.12.2012, 12:03:41 »
Хмммм пусто вообще !
Вот и ответ на Ваш вопрос. Если пусто, значит ничего сюда не попадает и ссылки не меняются.

Значит нужно проверить, отдаете ли Вы $segments
Код
function MyshopBuildRoute(&$query) {
   
$segments = array();

if (isset($query['view'])) {
if($query['view'] == 'myshop'){
$segments[] = 'uchastok';
unset($query['view']);
} elseif($query['view'] == 'myshops'){
$segments[] = 'search';
unset($query['view']);
} else {
$segments[] = 'myshop';
unset($query['view']);
}
    }

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

$segments[] = 'com_myshop';
unset($query['option']);
}

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

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

 var_dump($segments);die();
    return $segments;
}
Что вернет?
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #82 : 12.12.2012, 12:07:52 »
Возвращает пустоту (((( Но как так?
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #83 : 12.12.2012, 12:11:09 »
Возвращает пустоту (((( Но как так?
А просто. Если вернул пустоту, значит массива нету, если массива нету, значит Ваши условия неверно работают.
Код
function MyshopBuildRoute(&$query) {
   
$segments = array();

if (isset($query['view'])) {
if($query['view'] == 'myshop'){
$segments[] = 'uchastok';
} elseif($query['view'] == 'myshops'){
$segments[] = 'search';
} else {
$segments[] = 'myshop';
}
     }

if(isset($query['option'])){
$segments[] = $query['option']);
} else {

$segments[] = 'com_myshop';
}

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

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

Так Вы избавитесь от всех ненужных параметров, но ничего не заработает, т.к. $segments все ещё пусть. Не так ли?
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #84 : 12.12.2012, 12:12:25 »
Прописал даже строку перед дампом:
Код
$segments = array('123123');
var_dumt($segments);die();
И в ответ пустота (( массив не пустой как так.. ((((
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #85 : 12.12.2012, 12:14:34 »
Прописал даже строку перед дампом:
Код
$segments = array('123123');
var_dumt($segments);die();
И в ответ пустота (( массив не пустой как так.. ((((
Проверяйте синтаксис.
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #86 : 12.12.2012, 12:15:33 »
Спасибо! Буду смотреть сейчас построчно. Отпишу!
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: JRoute в модуле Joomla 2.5
« Ответ #87 : 12.12.2012, 12:22:12 »
Прописал даже строку перед дампом:
Код
$segments = array('123123');
var_dumt($segments);die();
И в ответ пустота (( массив не пустой как так.. ((((

$segments = array(1, 2, 3, 1, 2, 3);
var_dump($segments);
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Re: JRoute в модуле Joomla 2.5
« Ответ #88 : 12.12.2012, 12:24:11 »
$segments = array(1, 2, 3, 1, 2, 3);
var_dump($segments);
Это да) Нужно следить за синтаксисом)
*

n_drey

  • Захожу иногда
  • 156
  • 3 / 1
  • Давай телевиденье!
Re: JRoute в модуле Joomla 2.5
« Ответ #89 : 12.12.2012, 12:35:26 »
Я кажется нашел!
По какойто непонятно пока мене причине, при вызове главной страницы дамп bildRoute показывает мне:

string(10) "com_myshop" ["view"]=> string(10) "myshopcart" }

вот это вот ["view"]=> string(10) "myshopcart"  Неправильно!

В текущий момент отображается вьюшка myshops, в массиве query это myshopcart . Видимо из за этого не работает и сам роутер (((. Буду разбираться почему такое происходит.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как редактировать отдельную страницу Joomla 2.5?

Автор mrporter

Ответов: 0
Просмотров: 1255
Последний ответ 14.09.2023, 22:16:47
от mrporter
Joomla 2.5.28, Safari под маком и сессии session

Автор beliyadm

Ответов: 19
Просмотров: 3589
Последний ответ 29.03.2023, 12:17:19
от Sawell
Joomla 2.5.28 как скачать все файлы через панель управления

Автор Sergei41984

Ответов: 7
Просмотров: 1708
Последний ответ 27.12.2022, 23:30:38
от Sergei41984
Расширения для Joomla! 1.6 (коллекция полезных ссылок)

Автор Sulpher

Ответов: 124
Просмотров: 130403
Последний ответ 03.12.2022, 16:15:19
от besttechoff
Почему в админке Joomla 2.58 - у меня 16 админов показывает?

Автор dyalex

Ответов: 7
Просмотров: 2357
Последний ответ 27.10.2022, 19:03:45
от marksetter