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

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

Вернуться на страницу QuickForm 2

empty cart
Корпус ATX ACCORD P-28B (1 390 руб.)
0руб.


НАБОР ОБЕД КАПРИЗ
Состав (1020г): Ролл Печеный Лосось, Ролл Калифорния Темпура, Ролл Тори Терияки, Ролл Мураками.
0руб.





Теперь, как я и обещал, рассмотрим некоторые моменты, которые могут вызвать затруднения в настройке корзины. Для начала, стоит отметить, что сам товар - это обычный проект компонента, здесь мы не будем на нем останавливаться. Единственная разница заключается в том, что вместо кнопки submit нужно использовать кнопку addToCart из набора меню. Кроме этого, нужно опубликовать модуль mod_quickform в режиме корзины. Магазин готов.

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




2. css файл корзины лежит в папке /modules/mod_quickform/css/cart_default.css. Не стоит вносить правки непосредственно в этот файл. Создайте рядом еще один с новым названием, скопируйте стили в этот файл. В настройках модуля mod_quickform отметьте новый файл рабочим. Отредактируйте стили так, чтобы они соответствовали шаблону и дизайну вашего сайта.


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



3.1). Первыми идут настройки модуля mod_quickform.

3.1.1). Вначале идет настройка, которая определяет, с какой стороны от цены будет выведен текст из второй настройки - перед ценой или после.

3.1.2). Вторая настройка задает сам текст. У меня это значение равно "товаров:". Здесь нужно описать немного подробнее.

Так как QuickForm создает динамические формы с самой разнообразной конфигурацией, товар может иметь несколько цен, причём в разной "валюте" (штуках, процентах, амперах и т. п.). Подсчитать общую сумму не всегда представляется возможным. Если у вас такой случай, это не значит, что все поломается и не будет работать. Но вместо суммы будет выводиться количество товаров в корзине. Для этого, собственно, эта настройка и создавалась. Если она вам мешает, оставьте поле пустым.

3.1.3). Последняя настройка "img:" указывает на картинку со значком корзинки. Тут всё понятно.


3.2). Настройки самой корзины.



3.2.1). Первые три поля типа "textarea" предназначены для вывода html в разных частях корзины. Соответственно, вверху, в середине и снизу.

3.2.2). Следующие три поля, в которых у меня вставлены id проектов, интереснее, и про них стоит написать подробнее. Они предназначены для вывода дополнительных форм в нижней части корзины, таких как способ доставки, оплаты или чего-то подобного. Они не обязательны. Первые два из них выводятся внизу корзины, третее поле выводится в отдельном всплывающем окне. Посмотреть, как это работает, можно на примере страницы, которую вы читаете.

Формы, которые тут используются для вывода, могут быть динамическими и могут включать калькулятор (calculatorSum). В этих формах не должно быть кнопок submit.

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

В правой части, под заголовком "СТОИМОСТЬ ЗАКАЗА" выводятся "Итоговая цена:" и дополнительные строки с промежуточными суммами. В том случае, если подформа включает калькулятор. Подзаголовок "Доставка" - это label из настроек поля calculatorSum.

В данном примере можно увидеть, что при выборе "Способ оплаты" -> "предоплата банковской картой" у нас появляется дополнительная строка "скидка". Это происходит потому, что поле calculatorSum в данной форме включено динамически.

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

3.2.3). Следующие четыре поля - текстовые константы. Вы можете оставить их как есть, убрать или ввести собственные значения.

3.2.4). Последнее поле "redirect" позволяет ввести ссылку на страницу, куда будет перенаправлен пользователь после подтверждения покупки. Если оно пустое, тогда пользователь будет перенаправлен на текущую страницу.


3.3). В заключение, рассмотрим последнюю часть интерфейса - настройки email.



3.3.1). Первые два поля предназначены для вывода html в начале и конце письма.

3.3.2). Следующее поле "Записывать историю", указывает компоненту, что нужно делать с историей отправлений корзины - записывать ее или не записывать.

3.3.3). Поле "email" и поле "тема письма" можно оставить пустыми, если они вам ничего не говорят.

3.3.4). Последнее поле "сообщение после отправки" содержит текст, который будет показан на странице сайта в интерфейсе его системных сообщений. Это поле игнорировать не стоит.