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

sesil

  • Захожу иногда
  • 74
  • 0 / 0
  • Учусь!
Переделать router.php
« : 24.10.2019, 09:04:15 »
Здравствуйте, сейчас у меня есть такой router

Код
<?php
defined( '_JEXEC' ) or die; // No direct access

function ServiceBuildRoute( &$query )
{
    $segments = array();
    if ( isset( $query['view'] ) ) {
        $segments[] = $query['view'];
        unset( $query['view'] );
    }
    if ( isset( $query['task'] ) ) {
        $segments[] = $query['task'];
        unset( $query['task'] );
    }
    if (isset($query['id'])) {
        $segments[] = $query['id'];
        unset($query['id']);
    }
    if (isset($query['uid'])) {
        $segments[] = $query['uid'];
        unset($query['uid']);
    }
    if (isset($query['category'])) {
        $segments[] = $query['category'];
        unset($query['category']);
    }
    if ( isset( $query['limitstart'] ) ) {
        unset( $query['limitstart'] );
    }
    if (isset($query['alias'])) {
        $segments[] = $query['alias'];
        unset($query['alias']);
    }
return $segments;
}

function ServiceParseRoute( $segments )
{
    $count = count( $segments );

    $vars = array();
    $id = (int)JRequest::getVar('id');

    $menu = JMenu::getInstance( 'site' )->getActive();
    $view = isset( $menu->query['view'] )? $menu->query['view'] : '';

    if ( $count == 1 ) {

        $vars['id'] = $segments[0];

    }
    if ( $count == 2 ) {

        $vars['id'] = $segments[0];

        $vars['view'] = $segments[1];
        if ( strpos( $segments[1], ':' )!== false || is_numeric( $segments[1] ) ) {
            $vars['id'] = $segments[1];
        } else {
            $vars['task'] = $segments[1];
        }

    }

    if ( $count == 3 ) {
        $vars['view'] = $segments[0];
        $vars['task'] = $segments[1];
        $vars['id'] = $segments[2];


        die();
    }

    var_dump($count);

    return $vars;
}

Когда открываю ссылку /service/prazdniki раздел открывается, кода пытаюсь открыть /service/prazdniki/222 идет редирект на главную страницу.

Я так понимаю проблема здесь
Код
if ( $count == 2 ) {

        $vars['id'] = $segments[0];

        $vars['view'] = $segments[1];
        if ( strpos( $segments[1], ':' )!== false || is_numeric( $segments[1] ) ) {
            $vars['id'] = $segments[1];
        } else {
            $vars['task'] = $segments[1];
        }

    }

Как нужно выставить сегменты что бы открывалась страницу вида?
*

sivers

  • Давно я тут
  • 844
  • 97 / 0
Re: Переделать router.php
« Ответ #1 : 24.10.2019, 10:44:34 »
Похоже, что там немного напутано. Вместо этого:
Код
        $vars['id'] = $segments[0];

        $vars['view'] = $segments[1];

Попробуйте это:
Код
        $vars['id'] = $segments[1];

        $vars['view'] = $segments[0];
На связи в телеге @sivers
*

sesil

  • Захожу иногда
  • 74
  • 0 / 0
  • Учусь!
Re: Переделать router.php
« Ответ #2 : 24.10.2019, 12:01:44 »
Похоже, что там немного напутано. Вместо этого:
Код
        $vars['id'] = $segments[0];

        $vars['view'] = $segments[1];

Попробуйте это:
Код
        $vars['id'] = $segments[1];

        $vars['view'] = $segments[0];

Сделал такъ
Код
 if ( $count == 2 ) {

        $vars['id'] = $segments[1];
        $vars['view'] = $segments[0];
       
        if ( strpos( $segments[1], ':' )!== false || is_numeric( $segments[1] ) ) {
            $vars['id'] = $segments[1];
        } else {
            $vars['task'] = $segments[1];
        }

    }
Все ровно перекидывает на главную.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переделать код с радио на список

Автор Victor333

Ответов: 4
Просмотров: 232
Последний ответ 23.02.2018, 22:21:21
от Victor333
Переделать подключение по правилам Joomla

Автор alpha_ru

Ответов: 4
Просмотров: 305
Последний ответ 26.07.2017, 19:28:40
от alpha_ru
Еще раз про router.php

Автор voron121

Ответов: 21
Просмотров: 805
Последний ответ 21.02.2017, 20:43:11
от voron121
Как переделать сайт, cозданный в Joomla Lavra Edition 2008 (1.0.15) на Joomla3x ?

Автор KrisKras

Ответов: 9
Просмотров: 255
Последний ответ 21.02.2017, 13:11:15
от KrisKras
Как переделать url пагинации в com_phocaguestbook с ?start=10 на /page-2.html?

Автор LovelyHost

Ответов: 12
Просмотров: 629
Последний ответ 17.12.2016, 09:00:03
от LovelyHost