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

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

Всем привет. С опенкарт знаком недавно, поэтому не судите, искал по форуму не нашел. 
Версия Опенкарт 3.0.2.0 
Не могу понять как сделать ЧПУ на системных страницах ( Логин/Регистрация, Контакты, и др)  типа: index.php?route=information/contact
Сразу скажу: Галочку ЧПУ нажал, файл .htaccess переименовал, кеш который находится в system - не нашел, в смысле его там нет.( не знаю может его там не должно быть)) 

В админ панели на вкладке Dashboard справа нажимал на колесико и там обновлял ( где то прочитал, что это очистка кеша )

Во вкладке Дизайн - SEO URL добовлял значения, не помогает. 

Помогите деревянному )))

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


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

 

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


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

Не знаю точно с какой версии, но в последнем опенкарте 3 в разделе дизайн есть SEO URL там можно подправить нужные урлы. Не логично конечно настройку урлов помещать в дизайн, но почему-то так сделали

Изменено пользователем kosuha606

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


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

без определенных действий,  стандартный seo_url не умеет этого делать
но такая возможность уже есть (заложена) в 3.1

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


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

все работает в 3020, открывается по opencart/contact

Скриншот 28-09-2018 123201.jpg

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


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

Всем привет. не знаю что там может или не может встроенный чпу, но проблему с index.php?route=common/home он точно не осилил.

Подскажите как эту глюч в тройке убрать? и .htaccess правил

и с бубном танцевал- без результата.

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


Ссылка на сообщение
Поделиться на другие сайты
On 11/8/2018 at 2:04 AM, Dimasscus said:

Всем привет. не знаю что там может или не может встроенный чпу, но проблему с index.php?route=common/home он точно не осилил.

Подскажите как эту глюч в тройке убрать? и .htaccess правил

и с бубном танцевал- без результата.

cjmmon/home не работает в стандартном сео. 

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=27700

и вроде как в Опенкарт Русская сборка, данная проблема пофикшена.

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


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

cjmmon/home не работает в стандартном сео. 

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=27700

и вроде как в Опенкарт Русская сборка, данная проблема пофикшена.

да перепробовал все. не помогает

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


Ссылка на сообщение
Поделиться на другие сайты
10 hours ago, Dimasscus said:

да перепробовал все. не помогает

в таблицу seo url маршрут common/home с ключом " " добавьте

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


Ссылка на сообщение
Поделиться на другие сайты
On 11/13/2018 at 8:30 AM, lexxkrt said:

в таблицу seo url маршрут common/home с ключом " " добавьте

Добавляли, к сожалению, не работает. Проблема всё ещё актуальна (используется OC 3.0.2.0)

Изменено пользователем vitalino000

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


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

seopro? Что? для 3-ки нет? Не верю!!!

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


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

Третий день копаюсь в Opencart 3.0.2.0. Случай свёл меня с ним как с "наиболее популярным интернет-магазином". Уж лучше бы выбрал платный, ей богу. Такого говнокода под капотом я не видел со времён чтения "творений" индусских разработчиков.
 

В 28.09.2018 в 11:34, lexxkrt сказал:

все работает в 3020, открывается по opencart/contact

Скриншот 28-09-2018 123201.jpg


lexxkrt, не обманывайте  пользователей. Из коробки это не работает. По крайней мере без каких-то дополнительных правок/модулей. Могу привести вам кусок кода, где обрабатываются ЧПУ перед выводом. И там закостылена обработка ссылок только на: 1. продукты, 2. производителей, 3. категории и страницы с информацией (только information/information!). Остальное игнорится и выводится без ЧПУ.

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

 

В 22.12.2018 в 22:52, vitalino000 сказал:

Добавляли, к сожалению, не работает. Проблема всё ещё актуальна (используется OC 3.0.2.0)


Вам поможет следующее: 

web\catalog\controller\startup\seo_url.php, строку 124 

			return $link;

заменяете на 
 

return str_replace(['index.php?route=','common/home'], [], $link);

Также удостоверьтесь что в файле .htaccess у вас есть строчка 
 

RewriteRule ^([^?]*) index.php?route=$1 [L,QSA]


Именно "route=", а не "_route_=", как в оригинальном коробочном .htaccess!

Изменено пользователем Scyth

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


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

Именно "route=", а не "_route_=", как в оригинальном коробочном .htaccess!

ШО за бред?

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

 

 

11 минут назад, Scyth сказал:

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

ваш гавнокод, на стройную структуру опенкартовского роутера.

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


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

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

 

Буду рад если просветите. Пожалуйста, с сылками на код оригинальной коробочной сборки.

 

 

P.S. Но идеи говнокода это не отменяет. Худшей и более затратной по ресурсам реализации ЧПУ я ещё ни в одном фреймворке не видел.

Изменено пользователем Scyth

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


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

UPD: Действительно, нашёл где используется _route_. В методе ControllerStartupSeoUrl->index() обрабатываются адреса с этим параметром. И если в SEO URL создать запись, как показал lexxkrt, то страница site.local/contact действительно откроет контакты.

НО! Это не работает для генерации ссылок! Т.е. ссылка ЧПУ как бы есть, но она нигде не выводится (если только вы не вобьёте её вручную).

 

В методе ControllerStartupSeoUrl->rewrite() закостылен ограниченный набор маршрутов, которые я описал в предыдущем сообщении. И ссылки по ключам, указанным в админке, в разделе SEO URL вы нигде не увидите. Хотя они и будут работать, но не будут генерироваться в коде.

Кто же всё ещё сомневается в "говнокодости" системы opencart, добро пожаловать в этот самый класс ControllerStartupSeoUrl. Там полный набор bad practice, начиная от индусского перебора одной и той же переменной через if()... if()... if()... if()... и заканчивая ограничительными костылями or ... or ... or ... для конкретных маршрутов.

Изменено пользователем Scyth

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


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

В общем доработал коробочное решение.
Базируется полностью на стандартной функциональности SEO URL.

Что добавлено:
 

  1. Кэширование ссылок ЧПУ.
    Теперь каждый раз при отрисовке новой ссылки с ЧПУ, система не делает запрос в базу (иногда она делала и по несколько запросов на одну ссылку). Сто ссылок на страницу могло обернутся более сотней запросов в БД. Кому оно надо?
    Кэш ЧПУ очищается при добавлении/редактировании/удалении ссылки через стандартный интерфейс в админке.
    По тестам на реальных данных кэширование ускоряет отдачу ссылок на 2-3 порядка (минимум в 200 раз быстрее) .
  2. Гибкость в создании ЧПУ.
    Отныне любой маршрут без дополнительных параметров можно преобразовать в ЧПУ. А не только закостыленные раньше 4 варианта. Старый алгоритм, кстати, также работает, патч расширяет его, а не заменяет.
    ЧПУ для домашней страницы также работает! Достаточно добавить запись следующего вида:
    2018-12-24_12-45-00.png.d9ac2afe60a0608e4a8025cf70b08cb4.png

Патч прикрепляю (применять через git apply):
SEO_URL+.patch


SEO URL+ работает для Opencart 3.0.2.0. Для других версий не тестировалось.

Изменено пользователем Scyth

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


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

Печалька, проверьте сколько раз вы обращаетесь к кешу?
Чем кешированные данные отличаются от реальных запросов?

Вы плодите очень много не нужных сущносетй

route=product/catetegory&path=23_54&sort=p.nameorder=DESC&limit=100

И т.д.

 

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


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

Чем кешированные данные отличаются от реальных запросов?


Минимум 200-кратное увеличение производительности данного метода ни о чём, конечно не говорит, да? ;)

И в сравнении "
очень много не нужных сущностей" против "очень много ненужных запросов", я выбираю первое. Хотя можно и поумнее сделать кэширование, согласен. Но смысла не вижу тратить на это время, если все всё равно "хавают" этот корявое коробочное решение, то для них 200-кратное увеличение производительности против 1000-кратного роли никакой не сыграет.

Кроме того, кэш ограничен хранением строк (даже если подключить какой-нибудь memcache или APC, ограничения OpenCart не позволят использовать его в полную силу). Это ещё одна причина не тратить своё время на экстра-оптимизацию.

Изменено пользователем Scyth

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


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

о... мАмАдАрАгАя...

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


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

Минимум 200-кратное увеличение производительности данного метода ни о чём, конечно не говорит, да?

допустим на странице 30 ссылок

всего записей ЧПУ 70тыс

что быстрее:  30 запросов по 1мс или обращение к ФС, чтение с диска пары/десятка мегабайт и потом распарсить json всё это ?

  • +1 1

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


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

допустим на странице 30 ссылок

всего записей ЧПУ 70тыс

что быстрее:  30 запросов по 1мс или обращение к ФС, чтение с диска пары/десятка мегабайт и потом распарсить json всё это ?


Я писал выше, что можно было бы сделать кэширование поумнее и с многоуровневой вложенностью (чтобы не тянуть полный кэш, а только необходимые данные из него и вообще обойтись без JSON-кодирования), но опенкартовская реализация кэша ограничивает входящие данные строковым типом. 

Для интереса, глянул seoPro, который тут выше Чукча расхваливал, так вот он использует подобный же принцип кеширования. Вытягивает ВСЕ записи ЧПУ и помещает их в кэш. И уже с кэшем работает. Так что можете проверить производительность метода на своих 70 тысяч товаров с включенным seoPro и без него.

Но навскидку могу сказать, что кэш из 2 мегабайт (если предположить что ключ и значение каждой ссылки занимает в среднем 32 байта) отработает быстрее, чем 30 запросов к БД. Для справки, БД тоже тянет данные и свой кэш с ФС. Но в первом случае идёт одно обращение к ФС, во втором - 30.
Если же подключен memcache, то СУБД вообще сосёт палец в сторонке, т.к. обращения к ФС вообще не произойдёт в первом случае.

Блин, зачем я всё это рассказываю. Люди, погуглите про кэширование, что это, как оно применяется и зачем оно нужно. Такие примитивные вопросы задаёте, ей богу.

Изменено пользователем Scyth

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


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

Вы в курсе что сеопро - сначала кеширует, а затем использует
Вы же на каждый запрос тянет кеш а потом сохраняете
Кроме того, вы еще в пересохраняете кеш  с каждым запросом
И.. еще.. при 70к - сеопро нужно пользовать не кешируемый.

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


Ссылка на сообщение
Поделиться на другие сайты
On 12/24/2018 at 12:22 AM, Scyth said:

Такого говнокода под капотом я не видел со времён чтения "творений" индусских разработчиков.

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

 

перечитал все вышесказанное, кроме воплей как все хреново не увидел ни одного примера говнокода.

 

Изменено пользователем lexxkrt

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


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

могу подсказать, битрикс.

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

Когда человек пришел с другого движка, то простота кода опенкарта шокирует.

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
В 25.12.2018 в 12:52, chukcha сказал:

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


Да, в курсе. У SeoPro одна операция с кэшем (вытянуть) на каждый запрос, у меня две (вытянуть и в конце сохранить).

 

В 25.12.2018 в 12:55, lexxkrt сказал:

 

перечитал все вышесказанное, кроме воплей как все хреново не увидел ни одного примера говнокода.

 


Я же предлагал выше заглянуть в класс ControllerStartupSeoUrl. Или вы хотите чтобы я цитатами кода тут топик заспамил? ОК. Как вам такой пример творения индийского школьника? Всё из того же класса, далеко ходить не надо.
 

					if ($url[0] == 'product_id') {
						$this->request->get['product_id'] = $url[1];
					}

					if ($url[0] == 'category_id') {
						if (!isset($this->request->get['path'])) {
							$this->request->get['path'] = $url[1];
						} else {
							$this->request->get['path'] .= '_' . $url[1];
						}
					}

					if ($url[0] == 'manufacturer_id') {
						$this->request->get['manufacturer_id'] = $url[1];
					}

					if ($url[0] == 'information_id') {
						$this->request->get['information_id'] = $url[1];
					}

 

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От ALEXROS
      Приветствую!
      Подскажите, как убрать ссылки из верхнего меню?
       
      ЛИЧНЫЙ КАБИНЕТ:
      >Личный кабинет
      >История заказов
      >Транзакции
      >Загрузки
       
      В файле: /catalog/view/theme/default/template/common.header.tpl - не убираются путем удаления этих ссылок.
       
      Ломаю голову уже несколько дней...
    • От Mykhaylo
      Добрые люди, помогите разобраться.
      Делаю магазин, настраиваю, наполняю товарами, в данный момент уже более 700 товаров. ocStore 2.3.0.2.3. Сайт не запущен, пока делаю с помощью OpenServer и сайт лежит на винте. Когда закончу с наполнением товаров по основным категориям и настрою основные вещи, буду запускать магазин. Параллельно читаю, изучаю, учусь. Выяснил, что ссылки могут, во-первых дублироваться, во-вторых быть не постоянными. Оба этих момента, в дальнейшем, насколько я понял, повлияют на отображение результатов в поисковиках, и так оставлять точно не нужно.
      Прочитал о встроенных возможностях opencart'a и ЧПУ seo pro. И по мере изучения, вопросов и путаницы становится больше чем ответов =)
      В настоящий момент ссылка на товар "Samsung Galaxy J8 (2018) (SM-J810) (Black) 3/32" выглядит таким образом:
      site/index.php?route=product/product&path=24_80&product_id=764 Хотелось бы, что бы ссылка выглядела так:
      site/samsung-galaxy-j8-2018-sm-j810-black-3-32 или так: site/samsung-galaxy-j8-2018-sm-j810-black-3-32.html или может быть так? (есть ли смысл прописывать категорию в ссылке?) site/category1/category2/samsung-galaxy-j8-2018-sm-j810-black-3-32 А также, видел в других магазинах, что в ссылках ещё дописывают какой-то номер, скорее всего что-то типа порядкового номера, а также добавляют в ссылку ещё и слова, выглядит это так:
      site/samsung-galaxy-j8-2018-sm-j810-black-3-32-4278 или site/samsung-galaxy-j8-2018-sm-j810-black-3-32-moskva-i-oblast-4278 Зачем это сделано, я не понял. Может это как-то улучает позиции в поисковых запросах?
       
       
      Далее, если я включу seo pro, эти ссылки как-то сами создадутся, или их нужно будет прописывать вручную в карточку товара? Что будет с уже созданными карточками?
      Спасибо за ответы.
    • От zhenyaOK
      Здравствуйте.

      Заметил, что в OC разных версий почему-то работают ссылки подобного вида:
      /index.php/asd
      /index.php/qwe
      и т.д., то есть можно прописать что угодно после /index.php/ и ссылка будет рабочей - будет вести на главную страницу сайта.

      Разве не было бы правильнее выдавать 404 в таких случаях? Мне тут одни сеошники жалуются на эти ссылки, а я не понимаю откуда они их берут и что с ними делать.
    • От serega-lomik
      Скачать/Купить дополнение


      Custom Menu - настраиваемое меню с произвольными ссылками
      Модуль позволяет создавать свои собственные блоки меню с произвольным заголовком и набором ссылок, вложенностью ссылок до третьего уровня, заданием иконок для ссылок первого и второго уровней, поддерживается мультиязычность.
      Модуль подойдёт тем, кому необходимо создать собственное меню категорий, меню со ссылками на нужные новости, статьи, товары, да на всё, что угодно. Все параметры настраиваются из админ части магазина.
      Основные возможности модуля:
      Практически неограниченное количество пунктов меню (ссылок)
      Все пункты меню создаются вручную, задается имя пункта, указывается ссылка, и прочее
      Модуль поддерживает мультиязычность
      Возможна вложенность пунктов меню до 3го уровня
      Пунктам меню первого и второго уровней можно присвоить картинку - иконку
      Присутствует возможность отображения пунктов меню второго уровня в несколько колонок
      Можно одновременно создавать несколько модулей меню и для каждого выбрать, на каких схемах его показывать
      Отдельно каждому модулю можно задать
      -- индивидуальный заголовок
      -- какие стили оформления использовать - собственные или шаблона
      -- какие пункты меню показывать в этом модуле
      -- на каких схемах и в каком месте его показывать и т.д.
      Устанавливается как обычный модуль
      Не требует vQmod

      Тестировалось на OcStore версий с 1.5.3.1 по 1.5.5.1.2 и OpenCart с 1.5.4.1 по 1.5.6.4
      Админка модуля


      Пример отображения модуля на витрине


      Демо: http://1.live-drive.ru/desktops/
      Демо админки: http://1.live-drive.ru/admin/index.php?route=module/custom_menu demo/demo
      Добавил serega-lomik Добавлено 31.03.2015 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От vayboy
      Скачать/Купить дополнение


      Открытие внешних ссылок в новом окне + nofollow
      модуль взят отсюда.
      протестирован на oc 2.2
      я лишь добавил добавление атрибута nofollow к ссылкам ( можно править catalog\view\javascript\jquery\. если нофолоу вам не нужен)
      установка:
      распаковать, содержимое залить в главный каталог
      vqmode обязателен (либо прописываем подключение скрипта в хеадере ручками)
      Можно скачать ocmode версию по первой ссылке в тексте и заменить js
      Добавил vayboy Добавлено 18.06.2016 Категория Модули Системные требования vqmode Сайт разработчика Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
  • Последние посетители   0 пользователей онлайн

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

×

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

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