Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Seo URL - Opencart 2.3.0.2


WellChuck

Recommended Posts

  В 16.01.2017 в 18:40, WellChuck сказав:

То-есть даже пытаться не стоит?

 

Может вы можете что-то в качестве альтернативы подкинуть?

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

 

То что в том "позоре" - делается элементарно очень просто и не надо этой навозной кучи говнокода.

Явно автор темы не программист, а модулей "насшибал"  у бедолаг с подвалов Мумбаи

Надіслати
Поділитися на інших сайтах

  В 16.01.2017 в 18:42, Dotrox сказав:

Логично.

 

А код модуля действительно местами не очень. Ну и, за отсутствие поддержки ЧПУ действительно можно было бы от автора потребовать либо исправлений, либо компенсации.

Совершенно верно.

 

К чему я и клоню ТС - что если только в этом участке обнаружен такой говнокод то представляю что там дальше

Надіслати
Поділитися на інших сайтах

  • 6 months later...
  В 12.01.2017 в 00:38, WellChuck сказав:

Уважаемые гуру, очень нуждаюсь в вашей помощи!

 

Собственно возникла проблема с работоспособность seo url в Opencart 2.3.0.2. Точнее сами ссылки работают, проблема заключается в том, что перестает работать пагинация, сортировка и лимиты товаров на страницу категории. В одной из тем дали ссылку на такое решение.

Вот только проблем с появлением ?page={page}, у меня нет...

Ссылки генерируются, но не прожимаются  :mellow:

<a href="javascript:void(0);" onclick="oclayerednavigationajax.filter("http://site/kabel?page=2")">2</a>

Куда копать?

Что делать?  :mellow:

Expand  

Была такая же проблема. Решение:в файле /catalog/view/javascript/opentheme/oclayerednavigation/oclayerednavigation.js

закоментируйте строки

 /* Modify pagination links */
    // paginationChangeAction: function () {
    //     $('.layer-category .custom-category .pagination a').each(function () {
    //         var href = $(this).attr('href');
    //         $(this).attr('onclick', 'oclayerednavigationajax.filter("'+ href +'")');
    //         $(this).attr('href', 'javascript:void(0);');
    //     });
    // }

Мне помогло.

Надіслати
Поділитися на інших сайтах


  В 07.08.2017 в 08:29, s4ik сказав:

Решение:в файле /catalog/view/javascript/opentheme/oclayerednavigation/oclayerednavigation.js

закоментируйте строки

Expand  

Это не решение, а заплатка ломающая аякс навигацию. Решение на предыдущей странице.

Надіслати
Поділитися на інших сайтах


  • 1 month later...
  В 07.08.2017 в 17:41, Dotrox сказав:

Это не решение, а заплатка ломающая аякс навигацию. Решение на предыдущей странице.

Expand  

только небольшая поправка, код

<div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?>

нужно заменить на код

<div id="content" data-path="<?php echo $path; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?>

не в файле /catalog/view/theme/__шаблон__/template/product/category.tpl а в файле

catalog/view/theme/ваш_шаблон/template/extension/module/oclayerednavigation/occategory.tpl

а так в целом все ок, проверено, работает

Змінено користувачем dmal85
Надіслати
Поділитися на інших сайтах


  • 2 months later...
  В 07.08.2017 в 17:41, Dotrox сказав:

Это не решение, а заплатка ломающая аякс навигацию. Решение на предыдущей странице.

Expand  

Возникла та же самая проблема с пагинацией и сортировкой на странице категории товаров. Сделала все по вашей инструкции, но проблема так и осталась. Ссылка при нажатии на следующую страницу выглядит: 

<a href="javascript:void(0);" onclick="oclayerednavigationajax.filter("javascript:void(0);")">2</a>

Подскажите, что делаю не так.

 

 

Надіслати
Поділитися на інших сайтах


  В 12.12.2017 в 20:46, Melvich сказав:

Ссылка при нажатии на следующую страницу выглядит: 

<a href="javascript:void(0);" onclick="oclayerednavigationajax.filter("javascript:void(0);")">2</a>

Подскажите, что делаю не так.

Expand  

Ссылка не должна так выглядеть.

Если она так выглядела изначально, значит у вас другая версия модуля и нужно заново разбираться.

Надіслати
Поділитися на інших сайтах


Ребят, кто подскажет как вернуть стандартную пагинацию? сейчас такая:

/index.php?route=extension/module/oclayerednavigation/category&path=85&page=2

Файл oclayerednavigation.js

$(document).ready(function() {
    oclayerednavigationajax.productViewChange();
    oclayerednavigationajax.paginationChangeAction();
});

var oclayerednavigationajax = {

    /* Filter action */
    'filter' : function(filter_url) {
        var old_route = 'route=product/category';
        var new_route = 'route=extension/module/oclayerednavigation/category';
        if(filter_url.search(old_route) != -1) {
            filter_url = filter_url.replace(old_route, new_route);
        }

        if(filter_url.search(new_route) != -1) {
            $.ajax({
                url         : filter_url,
                type        : 'get',
                beforeSend  : function () {
                    $('.layered-navigation-block').show();
                    $('.ajax-loader').show();
                },
                success     : function(json) {
                    $('.filter-url').val(json['filter_action']);
                    $('.price-url').val(json['price_action']);
                    $('.custom-category').html(json['result_html']);
                    $('.layered').html(json['layered_html']);
                    oclayerednavigationajax.paginationChangeAction();
                    oclayerednavigationajax.productViewChange();
                    $('.layered-navigation-block').hide();
                    $('.ajax-loader').hide();
                }
            });
        }

    },

    /* Use again and update ajaxComplete from common.js */
    'productViewChange' : function() {
        // Product List
        $('#list-view').click(function() {
            $('#content .product-layout > .clearfix').remove();

            $('#content .product-layout').attr('class', 'product-layout product-list col-xs-12');

            localStorage.setItem('display', 'list');
        });

        // Product Grid
        $('#grid-view').click(function() {
            $('#content .product-layout > .clearfix').remove();

            // What a shame bootstrap does not take into account dynamically loaded columns
            cols = $('#column-right, #column-left').length;

            if (cols == 2) {
                $('#content .product-layout').attr('class', 'product-layout product-grid col-md-6 col-sm-12 col-xs-12 two-items');
            } else if (cols == 1) {
                $('#content .product-layout').attr('class', 'product-layout product-grid col-md-4 col-sm-6 col-xs-12 three-items');
            } else {
                $('#content .product-layout').attr('class', 'product-layout product-grid col-md-3 col-sm-6 col-xs-12 four-items');
            }

            localStorage.setItem('display', 'grid');
        });

        if (localStorage.getItem('display') == 'list') {
            $('#list-view').trigger('click');
        } else {
            $('#grid-view').trigger('click');
        }
    },
    
    /* Modify pagination links */
    // paginationChangeAction: function () {
    //     $('.layer-category .custom-category .pagination a').each(function () {
    //         var href = $(this).attr('href');
    //         // $(this).attr('onclick', 'oclayerednavigationajax.filter("'+ href +'")');
    //         // $(this).attr('href', 'javascript:void(0);');
    //     });
    // }

};

 

Надіслати
Поділитися на інших сайтах


  В 13.12.2017 в 13:55, wlll сказав:

 

    /* Modify pagination links */
    // paginationChangeAction: function () {
    //     $('.layer-category .custom-category .pagination a').each(function () {
    //         var href = $(this).attr('href');
    //         // $(this).attr('onclick', 'oclayerednavigationajax.filter("'+ href +'")');
    //         // $(this).attr('href', 'javascript:void(0);');
    //     });
    // }

 

Expand  

Если этот код у вас действительно закомментирован, то ссылки пагинации не должны подменяться, но должна быть ошибка js поскольку выше есть вызов этой функции.

 

Посмотрите в консоли браузера: если ошибка есть - значит ссылки ещё раньше подменяются модификаторами (или оно так изначально в шаблоне), если ошибки нет - значит у вас используется код не из этого файла.

Надіслати
Поділитися на інших сайтах


  В 12.12.2017 в 21:00, Dotrox сказав:

Ссылка не должна так выглядеть.

Если она так выглядела изначально, значит у вас другая версия модуля и нужно заново разбираться.

Expand  

 

Ссылка изначально так выглядела до внесения правок. Файл oclayerednavigation.js совпадает с файлом автора.

$(document).ready(function() {
    oclayerednavigationajax.productViewChange();
    oclayerednavigationajax.paginationChangeAction();
});

var oclayerednavigationajax = {

    /* Filter action */
    'filter' : function(filter_url) {
        var old_route = 'route=product/category';
        var new_route = 'route=extension/module/oclayerednavigation/category';
        if(filter_url.search(old_route) != -1) {
            filter_url = filter_url.replace(old_route, new_route);
        }

        if(filter_url.search(new_route) != -1) {
            $.ajax({
                url         : filter_url,
                type        : 'get',
                beforeSend  : function () {
                    $('.layered-navigation-block').show();
                    $('.ajax-loader').show();
                },
                success     : function(json) {
                    $('.filter-url').val(json['filter_action']);
                    $('.price-url').val(json['price_action']);
                    $('.custom-category').html(json['result_html']);
                    $('.layered').html(json['layered_html']);
                    oclayerednavigationajax.paginationChangeAction();
                    oclayerednavigationajax.productViewChange();
                    $('.layered-navigation-block').hide();
                    $('.ajax-loader').hide();
                }
            });
        }

    },

    /* Use again and update ajaxComplete from common.js */
    'productViewChange' : function() {
        // Product List
        $('#list-view').click(function() {
            $('#content .product-layout > .clearfix').remove();

            $('#content .product-layout').attr('class', 'product-layout product-list col-xs-12');

            localStorage.setItem('display', 'list');
        });

        // Product Grid
        $('#grid-view').click(function() {
            $('#content .product-layout > .clearfix').remove();

            // What a shame bootstrap does not take into account dynamically loaded columns
            cols = $('#column-right, #column-left').length;

            if (cols == 2) {
                $('#content .product-layout').attr('class', 'product-layout product-grid col-md-6 col-sm-12 col-xs-12 two-items');
            } else if (cols == 1) {
                $('#content .product-layout').attr('class', 'product-layout product-grid col-md-4 col-sm-6 col-xs-12 three-items');
            } else {
                $('#content .product-layout').attr('class', 'product-layout product-grid col-md-3 col-sm-6 col-xs-12 four-items');
            }

            localStorage.setItem('display', 'grid');
        });

        if (localStorage.getItem('display') == 'list') {
            $('#list-view').trigger('click');
        } else {
            $('#grid-view').trigger('click');
        }
    },
    
    /* Modify pagination links */
    paginationChangeAction: function () {
        $('.layer-category .custom-category .pagination a').each(function () {
            var href = $(this).attr('href');
            $(this).attr('onclick', 'oclayerednavigationajax.filter("'+ href +'")');
            $(this).attr('href', 'javascript:void(0);');
        });
   }

};

При комментировании строк , как советовали выше, пагинация слетает.

Надіслати
Поділитися на інших сайтах


  В 13.12.2017 в 20:25, Melvich сказав:

При комментировании строк , как советовали выше, пагинация слетает.

Expand  

Вероятно, у вас другая версия шаблона или конфликт с чем-то. Надо на сайт глянуть.

Надіслати
Поділитися на інших сайтах


  В 13.12.2017 в 23:11, Melvich сказав:
Expand  

У вас таки другая версия шаблона. Тут изначально на странице ссылки пагинации ведут на этот модуль, потому пагинация и слетает при комментировании кода.

 

Вообще, у вас там с вёрсткой какая-то жуть творится (доктайпа нет, содержимое head в body, незакрытые теги). Плюс, есть куски js, которые по несколько раз повторяются, например, тот, который в конец страницы воткнут (я так понимаю, это бесконечный скролл товаров), в нём ещё и ошибка:

autoscroller.loading = ;

Вероятно, там из php должно было значение подставится, но не подставилось.

Надіслати
Поділитися на інших сайтах


Прокрутка на сайте тоже не сработала, а ошибка с пагинацией возникла до ее добавления.

Верстка вся шаблонная, ее не трогала. Есть ли смысл возиться с этим шаблоном и его модулями, жалко потраченного на него времени! Или проще все снести и создать сайт заново с вменяемым шаблоном?

Надіслати
Поділитися на інших сайтах


  В 13.12.2017 в 13:55, wlll сказав:

Ребят, кто подскажет как вернуть стандартную пагинацию? сейчас такая:

/index.php?route=extension/module/oclayerednavigation/category&path=85&page=2

Файл oclayerednavigation.js

  Показати вміст

 

 

Expand  

Скорей всего урлы подменяются в файле oclayerednavigation.php, но не могу найти где именно. Кто подскажет?

  Показати вміст
Змінено користувачем wlll
Надіслати
Поділитися на інших сайтах


  В 19.12.2017 в 12:27, wlll сказав:

Скорей всего урлы подменяются в файле oclayerednavigation.php, но не могу найти где именно. Кто подскажет?

Expand  

Нет. Они либо изначально в шаблоне уже модифицированные, либо изменяются через модификаторы.

Надіслати
Поділитися на інших сайтах


  • 3 months later...
  В 16.01.2017 в 17:49, Dotrox сказав:

В /catalog/controller/product/category.php после

if (isset($this->request->get['path'])) {

Добавляете:

$data['path'] = $this->request->get['path'];

В /catalog/view/theme/__шаблон__/template/product/category.tpl строку

 <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?>

Дополняете до такого вида:

 <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?>

А затем уже правите js. Перед

if(filter_url.search(new_route) != -1) {

Добавляете:

if(filter_url.search(new_route) == -1) {    
    var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : '';
    var i = filter_url.search('?');
    if(i > -1){
        query += filter_url.slice(i+1);
    }

    filter_url = new_route + query;
}
Expand  

Подскажите пожалуйста, какой именно js файл нужно править? oclayerednavigation.js?

Змінено користувачем hdysgtsycilw
Надіслати
Поділитися на інших сайтах


  • 1 month later...
  В 16.01.2017 в 17:49, Dotrox сказав:

В /catalog/controller/product/category.php после

if (isset($this->request->get['path'])) {

Добавляете:

$data['path'] = $this->request->get['path'];

В /catalog/view/theme/__шаблон__/template/product/category.tpl строку

 <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?>

Дополняете до такого вида:

 <div id="content" data-path="<?php echo isset($path) ? $path : ''; ?>" class="<?php echo $class; ?>"><?php echo $content_top; ?>

А затем уже правите js. Перед

if(filter_url.search(new_route) != -1) {

Добавляете:

if(filter_url.search(new_route) == -1) {    
    var query = '?' + (typeof($('#content').attr('path')) != 'undefined') ? 'path=' + $('#content').attr('path') : '';
    var i = filter_url.search('?');
    if(i > -1){
        query += filter_url.slice(i+1);
    }

    filter_url = new_route + query;
}
Expand  

 

Приветствую! Такая же проблема с пагинацией и фильтрами. Не могу только понять, почему мне не помогает этот код. 

В контенте data-path пустой выводится. А category.php вообще пробовал стереть полностью - ничего не меняется, товары также отображаются)

Надіслати
Поділитися на інших сайтах


  В 28.05.2018 в 05:19, barsukov сказав:

А category.php вообще пробовал стереть полностью - ничего не меняется, товары также отображаются)

Expand  

После внесения любых правок надо обновлять кеш окмод!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.