• Щебетать

    • Объявления

    Facebook Отслеживание PrestaShop Модуль

    Facebook Отслеживание PrestaShop модуля.

    Необходимость отслеживать рентабельность инвестиций в объявления Facebook? С помощью этой простой в использовании PrestaShop модуля вы можете. Этот модуль автоматически добавляет код отслеживания переходов, когда клиент делает покупки, вы можете оценить, если ваши объявления работают.

    Вы можете скачать Facebook Отслеживание PrestaShop модуля, используя ссылку ниже:
    Facebook Отслеживание PrestaShop Модуль

    5 мая 2010 в 1:41 - Комментарии

    iPhone 3G привязывая на iPad

    Будет ли это возможно?

    Вот цена пунктов:

    Будет ли причина, чтобы WiFi + 3G, если привязывать это возможно?

    27 января 2010 в 14:17 - Комментарии

    Bicio GoRide iPhone крепление

    IPhone GoRide крепление предназначено для установки на руль велосипеда, и он предназначен, чтобы дать вам доступ к вашему iPhone, пока вы едете ваш велосипед без ущерба для безопасности и удобства.

    Bicio-GoRide-iPhone-Bike-Mount

    Bicio GoRide iPhone крепление

    Bicio GoRide iPhone крепление

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

    Если вы хотите один, Bicio GoRide iPhone крепление уже доступны за $ 29,99 с Bicio .

    9 декабря 2009 в 15:11 - Комментарии

    eHow - Как Ремонт стекла на iPhone

    ds_f3f0ca5c-8a00-4c3c-a2ee-cfcc8c69d329
    eHow Вклад писателя

    Если ваш iPhone 3G экран треснул, проверьте сначала с Apple, чтобы увидеть, если гарантия на ремонт или замену. Этот ремонт может быть трудным и должны быть предприняты только если изображение за стеклом экрана видны.

    С учетом этих предосторожностей, ремонт сам должен стоить около $ 45. Этот метод по -Ли Уотерман получил несколько положительных отзывов.

    Сложность: Умеренно Оспаривание

    Инструкции

      С iPhone кроме

    1. Шаг 1

      Выключите iPhone. Выньте карту SIM, вставив скрепку в маленькое отверстие в верхней части. Удалите два винта в нижней части. Нажмите на присоске на стекло. Подъехать к отдельным стекла.

    2. Шаг 2

      Три кабеля проведет две части вместе. Удалить первые две помощью скрепки. Третья находится под закладку в первых двух кабелей. Последнее кабель должен быть аккуратно вытащил.

    3. Шаг 3

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

    4. Шаг 4

      Чтобы удалить LCD, использовать скрепку на стороны крюка нижний угол, который круг, и вытащить.


      Удаление разбитого стекла

    5. Шаг 1

      Использование пинцета удалить черные ленты за стеклом, по каждому из четырех краев.

    6. Шаг 2

      Используйте фен для волос по краям стекла в течение 5 минут тепла клей.

    7. Шаг 3

      Любопытный стекла пластиковый держатель. Не забудьте удалить все битое стекло.


      Установка стекла

    8. Шаг 1

      Положите клейкие полоски в верхней и нижней части пластиковый держатель.

    9. Шаг 2

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

    10. Шаг 3

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

    11. Шаг 4

      Снимите пленку с стекла.


      Сборка

    12. Шаг 1

      Положите LCD обратно в держатель со всеми отверстиями для винтов краю. Нажмите ее на месте. Заменить все винты.

    13. Шаг 2

      Пресса все кабели на место в обратном порядке их снятия.

    14. Шаг 3

      Совместите две части - экран и блок - и сожмите их с отверстиями выстроились.

    15. Шаг 4

      Замените болты и SIM-карты.



    Советы и Предупреждения

    Ресурсы

    27 ноября 2009 в 19:38 - Комментарии

    PrestaShop вручную Преобразование Тележки для заказов

    PrestaShop Cart2Order Модуль

    Недавно у меня была необходимость в преобразовании клиентов телеги в реальные заказы и так не было простой способ сделать это с базовой установки кода и модуль не существует, я написал самостоятельно.

    Основном, что это простой модуль делает конвертировать клиентов в корзину заказа. Вот как это работает, например:

    Если у вас есть, скажем, например, Google Checkout и Paypal оплата модули, то вы будете иметь возможность конвертировать корзину клиента, используя один из этих установленных модулей оплаты.

    Вы можете загрузить модуль Cart2Order по ссылке ниже:
    Cart2Order PrestaShop Модуль

    Форум обсуждения на ссылку ниже:
    http://bit.ly/oTglW

    16 ноября 2009 в 1:27 - Комментарии

    Предотвращение копирования дизайна сайта шаблоны

    Я просматривал PrestaShop форуме и в конечном итоге на волоске, касающиеся вопроса с людьми краже дизайна сайта, загружая файлы шаблонов от темы каталога. Мне показалось, что это, вероятно, то, что те из вас, кто использует другие системы шаблонов с сайтов может также лицо, так думал, я бы после решения здесь.

    Проблема в том, что, хотя PHP файлов не может рассматриваться непосредственно на панели браузера, других исходных файлов могут быть, например файлы с расширением. ТПЛ

    Например посмотрите на файл, который имеет разрешения по умолчанию:

    Незащищенный файл шаблона

    Лучший способ защитить Ваш сайт, чтобы изменить разрешения на эти файлы до 600. Это сделает их доступными только свой код на сервере, а кто-нибудь любопытный настоящее, чтобы попробовать и посмотреть на них с 403 (запрещено) ошибки. То же самое верно для PHP файлов (хотя и они не должны иметь источник, если конфигурация сервера нарушается).

    Взгляните на этот файл с разрешения установлена на уровне 600:

    Охраняемые файл шаблона

    Простой.

    13 ноября 2009 в 16:45 - Комментарии

    Настройка модуля PrestaShop Шаблоны

    Пожалуйста, не редактируйте эти оригиналы!

    Я пришел через этот маленький драгоценный камень некоторое время назад на форуме PrestaShop, и думал, что я хотел бы обратить внимание на него в надежде, что она поможет кому-нибудь.

    Я не один, чтобы жаловаться, но мое домашнее животное ненавидят людей, которые изменить исходные файлы на своих магазинах, когда нет необходимости. Он прослушивается меня в Zen Cart, когда люди радостно изменение "Классик" и "по умолчанию" файлы шаблонов, а затем спрашивает, почему было так трудно для обновления ... и вот люди начали делать то же самое, к теме по умолчанию PrestaShop тоже. Aaaargh! Как трудно сделать копию, переименовать его и править, что версию?

    Где мои инстинкты пурист удалось тем не менее, еще в старые недобрые времена, было, когда дело дошло до. TPL файлы, которые хранились в модуле каталогов себя - по-видимому, как нет выбора, кроме как изменить их, если вы хотите настроить выход в Вашем магазине - или там!

    Ответ на удивление прост, и сделает вас кивнул головой в глубокую признательность ... все, что нужно сделать, это создать модули / Каталог в пользовательском каталоге темы (а вы не собираетесь работать в каталоге тема по умолчанию теперь вы), копия оригинала. ТПЛ из модуля в каталог его и править от к содержанию вашего сердца.

    В качестве примера можно взять шаблон из blockadvertising модуль (blockadvertising.tpl) и сделать копию в / темы / mycooltheme / модули / blockadvertising. Теперь изменить копию оригинала, что выглядит вот так:

    
    
    (L S = 'мода Реклама =' blockadvertising ')

    к

    
    
    (Ls = 'фантастический сайт для мода PrestaShop лакомства =' blockadvertising ')

    Чистая радость! Хотя наблюдательный заметит, что, если вы не измените образ ($) переменной и место проведения статических путь к вашей графической на своем месте, то вам придется изменить картину в директории модуля .... а вы не можете иметь все это я думаю.

    13 ноября 2009 в 16:13 - Комментарии

    Дать собственный PrestaShop Модуль - Часть 5

    Штрихи

    Введение

    В этой заключительной части нашей основной модуль письменном учебник серии мы рассмотрим заключительные шаги для преобразования наших Tutorialthird модуль класса на базе шаблона, который можно использовать для инициирования написания новых модулей. Вместо того, чтобы опубликовать тот же старый код еще раз мы будем обсуждать только изменения, но я добавил ссылку в конце этой части так что вы можете получить окончательный код и использовать его в качестве основы для собственных проектов. Мы будем называть этот модуль "скелет" - название, которое мы будем заменять своими, когда речь идет о производстве новых модулей на его основе.

    Моделирование формы конфигурации

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

    	 частных _displayForm функция ()
    	 (
    		 $ ЬЫз-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    				 <label>. $ ЬЫз-> л ('Обращение к мировой').'</ ярлык>
    				 <div class="margin-form">
    
    					 <input type="text" name="our_message" />
    				 </> Div
    				 <input type="submit" name="submit" value="'.$this-> л ('Обновить').'" класс = "кнопку" />
    
    		 </ Форму> ';
    	 )
    

    Конвенции о конфигурации этих экранах обернуть настройки полей ", и мы также должны добавить хороший чистый (переводимых) в комплекте с легендой икона. Наш код будет выглядеть так:

    	 частных _displayForm функция ()
    	 (
    		 $ ЬЫз-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    			 <fieldset>
    				 <legend> <img alt="" src="../img/admin/cog.gif" class="middle" /> '. $ ЬЫз-> л ("Настройки').'</ легенда>
    
    				 <label>. $ ЬЫз-> л ('Обращение к мировой').'</ ярлык>
    				 <div class="margin-form">
    					 <input type="text" name="our_message" />
    
    				 </> Div
    			 <input type="submit" name="submit" value="'.$this-> л ('Обновить').'" класс = "кнопку" />
    
    			 </ Полей ">
    		 </ Форму> ';
    	 )
    

    Наша конечная косметические изменения, чтобы добавить заголовок в верхней части экрана наших условиях только в случае, если пользователь забыл, где они! Мы делаем это, добавив следующую строку в начале getContent () функции:

     $ ЬЫз-> _html .= '<h2>. $ ЬЫз-> DisplayName. "</ H2>';
    

    Предварительное заполнение формы конфигурации полей

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

    1. Первоначальное проявление форма должна отображать текущую конфигурацию (если есть)
    2. После обновления формы мы должны отображать данные, введенные пользователем

    Мы можем использовать настройки:: получить () для получения текущих настроек из базы данных и инструменты:: деЬУа (), чтобы получить содержимое поля. Инструменты:: деЬУа () принимает второй параметр, который полезна в этом контексте, так как это определяет "по умолчанию", чтобы использовать если поле пустым. Теперь мы можем установить "стоимость" атрибут нашего вклада теги надлежащим использованием этих функций, так что наш окончательный код формы ввода будут:

     <input type="text" name="our_message" value="'.Tools::getValue('our_message', Configuration::get($this-> имя. _message')).'"/>
    

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

    
     если (! sizeof ($ ЬЫз-> _postErrors))
    	 (
    		 Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message'), так);
    		 $ ЬЫз-> _html .= '<div class="conf confirm">. $ ЬЫз-> л (' Настройки').'</ DIV> ';
    	 )
    

    со следующим:

     если (! sizeof ($ ЬЫз-> _postErrors))
    	 $ ЬЫз-> _postProcess ();
    

    А мы добавим новые частные функции члена нашего класса для обработки фактического обновления в единый, легко определить местонахождение:

    	 частных _postProcess функция ()
    	 (
    		 Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message'), так);
    
    		 $ ЬЫз-> _html .= '<div class="conf confirm">. $ ЬЫз-> л (' Настройки').'</ DIV> ';
    	 )
    

    Обработка других типов полей

    В конечном скачать скелета модуля я также добавил примеры других типов полей, которые будут выступать в качестве полезной ярлыки для создания модуля формы конфигурации. Речь идет флажки, радио-кнопки, текстового поля и раскрывающиеся списки. Все, что вам нужно сделать, это добавить / переименовать поля, добавить любые проверки, необходимые для _postValidation () функцию и изменить обновить код в _postProcess () функции надлежащим образом.

    Для обязательные параметры вы должны также проверить их наличие в установке действовать и принимать соответствующие меры для предотвращения модуля вызывает ошибки в Front Office, например, устанавливая соответствующие значения по умолчанию помощью настройки:: updateValue () функцию. Альтернативы этому могут быть выполнены в модуле Конструктор, хотя более правильно было бы выполнить это в течение установки ().

    Добавление нескольких месте отображения крючки

    Наши Tutorialthird модуль может отображать только наш контент в левой колонке, поскольку это было единственным крючок мы реализовали. К счастью, это очень легко осуществить "трансплантации модуля" BackOffice функциональность в нашем коде. В простейшем случае мы просто использовать те же выходные во всех местах, но при необходимости все эти дополнительные крючки можно получить разные результаты.

    Для производства той же продукции на всех популярных местах, мы только необходимость выполнения дополнительных функций крюк в нашем модуле и вызвать исходный код крючок для создания производства. Обратите внимание, что мы только на самом деле назвать registerHook () по умолчанию 1 в установке () функции-члены, и пусть Back Office ручкой регистрации других.

    	 Функция hookRightColumn ($ параметрами)
    	 (
    		 геЬигп $ ЬЫз-> hookLeftColumn ($ параметрами);
    	 )
    
    	 Функция hookTop ($ параметрами)
    	 (
    		 геЬигп $ ЬЫз-> hookLeftColumn ($ параметрами);
    	 )
    
    	 Функция hookHome ($ параметрами)
    	 (
    		 геЬигп $ ЬЫз-> hookLeftColumn ($ параметрами);
    	 )
    
    	 Функция hookFooter ($ параметрами)
    	 (
    		 геЬигп $ ЬЫз-> hookLeftColumn ($ параметрами);
    	 )
    

    Резюме

    За этот цикл статей вы должны научились базовый модуль работы системы в PrestaShop и быть в состоянии программных модулей, которые обеспечивают выход в различных областях, в презентации Front Office. Вы также будете иметь хорошую основу код в базу свои собственные модули далее. Вы могли заметить, что ни разу у нас фактически используется Smarty или шаблоны файлов в создании нашего модуля - это преднамеренное, поскольку они могут рассматриваться как отдельная от конструкции модуля себя.

    Smarty является очень гибким, но выбор для его использования зависит от многих факторов, а из соображений производительности, лучше, чтобы избежать ее использования, если это вообще возможно. Позже статьи будут изучать, как и когда использовать Smarty для повышения функциональности модули, так как она является фундаментальной частью архитектуры PrestaShop.

    Вы можете скачать полный скелет код модуля, используя ссылку ниже:

    Скелет v0.1.0

    13 ноября 2009 в 15:49 - Комментарии

    Дать собственный PrestaShop Модуль - Часть 4

    Форма проверки и безопасности

    Введение

    Будучи достаточно функциональной за то, что он делает, мы создали модуль в части 2 настоящей делает нас с некоторыми проблемами, которые необходимо учитывать при реализации "реального мира" модулями для расширения PrestaShop. В частности, вводимого пользователем, мы захватили с нашей формы была написана непосредственно к конфигурации запись без каких-либо выяснение того, является ли он действительным, а также не принимать во внимание тип вводимых данных.

    В этом уроке мы будем смотреть на общий вопрос о форме проверки входных и безопасности, как для Back Office и Front Office форм и ввода данных пользователем, а также смотрит на улучшение наш код и функционально и эстетически.

    Конфигурация класса вновь

    В части 3 мы кратко коснулись дополнительный параметр, который может быть передан настройки:: updateValue () метод класса. Если вы помните функция имеет следующий вид:

      updateValue ($ ключ, значение $, $ HTML = ложным); 

    В части 3 мы игнорировали $ HTML параметров и позволяет использовать функцию по умолчанию значение "ложь". При этом мы на самом деле непреднамеренно добавил первый элемент безопасности и проверки на наш код. При установке на "ложные" updateValue () метод, по существу предварительную обработку записываемое значение, используя следующий код ($ строка ввода значение, передаваемое функции):

      $ = Строка strip_tags (nl2br2 ($ струны)); 

    Вы можете проверить это, введя некоторые HTML в окне изменения конфигурации для модуля мы создали в части 3. Вы должны увидеть, что любой HTML-теги в Ваш вклад удаляются. Мы могли бы изменить модуль TutorialSecond, чтобы ввод HTML-формы, изменяя линии 29 в исходный файл:

      Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message, правда)); 

    Это иллюстрирует фундаментальный принцип, что мы должны использовать на протяжении нашей собственной код, чтобы она безопасна и действует предсказуемо. К счастью, PrestaShop дает нам некоторые инструменты, которые мы можем использовать в наших собственных код, чтобы сделать его более безопасным и надежным.

    Утверждение

    PrestaShop предоставляет нам класс, называемый подтверждения того, что мы можем использовать для определения любой пользовательский ввод мы принимаем является действительным или нет. Список функций-членов достаточно велико, но оно того стоит воспроизводить некоторые из них здесь, чтобы проиллюстрировать - для получения полного списка вам следует проконсультироваться классов / Validate.php файл в вашем дистрибутиве PrestaShop.

     isEmail ($ электронной почты);
     isFloat ($ плавать);
     isUnsignedFloat ($ плавать);
     isCleanHtml ($ HTML);
     ISDATE ($ настоящее время);
     isBool ($ Ьоо);
     isPhoneNumber ($ номер телефона);
     isPostCode ($ индекс);
     isInt ($ хпЬ);
     isUnsignedInt ($ хпЬ);
     isUnsignedId ($ ID);
     isNullOrUnsignedId ($ ID);
     isUrl ($ URL);
     isAbsoluteUrl ($ URL);
     isFileName ($ пате);
    

    В качестве примера мы можем использовать isCleanHtml () функции из списка выше, в качестве испытания в нашем модуле для предотвращения XSS (Cross сценариев сайт) - таким образом мы можем допустить, чтобы HTML ввода разумные безопасно.

    Проверка нашу форму данных

    Как и прежде мы собираемся создать новый модуль, основанный на предыдущей версии. Почему бы не попробовать изменить класс Tutorialsecond себя создать модуль Tutorialthird? Если вы не хотите, то просто расширить и скопируйте код ниже в зависимости от обстоятельств!

     <? PHP
     класса Tutorialthird распространяется модуль
     (
    	 частных $ _html ='';
    
    	 функцию __construct ()
    	 (
    		 $ ЬЫз-> имя = 'tutorialthird;
    		 родителей:: __construct ();
    
    		 $ ЬЫз-> вкладка = 'eCartService.net учебники;
    		 $ ЬЫз-версии> = '0 .1,0;
    		 $ ЬЫз-> DisplayName = $ ЬЫз-> л ("Третий модуль Учебник ');
    		 $ ЬЫз-> описание = $ ЬЫз-> л ("Наш третий модуль - безопасности и проверки ');
    	 )
    
    	 публичную функцию установки ()
    	 (
    		 родителя:: установка ();
    
    		 если (! $ ЬЫз-> registerHook ('leftColumn'))
    			 вернуться ложным;
    	 )
    
    	 общественного getContent функция ()
    	 (
    		 если (Tools:: isSubmit ('представляет'))
    		 (
    			 Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message'));
    		 )
    
    		 $ ЬЫз-> _displayForm ();
    
    		 геЬигп $ ЬЫз-> _html;
    	 )
    
    	 частных _displayForm функция ()
    	 (
    		 $ ЬЫз-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    				 <label>. $ ЬЫз-> л ('Обращение к мировой').'</ ярлык>
    				 <div class="margin-form">
    					 <input type="text" name="our_message" />
    
    				 </> Div
    				 <input type="submit" name="submit" value="'.$this-> л ('Обновить').'" класс = "кнопку" />
    
    		 </ Форму> ';
    	 )
    
    	 общественного hookLeftColumn функция ()
    	 (
    		 <div возвращаться 'class="block"> <h4>.  Конфигурация:: получить ($ ЬЫз-> имя. _message ').  "</ H4> </ DIV> ';
    	 )
    
     )
     / / Конец: tutorialthird.php
    

    Первый этап этого процесса заключается в изменении нашего getContent (), чтобы добавить проверку шаг:

    	 общественного getContent функция ()
    	 (
    		 если (Tools:: isSubmit ('представляет'))
    		 (
    			 $ ЬЫз-> _postValidation ();
    
    			 если (! sizeof ($ ЬЫз-> _postErrors))
    			 (
    				 Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message'), так);
    				 $ ЬЫз-> _html .= '<div class="conf confirm">. $ ЬЫз-> л (' Настройки').'</ DIV> ';
    			 )
    			 еще
    			 (
    				 Еогеасп ($ ЬЫз-> _postErrors AS $ егг)
    				 (
    					 $ ЬЫз-> _html .= '<div class="alert error">. $ Ошибаться. </ DIV>';
    				 )
    			 )
    		 )
    
    		 $ ЬЫз-> _displayForm ();
    
    		 геЬигп $ ЬЫз-> _html;
    	 )
    

    Мы также должны добавить объявление в $ _postErrors членов переменная, которую мы ввели в начале нашего класса, например, определение

     класса Tutorialthird распространяется модуль
     (
    	 частных $ _html ='';
    	 частных $ _postErrors = Array ();
    

    Логика течения, когда мы публикуем данные getContent () теперь называть нашу _Validation () для проверки полей представления и установить нашу $ _postErrors массива с сообщениями об ошибках. Если Есть ошибки, которые мы можем показать их до redisplaying форме. Если проверка прошла проверки, то мы показываем, "успех" сообщение предоставить визуальную обратную связь, что конфигурация была обновлена. Простой тест XSS в _Validation () для нашего примера можно привести:

    	 частных _postValidation функция ()
    	 (
    		 если (! Проверка:: isCleanHtml (Tools:: деЬУа ('our_message')))
    			 $ ЬЫз-> _postErrors [] = $ ЬЫз-> л ('Вы ввели сообщение не было разрешено, извините');
    	 )
    

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

    Резюме

    В этой статье мы улучшили нашу форму обработки путем добавления проверки пользовательского ввода для повышения безопасности и / или надежности. Мы также добавили визуальной обратной связи, когда конфигурации были успешно обновлены. В заключительной части этой серии статей мы добавим некоторые окончательные косметические штрихи к нашей формы для стандартизации интерфейса и улучшения юзабилити. Мы также рассмотрим идеи для улучшения и расширения "шаблон" модуля мы создали.

    13 ноября 2009 в 15:35 - Комментарии

    Дать собственный PrestaShop Модуль - Часть 3

    Хранение конфигурации модуля

    Введение

    В третьей части этой серии статей мы рассмотрим, каким образом мы можем хранить конфигурационные данные для наших модулей в базе данных PrestaShop, и как мы можем позволить пользователям взаимодействовать с этими данными для контроля за поведением модуля. Мы также кратко остановиться на том, как мы можем генерировать вывод из нашего модуля обеспечивают визуальное представление изменений конфигурации.

    Управление пользовательскими настройками

    Мы будем называть этот модуль "TutorialSecond", так мы опять необходимо создать новый модуль каталога и файл класса - которая будет называться "tutorialsecond" и "tutorialsecond.php", соответственно. Файл класса (tutorialsecond.php) должен содержать следующие сведения:

      <? PHP
     класса Tutorialsecond распространяется модуль
     (
    	 частных $ _html ='';
    
    	 функцию __construct ()
    	 (
    		 $ ЬЫз-> имя = 'tutorialsecond;
    		 родителей:: __construct ();
    
    		 $ ЬЫз-> вкладка = 'eCartService.net учебники;
    		 $ ЬЫз-версии> = '0 .1,0;
    		 $ ЬЫз-> DisplayName = $ ЬЫз-> л ("Второй модуль Учебник ');
    		 $ ЬЫз-> описание = $ ЬЫз-> л ("Наш второй модуль -" Привет мир "возрождением ');
    	 )
    
    	 общественного getContent функция ()
    	 (
    
    	 )
    
    	 частных _displayForm функция ()
    	 (
    
    	 )
    
     )
     / / Конец: tutorialsecond.php 

    Вы заметите, что мы внедрили два новых функций-членов:: getContent () и:: _displayForm (). Если Вы хотите загрузить файл на сервер и установить этот модуль на этом этапе вы увидите новую опцию в списке модулей экран "Второй модуль Учебник. Там теперь будут ">> Настроить ссылку в модуле, хотя и щелкнув на нем будет лишь возвращать пустую страницу Back Office. Наличие:: getContent () функцию-член несет ответственность за это, как он обеспечивает интерфейс между нашими модуль и Back Office.

    В дополнение к этим две новые функции, мы также добавили $ _html закрытой переменной-члене, который мы будем использовать в дальнейшем в этой статье, для создания требуемой производительности для отображения в Back Office.

    Сохранение и загрузка данных конфигурации

    PrestaShop обеспечивает "Конфигурация" класса, который предлагает несколько функций-членов для управления конфигурацией данных, но две ключевые функции, которые будут наиболее распространенными являются:

      Конфигурация:: updateValue ($ ключ, значение $, $ HTML = ложным);
     Конфигурация:: получить ($ ключевых, $ id_lang = NULL); 

    Конфигурация:: updateValue () позволяет нам хранить опция конфигурации в базе данных (опционально в нескольких Языки в этом случае значение $ параметр будет массив) и настройки:: получить () функция позволяет получить сведения о конфигурации для выбранного или хранить язык по умолчанию. Мы будем игнорировать параметры, которые имеют значения по умолчанию и есть, но вернется к $ HTML параметра настройки:: updateValue () в следующей статье, когда мы смотрим на объект формы проверки.

    Реализация экран Настройка

    В наш исходный файл мы создали частные _displayForm функция-член (). Это совершенно не обязательно, как и все интерфейса код может быть помещен в getContent () функцию-член, однако он настоятельно рекомендуем вам отделить из ради проще код обслуживания. Мы создадим простую форму в рамках этой функции, с которыми мы можем хранить ввода захвата владельца.

      частных _displayForm функция ()
    	 (
    		 $ ЬЫз-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    				 <label>. $ ЬЫз-> л ('Обращение к мировой').'</ ярлык>
    				 <div class="margin-form">
    
    					 <input type="text" name="our_message" />
    				 </> Div
    				 <input type="submit" name="submit" value="'.$this-> л ('Обновить').'" класс = "кнопку" />
    
    		 </ Форму> ';
    	 ) 

    Вы видите, что:: _displayForm () функция просто добавляет стандартный код HTML форме на наш $ _html переменной-члена, с формой целевой время $ REQUEST_URI '] _SERVER ['. Вернуться PrestaShop Офис архитектуры будет направлять это к нашим:: getContent функцию-член класса нам ручкой, когда форма будет опубликован.

    Теперь мы должны добавить код нашего:: getContent (), чтобы на самом деле отображения формы и обрабатывать данные формы.

      общественного getContent функция ()
    	 (
    		 если (Tools:: isSubmit ('представляет'))
    		 (
    			 Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message'));
    		 )
    
    		 $ ЬЫз-> _displayForm ();
    
    		 геЬигп $ ЬЫз-> _html;
    	 ) 

    :: GetContent () функции первого использует другой класс PrestaShop "Инструменты", чтобы проверить, имеем ли мы после обработки действий по форме, или же эта функция в настоящее время называется по-другому т.е. нажмите кнопку "Настройка" ссылка в модуле список - параметр имя мы дали нашим кнопку "обновить" в форме.

    Если функция вызывается непосредственно Back Office (в этом случае Tools:: isSubmit ("Отправить") вернет ложь), то мы называем формы оказания функции мы создали выше, и вернуть выходной, захваченных в $ это- > _html переменной, в бэк-офис для отображения.

    Если функция вызывается в результате нашей формы их размещения, то мы можем хранить наши параметров конфигурации в базе данных со значением вступили на нашу форму. Мы снова используем класс инструменты для получения значения переменных, используя форму вызова Tools:: деЬУа ('our_message'), где 'our_message' это имя в поле ввода в нашу форму.

    Вы видите, что я добавил имя нашего модуля до начала элемента конфигурации имя - это для того, чтобы конфигурация ключ уникален, так как имен для этих разделов является общим для всего магазина.

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

    Модуль Выход на страницу

    Теперь у нас есть метод захвата входного от владельца магазина и его сохранение в базе данных, поэтому в следующий очевидный шаг будет что-то делать с ним, например отображение его на этой странице. В части 1 серии мы говорили о "крючки" в связи с модулями добавления функциональности. Для того, чтобы использовать это мы должны сказать, что наши PrestaShop модуль хотел бы крюк в офис фронта и мы делаем это, используя следующие функции (определенные в базовом классе Module):

      $ ЬЫз-> registerHook ($ hook_name); 

    $ Hook_name параметр относится к одному из разных точек, что основные PrestaShop позволяет модулям для вывода вставки и / или обработке данных, но сейчас мы будем использовать, в частности, один - "leftColumn", которая позволяет добавлять содержание в левой колонке для всех страниц. Для того, чтобы инициализировать крючок необходимо добавить следующие новые переопределить в свой собственный класс:

      публичную функцию установки ()
    	 (
    		 родителя:: установка ();
    
    		 если (! $ ЬЫз-> registerHook ('leftColumn'))
    			 вернуться ложным;
    	 ) 

    Это говорит PrestaShop выполнить наш модуль крючок, когда она оказывает содержание в левой колонке на всех страницах. Теперь мы должны добавить функцию для обработки крючок обратного вызова. Конвенции является имя функции в качестве имени Хук предшествует "крючок":

      общественного hookLeftColumn функция ()
    	 (
    		 <div возвращаться 'class="block"> <h4>.  Конфигурация:: получить ($ ЬЫз-> имя. _message ').  "</ H4> </ DIV> ';
    	 ) 

    В нашем простом примере мы просто упаковка нашей конфигурации параметров в некоторых стандартных HTML-разметки, так что корректно отображаться на страницах сайта.

    Если у вас уже установлен модуль теперь вы должны удалить, а затем повторно для того, чтобы крючок правильно зарегистрирован в основных PrestaShop. Теперь вы можете ввести значение в окне конфигурации для модуля - например, 'Hello World', и он будет выводиться как заголовок окна в левой колонке вашего магазина. Полный код для второй пример должен выглядеть так:

      <? PHP
     класса Tutorialsecond распространяется модуль
     (
    	 частных $ _html ='';
    
    	 функцию __construct ()
    	 (
    		 $ ЬЫз-> имя = 'tutorialsecond;
    		 родителей:: __construct ();
    
    		 $ ЬЫз-> вкладка = 'eCartService.net учебники;
    		 $ ЬЫз-версии> = '0 .1,0;
    		 $ ЬЫз-> DisplayName = $ ЬЫз-> л ("Второй модуль Учебник ');
    		 $ ЬЫз-> описание = $ ЬЫз-> л ("Наш второй модуль -" Привет мир "возрождением ');
    	 )
    
    	 публичную функцию установки ()
    	 (
    		 родителя:: установка ();
    
    		 если (! $ ЬЫз-> registerHook ('leftColumn'))
    			 вернуться ложным;
    	 )
    
    	 общественного getContent функция ()
    	 (
    		 если (Tools:: isSubmit ('представляет'))
    		 (
    			 Конфигурация:: updateValue ($ ЬЫз-> имя. _message, Инструменты:: деЬУа ('our_message'));
    		 )
    
    		 $ ЬЫз-> _displayForm ();
    
    		 геЬигп $ ЬЫз-> _html;
    	 )
    
    	 частных _displayForm функция ()
    	 (
    		 $ ЬЫз-> _html .= '
    		 <form action="'.$_SERVER['REQUEST_URI'].'" method="post">
    
    				 <label>. $ ЬЫз-> л ('Обращение к мировой').'</ ярлык>
    				 <div class="margin-form">
    					 <input type="text" name="our_message" />
    
    				 </> Div
    				 <input type="submit" name="submit" value="'.$this-> л ('Обновить').'" класс = "кнопку" />
    
    		 </ Форму> ';
    	 )
    
    	 общественного hookLeftColumn функция ()
    	 (
    		 <div возвращаться 'class="block"> <h4>.  Конфигурация:: получить ($ ЬЫз-> имя. _message ').  "</ H4> </ DIV> ';
    	 )
    
     )
     / / Конец: tutorialsecond.php 

    Резюме

    В этой статье мы расширили наш первый модуль включает основные формы конфигурации и использовали крючок функции для вывода на экран из нашего модуля в левой колонке нашего сайта. В следующей части этой серии статей мы будем смотреть на улучшение конфигурации объекта в нечто, что может быть использована в реальном модуле реализации. Это будет включать проверку пользовательского ввода в форме предварительного заполнения полей формы по мере необходимости на основе текущей конфигурации модуля и отображение ошибок и предупреждений в спину экраны Office.

    13 ноября 2009 в 15:28 - Комментарии