Съхранение на модул за конфигурация
Въвеждане
В третата част на тази серия ние ще разгледаме как можем да съхранявате конфигурационни данни за модулите в базата данни Prestashop, и как можем да позволяват на потребителите да взаимодействат с тези данни да се контролира поведението на модула. Ние също така ще накратко връзка за това как можем да генерира изход от нашите модул да осигурява визуална обратна връзка за промени в конфигурацията.
Управление на потребителските настройки
Ние ще наричаме това модул "TutorialSecond", така че ние отново трябва да създадете нов модул директория и клас файл - което ще се нарича "tutorialsecond" и "tutorialsecond.php" съответно. Класът на файла (tutorialsecond.php) трябва да съдържа следното:
<? PHP
клас Tutorialsecond разширява Модул
(
Частни $ _html ='';
функция __construct ()
(
$ Това-> име = "tutorialsecond";
родител:: __construct ();
$ Това-> раздела = 'eCartService.net уроци;
$ Това-> версия = 0 .1.0 ";
$ Това-> DisplayName = $ това-> L ("Втора начинаещи Модул");
$ Това-> описание = $ това-> L ("Нашият втори модул - А" Здравей свят "Redux");
)
публична функция getContent ()
(
)
Частни функция _displayForm ()
(
)
)
/ / Край на: tutorialsecond.php Вие ще забележите, че са приложили две нови функции регистриран:: getContent () и:: _displayForm (). Ако качите файла на вашия сървър и инсталира този модул на този етап трябва да видите нова опция за модулите списък екран за "Втори начинаещи Модул". Ще има вече да е ">> Configure", намиращ се в модула за влизането, въпреки че щракване то само ще върне празна страница Back Office. Наличието на:: getContent () член функция е отговорен за това, тъй като осигурява връзката между нашите модул и Back Office.
В допълнение към тези две нови функции, ние имаме също добавят $ _html частни член променлива, която ще използвате по-късно в тази статия, за да изгради необходимите изход за езика в Back Office.
Съхранение и извличане на конфигурационни данни
Prestashop представя "Конфигурация" клас, който предлага няколко функции член да манипулира данни, конфигурация, но двете основни функции, които ще бъдат най-често използваните са:
Конфигурация:: updateValue ($ ключ, $ ценности, HTML $ = лъжа);
Конфигурация:: Get ($ ключ, $ id_lang = NULL);
Конфигурацията:: updateValue () функция ни позволява да се съхранява за конфигурация опция в базата данни (по желание на различни езици в който случай $ стойности на параметрите се масив) и конфигурацията:: Get () функция ни позволява да изтеглите конфигурационни данни за един избран или магазин на езика по подразбиране. Ние ще игнорира параметрите, които са приети стойности за сега, но ще преразгледа $ HTML параметър в конфигурацията:: updateValue () функция в следващата статия, когато се вгледаме в предмет на форма на проверка.
Изпълнение на Конфигуриране на екрана
В нашия файла източник създадоха частни _displayForm член функция (). Това е изцяло по избор, както всички на интерфейса код може да бъде поставен в getContent () член функция, обаче, че е силно препоръчително да отделно този вън от съображения за по-лесно код за поддръжка. Ние ще създадем една проста форма в рамките на тази функция от, с които можем да улавяне магазин вход собственик.
Частни функция _displayForm ()
(
$ Това-> _html .= "
<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
<label> ". $ това-> L (" послание към света').'</ етикет>
<div class="margin-form">
<input type="text" name="our_message" />
</ DIV>
<input type="submit" name="submit" value="'.$this-> л ("Актуализация').'" клас =" копче "/>
</ Форма> ";
) Можете да видите, че:: _displayForm () функция, просто добавя стандартен HTML код под формата на $ _html ни член променлива, с формата целта е $ _SERVER ['] REQUEST_URI ". Prestashop на Back Office архитектура ще маршрута това в нашия:: функция getContent клас член за нас да се справят, когато формулярът е публикуван.
Ние следващия трябва да добавите код, за да ни:: getContent () функция, за да покаже действително форма и дръжка на формуляра.
публична функция getContent ()
(
ако (Инструменти:: isSubmit ("представя"))
(
Конфигурация:: updateValue ($ това-> име. "_message", Инструменти:: getValue ("our_message"));
)
$ Това-> _displayForm ();
връщане $ това-> _html;
) В:: getContent () функция първо използва друг клас Prestashop "Инструменти", за да проверят дали ние извършваме след действие от страна на формата, или дали тази функция се нарича по друг начин, т.е. с едно щракване на "Configure", намиращ се в модула списък - параметър е името дадохме на нашите "обновяване" бутон на формата.
Ако функцията се нарича пряко от Back Office (в който случай Инструменти:: isSubmit ("представя") ще върне FALSE), след което ние наричаме формата оказване функция ние създадохме по-горе, и връща резултат, заловени в $ това- > _html променлива, на Back Office за показване.
Ако функцията се нарича в резултат на нашата форма е публикуван, след което може да съхрани нашата параметър конфигурация в базата данни със стойността вписани в нашата форма. Ние отново използвайте клас инструменти за получаване на стойността на формата променлива използване на поканата на Инструменти:: getValue ("our_message"), където "our_message" е името на полето за въвеждане в нашата форма.
Можете да видите, че съм добавил името на нашия модул за началото на елемент от конфигурацията име - това е да се гарантира, че конфигурацията ключ е уникален като Именно за тези клавиши се споделя за целия магазин.
След като са съхранени нашите конфигурационни данни на формата е отново показва, готов за още информация, ако е необходимо.
Модул-изхода на една страница
Сега имаме един метод за улов на информация от собственика на магазина и да го запазите в базата данни, така че следващата очевидна стъпка ще бъде да се направи нещо с него например се показват на една страница. В част 1 от поредицата, за които говорихме "куки" във връзка с модули добавяне на функционалност. За да се използва това, ние трябва да кажем, че нашите PrestaShop модул би искал да кука в офиса фронт и правим това като се използват следните функции (дефинирани в базовия клас модул):
$ Това-> registerHook ($ hook_name);
За $ hook_name параметър се отнася до един от различни гледни точки, че основната Prestashop позволява модули, за да вмъкнете продукция и / или обработката на данни, но за сега ние ще използваме една по-специално - "leftColumn", която ни позволява да добавят съдържание в лявата колона на всички страници. За да може да се създаде на куката трябва да бъдат добавени следните нови замени в нашата собствена класа:
публична функция инсталирате ()
(
родител:: Инсталирайте ();
ако (! $ това-> registerHook ("leftColumn"))
връщане фалшиви;
) Това казва Prestashop да изпълни нашите модул кука, когато се прави съдържанието на лявата колона на всички страници. Ние следващия трябва да добавите функция за обработка на обажданията кука. Конвенцията е да даде име на функция на име Куки предшествано от "кука":
публична функция hookLeftColumn ()
(
връщане "<div class="block"> <h4>". Конфигурация:: Get ($ това-> име. "_message"). "</ H4> </ DIV>";
)
По-просто нашия пример ние сме просто обвивка нашата конфигурация параметър в някои стандартни HTML маркиране, така че да се показва правилно на нашата страница.
Ако вече сте инсталирали модула Сега би трябвало да деинсталирате да инсталирате отново да гарантира, че куката е правилно регистрирани от основните Prestashop. Сега можете да въведете стойност в конфигурационния екран за модула - например "Здравей свят", и тя ще се възпроизвежда както е заглавието на една клетка в лявата колона на магазин. Пълният код за втория пример трябва да изглежда така:
<? PHP
клас Tutorialsecond разширява Модул
(
Частни $ _html ='';
функция __construct ()
(
$ Това-> име = "tutorialsecond";
родител:: __construct ();
$ Това-> раздела = 'eCartService.net уроци;
$ Това-> версия = 0 .1.0 ";
$ Това-> DisplayName = $ това-> L ("Втора начинаещи Модул");
$ Това-> описание = $ това-> L ("Нашият втори модул - А" Здравей свят "Redux");
)
публична функция инсталирате ()
(
родител:: Инсталирайте ();
ако (! $ това-> registerHook ("leftColumn"))
връщане фалшиви;
)
публична функция getContent ()
(
ако (Инструменти:: isSubmit ("представя"))
(
Конфигурация:: updateValue ($ това-> име. "_message", Инструменти:: getValue ("our_message"));
)
$ Това-> _displayForm ();
връщане $ това-> _html;
)
Частни функция _displayForm ()
(
$ Това-> _html .= "
<form action="'.$_SERVER['REQUEST_URI'].'" method="post">
<label> ". $ това-> L (" послание към света').'</ етикет>
<div class="margin-form">
<input type="text" name="our_message" />
</ DIV>
<input type="submit" name="submit" value="'.$this-> л ("Актуализация').'" клас =" копче "/>
</ Форма> ";
)
публична функция hookLeftColumn ()
(
връщане "<div class="block"> <h4>". Конфигурация:: Get ($ това-> име. "_message"). "</ H4> </ DIV>";
)
)
/ / Край на: tutorialsecond.php Обобщение
В тази статия ние разширихме нашите първи модул за включване на основната форма конфигурация и са използвали една кука функция за показване на изход от модула за нашите в лявата колона на нашите страници. В следващата част на тази серия ще разгледаме по подобряване на конфигурацията съоръжение в нещо, което може да се използва в реална модул изпълнение. Това ще включва утвърждаване приноса на потребителите на формата, преди населяващи полетата на формуляра в зависимост от случая въз основа на текущата конфигурация и показване модул грешки и предупреждения за екрани Back Office.