Exemple #1
0
function DJClassifiedsParseRoute($segments)
{
    $app = JFactory::getApplication();
    $menu = $app->getMenu();
    $activemenu = $menu->getActive();
    $par = JComponentHelper::getParams('com_djclassifieds');
    $catalogViews = array($par->get('seo_view_item', 'ad'), $par->get('seo_view_items', 'ads'), $par->get('seo_view_edititem', 'edititem'), $par->get('seo_view_additem', 'additem'), $par->get('seo_view_useritems', 'useritems'), $par->get('seo_view_categories', 'categories'), $par->get('seo_view_profile', 'profile'), $par->get('seo_view_peofileefit', 'profileedit'));
    $query = array();
    $temp = array();
    if (count($segments)) {
        //if (!in_array($segments[0], $catalogViews)) {
        if ($activemenu) {
            $temp = array();
            $temp[0] = $activemenu->query['view'];
            switch ($temp[0]) {
                case 'item':
                    $temp[1] = @$activemenu->query['cid'];
                    $temp[2] = @$activemenu->query['id'];
                    /*foreach ($segments as $k=>$v) {
                          $temp[$k+1] = $v;
                      }*/
                    break;
                case 'items':
                    $temp[1] = @$activemenu->query['cid'];
                    if (isset($activemenu->query['layout'])) {
                        $temp[2] = @$activemenu->query['layout'];
                    }
                    /*foreach ($segments as $k=>$v) {
                          $temp[$k+1] = $v;
                      }*/
                    break;
                case 'edititem':
                    $temp[1] = @$activemenu->query['id'];
                    /*foreach ($segments as $k=>$v) {
                          $temp[$k+1] = $v;
                      }*/
                    break;
            }
            //$segments = $temp;
        }
        // }
        if (isset($segments[0])) {
            if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_item', 'ad')) || $segments[0] == 'item') {
                $query['view'] = 'item';
                if (isset($segments[2])) {
                    $query['id'] = DJClassifiedsSEO::getIDfromURL($segments[2]);
                    $query['cid'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                } else {
                    if (isset($segments[1])) {
                        $query['id'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                    }
                    if (isset($temp[1])) {
                        if ($temp[0] == 'items') {
                            $query['cid'] = $temp[1];
                        }
                    }
                }
            } else {
                if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_items', 'ads')) || $segments[0] == 'items') {
                    $query['view'] = 'items';
                    if (isset($segments[1])) {
                        $query['cid'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                    }
                } else {
                    if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_edititem', 'edititem')) || $segments[0] == 'edititem') {
                        $query['view'] = 'edititem';
                        if (isset($segments[1])) {
                            $query['id'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                        }
                    } else {
                        if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_additem', 'additem')) || $segments[0] == 'additem') {
                            $query['view'] = 'additem';
                        } else {
                            if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_useritems', 'useritems')) || $segments[0] == 'useritems') {
                                $query['view'] = 'useritems';
                            } else {
                                if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_categories', 'categories')) || $segments[0] == 'categories') {
                                    $query['view'] = 'categories';
                                } else {
                                    if ($segments[0] == 'payment') {
                                        $query['view'] = 'payment';
                                        if (isset($segments[1])) {
                                            $query['id'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                                        }
                                    } else {
                                        if ($segments[0] == 'points') {
                                            $query['view'] = 'points';
                                        } else {
                                            if ($segments[0] == 'userpoints') {
                                                $query['view'] = 'userpoints';
                                            } else {
                                                if ($segments[0] == 'renewitem') {
                                                    $query['view'] = 'renewitem';
                                                    if (isset($segments[1])) {
                                                        $query['id'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                                                    }
                                                } else {
                                                    if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_profile', 'profile')) || $segments[0] == 'profile') {
                                                        $query['view'] = 'profile';
                                                        if (isset($segments[1])) {
                                                            $query['uid'] = DJClassifiedsSEO::getIDfromURL($segments[1]);
                                                        }
                                                    } else {
                                                        if ($segments[0] == str_ireplace('-', ':', $par->get('seo_view_profileedit', 'profileedit')) || $segments[0] == 'profileedit') {
                                                            $query['view'] = 'profileedit';
                                                        } else {
                                                            if (isset($temp[1])) {
                                                                if ($temp[0] == 'items') {
                                                                    $query['view'] = 'items';
                                                                    $query['cid'] = DJClassifiedsSEO::getIDfromURL($segments[0]);
                                                                    if (isset($temp[2])) {
                                                                        $query['layout'] = $temp[2];
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return $query;
}