Дубли страниц

Всё, связанное с программной частью системы, правка модулей, вопросы по php и mysql

Re: Дубли страниц

Postby Равиль » 13 Jan 2020, 13:49

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

Code: Select all
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;
}
User avatar
Равиль
 
Posts: 153
Joined: 19 Nov 2017, 18:54

Re: Дубли страниц

Postby Alexandr » 13 Jan 2020, 16:56

Что-то не сработал вариант
Alexandr
 
Posts: 14
Joined: 18 Dec 2017, 11:37

Re: Дубли страниц

Postby Равиль » 13 Jan 2020, 17:07

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

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


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

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

1. При установке редиректа в .htaccess на без слеша. Модули allmess и allmesvip впадут в бесконечный редирект - необходимы правки.
2. Необходимо править модуль sitemap.
3. Отвалиться пагинация везде, где она присутствует.
User avatar
Равиль
 
Posts: 153
Joined: 19 Nov 2017, 18:54

Re: Дубли страниц

Postby Alexandr » 14 Jan 2020, 09:05

Какой кусок править в файле это понятно, не ясно как поправить. Уже разные варианты перепробовал, ничего не помогает
Alexandr
 
Posts: 14
Joined: 18 Dec 2017, 11:37

Re: Дубли страниц

Postby Geo » 14 Jan 2020, 13:12

вот так
Code: Select all
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;
}
User avatar
Geo
Администратор
 
Posts: 986
Joined: 20 Sep 2010, 21:15

Re: Дубли страниц

Postby Alexandr » 14 Jan 2020, 13:31

Заменил код. Но в ссылке в хлебных крошка всё равно присутствует регион, если выбран какой-то из регионов. А так же слеш на конце.
Alexandr
 
Posts: 14
Joined: 18 Dec 2017, 11:37

Re: Дубли страниц

Postby Alexandr » 14 Jan 2020, 18:10

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

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

Re: Дубли страниц

Postby Равиль » 14 Jan 2020, 19:25

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


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

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

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

Было
Code: Select all
            {%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%}


Стало
Code: Select all
{%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%}
User avatar
Равиль
 
Posts: 153
Joined: 19 Nov 2017, 18:54

Re: Дубли страниц

Postby admin » 16 Jan 2020, 10:57

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

Дополнительно замените в body.html {%$t.link%} на {%$t.link|substr:0:-1%}
User avatar
admin
Администратор
 
Posts: 3
Joined: 20 Sep 2010, 00:13

Re: Дубли страниц

Postby Alexandr » 16 Jan 2020, 12:17

Благодарю, работает!
Alexandr
 
Posts: 14
Joined: 18 Dec 2017, 11:37

PreviousNext

Return to Программная часть скрипта

Who is online

Users browsing this forum: No registered users and 3 guests