Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
//вспомогательная фнк, возвращает измененную uri-строку
function _uri_arr_replace($uri_arr_replace){
$uri_arr = $this->uri->uri_to_assoc();//достаем массив ключъ=>значение с uri
foreach ($uri_arr_replace AS $key => $value){
$uri_arr[$key] = $value;//меняем или добавляем значение
if (empty($value)) unset($uri_arr[$key]);//удаляем пустой ключъ
}
return $this->uri->assoc_to_uri($uri_arr);
}
//меняет URL если не нужно менять первые 2 сегмента
function uri_replace($uri_arr_replace){
$seg_str = "/";
$seg_str .= ($this->uri->segment(1) ? ($this->uri->segment(1)."/") : "") . ($this->uri->segment(2) ? ($this->uri->segment(2)."/") : "");
if ($this->uri->segment(2)) return "http://".$_SERVER['SERVER_NAME'].$seg_str.$this->_uri_arr_replace($uri_arr_replace);
else return "http://".$_SERVER['SERVER_NAME'].$seg_str;
}
//меняет URL если нужно менять и первые 2 сегмента
function url_replace($seg, $uri_arr_replace = array()){
$seg_str = "/";
foreach ($seg AS $val) if (!empty($val)) $seg_str .= $val . "/";
if (!(empty($seg[0]) || empty($seg[1])))
return "http://".$_SERVER['SERVER_NAME'].$seg_str.$this->_uri_arr_replace($uri_arr_replace);
else return "http://".$_SERVER['SERVER_NAME'].$seg_str;
}
<li class="active"><a href="<?= $this->url_model->url_replace(array("news")) ?>">Новости</a></li>
ЧПУ + GET