Всем привет, подскажите кто знает как убрать в урл категории слеш в конце добавить просто .html, а в производителе наоборот, добавить в конце / ? OcStore 1.5.4.1
В стандартном seo_url нет такой проблемы со слешем, ето тольео в seo_pro можно в модуле catalog/controller/common/seo_pro.php костыль сделать типа такой вот вместо етого PHP: if (isset($postfix)) { $seo_url .= trim($this->config->get('config_seo_url_postfix')); } else { $seo_url .= '/'; } ето (костыль) PHP: if (isset($postfix)) { $seo_url .= trim($this->config->get('config_seo_url_postfix')); } elseif ($route == 'product/category') { $seo_url .= '.html'; } else { $seo_url .= '/'; }
Щас такой вид домен/zhenskiye/norka Применил ваш костыль стало домен/zhenskiye/norka.html может в .htaccess что то убирает его?
PHP: if (isset($postfix)) { $seo_url .= trim($this->config->get('config_seo_url_postfix')); } elseif ($route == 'product/category') { $seo_url .= '/'; } else { $seo_url .= '/'; }
И так тоже пробовал, все равно убирает слеш. Даже ради эксперимента ставил так ///////////// и это тоже обрезает. но если поставлю ./ то показывает только точку.
--- Добавлено, 10 фев 2014 --- Нашел решение, спасибо Вам и вашему костылю. Надо чуть изменить: if (isset($postfix)) {$seo_url .= trim($this->config->get('config_seo_url_postfix')); } elseif ($route == 'product/category') { $seo_url .= '/'; } else {$seo_url .= '/'; } На этот: if (isset($postfix)) {$seo_url .= trim($this->config->get('config_seo_url_postfix')); } elseif ($route == 'product/category') { $seo_url .= '/'; } В этом: $seo_url = trim($seo_url, '//'); убрать слеши и получится $seo_url = trim($seo_url, ''); Но вот в чем вопрос, не будут ли подводные камни?
если есть сомнения насчет безопасности то можите трим не убирать, после него конкатнуть в конец слеш при етом ничего ненадо менять с того что меняли выше. после PHP: $seo_url = trim($seo_url, '//'); вставляем PHP: $seo_url = . '/'; но ето если сомнения закрались
Спасибо так работает, но теперь почему то страницы с .html стали такие .html/ Как сделать чтоб / в конце был только в категориях
А если вот этот отрезок кода PHP: if (isset($postfix)) {$seo_url .= trim($this->config->get('config_seo_url_postfix')); } elseif ($route == 'product/category') { $seo_url .= '/'; } else {$seo_url .= '/'; } $seo_url = trim($seo_url, '//'); Заменить на этот PHP: if (isset($postfix)) {$seo_url .= trim($this->config->get('config_seo_url_postfix')); } else { $seo_url .= '/'; } $seo_url = trim($seo_url, '//'); if ($route == 'product/category') { $seo_url .= '/'; }
А что Вы скажете про этот вариант? Он тоже действует вроде! PHP: if (isset($postfix)) { $seo_url .= trim($this->config->get('config_seo_url_postfix')); } else { $seo_url .= '/'; } if(substr($seo_url, -2) == '//') { $seo_url = substr($seo_url, 0, -1); }
ну знаете, трим можно заменить многими реплейсами сабстрингами и т.д... скажем так, у вас велосипед поедет быстрее если вы его покрасите на другой цвет? Или от перестановки доданков сумма не меняется....
Да, но как бы и нет! С выше указанным кодом у меня почему то не получалось сравнивать: PHP: <li <?php if ($home.$_SERVER['REQUEST_URI'] == $shopping_cart) { ?>class="active"<?php } ?>><span class="hidden-link" data-link="<?php echo $shopping_cart; ?>" rel="nofollow"><noindex><?php echo $text_shopping_cart; ?></noindex></span></li> для определение на какой странице находишься, чтобы показать в меню.