Перейти к содержанию
lakbor

Свеженький СЕО-модуль для OpenCart - прошу заценить и потестить) SeoBro

Рекомендуемые сообщения

Приветствую вас, товарищи форумчане!

У меня по рабочей необходимости родился сео-модуль, решающий важную, как мне кажется, задачу.
Он позволяет создавать (отображать точнее) вложенности с одинаковыми alias.
Например:

Разные категории с одинаковыми alias:

http://localhost/catalogue/audi/kapoty
http://localhost/catalogue/bmw/kapoty
http://localhost/catalogue/mercedes/kapoty

Или вдобавок к ним страницы брендов:

http://localhost/brands/audi
http://localhost/brands/bmw
http://localhost/brands/mercedes

Почему я написал этот модуль? На момент работы над одним сайтом потребовались одинаковые подкатегории в разных родительских.
Сначала думал подправить SeoPro, но посмотрел как в нём устроено кэширование и всё остальное, и решил, что переписывать придётся слишком много, я запутаюсь в коде, и ничем хорошим это не кончится.

Итак, этот модуль выдаёт тот же результат, что и SeoPro при обычных обстоятельствах, а при наличии одинаковых alias - не очкует и показывает нужную страницу))
Работает с той же колонкой, что и SeoPro: main_category (для совместимости двух модулей решил не вводить ничего лишнего в БД)

Алгоритм отличается как от SeoUrl, так и от SeoPro.

В планах доработать следующие моменты:

  1. Хлебные крошки выводят, так сказать, канонический путь, а не тот по которому шёл клиент. Я считаю это неправильным, и исправлю в скором времени.
  2. У модуля нет установщика, а это ни разу не круто. Но модуль ещё сырой, простим ему это.
  3. Хочу сделать красивую админ.страницу для настроек модуля, а они обязательно понадобятся.
  4. Сейчас кэширование производится в одном файле, хочу сделать два, так будет правильнее.
  5. Не реализовано добавление / изменение чпушек с одинаковыми alias в админке, пока что только через БД. Скоро перепишу код проверки.

Установка:
1. скопировать seo_bro.php в папку /content/controller/common/
2. скопировать файл pagination.php в /system/modification/system/library/
* pagination.php это отредактированный родной файл - там убраны дубли первой страницы пагинации ( ?page=1 - когда находишься дальше первой страницы) - необязательный файл, просто тогда останутся несколько дублей

Чтобы присвоить категориям одинаковые alias, сначала нужно их сохранить под разными, а потом в БД подправить на одинаковые.
Знаю, пока просто не дописал эту часть. Не кидайте только в меня помидорками - я в процессе переработки фильтра полей при заполнении поля, идущего в url_alias.
Потестить вы и так сможете, ну или подождите пока допишу (пишу во нерабочее время, поэтому долго).

Активация:
В той сборке, для которой изначально создавался модуль (   а он пока не тестировался на других:(    ), он включался влоб, в index.php:

// SEO URL's
$controller->addPreAction(new Action('common/seo_bro'));

Если же всё-таки версия ocStore, то там это дело вкл в БД, либо в контроллере админки надо приписать по аналогии с SeoPro

*Ещё раз подчёркиваю, что версия сырая, на любителя) но если проявите интерес и подождёте, то я таки превращу эту штуковину в конфетку.

Итак, чего я, собственно, тут хочу) Прошу камрадов потестить модуль, сказать нужен ли он вообще сообществу, стоит ли допиливать его до полноценного продукта, который не стыдно в раздел Дополнения запихнуть)

К критике отношусь спокойно, просто будьте вежливыми.

Сайт, на котором проводилось тестирование, к сожалению, работает на OpenCart 2.1._что-то-там_ (а не на ocStore).
SeoPro был установлен владельцем сайта, соответственно в админке уже было поле "Главная категория" у продукта и столбец main_category в БД.

Больше всего интересует нужно ли вообще это чудо сообществу (если да, то я впихну со временем туда кучу плюшек типа массового редактирования main_category, url_alias и некоторых настроек модуля типа кнопок сброса, вкл/откл кэша и т.д.)

Ах да, совсем забыл! Модуль я назвал SeoBro))

Спасибо за внимание!

pagination.php

seo_bro.php

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, lakbor сказал:

 

К критике отношусь спокойно, просто будьте вежливыми.

Добрый день, уважаемый.

Простите великодушно, из каких соображений тема в песочнице? Вопрос-то не детский!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хмм, а кто ж меня знает, впервые тему на форуме создаю, напутал наверн... давайте переместим куда следует)

 

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Только что, florapraktik сказал:

Добрый день, уважаемый.

Простите великодушно, из каких соображений тема в песочнице? Вопрос-то не детский!

так тут и собираются те кто понимает и помагает
норм папал человек)

Только что, lakbor сказал:

хмм, а кто ж меня знает, впервые тему на форуме создаю, напутал наверн... давайте переместим куда следует)

 

норм, туда куда надо ;) )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

первое что увидел

HTTP_SERVER

https не бывает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эти пару строк я дёрнул из SeoPro, дабы не изобретать велосипед с перенаправлениями и не обратил внимания...
Если я правильно понимаю, то можно просто заменить константу на HTTPS_SERVER, и тогда в случае если сайт на ssl, адрес получится с https, а если без ssl, то с обычным http. (у меня по-крайней мере в конфиге в обеих константах адрес с http:// забит => моя теория должна работать))

Спасибо за замечание, проверю как смогу и в след версии поправлю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все хорошо, очень напоминает какой то класс их готовых FW типа YII, не помню, какой именно.
Но суть не в этом.
 

Смысл сеопро. В том, что как ни вводи /bmw, всегда будет уникальная страница. В вашем же случае, понимаю, необходимость одинаковых названий, все дела, но все же вы убили напрочь, этот момент. Поэтому сколько может расплодиться дублей в магазине - одному богу известно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем? Вот такой простой вопрос.
Вы понимаете почему Даниэль к примеру не изменяет существенно seo_url или почему seo_pro практически не меняется?
Да потому, что это как стандарт для привязки ДРУГИХ решений разработчиков в формировании ЧПУ.

Вы изобрели велик, который никому больше не понадобится, потому что он НЕ СТАНДАРТ и его никто поддерживать из разработчиков не будет.

Надо не заменять стандартные ЧПУ формирователи, а расширять ИХ функционал, причем согласно стандартов.

Посмотрел быстро код - пока всё плохо. Старайтесь лучше

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, snastik сказал:

Все хорошо, очень напоминает какой то класс их готовых FW типа YII, не помню, какой именно.
Но суть не в этом.
 

Смысл сеопро. В том, что как ни вводи /bmw, всегда будет уникальная страница. В вашем же случае, понимаю, необходимость одинаковых названий, все дела, но все же вы убили напрочь, этот момент. Поэтому сколько может расплодиться дублей в магазине - одному богу известно.

Насчёт дублей это скорее одному СЕОшнику известно) код писался под СЕО цели, и не вижу проблем с дублями, увы. Идея как раз и была в том, чтобы избавиться от дублей, при этом имея указанную выше вложенность.

То есть, на примере тех же Ауди-БМВ: у нас есть страница /brands/audi (/product/manufacturer/info) - там инфо о бренде и все товары к нему привязанные;
ещё у нас есть страница в каталоге /cataдogue/audi - на ней уже информация о запчастях, рассортированная по понятным категориям (кузов, подвеска и т.д.)
а ещё добавим (для примера, так-то идея плохая)) /catalogue/akcii/audi - сюда разместим акции на товары для Ауди
ну и ещё можно написать статьи по чему-либо, связанному с Ауди: /statii/audi

По сути сейчас такая вложенность делается через прибавление циферок 1,2,3 и так до бесконечности) [ну или как в престашопе добавлением ID ко всему, что движется]

6 часов назад, snastik сказал:

как ни вводи /bmw, всегда будет уникальная страница

Точнее не уникальная страница, а одна и та же, а вот в моем модуле как раз таки уникальная в зависимости от вложенности) хотя смотря что считать уникальным)))

 

2 часа назад, markimax сказал:

Зачем? Вот такой простой вопрос.

Решал конкретную задачу, и, как показала практика, решил)

2 часа назад, markimax сказал:

Вы изобрели велик, который никому больше не понадобится

Насчёт понадобится - не понадобится. Ради этого вопроса пост и писался. Как я вижу проблему: по работе регулярно требуется реализовать подобную структуру, другое дело что большинство сайтов на другой CMS, у которой нет пунктика насчёт уникальности alias на всю систему. Пришёл магазин на OpenCart и вот пошло-поехало)

Если действительно никому нафиг не будет нужно сиё творение, без вопросов закроем тему - буду кататься на велике сам

2 часа назад, markimax сказал:

Посмотрел быстро код - пока всё плохо. Старайтесь лучше

Спасибо, приму к сведению

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день!  На мой взгляд отличная идея, мы на данный момент тоже столкнулись с проблемой формирования нормальных урлов для категорий где нужно использовать один алиас при условии, что родители разные. И я совершенно не считаю, что это может стать причиной дублей. 

 

Также в сеопро есть ещё одна проблема. Дело в том, что если в барузер ввести страницу пагинации которой не существует, то он не отдаёт ошибку 404, а открывает пустую страницу. Соответственно, если в категории стало меньше товаров, то страниц в пагинации становится меньше и бот ходит по пустым страницам (дублям).  Попробуйте на своих проектах с ввести /?page=100500 в категориях. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.