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

Доработки, модификаторы Opencart


Recommended Posts

Добрый день!

Часто попадается доработка OpenCart где необходимо лезть в сам движок то есть в контроллеры и модели. Знаю что OpenCart  не имеет обратной совместимости, сложно при обновлении. Вопрос вот в чем. Можно ли так делать? редактировать модели контроллеры, не создавая модификаторы а просто редактировать?

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


37 минут назад, AlexeyHipster сказал:

Можно ли так делать? редактировать модели контроллеры, не создавая модификаторы а просто редактировать?

Можно, но зачем? Почему бы не накидать модификатор? Это не на много дольше, зато есть полная уверенность, что в дальнейшем не возникнет проблем из-за такой правки.

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


git не панацея
Есть необратимые откаты, свзянанные

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

И таи и там есть нюансы.


 

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

У меня есть проект, на нем около 100 модификаторв - половина в базе, половина в system

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

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

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

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

Хотите обновлять - пользуйтесь git. Вообще без проблем.

так когда я поизменяю модели и контроллеры если я обновлю тогда новые файлы перезапишут мои изменения.

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


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

100 модификаторов на сайте...  в конечном итоге иметь непосредственно в собственно коде движка.

Я тоже согласен. Для своего проекта лучше вносить правки непосредственно в клонирован оригинала, а сам оригинал сохранять, например, с расширением .bak

Я уже давно задумывался над проблемой конфликта модификаторов от разных разработчиков. Например, мне необходимо добавить пункт в левое меню админки, но его уже модифицирует чужое приложение. Приходится немного поправить оригинал - добавить перед выводом
i

Цитата

if($m = $this->load->controller(имя моего контроллера))

$data['menus'][] = $m ;

 

И обновить модификаторы. Так я разруливаю конфликт.

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

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

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

  • 3 weeks later...
В 24.11.2019 в 01:07, chukcha сказал:

в system кладутся базовые
в базу - оперативные, возможно временные

 

Это точно так (имею ввиду не наоборот?)?

Я представлял, что в system кладется модификатор только для удобства редактирования (например, во время разработки магазина).

Если решено, что модификатор необходимо оставить, то нужно его загрузить через установщик, чтобы записался в базу.

Возможно я напутал :unsure:

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


При размещении модификаторов (system/БД) стоит еще помнить о последовательности их применения - сначала из system (если не ошибаюсь, в алфавитном порядке), а потом из БД. И если несколько модификаторов правят один файл, то могут быть нюансы: один сделал реплейс строки, второй ее искал чтоб зацепиться, если первый сработал раньше, то второму не повезло)

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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