Автор Тема: Измененные файлы и обновление. Как правильно делать изменения файлов  (Прочитано 3178 раз)

08 Июнь 2013, 15:10:38
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня Prestashop 1.5.4.1. Подскажите новичку, как правильно производить изменения в файлах Prestashop, чтобы они не влияли на обновление Prestashop.

Мне пришлось менять следующие файлы:
\admin\themes\default\template\helpers\form\form.tpl
\classes\Address.php
\classes\Manufacturer.php
\classes\order\OrderHistory.php
\classes\PaymentModule.php
\classes\pdf\PDFGenerator.php
\classes\Product.php

\controllers\admin\AdminCategoriesController.php
\controllers\admin\AdminOrdersController.php
\controllers\admin\AdminProductsController.php
\controllers\front\ContactController.php
\controllers\front\OrderDetailController.php

А также некоторые файлы в \modules и \themes\default


1. Как правильно производить изменения в соответствующих категориях файлов, чтобы обновление Prestashop происходило автоматом или с минимум усилий?
2. Для чего служит папка \override ?
3. Будут ли при предложенной вами методике сохраняться измененные мной файлы?
4. Как перенести изменения в обновленную версию Prestashop - вручную или как-то это подхватывается?

Пожалуйста, объясните как новичку, а не как программеру. А то где-то стал читать про override - пошли термины "перезагрузка классов"  и что-то такое. Это не очень понятно для моего уровня.
08 Июнь 2013, 19:00:04
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Для того чтобы изменить стандартные контроллеры или классы в prestashop нужно создать в папке
- override/classes - для классов
- override/controllers - для контроллеров
файл, с тем же названием, что и стандартный файл.
Так можно вносить изменения в движок prestashop , не изменяя стандарные файлы, что позволяет производить обновление PrestaShop и не терять при этом новые дополнения/изменения.
Если хотите изменить в файле \classes\Address.php класс
class AddressCore extends ObjectModel
{
Создайте файл /override/classes/Address.php
class Address extends AddressCore
{
        //изменения
При обновлении ничего переносить не нужно, обновляете файлы ядра системы, а ваши новые файлы сохраняются в папке override.

Для измения темы лучше создавать новую папку с названием темы и сохранять изменные шаблоны в этой папке. При обновлении переключиться на тему по умолчанию. После обновления подключить вашу тему.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
09 Июнь 2013, 18:55:13
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для того чтобы изменить стандартные контроллеры или классы в prestashop нужно создать в папке
- override/classes - для классов
- override/controllers - для контроллеров
файл, с тем же названием, что и стандартный файл.
му.

Спасибо за разъяснения многое стало понятнее. Я сделал микро-мануал по теме "Как правильно изменять файлы Prestashop, чтобы легко обновлять его до новой версии"

Пожалуйста, поправьте меня, где неправильно написал что-то. Мне нужна Ваша помощь в ответе на вопросы:

КАКИЕ ЕЩЕ ПАПКИ И НАСТРОЙКИ МОЖНО СОХРАНЯТЬ ГДЕ-ТО ТИПА ПАПКИ \OVERRIDE, ЧТОБЫ ОБНОВЛЕНИЕ ИХ НЕ ЗАТРАГИВАЛО?

КАКИЕ ПАПКИ И ФАЙЛЫ СО СВОИМИ ДАННЫМИ НАДО ВРУЧНУЮ ВОССТАНАВЛИВАТЬ ПОСЛЕ ОБНОВЛЕНИЯ?