Такая проблема. Поставил фильтровый модуль OCFilter. Фильтр настроил, работает нормально. Только не могу понять как изменить вид ссылок в модуле. Сейчас ссылки такого типа: сайт/категория/бренд/ название-фильтра/ Значение-фильтра, а необходимо: сайт/категория/бренд_название-фильтра_значение-фильтра. Было несколько попыток изменить код контроллера фильтра. Вот что получилось:
foreach ($params as $option_id => $values) {
if ($option_id == 'p') {
$path .= '/price';
} else if ($option_id == 's') {
$path .= '/sklad';
} else if ($option_id != 'm') {
$query = $this->db->query("SELECT keyword FROM " . DB_PREFIX . "ocfilter_option WHERE option_id = '" . (int)$option_id . "'");
if ($query->num_rows && $query->row['keyword']) {
if ($option_id == 'm'){
$path .= '_' . $query->row['keyword'];
}else{
$path .= '/' . $query->row['keyword'];
}
} else {
$path .= '/' . $option_id;
}
}
foreach ($values as $value_id) {
$query = false;
if ($option_id == 'm') {
$query = $this->db->query("SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE `query` = 'manufacturer_id=" . (int)$value_id . "'");
} else if (isID($value_id)) {
$query = $this->db->query("SELECT keyword FROM " . DB_PREFIX . "ocfilter_option_value WHERE value_id = '" . $this->db->escape((string)$value_id) . "'");
}
if ($query && $query->num_rows && $query->row['keyword']) {
if ($option_id != 'm'){
$path .= '_' . $query->row['keyword'];
}else{
$path .= '/' . $query->row['keyword'];
}
}
else {
$path .= '_' . $value_id;
}
}
}
+ изменил:
$_route_ = $this->request->get['_route_'];
$_route_ = str_replace('_','/',$_route_);
$keywords = explode('/', $_route_);
Ссылка сейчас такого вида: сайт/категория/бренд_название-фильтра_значение-фильтра.
Но когда выбираю просто фильтр без бренда, то получается такое: сайт/категория_название-фильтра_значение-фильтра.
Помогите советом, что я делаю не так, и как это можно исправить. Бьюсь уже 3 день и не получается. Заранее всем спасибо!