Сообщения без ответов | Активные темы Текущее время: 28 сен 2020, 17:07



Ответить на тему  [ Сообщений: 21 ]  Страница «  1, 2, 3  »
Дубли страниц 
Автор Сообщение
Аватара пользователя

Зарегистрирован: 19 ноя 2017, 18:54
Сообщения: 260
Аватара пользователя

Там условие какое-то нужно писать, чтобы последний слеш удалить. Если в этом коде слеш удалить, он полностью на всех уровнях пропадает.

Код:
function breadcrumb($id, $cats, $uri_prefix=PATH, $uri_suffix='',$run=true){
    static $return = array();
    if($run) $return = array();
    if($id != 0){
        foreach($cats as $k => $v){
            if($k == $id){
                $return[] = $v;
                breadcrumb($v['parent'], $cats, $uri_prefix, $uri_suffix, false);
            }
        }
    }else{
        $return = array_reverse($return);
        $saved_uri = '';
        if(count($return) > 0){
            foreach($return as $k=>$v){
                $saved_uri .= $v['uri'].'/';
                $v['href'] = $uri_prefix.$saved_uri.$uri_suffix;
                $return[$k] = $v;
            }
        }
    }
    return $return;
}


13 янв 2020, 13:49
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Что-то не сработал вариант


13 янв 2020, 16:56
Профиль
Аватара пользователя

Зарегистрирован: 19 ноя 2017, 18:54
Сообщения: 260
Аватара пользователя

Alexandr писал(а):
Что-то не сработал вариант

"Это не вариант, стандартный кусок кода.


Обязательно к прочтению перед изменениями.

для тех, кто решит следовать данным переделкам

1. При установке редиректа в .htaccess на без слеша. Модули allmess и allmesvip впадут в бесконечный редирект - необходимы правки.
2. Необходимо править модуль sitemap.
3. Отвалиться пагинация везде, где она присутствует.


13 янв 2020, 17:07
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Какой кусок править в файле это понятно, не ясно как поправить. Уже разные варианты перепробовал, ничего не помогает


14 янв 2020, 09:05
Профиль
Администратор
Аватара пользователя

Зарегистрирован: 20 сен 2010, 21:15
Сообщения: 1424
Аватара пользователя

вот так
Код:
function breadcrumb($id, $cats, $uri_prefix=PATH, $uri_suffix='',$run=true){
    static $return = array();
    global $settings, $second_region;
    if($uri_prefix == PATH && $settings['path_region_allow'] && isset($second_region['uri']) && count($second_region['uri']) > 0){
        $uri_prefix .= implode('/', $second_region['uri']).'/';
    }
    if($run) $return = array();
    if($id != 0){
        foreach($cats as $k => $v){
            if($k == $id){
                $return[] = $v;
                breadcrumb($v['parent'], $cats, $uri_prefix, $uri_suffix, false);
            }
        }
    }else{
        $return = array_reverse($return);
        $saved_uri = '';
        if(count($return) > 0){
            foreach($return as $k=>$v){
                $saved_uri .= $v['uri'].'/';
                $v['href'] = $uri_prefix.substr($saved_uri, 0, -1).$uri_suffix;
                $return[$k] = $v;
            }
        }
    }
    return $return;
}

_________________
support@illusionweb.org


14 янв 2020, 13:12
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Заменил код. Но в ссылке в хлебных крошка всё равно присутствует регион, если выбран какой-то из регионов. А так же слеш на конце.


14 янв 2020, 13:31
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

По поводу региональной ссылки в хлебных крошках разобрался.
В файле includes\compile\cat.php строку $uri = $settings['path_region'];
надо заменить на $uri = $settings['path'];

Осталось понять как убрать слеш в конце в breadcrumb. И самое главное как поправить пагинацию, т.к. при ранее приведенном коде для редиректа ссылок без "слеш", номера страниц "pageХ.html" переадресует на главную минуя дочерние категории.
Уважаемый Geo, прошу помощи!


14 янв 2020, 18:10
Профиль
Аватара пользователя

Зарегистрирован: 19 ноя 2017, 18:54
Сообщения: 260
Аватара пользователя

Alexandr писал(а):
По поводу региональной ссылки в хлебных крошках разобрался.
В файле includes\compile\cat.php строку $uri = $settings['path_region'];
надо заменить на $uri = $settings['path'];


У вас при выбранном регионе, не будет формироваться региональная ссылка в категориях.
Что касается последнего слеша, у меня его нет в объявлениях. Но есть в категориях.

Замена части кода пагинации, в файле pagination.html находящемся в корне шаблона
Нужно поменять условие вывода ссылки в 3 местах на
Код:
{%$settings.path_rel%}page{%$p%}.html

В моём шаблоне выглядит так

Было
Код:
            {%if $page > 1%}
                {%assign var="p" value=$page-1%}
                <li><a class="pagination-btn" href="page{%$p%}.html{%$get_str%}"><span>{%$locale.324%}</span></a></li>
            {%/if%}
            {%section name=page start=$num_start loop=$num_end+1 %}
                {%assign var="p" value=$smarty.section.page.index%}
                 <li {%if $smarty.get.page == $p%}class='active'{%/if%}><a href="page{%$p%}.html{%$get_str%}" >{%$p%}</a></li>
            {%/section%}
            {%if $page < $pages%}
                {%assign var="p" value=$page+1%}{%if $p == 1%}{%assign var="p" value=2%}{%/if%}
                <li><a class="pagination-btn" href="page{%$p%}.html{%$get_str%}"><span class="">{%$locale.1193%}</span></a></li>
            {%/if%}


Стало
Код:
{%if $page > 1%}
{%assign var="p" value=$page-1%}
<li><a class="pagination-btn" href="{%$settings.path_rel%}page{%$p%}.html"><span>{%$locale.324%}</span></a></li>
{%/if%}
{%section name=page start=$num_start loop=$num_end+1 %}
{%assign var="p" value=$smarty.section.page.index%}
<li {%if $smarty.get.page == $p%}class='active'{%/if%}><a href="{%$settings.path_rel%}page{%$p%}.html" >{%$p%}</a></li>
{%/section%}
{%if $page < $pages%}
{%assign var="p" value=$page+1%}{%if $p == 1%}{%assign var="p" value=2%}{%/if%}
<li><a class="pagination-btn" href="{%$settings.path_rel%}page{%$p%}.html"><span class="">{%$locale.1193%}</span></a></li>
{%/if%}


14 янв 2020, 19:25
Профиль
Администратор
Аватара пользователя

Зарегистрирован: 20 сен 2010, 00:13
Сообщения: 3
Аватара пользователя

Alexandr писал(а):
Заменил код. Но в ссылке в хлебных крошка всё равно присутствует регион, если выбран какой-то из регионов. А так же слеш на конце.

Дополнительно замените в body.html {%$t.link%} на {%$t.link|substr:0:-1%}


16 янв 2020, 10:57
Профиль

Зарегистрирован: 18 дек 2017, 11:37
Сообщения: 26

Благодарю, работает!


16 янв 2020, 12:17
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 21 ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти: