Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

ocdev_pro
 Поделиться

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

5 часов назад, natalia8978 сказал:

да, и модификаторы и кеш системы, и браузер, ошибка все равно на месте.

: Undefined variable: hreflang in
/var/www/..../data/www/.../system/storage/modification/catalog/view/theme/..../template/common/header.tpl
on line
185

:mellow:

А так то все супер если бы не эта ошибка, которая мне не дает покоя...

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

Я даже из шаблоном разобралась уже и переделала все места где вызывается ссылка в шаблоне, сделала по рекомендации Алексея.

Ошибка с hreflang это точно модификатор не установился корректно. Надо смотреть почему конфликтует и не вставляет $data['hreflang'] в Контроллер header.php

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

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

Ошибка с hreflang это точно модификатор не установился корректно. Надо смотреть почему конфликтует и не вставляет $data['hreflang'] в Контроллер header.php

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

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


19 часов назад, ocdev_pro сказал:

Ошибка с hreflang это точно модификатор не установился корректно. Надо смотреть почему конфликтует и не вставляет $data['hreflang'] в Контроллер header.php

В общем разобралась...

Сначала я удалила все модификаторы и оставила только SEO мультиязык

Из него переписала все полностью вручную в файлы магазина... 

Очистила все возможные кеши, но изменений полный ноль.....

 

После я тупо изменила вставку строки:

$data['hreflang'] = $this->load->controller('extension/module/ocd_multilang');

Не перед :

$data['language'] = $this->load->controller('common/language');

как в модификаторе, а вставила ее после:

$data['cart'] = $this->load->controller('common/cart');

То есть сделала так:

    <file path="catalog/controller/common/header.php">
        <operation>
            <search><![CDATA[$data['cart'] = $this->load->controller('common/cart');]]></search>
            <add position="after"><![CDATA[$data['hreflang'] = $this->load->controller('extension/module/ocd_multilang');]]></add>
        </operation>
    </file>

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

 

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


Но есть еще вопрос, это не критично но все же, если в страницы нет чпу, тогда при переключении на другой язык з основного получаем 404, это нормально, или это у меня только такой глюк?

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


В 12.10.2020 в 17:26, natalia8978 сказал:

Но есть еще вопрос, это не критично но все же, если в страницы нет чпу, тогда при переключении на другой язык з основного получаем 404, это нормально, или это у меня только такой глюк?

Нет это глюк. Вы можете написать мне в ЛС и за отдельную плату проведу установку модуля и устранение конфликтов с вашим вариантом движка. Могут быть проблемы просто с другими модификациями или внесены изменения в исходный код Seo_Pro

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

41 минуту назад, Snoop3000 сказал:

Подскажите пожалуйста, а индексируется второй язык с этим модулем?

Он для этого и нужен, кроме того модуль добавляет тег hreflang что бы сообщить ПС о том что страницы сайта есть на другом языке))

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

@ocdev_pro еще вопрос, есть два языка: ******ский и русский. ******ский установлен как основной, то есть сайт доступен как mysite.com

Соответственно все ссылки на сайте тоже без префикса для основного языка ******ского. (mysite.com/dostavka || mysite.com/oplata)

Для русского языка должен быть префикс RU (mysite.com/ru) соответственно и такие же ссылки (mysite.com/ru/dostavka || mysite.com/ru/oplata)

 

Когда переходим на русский язык, то чтобы перейти на укр добавляет в ссылку переключения языка префикс (mysite.com/ua) хотя как такого нету. 

 

Теперь и вопрос, оно создает 301 редирект для ссылки? Или как работает логика

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


23 минуты назад, Snoop3000 сказал:

@ocdev_pro еще вопрос, есть два языка: ******ский и русский. ******ский установлен как основной, то есть сайт доступен как mysite.com

Соответственно все ссылки на сайте тоже без префикса для основного языка ******ского. (mysite.com/dostavka || mysite.com/oplata)

Для русского языка должен быть префикс RU (mysite.com/ru) соответственно и такие же ссылки (mysite.com/ru/dostavka || mysite.com/ru/oplata)

 

Когда переходим на русский язык, то чтобы перейти на укр добавляет в ссылку переключения языка префикс (mysite.com/ua) хотя как такого нету. 

 

Теперь и вопрос, оно создает 301 редирект для ссылки? Или как работает логика

Да 301 редиректом, но для поисковика эта ссылка недоступна, т.к она отсутствует в исходном коде страницы и формируется через javascript

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

18 минут назад, ocdev_pro сказал:

Да 301 редиректом, но для поисковика эта ссылка недоступна, т.к она отсутствует в исходном коде страницы и формируется через javascript

Кстати, очень круто было б, чтобы переключение языка было как раз ссылкой, а не просто визуал. Так правильно для поисковиков. А то уже сеошники надоели давать задания, что нужно именно ссылкой делать переключение языков

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


25 минут назад, ocdev_pro сказал:

Да 301 редиректом, но для поисковика эта ссылка недоступна, т.к она отсутствует в исходном коде страницы и формируется через javascript

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

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

7 часов назад, Vladzimir сказал:

#BUG

В модификаторе

            <search><![CDATA[$_['error_locale']]]]></search>

Одна лишняя скобка ]

фиксанул-перезалил, спасибо

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

В 19.10.2020 в 22:20, ocdev_pro сказал:

фиксанул-перезалил, спасибо

Разбираясь с "логикой" опенкарта, я понял зачем "нужно" хранить язык в куках.

Потому что Даниель Керр жопорукий рукожоп.

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

- вырезал автоматическое определение языка (оно вообще нафиг не нужно)

- вырезал хранение языка в куках и сессии

Оставался открытым вопрос, как же локализовать ajax-запросы.

И решение найдено https://github.com/jakerella/jquery-mockjax

Теперь можно перехватить любой ajax-запрос (POST|GET) на index.php и приделать ему префикс, исходя из текущего языка страницы.

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

1 час назад, Vladzimir сказал:

Разбираясь с "логикой" опенкарта, я понял зачем "нужно" хранить язык в куках.

Потому что Даниель Керр жопорукий рукожоп.

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

- вырезал автоматическое определение языка (оно вообще нафиг не нужно)

- вырезал хранение языка в куках и сессии

Оставался открытым вопрос, как же локализовать ajax-запросы.

И решение найдено https://github.com/jakerella/jquery-mockjax

Теперь можно перехватить любой ajax-запрос (POST|GET) на index.php и приделать ему префикс, исходя из текущего языка страницы.

Автоопределение языка по языку бразуера, это нужно. Нельзя вырезать. А если вырезать, то должна быть альтернатива по IP-определять итд

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

14 часов назад, ocdev_pro сказал:

Автоопределение языка по языку бразуера, это нужно. Нельзя вырезать. А если вырезать, то должна быть альтернатива по IP-определять итд

А где именно используется автоопределение языка?

Потому что для сео, автоопределение больше вреда приносит чем пользы.

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

У вас не находит этот код, его просто нету в том файле

<file path="admin/view/template/localisation/language_form.tpl">
<operation>
  <search><![CDATA[<td class="text-left"><?php echo $language['code']; ?></td>]]></search>
  <add position="after"><![CDATA[<td class="text-left"><?php echo $language['url']; ?></td>]]></add>
</operation>

 

Изменено пользователем Snoop3000
Ссылка на комментарий
Поделиться на других сайтах


34 минуты назад, Snoop3000 сказал:

У вас не находит этот код, его просто нету в том файле

<file path="admin/view/template/localisation/language_form.tpl">
<operation>
  <search><![CDATA[<td class="text-left"><?php echo $language['code']; ?></td>]]></search>
  <add position="after"><![CDATA[<td class="text-left"><?php echo $language['url']; ?></td>]]></add>
</operation>

 

Это не влияет не на что, мусорный участок, но его уже нету в коде, можете перекачать модуль

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

Чтобы работало с OCFilter выведеным на главную в catalog/controller/extension/module/ocd_multilang.php
строка 36 добавить && $route != 'common/home'
Итого строка будет приведена к виду:
            if (isset($route) && isset($url) && isset($protocol) && $route != 'common/home') {

Соответственно в шапке главной языки будут чисто переключаться, а не в категорию.

З.Ы. а совместимость с посадочными OCFilter планируется в каком-либо будущем?

Изменено пользователем splka
  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

Тоже интересует вопрос по ocFilter. Он очень популярен и крутой. Неплохо было б адаптировать и под него

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


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

Тоже интересует вопрос по ocFilter. Он очень популярен и крутой. Неплохо было б адаптировать и под него

Понимаю.. но веду разработку только в свободное время.

 

В противном случае модуль станет платным и будет получать регулярные доработки и багфикс.

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

В 02.11.2020 в 16:38, ocdev_pro сказал:

Понимаю.. но веду разработку только в свободное время.

думаю все это понимают, просто дают автору наводки, в какую сторону дорабатывать.

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

  • 1 месяц спустя...
В 02.11.2020 в 16:38, ocdev_pro сказал:

В противном случае модуль станет платным и будет получать регулярные доработки и багфикс

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

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

Нормально /index.php?route=checkout/failure
Ошибка /ru/index.php?route=checkout/failure

Нормально /index.php?route=checkout/success
Ошибка /ru/index.php?route=checkout/success

Всё остальное работает нормально. Версия модуля 1.3.2. Сборка OpencartPro 2.3.0.5

Изменено пользователем satt
Ссылка на комментарий
Поделиться на других сайтах


1 час назад, satt сказал:

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

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

Нормально /index.php?route=checkout/failure
Ошибка /ru/index.php?route=checkout/failure

Нормально /index.php?route=checkout/success
Ошибка /ru/index.php?route=checkout/success

Всё остальное работает нормально. Версия модуля 1.3.2. Сборка OpencartPro 2.3.0.5

Попробуйте на эти страницы сделать ЧПУ, проблема может уйти

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

15 минут назад, ocdev_pro сказал:

Попробуйте на эти страницы сделать ЧПУ, проблема может уйти

Супер! Сработало)
Может подскажете где поковырять это без ЧПУ, чтобы не перенастраивать отслеживания конверсий и прочего?
Пробовал на тестовом сайте - там нет такой проблемы. Возможно на данном сайте какой-то модуль/модификатор мешает. Знать бы куда копать чтобы всё не смотреть...
Cпасибо.

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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