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

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


lakbor

Recommended Posts

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

У меня по рабочей необходимости родился сео-модуль, решающий важную, как мне кажется, задачу.
Он позволяет создавать (отображать точнее) вложенности с одинаковыми 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 сказал:

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

 

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

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


Эти пару строк я дёрнул из 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
Надіслати
Поділитися на інших сайтах


  • 2 months later...

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

 

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

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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