function widget_show_list() { $option = JRequest::getCmd('option'); $mainframe = JFactory::getApplication(); require_once JPATH_SITE . DS . 'components' . DS . 'com_javoice' . DS . 'helpers' . DS . 'route.php'; $helper_route = new JavoiceHelperRoute(); $model = $this->getModel(); $voicetypes_popular = JRequest::getString('voicetypes'); $types = array(); if ($voicetypes_popular) { $voicetypes = explode(',', $voicetypes_popular); foreach ($voicetypes as $value) { $type = null; if (is_int($value)) { $type = $model->getVoiceType($value); } elseif ($value != '') { $type = $helper_route->getTypeId(trim($value), '*'); } if ($type) { $types[] = $type; } } } else { $types = $model->getVoiceTypes(); } $this->assignRef('types', $types); if (!$types) { $types_suggest = $model->getVoiceTypes(); if ($types_suggest) { foreach ($types_suggest as $type) { $types_title[] = $type->alias; } $types_title = implode(', ', $types_title); $this->assignRef('types_title', $types_title); return; } } $forums = array(); $forums_text = JRequest::getString('forums'); if ($forums_text) { $forums_arr = explode(',', $forums_text); foreach ($forums_arr as $value) { $forum = null; if (is_int(trim($value))) { $forums[] = trim($value); } elseif ($value != '' && isset($types[0]->id)) { $forum = $helper_route->getForumsId(trim($value), $types[0]->id); if ($forum) { $forums[] = $forum; } } } if ($forums) { $forums_id = implode(',', $forums); JRequest::setVar('forums_id', $forums_id); } else { JRequest::setVar('forums_id', "no_forum"); } } //print_r($forums);exit; $type_id = JRequest::getInt('type', @$types[0]->id); $number_voices = JRequest::getVar('number_voices', 20); JRequest::setVar('type', $type_id); $this->assignRef('type_id', $type_id); $this->assignRef('number_voices', $number_voices); $this->assignRef('forums_text', $forums_text); $type = $model->getVoiceType($type_id); $this->assignRef('type', $type); $link = $_SERVER['REQUEST_URI']; $this->assignRef('link', $link); }
function JavoiceParseRoute($segments) { $vars = array(); $helper = new JavoiceHelperRoute(); $app = JFactory::getApplication(); //Get the active menu item $menu = $app->getMenu(); $item = $menu->getActive(); // Count route segments $count = count($segments); //print_r($segments);exit; if (!isset($item)) { $vars['view'] = $segments[0]; if (!is_dir(JPATH_SITE . '/components/com_javoice/views/' . $vars['view'])) { $vars['view'] = 'items'; $type_id = $helper->getTypeId($segments[0]); $vars['type'] = $type_id; if ($count == 2) { $temp = explode(':', $segments[$count - 1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } else { // Forums or Status if ($forums_id = $helper->getForumsId($temp[0], $type_id)) { $vars['forums'] = $forums_id; } elseif ($status_id = $helper->getStatusId($temp[0], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[1] == 'latest') { $vars['order'] = 'create_date desc'; } else { $vars['layout'] = $segments[$count - 1]; } } } elseif ($count == 3) { if ($forums_id = $helper->getForumsId($segments[$count - 2], $type_id)) { $vars['forums'] = $forums_id; } if ($status_id = $helper->getStatusId($segments[$count - 1], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[$count - 1] == 'latest') { $vars['order'] = 'create_date desc'; } else { $temp = explode(':', $segments[$count - 1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } } } elseif ($count == 4) { $vars['view'] = $segments[$count - 4]; $type_id = $helper->getTypeId($segments[$count - 3]); $vars['type'] = $type_id; if ($forums_id = $helper->getForumsId($segments[$count - 2], $type_id)) { $vars['forums'] = $forums_id; } if ($status_id = $helper->getStatusId($segments[$count - 1], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[$count - 1] == 'latest') { $vars['order'] = 'create_date desc'; } else { $temp = explode(':', $segments[$count - 1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } } } return $vars; } if ($vars['view'] == 'items') { $type_id = $helper->getTypeId($segments[1]); $vars['type'] = $type_id; if ($count == 3) { $temp = explode(':', $segments[$count - 1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } else { // Forums or Status if ($forums_id = $helper->getForumsId($temp[0], $type_id)) { $vars['forums'] = $forums_id; } elseif ($status_id = $helper->getStatusId($temp[0], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[2] == 'latest') { $vars['order'] = 'create_date desc'; } else { $vars['layout'] = $segments[$count - 1]; } } } elseif ($count == 4) { if ($forums_id = $helper->getForumsId($segments[2], $type_id)) { $vars['forums'] = $forums_id; } if ($status_id = $helper->getStatusId($segments[3], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[3] == 'latest') { $vars['order'] = 'create_date desc'; } else { $temp = explode(':', $segments[$count - 1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } } } } elseif ($vars['view'] == 'users') { $vars['view'] = 'users'; $temp = explode(':', $segments[1]); if (intval(@$temp[0])) { //Item detail $vars['uid'] = (int) $temp[0]; } else { $vars['uid'] = $helper->getUserId($segments[1]); } } elseif ($vars['view'] == 'feeds') { $vars['view'] = 'feeds'; if (isset($segments[1])) { $vars['layout'] = $segments[1]; } if (isset($segments[2])) { $vars['alias'] = str_replace(":", "-", $segments[2]); } } //print_r($vars);exit; return $vars; } if ($item->query['view'] == 'items' && $segments[0] != 'users' && $segments[0] != 'feeds') { $type_id = $helper->getTypeId($segments[0]); $vars['type'] = $type_id; if ($count == 2) { //$temp = split(':', $segments[1]); $temp = explode(':', $segments[1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } else { // Forums or Status if ($forums_id = $helper->getForumsId($segments[$count - 1], $type_id)) { $vars['forums'] = $forums_id; } elseif ($status_id = $helper->getStatusId($segments[$count - 1], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[1] == 'latest') { $vars['order'] = 'create_date desc'; } else { $vars['layout'] = $segments[$count - 1]; } } } elseif ($count == 3) { $temp = explode(':', $segments[$count - 1]); if (intval(@$temp[0])) { //Item detail $vars['cid'] = (int) $temp[0]; $vars['layout'] = 'item'; } if ($forums_id = $helper->getForumsId($segments[1], $type_id)) { $vars['forums'] = $forums_id; } if ($status_id = $helper->getStatusId($segments[2], $type_id)) { $vars['status'] = $status_id; } elseif ($segments[2] == 'latest') { $vars['order'] = 'create_date desc'; } elseif (!intval(@$temp[0])) { $vars['layout'] = $segments[$count - 1]; } } } elseif (isset($item->query['view']) && $item->query['view'] == 'users' || $segments[0] == 'users') { $vars['view'] = 'users'; if (isset($segments[1])) { $temp = explode(':', $segments[1]); if (intval(@$temp[0])) { //Item detail $vars['uid'] = (int) $temp[0]; } else { $vars['uid'] = (int) $helper->getUserId($segments[1]); } } if (!isset($vars['uid'])) { $vars['uid'] = 999999999999.0; } } elseif (isset($item->query['view']) && $item->query['view'] == 'feeds' || $segments[0] == 'feeds') { $vars['view'] = 'feeds'; if (isset($segments[1])) { $vars['layout'] = $segments[1]; } if (isset($segments[2])) { $segments[2] = str_replace(":", "-", $segments[2]); $vars['alias'] = $segments[2]; } } return $vars; }