Додавання другого зображення до рубрик Prestashop
Розширення файлу AdminCategoriesController
Тепер, беремо оригінальнийAdminCategoriesController він знаходиться в /controllers/admin, відкриваємо, розміщуємо і копіюємо все renderForm-методом. Вставляємо це в новий оверрайд:
Додавання нового поля
Перш за все, потрібно додати код, який відображатиме будь-які можливі зображення, які були завантажені. Для цього визначте місцезнаходження наступного:
Відразу після цього додайте:
Це те саме, але зі зміненими іменами. Далі прямо внизу є перелік полів. Нам треба додати сюди введення файлу, щоб пізніше можна було завантажити зображення. Отже, знаходимо:
І відразу після цього додаємо наступне:
Тут знову той самий код, але різні імена. І, нарешті, міняємо ось це:
Не будемо щоразу згадувати, що робимо ми, те саме. Ми зробили це з renderForm, тепер будемо мати справу зpostImage().
Управління новим завантаженим зображенням та його переміщення
Спроба заповнити нове поле на цьому етапі не дасть нічого. Все чаклунство завантажень проходить методом, що носить назвуpostImage(), яке ми збираємося перевизначити і розширити. Таким чином, копіюємо його з вихідного AdminCategoriesController і вставляємо файл корекції (оверайда). Це виглядатиме так:
Тепер треба замість останнього рядкаreturn $ret;, додати наступне:
Зверніть увагу на цей фрагмент:
Це саме та ділянка, де стирається вихідне зображення, щоб звільнити місце для нового. Змінюємо його на:
Але і це теж ще не працює, поки не перевизначено клас Категорії та не додано метод deleteImage2. Перед тим, як залишити цей файл, потрібно розширити однуостанню функціюpostProcess(). Знову копіюємо її з вихідного AdminCategoriesController. Це буде виглядати так:
Потрібно також подбати про видалення вторинного зображення:
Тепер ми закінчили із цим файлом, переходимо до розширення класу Категорії.
Перевизначення класу Категорії
Створюємо новий файл override/classes і називаємо йогоCategory.php (або використовуємо наявне перевизначення, якщо воно є). Насамперед, потрібно протестувати його функціональність у бек-офісі, тому потрібно додати такий метод deleteImage2():
Тепер одразу після цього:
Додаємо нове визначення зображення:
Так ми закінчили з PHP.
Відображення нового зображення у шаблоні
Ось ми вже маємо мету. Відкриваємо category.tpl, що знаходиться у папці з темами. Розміщення:
Ми змінюємо його на:
Якщо дружні URL не заборонені, цього вистачить. Але якщо використовуються перезаписані URL? На жаль, доведеться жорстко закодувати останню модифікацію у файлі.htaccess. Це не гарантований захист, але під час тестів виявилося досить ефективним. Відкриваємо.htaccess і додаємо наступне на самому початку, якраз перед“#