Добавяне на второ изображение за Prestashop категории

Файлово разширение AdminCategoriesController

Сега вземаме оригиналнияAdminCategoriesController намиращ се в /controllers/admin, отваряме, поставяме и копираме всичко с метода renderForm. Поставете това в нова замяна:

Добавяне на ново поле

На първо място, трябва да добавим код, който показва всички възможни изображения, които са били качени. За да направите това, намерете следното:

Веднага след това добавете:

Същото е, но със сменени имена. След това точно в долната част има списък с полета. Трябва да добавим въвеждане на файл тук, за да можем да качим изображението по-късно. Така намираме:

И веднага след това добавете следното:

Тук отново същия код, но различни имена. И накрая, променяме това:

Няма да споменаваме всеки път, че правим едно и също нещо. Направихме това с renderForm, сега ще се занимаваме сpostImage().

Управление на новото качено изображение и преместването му

Опитът за попълване на ново поле на този етап няма да даде нищо. Цялата магия за качване се случва с метод, нареченpostImage(), който ще заменим и разширим. По този начин го копираме от оригиналния AdminCategoriesController и го поставяме във файла за корекция (замяна). Ще изглежда така:

Сега вместо последния редreturn $ret;, добавете следното:

Обърнете внимание на този фрагмент:

Това е точно областта, където оригиналното изображение се изтрива, за да се освободи място за новото. Променяме го на:

Но това също все още не работи, докато класът Category не бъде предефиниран и методът deleteImage2 не бъде добавен. Преди да напуснете този файл, трябва да го разширитепоследната функцияpostProcess(). Копирайте го отново от оригиналния AdminCategoriesController. Ще изглежда така:

Трябва също да се погрижите за изтриването на вторичното изображение:

След като приключихме с този файл, нека преминем към разширяване на класа Category.

Замяна на класа на категория

Създайте нов файл в override/classes и го наименувайтеCategory.php (или използвайте съществуващия override, ако има такъв). На първо място, трябва да тестваме неговата функционалност в бек офиса, така че трябва да добавим следния метод deleteImage2():

Сега веднага след това:

Добавяне на нова дефиниция на изображението:

Така че приключихме с php.

Показване на ново изображение в шаблон

Ето ни на целта. Отворете category.tpl, който се намира в папката с теми. Настаняване:

Променяме го на:

Ако приятелските URL адреси не са забранени, това ще е достатъчно. Но какво ще стане, ако се използват пренаписани URL адреси? Уви, ще трябва да кодирате твърдо последната модификация във файла.htaccess. Това не е гарантирана защита, но по време на тестовете се оказа доста ефективна. Отворете.htaccess и добавете следното в самото начало, точно преди“#