Модуль Полезные модификации Prestashop 1.7

fortuner

Хранитель порядка
Регистрация
26 Июн 2012
Сообщения
631
Реакции
1.241
Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
Правила:
1. Увидели чужую ошибку - исправьте :)
2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
3. Не спамьте, пусть раздел будет соответствовать своему названию :)
4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
 
Исправление ошибки при свежей установке Prestashop 1.7.6.7.
Если при установке выбран русский или украинский языки, установка прерывается на 67% с ошибкой:
"Невозможно установить модуль PSGDPR, длина $tab->name должна быть не больше 64 символа"

Модуль этот нужен для Европы, а нам ни к чему, но установке мешает. Способ, описанный @_sashok не работает, т.к. он предполагает защиту от записи файла модуля. При этом установка фейлит с ошибкой "невозможна запись по адресу бла-бла-бла"
Есть способ проще и 100% рабочий:
  1. Начинаем установку, установка падает с ошибкой.
  2. Заходим в файл \classes\Tab.php, находим строку 73:
    PHP:
    'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'required' => true, 'validate' => 'isTabName', 'size' => 64),
  3. Меняем 'size' => 64 на 'size' => 512
  4. Заходим в phpMyAdmin в таблицу ps_tab_lang
  5. Переходим во вкладку "Структура", редактируем поле "name", ставим длину 512, сохраняем.
  6. Начинаем установку заново, установка проходит успешно
  7. Можно поменять все обратно, но необходимости в этом нет
 
Исправление ошибки при свежей установке Prestashop 1.7.6.7.
Если при установке выбран русский или украинский языки, установка прерывается на 67% с ошибкой:
"Невозможно установить модуль PSGDPR, длина $tab->name должна быть не больше 64 символа"

Модуль этот нужен для Европы, а нам ни к чему, но установке мешает. Способ, описанный @_sashok не работает, т.к. он предполагает защиту от записи файла модуля. При этом установка фейлит с ошибкой "невозможна запись по адресу бла-бла-бла"
Есть способ проще и 100% рабочий:
  1. Начинаем установку, установка падает с ошибкой.
  2. Заходим в файл \classes\Tab.php, находим строку 73:
    PHP:
    'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'required' => true, 'validate' => 'isTabName', 'size' => 64),
  3. Меняем 'size' => 64 на 'size' => 512
  4. Заходим в phpMyAdmin в таблицу ps_tab_lang
  5. Переходим во вкладку "Структура", редактируем поле "name", ставим длину 512, сохраняем.
  6. Начинаем установку заново, установка проходит успешно
  7. Можно поменять все обратно, но необходимости в этом нет
Может проще установить 1.7.6.5, и затем сразу обновить до последней версии?
 
Может проще установить 1.7.6.5, и затем сразу обновить до последней версии?
Ошибка ведь копеечная, и не по вине разработчиков престы, а из-за кривого перевода. Самым правильным было бы написать им об этом на гитхабе и заодно исправить перевод на их ресурсе переводов.
А вообще мне проще исправить код, чем искать обходные пути :)
 
Исправление ошибки при свежей установке Prestashop 1.7.6.7.

Есть способ еще проще !!!:):ay:

При установке выбрать английский язык, после установки добавляете русский или другой. Всё.
 
Есть способ еще проще !!!:):ay:

При установке выбрать английский язык, после установки добавляете русский или другой. Всё.
Вместе с языком ставятся всякие имперские унции, дюймы, налоги и прочая дичь, которую потом нужно вылавливать и исправлять
 
Вместе с языком ставятся всякие имперские унции, дюймы, налоги и прочая дичь, которую потом нужно вылавливать и исправлять
Так это тоже легко решается ;)
"Интернационализация/Локализация/Импорт пакета локализации/" выбираете свою страну и что хотите импортировать:
Снимок экрана 2020-09-11 в 10.01.04.png Снимок экрана 2020-09-11 в 09.58.36.png
 
Так это тоже легко решается ;)
"Интернационализация/Локализация/Импорт пакета локализации/" выбираете свою страну и что хотите импортировать:
Посмотреть вложение 111655 Посмотреть вложение 111656

не путайте ситуацию!

при первой установке ядра для первого языка невозможно выбрать точные настройки локализации
 
не путайте ситуацию!

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

1) устанавливаете без проблем на английском
2) добавляете СВОЙ язык
3) Импортируете СВОИ единицы измерения, валюты, налоги и т.д.
И ничего не нужно ВЫЛАВЛИВАТЬ как писали про иностранные единицы измерения!
4) При настройке магазина, отключить/удалить не нужные валюты, налоги, языки и т.д.

:nezn:Вот я только не понял, что там нужно вылавливать и исправлять !?!
 
...
:nezn:Вот я только не понял, что там нужно вылавливать и исправлять !?!

вот этот пункт

"4) При настройке магазина, отключить/удалить не нужные валюты, налоги, языки и т.д."

и приводит к рассинхрону и неперфикцонизму в базе, так как после создания-удаления автоинкременты-индексы смещаются, что в будущем может повлиять на работу модулей и лишние вопросы заказчика и других вебмастеров "почему так?" и т.п. (например lang=2 при отсутствующем lang=1 может на некоторых модулях вызвать краш)
 
Всем привет! Чтобы установка Prestashop на русском языке не вызывала ошибок нужно в дистрибутиве (файлах установки) подправить 2 файла:

1. install\upgrade\sql\1.6.0.3.sql
7 строка
ALTER TABLE `PREFIX_tab_lang` CHANGE `name` `name` VARCHAR(64) DEFAULT NULL;
заменить 64 на 512
2. \classes\Tab.php
73 строка
'name' => array('type' => self::TYPE_STRING, 'lang' => true, 'required' => true, 'validate' => 'isTabName', 'size' => 64),
заменить 64 на 512​

Ошибки при установки всегда оставляют вероятность что, что-то может пойти не так в самом неожиданном месте.
После исправлений будет чистая установка без ошибок.
 
Назад
Сверху