Initial commit
This commit is contained in:
16
README.md
16
README.md
@@ -1,3 +1,15 @@
|
||||
# basket
|
||||
### basket
|
||||
|
||||
Модуль Корзина Только для AVE.CMS ALT
|
||||
## Модуль Корзина
|
||||
|
||||
### Модуль позволяет организовать торговлю любыми товарами с использованием корзины и формы оформления заказа.
|
||||
|
||||
#### Инструкция в файле README.txt (находится в корневой папке с файлами)
|
||||
|
||||
#### либо читаем тему в группе https://vk.com/topic-38315276_27718595?offset=0
|
||||
|
||||
### Changelog:
|
||||
|
||||
04.09.2019 - версия 1.26.1 - адаптация для версии ave.cms 3.26
|
||||
|
||||
Версия 1.0.1
|
||||
32
READ_ME.txt
Normal file
32
READ_ME.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
Добавляем данную форму в шаблон Рубрики иил Запроса
|
||||
|
||||
<form class="product" method="post" action="[tag:path]">
|
||||
|
||||
<!-- Изображение летит в корзину -->
|
||||
<img class="product-image" src="">
|
||||
|
||||
<input type="hidden" name="module" value="basket" />
|
||||
<input type="hidden" name="action" value="add" />
|
||||
|
||||
<input type="hidden" name="p_id" value="[tag:docid]" />
|
||||
<input type="hidden" name="p_name" value="ID ПОЛЯ НАИМЕНОВАНИЯ" />
|
||||
<input type="hidden" name="p_price" value="ID ПОЛЯ ЦЕНЫ" />
|
||||
<input type="hidden" name="p_article" value="ID ПОЛЯ АРТИКУЛА" />
|
||||
<input type="hidden" name="p_size" value="ID ПОЛЯ РАЗМЕРА" />
|
||||
|
||||
<div class="product-to-basket">
|
||||
<input type="text" name="quantity" value="1" size="1" maxlength="2" />
|
||||
<input type="submit" class="button" value="Add" />
|
||||
</div>
|
||||
|
||||
<!-- Можно ссылкой добавлять в корзину -->
|
||||
<a id="[tag:docid]-ID ПОЛЯ НАИМЕНОВАНИЯ-ID ПОЛЯ ЦЕНЫ-ID ПОЛЯ АРТИКУЛА-ID ПОЛЯ РАЗМЕРА" href="/?module=basket&action=add&p_id=[tag:docid]&p_name=ID ПОЛЯ НАИМЕНОВАНИЯ&p_price=ID ПОЛЯ ЦЕНЫ&p_article=ID ПОЛЯ АРТИКУЛА&p_size=ID ПОЛЯ РАЗМЕРА&quantity=1" onClick="return false;" class="addCart">В корзину</a>
|
||||
|
||||
</form>
|
||||
|
||||
Обязательным условием при работе с AJAX добавлением нужны библиотеки jQuery, jQuery Form (библиотеки есть в папке lib/scripts).
|
||||
Также используется библиотека jQuery Block - для затемнения экрана.
|
||||
|
||||
modules/basket/js/basket.js - также нужно подключить к шаблону.
|
||||
|
||||
Все скрипты являются простой демонстрацией модуля.
|
||||
407
class.basket.php
Normal file
407
class.basket.php
Normal file
@@ -0,0 +1,407 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Класс работы с Корзиной
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_Basket
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
class ModulBasket
|
||||
{
|
||||
|
||||
/**
|
||||
* СВОЙСТВА
|
||||
*/
|
||||
|
||||
/**
|
||||
* ВНУТРЕННИЕ МЕТОДЫ
|
||||
*/
|
||||
|
||||
/**
|
||||
* ВНЕШНИЕ МЕТОДЫ
|
||||
*/
|
||||
|
||||
/**
|
||||
* Получить список товаров в корзине
|
||||
*
|
||||
*/
|
||||
function getBasket()
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT
|
||||
b.basket_product_id AS id,
|
||||
f.field_value AS name,
|
||||
d.field_value AS article,
|
||||
e.field_value AS size,
|
||||
b.basket_product_quantity AS quantity,
|
||||
b.basket_product_amount AS amount
|
||||
FROM
|
||||
" . PREFIX . "_module_basket AS b
|
||||
LEFT JOIN
|
||||
" . PREFIX . "_document_fields AS f
|
||||
ON f.Id = b.basket_product_name_id
|
||||
LEFT JOIN
|
||||
" . PREFIX . "_document_fields AS d
|
||||
ON d.Id = b.basket_product_article_id
|
||||
LEFT JOIN
|
||||
" . PREFIX . "_document_fields AS e
|
||||
ON e.Id = b.basket_product_size_id
|
||||
WHERE b.basket_session_id = '" . session_id() . "'
|
||||
ORDER BY b.id ASC
|
||||
");
|
||||
|
||||
$total = 0;
|
||||
$total_send = 0;
|
||||
|
||||
$products = array();
|
||||
while($row = $sql->FetchRow())
|
||||
{
|
||||
$total += $row->amount;
|
||||
$total_send += $row->amount;
|
||||
$quantity += $row->quantity;
|
||||
$row->price = $row->amount / $row->quantity;
|
||||
array_push($products, $row);
|
||||
}
|
||||
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
WHERE delivery_activ = '1'
|
||||
ORDER BY delivery_position ASC
|
||||
");
|
||||
|
||||
$delivery = array();
|
||||
while($row = $sql->FetchRow())
|
||||
{
|
||||
array_push($delivery, $row);
|
||||
}
|
||||
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
WHERE payment_activ = '1'
|
||||
ORDER BY payment_position ASC
|
||||
");
|
||||
|
||||
$payment = array();
|
||||
while ($row = $sql->FetchRow())
|
||||
{
|
||||
$payment_delivery = explode(',', $row->payment_delivery);
|
||||
if (in_array($_SESSION['delivery_id'], $payment_delivery)) array_push($payment, $row);
|
||||
}
|
||||
|
||||
if (isset($_SESSION['delivery_id'])) {
|
||||
$row = $AVE_DB->Query("
|
||||
SELECT
|
||||
delivery_price,
|
||||
delivery_price_operands
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
WHERE id = ".$_SESSION['delivery_id']." AND delivery_activ = '1'
|
||||
LIMIT 1
|
||||
")
|
||||
->FetchRow();
|
||||
|
||||
if ($row->delivery_price_operands == "Money"){
|
||||
|
||||
$total = $total + $row->delivery_price;
|
||||
|
||||
}else if ($row->delivery_price_operands == "%"){
|
||||
|
||||
$total = ($row->deliveryt_price_operands == '%') ? $total+$total/100*$row->delivery_price : $total - $row->delivery_price;
|
||||
|
||||
}
|
||||
|
||||
$total = $total + $delivery_price;
|
||||
|
||||
if (isset($_SESSION['payment_id'])){
|
||||
$row = $AVE_DB->Query("
|
||||
SELECT
|
||||
payment_price,
|
||||
payment_price_operands
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
WHERE id = ".$_SESSION['payment_id']." AND payment_activ = '1'
|
||||
LIMIT 1
|
||||
")
|
||||
->FetchRow();
|
||||
|
||||
if ($row->payment_price_operands == "Money"){
|
||||
|
||||
$total = $total + $row->payment_price;
|
||||
|
||||
}else if ($row->payment_price_operands == "%"){
|
||||
|
||||
$total = ($row->payment_price_operands == '%') ? $total+$total/100*$row->payment_price : $total - $row->payment_price;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return array('products' => $products, 'total' => $total, 'delivery' => $delivery, 'payment' => $payment, 'total_cart' => $total_cart, 'total_send' => $total_send, 'quantity' => $quantity);
|
||||
}
|
||||
|
||||
/**
|
||||
* Добавить товар в корзину
|
||||
*
|
||||
* @param int $product_id идентификатор товара
|
||||
* (идентификатор документа с атрибутами товара)
|
||||
* @param int $name_id идентификатор наименования товара
|
||||
* (идентификатор поля рубрики для наименования)
|
||||
* @param int $price_id идентификатор цены товара
|
||||
* (идентификатор поля рубрики для цены)
|
||||
* @param int $article_id идентификатор артикула товара
|
||||
* (идентификатор поля рубрики для артикула)
|
||||
* @param int $size_id идентификатор размера товара
|
||||
* (идентификатор поля рубрики для размера)
|
||||
* @param int $quantity количество добавляемых в корзину товаров
|
||||
*/
|
||||
|
||||
function basketProductAdd($product_id = 0, $name_id = 0, $price_id = 0, $article_id = 0, $size_id = 0, $quantity = 1)
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$product_id = (int)$product_id;
|
||||
$name_id = (int)$name_id;
|
||||
$price_id = (int)$price_id;
|
||||
$article_id = (int)$article_id;
|
||||
$size_id = (int)$size_id;
|
||||
$quantity = (int)$quantity;
|
||||
|
||||
if ($product_id === 0 || $name_id === 0 || $price_id === 0 || $article_id === 0 || $size_id === 0 || $quantity === 0) return;
|
||||
|
||||
$session_id = session_id();
|
||||
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT
|
||||
Id,
|
||||
rubric_field_id,
|
||||
field_value
|
||||
FROM " . PREFIX . "_document_fields
|
||||
WHERE document_id = '" . $product_id . "'
|
||||
AND (rubric_field_id = '" . $name_id . "' OR rubric_field_id = '" . $price_id . "' OR rubric_field_id = '" . $article_id . "' OR rubric_field_id = '" . $size_id . "')
|
||||
");
|
||||
|
||||
$product = array();
|
||||
while ($row = $sql->FetchRow())
|
||||
{
|
||||
$product[$row->rubric_field_id] = array('id' => $row->Id,
|
||||
'val' => $row->field_value);
|
||||
}
|
||||
|
||||
if (!empty($product))
|
||||
{
|
||||
$exists = $AVE_DB->Query("
|
||||
SELECT 1
|
||||
FROM " . PREFIX . "_module_basket
|
||||
WHERE basket_product_id = '" . $product_id . "'
|
||||
AND basket_session_id = '" . $session_id . "'
|
||||
")->GetCell();
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
UPDATE " . PREFIX . "_module_basket
|
||||
SET
|
||||
basket_product_quantity = basket_product_quantity + " . $quantity . ",
|
||||
basket_product_amount = basket_product_amount + " . $quantity * $product[$price_id]['val'] . "
|
||||
WHERE basket_product_id = '" . $product_id . "'
|
||||
AND basket_session_id = '" . $session_id . "'
|
||||
");
|
||||
}
|
||||
else
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
INSERT
|
||||
INTO " . PREFIX . "_module_basket
|
||||
SET
|
||||
basket_session_id = '" . $session_id . "',
|
||||
basket_product_id = '" . $product_id . "',
|
||||
basket_product_name_id = '" . $product[$name_id]['id'] . "',
|
||||
basket_product_price_id = '" . $product[$price_id]['id'] . "',
|
||||
basket_product_article_id = '" . $product[$article_id]['id'] . "',
|
||||
basket_product_size_id = '" . $product[$size_id]['id'] . "',
|
||||
basket_product_quantity = '" . $quantity . "',
|
||||
basket_product_amount = '" . $quantity * $product[$price_id]['val'] . "'
|
||||
");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Удалить товар из корзины
|
||||
*
|
||||
* @param int $product_id
|
||||
*/
|
||||
function basketProductDelete($product_id)
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$AVE_DB->Query("
|
||||
DELETE
|
||||
FROM " . PREFIX . "_module_basket
|
||||
WHERE basket_product_id = '" . (int)$product_id . "'
|
||||
AND basket_session_id = '" . session_id() . "'
|
||||
");
|
||||
}
|
||||
|
||||
/**
|
||||
* Пересчет корзины
|
||||
*
|
||||
* @param array $quantity
|
||||
* @param array $delete
|
||||
*/
|
||||
function basketOrderUpdate($quantity = array(), $delete = array(), $delivery_id, $payment_id)
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
unset ($_SESSION['delivery_id']);
|
||||
unset ($_SESSION['payment_id']);
|
||||
|
||||
if (!(isset($delete) && is_array($delete))) $delete = array();
|
||||
|
||||
$session_id = session_id();
|
||||
|
||||
if (isset($delivery_id) && !isset($payment_id)){
|
||||
$_SESSION['delivery_id'] = $delivery_id;
|
||||
}else if (isset($delivery_id) && isset($payment_id)){
|
||||
$_SESSION['delivery_id'] = $delivery_id;
|
||||
$_SESSION['payment_id'] = $payment_id;
|
||||
}
|
||||
|
||||
// Изменяем в корзине количества товаров
|
||||
if (isset($quantity) && is_array($quantity))
|
||||
{
|
||||
foreach ($quantity as $product_id => $product_quantity)
|
||||
{
|
||||
$product_id = (int)$product_id;
|
||||
if (!is_numeric($product_quantity)) continue;
|
||||
$product_quantity = (int)$product_quantity;
|
||||
// если количество равно 0 - удаляем товар из корзины
|
||||
if ($product_quantity === 0) $delete[$product_id] = 1;
|
||||
if (isset($delete[$product_id])) continue;
|
||||
|
||||
$AVE_DB->Query("
|
||||
UPDATE " . PREFIX . "_module_basket
|
||||
SET
|
||||
basket_product_amount = basket_product_amount / basket_product_quantity * " . $product_quantity . ",
|
||||
basket_product_quantity = '" . $product_quantity . "'
|
||||
WHERE basket_product_id = '" . $product_id . "'
|
||||
AND basket_session_id = '" . $session_id . "'
|
||||
");
|
||||
}
|
||||
}
|
||||
|
||||
// Удаляем помеченные товары
|
||||
foreach ($delete as $product_id => $val)
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
DELETE
|
||||
FROM " . PREFIX . "_module_basket
|
||||
WHERE basket_product_id = '" . (int)$product_id . "'
|
||||
AND basket_session_id = '" . $session_id . "'
|
||||
");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Отправка заказа
|
||||
*
|
||||
*/
|
||||
function basketOrderSend()
|
||||
{
|
||||
global $AVE_DB, $AVE_Template;
|
||||
|
||||
$customer = array();
|
||||
|
||||
$customer['name'] = isset($_REQUEST['name']) ? trim(stripslashes($_REQUEST['name'])) : '';
|
||||
if ($customer['name'] !== '') $customer['name'] = preg_replace('/[^\x20-\xFF]|[><]/', '', $customer['name']);
|
||||
|
||||
$customer['email'] = isset($_REQUEST['email']) ? trim(stripslashes($_REQUEST['email'])) : '';
|
||||
if ($customer['email'] !== '')
|
||||
{
|
||||
$regex_email = '/^[\w.-]+@[a-z0-9.-]+\.(?:[a-z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)$/i';
|
||||
if (!preg_match($regex_email, $customer['email'])) $customer['email'] = '';
|
||||
}
|
||||
|
||||
$customer['phone'] = isset($_REQUEST['phone']) ? trim(stripslashes($_REQUEST['phone'])) : '';
|
||||
if ($customer['phone'] !== '') $customer['phone'] = preg_replace('/[^\x20-\xFF]|[><]/', '', $customer['phone']);
|
||||
|
||||
$customer['address'] = isset($_REQUEST['address']) ? trim(stripslashes($_REQUEST['address'])) : '';
|
||||
if ($customer['address'] !== '') $customer['address'] = preg_replace('/[^\x20-\xFF]|[><]/', '', $customer['address']);
|
||||
|
||||
$customer['description'] = isset($_REQUEST['description']) ? trim(stripslashes($_REQUEST['description'])) : '';
|
||||
if ($customer['description'] !== '') $customer['description'] = preg_replace('/[^\x20-\xFF]|[><]/', '', $customer['description']);
|
||||
|
||||
$delivery_method = $AVE_DB->Query("
|
||||
SELECT delivery_price, delivery_title, delivery_price_operands
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
WHERE id = ".$_SESSION['delivery_id']." AND delivery_activ = '1'
|
||||
LIMIT 1
|
||||
")->FetchRow();
|
||||
|
||||
$delivery_method_titel = $delivery_method->delivery_title;
|
||||
$delivery_method_price = $delivery_method->delivery_price;
|
||||
$delivery_method_operands = $delivery_method->delivery_price_operands;
|
||||
|
||||
$AVE_Template->assign('delivery_method_titel', $delivery_method_titel);
|
||||
$AVE_Template->assign('delivery_method_price', $delivery_method_price);
|
||||
$AVE_Template->assign('delivery_method_operands', $delivery_method_operands);
|
||||
|
||||
$payment_method = $AVE_DB->Query("
|
||||
SELECT payment_price, payment_title, payment_price_operands
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
WHERE id = ".$_SESSION['payment_id']." AND payment_activ = '1'
|
||||
LIMIT 1
|
||||
")->FetchRow();
|
||||
$payment_method_titel = $payment_method->payment_title;
|
||||
$payment_method_price = $payment_method->payment_price;
|
||||
$payment_method_operands = $payment_method->payment_price_operands;
|
||||
|
||||
$AVE_Template->assign('payment_method_titel', $payment_method_titel);
|
||||
$AVE_Template->assign('payment_method_price', $payment_method_price);
|
||||
$AVE_Template->assign('payment_method_operands', $payment_method_operands);
|
||||
|
||||
// Передаем в шаблон информацию о заказчике
|
||||
$AVE_Template->assign('customer', $customer);
|
||||
|
||||
// Формируем тело письма
|
||||
$mail_body = $AVE_Template->fetch(BASE_DIR . '/modules/basket/templates/mail_text.tpl');
|
||||
|
||||
// Если заказчик указал E-mail - отправляем письмо заказчику
|
||||
if ($customer['email'])
|
||||
{
|
||||
send_mail(
|
||||
$customer['email'],
|
||||
$mail_body,
|
||||
$AVE_Template->get_config_vars('BASKET_SHOP_NAME') . ' '
|
||||
. $AVE_Template->get_config_vars('BASKET_ORDER_TITLE'),
|
||||
get_settings('mail_from'),
|
||||
$AVE_Template->get_config_vars('BASKET_SHOP_NAME'),
|
||||
'html'
|
||||
);
|
||||
}
|
||||
|
||||
// Письмо администратору
|
||||
send_mail(
|
||||
get_settings('mail_from'),
|
||||
$mail_body,
|
||||
$AVE_Template->get_config_vars('BASKET_SHOP_NAME') . ' '
|
||||
. $AVE_Template->get_config_vars('BASKET_ORDER_TITLE'),
|
||||
get_settings('mail_from'),
|
||||
$AVE_Template->get_config_vars('BASKET_SHOP_NAME'),
|
||||
'html'
|
||||
);
|
||||
|
||||
// Удаляем заказ из корзины
|
||||
$AVE_DB->Query("
|
||||
DELETE
|
||||
FROM " . PREFIX . "_module_basket
|
||||
WHERE basket_session_id = '" . session_id() . "'
|
||||
");
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
300
class.basket_admin.php
Normal file
300
class.basket_admin.php
Normal file
@@ -0,0 +1,300 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Класс работы с Корзиной
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_Basket
|
||||
* @filesource
|
||||
*/
|
||||
class ModulBasketAdmin
|
||||
{
|
||||
|
||||
/**
|
||||
* СВОЙСТВА
|
||||
*/
|
||||
|
||||
/**
|
||||
* ВНУТРЕННИЕ МЕТОДЫ
|
||||
*/
|
||||
|
||||
/**
|
||||
* ВНЕШНИЕ МЕТОДЫ
|
||||
*/
|
||||
|
||||
|
||||
///////////
|
||||
// Старт //
|
||||
///////////
|
||||
function basketStart($tpl_dir)
|
||||
{
|
||||
global $AVE_DB, $AVE_Template, $AVE_Globals;
|
||||
|
||||
$home = true;
|
||||
|
||||
$payment = array();
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
ORDER BY payment_position ASC
|
||||
");
|
||||
while ($row = $sql->FetchRow()) array_push($payment,$row);
|
||||
|
||||
$delivery = array();
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
ORDER BY delivery_position ASC
|
||||
");
|
||||
while ($row = $sql->FetchRow()) array_push($delivery,$row);
|
||||
|
||||
if ($home == true){
|
||||
$AVE_Template->assign('payment', $payment);
|
||||
$AVE_Template->assign('delivery', $delivery);
|
||||
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'basket_start.tpl'));
|
||||
}
|
||||
}
|
||||
|
||||
////////////////
|
||||
// Вид оплаты //
|
||||
////////////////
|
||||
|
||||
function basketDelPaymentMethod($id)
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
if ($id != 1)
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
DELETE
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
WHERE id = '" . $id . "'
|
||||
");
|
||||
}
|
||||
|
||||
header("Location:index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment&cp=" . SESSION);
|
||||
exit;
|
||||
}
|
||||
|
||||
function basketNewPaymentMethod()
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$AVE_DB->Query("
|
||||
INSERT " . PREFIX . "_module_basket_payment
|
||||
SET payment_title = '" . $_POST['payment_title'] . "'
|
||||
");
|
||||
|
||||
header("Location:index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment&cp=" . SESSION);
|
||||
exit;
|
||||
}
|
||||
|
||||
function basketDisplayMethods()
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$methods = array();
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
ORDER BY payment_position ASC
|
||||
");
|
||||
while ($row = $sql->FetchRow()) array_push($methods,$row);
|
||||
|
||||
return $methods;
|
||||
}
|
||||
|
||||
function basketPaymentMethods($tpl_dir)
|
||||
{
|
||||
global $AVE_DB, $AVE_Template;
|
||||
|
||||
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] == 'save')
|
||||
{
|
||||
foreach ($_POST['payment_title'] as $id => $payment_title)
|
||||
{
|
||||
if (!empty($payment_title))
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
UPDATE " . PREFIX . "_module_basket_payment
|
||||
SET
|
||||
payment_title = '" . $payment_title . "',
|
||||
payment_activ = '" . $_POST['payment_activ'][$id] . "',
|
||||
payment_position = '" . $_POST['payment_position'][$id] . "'
|
||||
WHERE
|
||||
id = '" . $id . "'
|
||||
");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$AVE_Template->assign('methods', $this->basketDisplayMethods());
|
||||
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'basket_payment.tpl'));
|
||||
}
|
||||
|
||||
|
||||
function basketEditPaymentMethod($tpl_dir,$id)
|
||||
{
|
||||
global $AVE_DB, $AVE_Template;
|
||||
|
||||
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] == 'save')
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
UPDATE " . PREFIX . "_module_basket_payment
|
||||
SET
|
||||
payment_title = '" . $_POST['payment_title'] . "',
|
||||
payment_description = '" . $_POST['payment_description'] . "',
|
||||
payment_activ = '" . $_POST['payment_activ'] . "',
|
||||
payment_price = '" . $_POST['payment_price'] . "',
|
||||
payment_price_operands = '" . $_POST['payment_price_operands'] . "',
|
||||
payment_delivery = '" . ((isset($_POST['payment_delivery']) && is_array($_POST['payment_delivery'])) ? implode(',', $_POST['payment_delivery']) : '') . "'
|
||||
WHERE
|
||||
id = '" . $_REQUEST['id'] . "'
|
||||
");
|
||||
|
||||
echo '<script>window.opener.location.reload(); window.close();</script>';
|
||||
}
|
||||
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_payment
|
||||
WHERE id = '" . $id . "'
|
||||
");
|
||||
|
||||
$row = $sql->FetchRow();
|
||||
$row->payment_delivery = explode(',', $row->payment_delivery);
|
||||
|
||||
$oCKeditor = new CKeditor();
|
||||
$oCKeditor->returnOutput = true;
|
||||
$oCKeditor->config['toolbar'] = 'Verysmall';
|
||||
$oCKeditor->config['height'] = 200;
|
||||
$config = array();
|
||||
$Edi = $oCKeditor->editor('payment_description', $row->payment_description, $config);
|
||||
|
||||
$AVE_Template->assign('Edi', $Edi);
|
||||
$AVE_Template->assign('basket_delivery', $this->basketDisplayDelivery());
|
||||
$AVE_Template->assign('payment', $row);
|
||||
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'basket_payment_edit.tpl'));
|
||||
}
|
||||
|
||||
function basketDisplayDelivery()
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$basket_delivery = array();
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
ORDER BY delivery_position ASC
|
||||
");
|
||||
while ($row = $sql->FetchRow()) array_push($basket_delivery,$row);
|
||||
|
||||
return $basket_delivery;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//------------------------------------------------------
|
||||
function basketDeliveryMethods($tpl_dir)
|
||||
{
|
||||
global $AVE_DB, $AVE_Template;
|
||||
|
||||
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] == 'save')
|
||||
{
|
||||
foreach ($_POST['delivery_title'] as $id => $delivery_title)
|
||||
{
|
||||
if (!empty($delivery_title))
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
UPDATE " . PREFIX . "_module_basket_delivery
|
||||
SET
|
||||
delivery_title = '" . $delivery_title . "',
|
||||
delivery_activ = '" . $_POST['delivery_activ'][$id] . "',
|
||||
delivery_position = '" . $_POST['delivery_position'][$id] . "'
|
||||
WHERE
|
||||
id = '" . $id . "'
|
||||
");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$AVE_Template->assign('methods', $this->basketDisplayDelivery());
|
||||
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'basket_delivery.tpl'));
|
||||
}
|
||||
|
||||
function basketNewDeliveryMethod()
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
$AVE_DB->Query("
|
||||
INSERT " . PREFIX . "_module_basket_delivery
|
||||
SET delivery_title = '" . $_POST['delivery_title'] . "'
|
||||
");
|
||||
|
||||
header("Location:index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery&cp=" . SESSION);
|
||||
exit;
|
||||
}
|
||||
|
||||
function basketDelDeliveryMethod($id)
|
||||
{
|
||||
global $AVE_DB;
|
||||
|
||||
if ($id != 1)
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
DELETE
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
WHERE id = '" . $id . "'
|
||||
");
|
||||
}
|
||||
header("Location:index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery&cp=" . SESSION);
|
||||
exit;
|
||||
}
|
||||
|
||||
function basketEditDeliveryMethod($tpl_dir,$id)
|
||||
{
|
||||
global $AVE_DB, $AVE_Template;
|
||||
|
||||
if (isset($_REQUEST['sub']) && $_REQUEST['sub'] == 'save')
|
||||
{
|
||||
$AVE_DB->Query("
|
||||
UPDATE " . PREFIX . "_module_basket_delivery
|
||||
SET
|
||||
delivery_title = '" . $_POST['delivery_title'] . "',
|
||||
delivery_description = '" . $_POST['delivery_description'] . "',
|
||||
delivery_activ = '" . $_POST['delivery_activ'] . "',
|
||||
delivery_price = '" . $_POST['delivery_price'] . "',
|
||||
delivery_price_operands = '" . $_POST['delivery_price_operands'] . "'
|
||||
WHERE
|
||||
id = '" . $_REQUEST['id'] . "'
|
||||
");
|
||||
|
||||
echo '<script>window.opener.location.reload(); window.close();</script>';
|
||||
}
|
||||
|
||||
$sql = $AVE_DB->Query("
|
||||
SELECT *
|
||||
FROM " . PREFIX . "_module_basket_delivery
|
||||
WHERE id = '" . $id . "'
|
||||
");
|
||||
|
||||
$row = $sql->FetchRow();
|
||||
|
||||
$oCKeditor = new CKeditor();
|
||||
$oCKeditor->returnOutput = true;
|
||||
$oCKeditor->config['toolbar'] = 'Verysmall';
|
||||
$oCKeditor->config['height'] = 200;
|
||||
$config = array();
|
||||
$Edi = $oCKeditor->editor('delivery_description', $row->delivery_description, $config);
|
||||
|
||||
$AVE_Template->assign('Edi', $Edi);
|
||||
$AVE_Template->assign('delivery', $row);
|
||||
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'basket_delivery_edit.tpl'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
*/
|
||||
?>
|
||||
BIN
images/loader-12.gif
Normal file
BIN
images/loader-12.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
images/trash.gif
Normal file
BIN
images/trash.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 113 B |
20
info.php
Normal file
20
info.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
if (! defined('BASE_DIR'))
|
||||
exit;
|
||||
|
||||
$module = array(
|
||||
'ModuleSysName' => 'basket',
|
||||
'ModuleVersion' => '1.26.1',
|
||||
'ModuleAutor' => 'AVE.cms Team',
|
||||
'ModuleCopyright' => '© 2007-' . date('Y') . ' AVE.cms',
|
||||
'ModuleStatus' => 1,
|
||||
'ModuleIsFunction' => 1,
|
||||
'ModuleTemplate' => 1,
|
||||
'ModuleAdminEdit' => 1,
|
||||
'ModuleFunction' => 'mod_basket',
|
||||
'ModuleTag' => '[mod_basket]',
|
||||
'ModuleTagLink' => null,
|
||||
'ModuleAveTag' => '#\\\[mod_basket]#',
|
||||
'ModulePHPTag' => "<?php mod_basket(); ?>"
|
||||
);
|
||||
?>
|
||||
86
js/basket.js
Normal file
86
js/basket.js
Normal file
@@ -0,0 +1,86 @@
|
||||
<!--
|
||||
$().ready(function() {
|
||||
//Функция замирания экрана
|
||||
function block_page(){
|
||||
$.blockUI({
|
||||
message: '<img src="'+avemediapath+'/images/loader-12.gif" alt="" />',
|
||||
css: {
|
||||
top: ($(window).height() - 30) /2 + 'px',
|
||||
left: ($(window).width() - 30) /2 + 'px',
|
||||
width: '30px',
|
||||
border: 'none',
|
||||
padding: '15px',
|
||||
backgroundColor: '#000',
|
||||
'-webkit-border-radius': '10px',
|
||||
'-moz-border-radius': '10px',
|
||||
'border-radius': '10px',
|
||||
opacity: .5,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
//Удалить из корзины
|
||||
$("#basket li img").live('click', function(){
|
||||
block_page();
|
||||
//$("#basket .ajax-loader").show();
|
||||
var pid = $(this).attr('id').split('_');
|
||||
$.post(aveabspath,
|
||||
{module: "basket", action: "delete", id: pid[1]},
|
||||
function(response) {
|
||||
$("#basket").before(response).remove();
|
||||
setTimeout($.unblockUI, 100);
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
//Добавить в корзину - only link
|
||||
$('a.addCart').live('click', function(){
|
||||
block_page();
|
||||
var data = $(this).attr('id').split('-');
|
||||
$.post(aveabspath,
|
||||
{module: "basket", action: "add", p_id: data[0], p_name: data[1], p_price: data[2], p_article: data[3], p_size: data[4], quantity: "1"},
|
||||
function(response) {
|
||||
$("#basket").before(response).remove();
|
||||
setTimeout($.unblockUI, 100);
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
//Добавить в корзину
|
||||
$(".product").submit(function(e) {
|
||||
e.preventDefault();
|
||||
$(this).ajaxSubmit({
|
||||
type: "post",
|
||||
resetForm: true,
|
||||
beforeSubmit: function(formData, jqForm) {
|
||||
$("#basket .ajax-loader").show();
|
||||
var productImage = jqForm.find(".product-image");
|
||||
var imagePosition = productImage.offset();
|
||||
var basketPosition = $("#basket").offset();
|
||||
productImage.before('<img src="' + productImage.attr("src")
|
||||
+ '" class="fly-image" style="position: absolute; top: '
|
||||
+ imagePosition.top + 'px; left: '
|
||||
+ imagePosition.left + 'px;" />');
|
||||
$(".fly-image").animate({
|
||||
top: basketPosition.top + 'px',
|
||||
left: basketPosition.left + 'px',
|
||||
opacity: 0,
|
||||
width: $("#basket").width(),
|
||||
heigth: $("#basket").height()},
|
||||
"slow",
|
||||
false,
|
||||
function(){
|
||||
$(".fly-image").remove();
|
||||
});
|
||||
},
|
||||
success: function(response) {
|
||||
$("#basket").before(response).remove()
|
||||
.find(".ajax-loader").hide();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
});
|
||||
-->
|
||||
55
js/jquery.block.min.js
vendored
Normal file
55
js/jquery.block.min.js
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
;(function($){if(/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery)||/^1.1/.test($.fn.jquery)){alert('blockUI requires jQuery v1.2.3 or later! You are using v'+$.fn.jquery);return;}
|
||||
$.fn._fadeIn=$.fn.fadeIn;var noOp=function(){};var mode=document.documentMode||0;var setExpr=$.browser.msie&&(($.browser.version<8&&!mode)||mode<8);var ie6=$.browser.msie&&/MSIE 6.0/.test(navigator.userAgent)&&!mode;$.blockUI=function(opts){install(window,opts);};$.unblockUI=function(opts){remove(window,opts);};$.growlUI=function(title,message,timeout,onClose){var $m=$('<div class="growlUI"></div>');if(title)$m.append('<h1>'+title+'</h1>');if(message)$m.append('<h2>'+message+'</h2>');if(timeout==undefined)timeout=3000;$.blockUI({message:$m,fadeIn:700,fadeOut:1000,centerY:false,timeout:timeout,showOverlay:false,onUnblock:onClose,css:$.blockUI.defaults.growlCSS});};$.fn.block=function(opts){return this.unblock({fadeOut:0}).each(function(){if($.css(this,'position')=='static')
|
||||
this.style.position='relative';if($.browser.msie)
|
||||
this.style.zoom=1;install(this,opts);});};$.fn.unblock=function(opts){return this.each(function(){remove(this,opts);});};$.blockUI.version=2.39;$.blockUI.defaults={message:'<h1>Please wait...</h1>',title:null,draggable:true,theme:false,css:{padding:0,margin:0,width:'30%',top:'40%',left:'35%',textAlign:'center',color:'#000',border:'3px solid #aaa',backgroundColor:'#fff',cursor:'wait'},themedCSS:{width:'30%',top:'40%',left:'35%'},overlayCSS:{backgroundColor:'#000',opacity:0.6,cursor:'wait'},growlCSS:{width:'350px',top:'10px',left:'',right:'10px',border:'none',padding:'5px',opacity:0.6,cursor:'default',color:'#fff',backgroundColor:'#000','-webkit-border-radius':'10px','-moz-border-radius':'10px','border-radius':'10px'},iframeSrc:/^https/i.test(window.location.href||'')?'javascript:false':'about:blank',forceIframe:false,baseZ:1000,centerX:true,centerY:true,allowBodyStretch:true,bindEvents:true,constrainTabKey:true,fadeIn:200,fadeOut:400,timeout:0,showOverlay:true,focusInput:true,applyPlatformOpacityRules:true,onBlock:null,onUnblock:null,quirksmodeOffsetHack:4,blockMsgClass:'blockMsg'};var pageBlock=null;var pageBlockEls=[];function install(el,opts){var full=(el==window);var msg=opts&&opts.message!==undefined?opts.message:undefined;opts=$.extend({},$.blockUI.defaults,opts||{});opts.overlayCSS=$.extend({},$.blockUI.defaults.overlayCSS,opts.overlayCSS||{});var css=$.extend({},$.blockUI.defaults.css,opts.css||{});var themedCSS=$.extend({},$.blockUI.defaults.themedCSS,opts.themedCSS||{});msg=msg===undefined?opts.message:msg;if(full&&pageBlock)
|
||||
remove(window,{fadeOut:0});if(msg&&typeof msg!='string'&&(msg.parentNode||msg.jquery)){var node=msg.jquery?msg[0]:msg;var data={};$(el).data('blockUI.history',data);data.el=node;data.parent=node.parentNode;data.display=node.style.display;data.position=node.style.position;if(data.parent)
|
||||
data.parent.removeChild(node);}
|
||||
$(el).data('blockUI.onUnblock',opts.onUnblock);var z=opts.baseZ;var lyr1=($.browser.msie||opts.forceIframe)?$('<iframe class="blockUI" style="z-index:'+(z++)+';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>'):$('<div class="blockUI" style="display:none"></div>');var lyr2=opts.theme?$('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+(z++)+';display:none"></div>'):$('<div class="blockUI blockOverlay" style="z-index:'+(z++)+';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');var lyr3,s;if(opts.theme&&full){s='<div class="blockUI '+opts.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">'+'<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title||' ')+'</div>'+'<div class="ui-widget-content ui-dialog-content"></div>'+'</div>';}
|
||||
else if(opts.theme){s='<div class="blockUI '+opts.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">'+'<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title||' ')+'</div>'+'<div class="ui-widget-content ui-dialog-content"></div>'+'</div>';}
|
||||
else if(full){s='<div class="blockUI '+opts.blockMsgClass+' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';}
|
||||
else{s='<div class="blockUI '+opts.blockMsgClass+' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';}
|
||||
lyr3=$(s);if(msg){if(opts.theme){lyr3.css(themedCSS);lyr3.addClass('ui-widget-content');}
|
||||
else
|
||||
lyr3.css(css);}
|
||||
if(!opts.theme&&(!opts.applyPlatformOpacityRules||!($.browser.mozilla&&/Linux/.test(navigator.platform))))
|
||||
lyr2.css(opts.overlayCSS);lyr2.css('position',full?'fixed':'absolute');if($.browser.msie||opts.forceIframe)
|
||||
lyr1.css('opacity',0.0);var layers=[lyr1,lyr2,lyr3],$par=full?$('body'):$(el);$.each(layers,function(){this.appendTo($par);});if(opts.theme&&opts.draggable&&$.fn.draggable){lyr3.draggable({handle:'.ui-dialog-titlebar',cancel:'li'});}
|
||||
var expr=setExpr&&(!$.boxModel||$('object,embed',full?null:el).length>0);if(ie6||expr){if(full&&opts.allowBodyStretch&&$.boxModel)
|
||||
$('html,body').css('height','100%');if((ie6||!$.boxModel)&&!full){var t=sz(el,'borderTopWidth'),l=sz(el,'borderLeftWidth');var fixT=t?'(0 - '+t+')':0;var fixL=l?'(0 - '+l+')':0;}
|
||||
$.each([lyr1,lyr2,lyr3],function(i,o){var s=o[0].style;s.position='absolute';if(i<2){full?s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"'):s.setExpression('height','this.parentNode.offsetHeight + "px"');full?s.setExpression('width','jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):s.setExpression('width','this.parentNode.offsetWidth + "px"');if(fixL)s.setExpression('left',fixL);if(fixT)s.setExpression('top',fixT);}
|
||||
else if(opts.centerY){if(full)s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');s.marginTop=0;}
|
||||
else if(!opts.centerY&&full){var top=(opts.css&&opts.css.top)?parseInt(opts.css.top):0;var expression='((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"';s.setExpression('top',expression);}});}
|
||||
if(msg){if(opts.theme)
|
||||
lyr3.find('.ui-widget-content').append(msg);else
|
||||
lyr3.append(msg);if(msg.jquery||msg.nodeType)
|
||||
$(msg).show();}
|
||||
if(($.browser.msie||opts.forceIframe)&&opts.showOverlay)
|
||||
lyr1.show();if(opts.fadeIn){var cb=opts.onBlock?opts.onBlock:noOp;var cb1=(opts.showOverlay&&!msg)?cb:noOp;var cb2=msg?cb:noOp;if(opts.showOverlay)
|
||||
lyr2._fadeIn(opts.fadeIn,cb1);if(msg)
|
||||
lyr3._fadeIn(opts.fadeIn,cb2);}
|
||||
else{if(opts.showOverlay)
|
||||
lyr2.show();if(msg)
|
||||
lyr3.show();if(opts.onBlock)
|
||||
opts.onBlock();}
|
||||
bind(1,el,opts);if(full){pageBlock=lyr3[0];pageBlockEls=$(':input:enabled:visible',pageBlock);if(opts.focusInput)
|
||||
setTimeout(focus,20);}
|
||||
else
|
||||
center(lyr3[0],opts.centerX,opts.centerY);if(opts.timeout){var to=setTimeout(function(){full?$.unblockUI(opts):$(el).unblock(opts);},opts.timeout);$(el).data('blockUI.timeout',to);}};function remove(el,opts){var full=(el==window);var $el=$(el);var data=$el.data('blockUI.history');var to=$el.data('blockUI.timeout');if(to){clearTimeout(to);$el.removeData('blockUI.timeout');}
|
||||
opts=$.extend({},$.blockUI.defaults,opts||{});bind(0,el,opts);if(opts.onUnblock===null){opts.onUnblock=$el.data('blockUI.onUnblock');$el.removeData('blockUI.onUnblock');}
|
||||
var els;if(full)
|
||||
els=$('body').children().filter('.blockUI').add('body > .blockUI');else
|
||||
els=$('.blockUI',el);if(full)
|
||||
pageBlock=pageBlockEls=null;if(opts.fadeOut){els.fadeOut(opts.fadeOut);setTimeout(function(){reset(els,data,opts,el);},opts.fadeOut);}
|
||||
else
|
||||
reset(els,data,opts,el);};function reset(els,data,opts,el){els.each(function(i,o){if(this.parentNode)
|
||||
this.parentNode.removeChild(this);});if(data&&data.el){data.el.style.display=data.display;data.el.style.position=data.position;if(data.parent)
|
||||
data.parent.appendChild(data.el);$(el).removeData('blockUI.history');}
|
||||
if(typeof opts.onUnblock=='function')
|
||||
opts.onUnblock(el,opts);};function bind(b,el,opts){var full=el==window,$el=$(el);if(!b&&(full&&!pageBlock||!full&&!$el.data('blockUI.isBlocked')))
|
||||
return;if(!full)
|
||||
$el.data('blockUI.isBlocked',b);if(!opts.bindEvents||(b&&!opts.showOverlay))
|
||||
return;var events='mousedown mouseup keydown keypress';b?$(document).bind(events,opts,handler):$(document).unbind(events,handler);};function handler(e){if(e.keyCode&&e.keyCode==9){if(pageBlock&&e.data.constrainTabKey){var els=pageBlockEls;var fwd=!e.shiftKey&&e.target===els[els.length-1];var back=e.shiftKey&&e.target===els[0];if(fwd||back){setTimeout(function(){focus(back)},10);return false;}}}
|
||||
var opts=e.data;if($(e.target).parents('div.'+opts.blockMsgClass).length>0)
|
||||
return true;return $(e.target).parents().children().filter('div.blockUI').length==0;};function focus(back){if(!pageBlockEls)
|
||||
return;var e=pageBlockEls[back===true?pageBlockEls.length-1:0];if(e)
|
||||
e.focus();};function center(el,x,y){var p=el.parentNode,s=el.style;var l=((p.offsetWidth-el.offsetWidth)/2)-sz(p,'borderLeftWidth');var t=((p.offsetHeight-el.offsetHeight)/2)-sz(p,'borderTopWidth');if(x)s.left=l>0?(l+'px'):'0';if(y)s.top=t>0?(t+'px'):'0';};function sz(el,p){return parseInt($.css(el,p))||0;};})(jQuery);
|
||||
4
lang/index.php
Normal file
4
lang/index.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
||||
91
lang/ru.txt
Normal file
91
lang/ru.txt
Normal file
@@ -0,0 +1,91 @@
|
||||
|
||||
MODULE_NAME = "Корзина"
|
||||
MODULE_DESCRIPTION = "Модуль позволяет организовать торговлю любыми товарами с использованием корзины и формы оформления заказа. Разместите системный тег <strong>[mod_basket]</strong> в нужном месте вашего шаблона сайта или содержимом документа."
|
||||
|
||||
|
||||
BASKET_SHOP_NAME = "Мини-магазин AVE.cms"
|
||||
BASKET_SHOP_LOGO = "logo_bw.png"
|
||||
BASKET_SHOP_ADDRESS = "МойГород, ул. Ленина, д.1<br>тел./факс: (111) 555-55-66<br>Email: info@mysite.ru"
|
||||
|
||||
BASKET_PRODUCT_NAME = "Наименование"
|
||||
BASKET_PRODUCT_QUANTITY = "Количество"
|
||||
BASKET_PRODUCT_PRICE = "Цена"
|
||||
BASKET_PRODUCT_AMOUNT = "Сумма"
|
||||
BASKET_PRODUCT_DELETE = "Удалить"
|
||||
|
||||
BASKET_ORDER_TITLE = "Уведомление о заказе"
|
||||
BASKET_ORDER_HEAD = "Обратите внимание этот документ не является официальным счетом.<br>При получении заказа Вы получите счет который можно будет использовать в финансовой отчетности и документы подтверждающие покупку."
|
||||
BASKET_ORDER_TOTAL = "Итого"
|
||||
BASKET_ORDER_DATE = "Дата заказа"
|
||||
BASKET_ORDER_INFO = "У вас есть вопросы? Обратитесь к нашим менеджерам."
|
||||
BASKET_ORDER_CHECKOUT = "Оформить"
|
||||
BASKET_ORDER_SHOW_TIP = "Проверьте список товаров в корзине. При необходимости можете изменить количество товаров в заказе, либо исключить некоторые товары из заказа. Для пересчета суммы заказа используйте кнопку «Обновить». Если список товаров составлен правильно — переходите к заполнению персональной информации по ссылке «Продолжить»."
|
||||
BASKET_ORDER_FORM_TIP = "Пожалуйста заполните все поля — это поможет нам максимально быстро и точно выполнить Ваш заказ. Если Вы введёте E-mail то получите копию заказа, а так-же будете получать уведомления о этапах выполнения Вашего заказа. В поле «Адрес» укажите адрес доставки и информацию для курьера (станцию метро, номер подъезда, код домофона). Если у Вас есть какие-то дополнительные пожелания относительно заказа — опишите их в поле «Комментарий»."
|
||||
BASKET_ORDER_SEND_SUCCESS = "Заказ успешно отправлен"
|
||||
|
||||
BASKET_CUSTOMER_INFO = "Информация о заказчике"
|
||||
BASKET_CUSTOMER_NAME = "Имя"
|
||||
BASKET_CUSTOMER_EMAIL = "E-mail"
|
||||
BASKET_CUSTOMER_PHONE = "Телефон"
|
||||
BASKET_CUSTOMER_ADDRESS = "Адрес"
|
||||
BASKET_CUSTOMER_DESCRIPTION = "Комментарий"
|
||||
|
||||
BASKET_PROGRESSBAR_STEP1 = "Список товаров"
|
||||
BASKET_PROGRESSBAR_STEP2 = "Персональная информация"
|
||||
BASKET_PROGRESSBAR_STEP3 = "Финиш"
|
||||
|
||||
BASKET_TITLE = "Корзина"
|
||||
BASKET_CURRENCY = "р."
|
||||
BASKET_UNIT = "шт."
|
||||
BASKET_UPDATE = "Обновить"
|
||||
BASKET_NEXT = "Продолжить"
|
||||
BASKET_SEND = "Отправить"
|
||||
BASKET_EMPTY = "Корзина пуста"
|
||||
|
||||
[admin]
|
||||
ModName = "Корзина"
|
||||
WelcomeText = "Управление модулем Корзина"
|
||||
mainPage = "Главная страница"
|
||||
|
||||
Yes = "Да"
|
||||
No = "Нет"
|
||||
ButtonSave = "Сохранить"
|
||||
ButtonAdd = "Добавить"
|
||||
ButtonEdit = "Редактировать"
|
||||
Actions = "Действия"
|
||||
|
||||
PaymentMethod = "Вид оплаты"
|
||||
PaymentMethodName = "Наименование оплаты"
|
||||
PaymentMethodPosition = "Позиция"
|
||||
PaymentMethodActive = "Активно"
|
||||
NewPaymentMethod = "Добавить вид оплаты"
|
||||
PaymentMethodDel = "Удалить"
|
||||
PaymentMethodEdit = "Редактировать"
|
||||
PaymentMethodDelTitle = "Вы действительно хотите удалить метод оплаты?"
|
||||
PaymentCostPercent = "% (Процентов)"
|
||||
PaymentCostMoney = "Сумма (стоимость)"
|
||||
PaymentCostText = "Текст (просто)"
|
||||
AllowedDeliveryMethods = "Совместимые виды доставки"
|
||||
PaymentPrice = "Стоимость"
|
||||
PaymentDelivery = "Виды доставки"
|
||||
PaymentActive = "Активен"
|
||||
PaymentName = "Наименование"
|
||||
PaymentDescription = "Описание"
|
||||
DeliveryMethodInf = "Пожалуйста выберите виды доставки заказа совместимые с видом платежа. Для выбора нескольких видов произведите выбор удерживая нажатой клавишу Ctrl"
|
||||
EditPaymentMethod = "Редактировать вид платежа"
|
||||
EditPaymentInfo = "Внимание! При редактировании вида платежа проверте все введеные данные. В случае неверных данных возможны ошибки при оплате товара. Это может привести к потере денежных средств как со стороны клиента так и со сторны администрации сайта."
|
||||
|
||||
DeliveryMethod = "Вид доставки"
|
||||
DeliveryMethodName = "Наименование доставки"
|
||||
DeliveryMethodPosition = "Позиция"
|
||||
DeliveryMethodActive = "Активно"
|
||||
NewDeliveryMethod = "Добавить вид доставки"
|
||||
DeliveryMethodDel = "Удалить"
|
||||
DeliveryMethodEdit = "Редактировать"
|
||||
DeliveryMethodDelTitle = "Вы действительно хотите удалить метод доставки?"
|
||||
DeliveryPrice = "Стоимость"
|
||||
DeliveryName = "Наименование"
|
||||
DeliveryDescription = "Описание"
|
||||
DeliveryActive = "Активен"
|
||||
EditDeliveryMethod = "Редактировать вид доставки"
|
||||
EditDeliveryInfo = "Внимание! При редактировании вида доставки проверте все введеные данные. В случае неверных данных возможны ошибки при оплате товара. Это может привести к потере денежных средств как со стороны клиента так и со сторны администрации сайта."
|
||||
175
module.php
Normal file
175
module.php
Normal file
@@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* AVE.cms - Модуль Корзина
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_Basket
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
if (!defined('BASE_DIR')) exit;
|
||||
|
||||
/**
|
||||
* Обработка тэга модуля
|
||||
*
|
||||
*/
|
||||
|
||||
function mod_basket()
|
||||
{
|
||||
global $AVE_Template;
|
||||
|
||||
// Если выводится страница модуль Корзина - корзину не выводим
|
||||
if (isset($_REQUEST['module']) && $_REQUEST['module'] == 'basket') return;
|
||||
|
||||
require_once(BASE_DIR . '/modules/basket/class.basket.php');
|
||||
|
||||
$oBasket = new ModulBasket;
|
||||
|
||||
$AVE_Template->register_object('oBasket', $oBasket);
|
||||
|
||||
$AVE_Template->config_load(BASE_DIR . '/modules/basket/lang/' . $_SESSION['user_language'] . '.txt');
|
||||
|
||||
$AVE_Template->display(BASE_DIR . '/modules/basket/templates/basket_show.tpl');
|
||||
}
|
||||
|
||||
if (!defined('ACP') && isset($_REQUEST['module']) && $_REQUEST['module'] == 'basket' && !empty($_REQUEST['action']))
|
||||
{
|
||||
require_once(BASE_DIR . '/modules/basket/class.basket.php');
|
||||
|
||||
$oBasket = new ModulBasket;
|
||||
|
||||
$AVE_Template->register_object('oBasket', $oBasket);
|
||||
|
||||
$AVE_Template->config_load(BASE_DIR . '/modules/basket/lang/' . $_SESSION['user_language'] . '.txt');
|
||||
|
||||
switch ($_REQUEST['action'])
|
||||
{
|
||||
case 'add':
|
||||
$p_id = (isset($_REQUEST['p_id'])) ? (int)$_REQUEST['p_id'] : 0;
|
||||
$p_name = (isset($_REQUEST['p_name'])) ? (int)$_REQUEST['p_name'] : 0;
|
||||
$p_price = (isset($_REQUEST['p_price'])) ? (int)$_REQUEST['p_price'] : 0;
|
||||
$p_article = (isset($_REQUEST['p_article'])) ? (int)$_REQUEST['p_article'] : 0;
|
||||
$p_size = (isset($_REQUEST['p_size'])) ? (int)$_REQUEST['p_size'] : 0;
|
||||
$quantity = (isset($_REQUEST['quantity'])) ? (int)$_REQUEST['quantity'] : 1;
|
||||
$oBasket->basketProductAdd($p_id, $p_name, $p_price, $p_article, $p_size, $quantity);
|
||||
if (empty($_POST['action']))
|
||||
{
|
||||
header("Location:" . get_referer_link());
|
||||
}
|
||||
else
|
||||
{
|
||||
$AVE_Template->display(BASE_DIR . '/modules/basket/templates/basket_show.tpl');
|
||||
}
|
||||
exit;
|
||||
|
||||
case 'delete':
|
||||
$id = (isset($_REQUEST['id'])) ? (int)$_REQUEST['id'] : 0;
|
||||
$oBasket->basketProductDelete($id);
|
||||
if (empty($_POST['action']))
|
||||
{
|
||||
header("Location:" . get_referer_link());
|
||||
}
|
||||
else
|
||||
{
|
||||
$AVE_Template->display(BASE_DIR . '/modules/basket/templates/basket_show.tpl');
|
||||
}
|
||||
exit;
|
||||
|
||||
case 'order':
|
||||
unset ($_SESSION['delivery_id']);
|
||||
unset ($_SESSION['payment_id']);
|
||||
define('MODULE_SITE', $AVE_Template->get_config_vars('BASKET_TITLE'));
|
||||
define('MODULE_CONTENT', $AVE_Template->fetch(BASE_DIR . '/modules/basket/templates/order_show.tpl'));
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
$product_delete = isset($_REQUEST['product_delete']) ? $_REQUEST['product_delete'] : null;
|
||||
$product_quantity = isset($_REQUEST['product_quantity']) ? $_REQUEST['product_quantity'] : null;
|
||||
$delivery_id = isset($_REQUEST['delivery_id']) ? $_REQUEST['delivery_id'] : null;
|
||||
$payment_id = isset($_REQUEST['payment_id']) ? $_REQUEST['payment_id'] : null;
|
||||
$oBasket->basketOrderUpdate($product_quantity, $product_delete, $delivery_id, $payment_id);
|
||||
if (empty($_POST['action']))
|
||||
{
|
||||
header("Location:" . get_referer_link());
|
||||
}
|
||||
else
|
||||
{
|
||||
$AVE_Template->display(BASE_DIR . '/modules/basket/templates/order_show.tpl');
|
||||
}
|
||||
exit;
|
||||
|
||||
case 'form':
|
||||
define('MODULE_SITE', $AVE_Template->get_config_vars('BASKET_TITLE'));
|
||||
define('MODULE_CONTENT', $AVE_Template->fetch(BASE_DIR . '/modules/basket/templates/order_form.tpl'));
|
||||
break;
|
||||
|
||||
case 'send':
|
||||
$oBasket->basketOrderSend();
|
||||
define('MODULE_SITE', $AVE_Template->get_config_vars('BASKET_TITLE'));
|
||||
define('MODULE_CONTENT', $AVE_Template->fetch(BASE_DIR . '/modules/basket/templates/order_finish.tpl'));
|
||||
unset ($_SESSION['delivery_id']);
|
||||
unset ($_SESSION['payment_id']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (defined('ACP') && !empty($_REQUEST['moduleaction']))
|
||||
{
|
||||
|
||||
require_once(BASE_DIR . '/modules/basket/class.basket_admin.php');
|
||||
|
||||
$aBasket = new ModulBasketAdmin;
|
||||
|
||||
$tpl_dir = BASE_DIR . '/modules/basket/templates_admin/';
|
||||
$tpl_dir_source = BASE_DIR . '/modules/basket/templates_admin';
|
||||
$lang_file = BASE_DIR . '/modules/basket/lang/' . $_SESSION['admin_language'] . '.txt';
|
||||
|
||||
$AVE_Template->config_load($lang_file, 'admin');
|
||||
$config_vars = $AVE_Template->get_config_vars();
|
||||
$AVE_Template->assign('config_vars', $config_vars);
|
||||
$AVE_Template->assign('source', $tpl_dir_source);
|
||||
|
||||
if (!empty($_REQUEST['moduleaction']))
|
||||
{
|
||||
switch ($_REQUEST['moduleaction'])
|
||||
{
|
||||
case '1':
|
||||
$aBasket->basketStart($tpl_dir);
|
||||
break;
|
||||
|
||||
case 'basket_payment':
|
||||
$aBasket->basketPaymentMethods($tpl_dir);
|
||||
break;
|
||||
|
||||
case 'basket_payment_new':
|
||||
$aBasket->basketNewPaymentMethod();
|
||||
break;
|
||||
|
||||
case 'basket_payment_del':
|
||||
$aBasket->basketDelPaymentMethod($_REQUEST['id']);
|
||||
break;
|
||||
|
||||
case 'basket_payment_edit':
|
||||
$aBasket->basketEditPaymentMethod($tpl_dir, $_REQUEST['id']);
|
||||
break;
|
||||
|
||||
case 'basket_delivery':
|
||||
$aBasket->basketDeliveryMethods($tpl_dir);
|
||||
break;
|
||||
|
||||
case 'basket_delivery_new':
|
||||
$aBasket->basketNewDeliveryMethod();
|
||||
break;
|
||||
|
||||
case 'basket_delivery_del':
|
||||
$aBasket->basketDelDeliveryMethod($_REQUEST['id']);
|
||||
break;
|
||||
|
||||
case 'basket_delivery_edit':
|
||||
$aBasket->basketEditDeliveryMethod($tpl_dir, $_REQUEST['id']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
110
sql.php
Normal file
110
sql.php
Normal file
@@ -0,0 +1,110 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* AVE.cms - Модуль Корзина
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_Basket
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* mySQL-запросы для установки, обновления и удаления модуля
|
||||
*/
|
||||
|
||||
$module_sql_install = array();
|
||||
$module_sql_deinstall = array();
|
||||
$module_sql_update = array();
|
||||
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_basket`;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_basket_payment`;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_basket_delivery`;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_basket_processing`;";
|
||||
|
||||
//Основная таблица
|
||||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_basket` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`basket_session_id` varchar(50) default NULL,
|
||||
`basket_product_id` int(11) default NULL,
|
||||
`basket_product_name_id` int(11) default NULL,
|
||||
`basket_product_price_id` int(11) default NULL,
|
||||
`basket_product_article_id` int(22) default NULL,
|
||||
`basket_product_size_id` int(22) default NULL,
|
||||
`basket_product_quantity` smallint(5) default NULL,
|
||||
`basket_product_amount` float(10,2) default NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
//Метод оплаты
|
||||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_basket_payment` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`payment_title` varchar(255) NOT NULL,
|
||||
`payment_price` text NOT NULL,
|
||||
`payment_price_operands` enum('Money','%','Text') NOT NULL default 'Money',
|
||||
`payment_description` text default NULL,
|
||||
`payment_delivery` tinytext default NULL,
|
||||
`payment_activ` tinyint(1) unsigned NOT NULL default '0',
|
||||
`payment_position` tinyint(2) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
//Выбор доставки
|
||||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_basket_delivery` (
|
||||
`id` int(11) NOT NULL auto_increment,
|
||||
`delivery_title` varchar(255) NOT NULL,
|
||||
`delivery_price` text NOT NULL,
|
||||
`delivery_price_operands` enum('Money','%','Text') NOT NULL default 'Money',
|
||||
`delivery_description` text default NULL,
|
||||
`delivery_activ` tinyint(1) unsigned NOT NULL default '0',
|
||||
`delivery_position` tinyint(2) unsigned NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
|
||||
|
||||
|
||||
//Тестовые данные
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_delivery` VALUES ('1', 'Курьером по москве', '0', 'Money', '', '1', '1');";
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_delivery` VALUES ('2', 'Курьером в подмосковье', '0', 'Money', '', '1', '2');";
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_delivery` VALUES ('3', 'Почта России', '0', 'Money', '', '1', '3');";
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_delivery` VALUES ('4', 'Самовывоз', '0', 'Money', '', '1', '4');";
|
||||
|
||||
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_payment` VALUES (1, 'Наличными курьеру', 'Отдать бабло Курьеру', 'Text', 'Наличные при получении (по Москве) - оплата осуществляется наличными деньгами курьеру в момент доставки. После комплектации заказа наш менеджер свяжется с Вами по контактному телефону и еще раз уточнит параметры заказа и Ваш адрес. Если Вы, подтвердив заказ, в дальнейшем отказываетесь от его получения, то Вам необходимо оплатить стоимость доставки + 50 руб за каждую возвращенную позицию. В случае необходимости возврата или обмена изделия свяжитесь с нашим менеджером.', '1,2', 1, 1);";
|
||||
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_payment` VALUES (2, 'Наличными в офисе', '0.00', 'Money', 'Наличные при получении - оплата осуществляется наличными деньгами в офисе компании. После комплектации заказа наш менеджер свяжется с Вами по контактному телефону и еще раз уточнит параметры заказа. Если Вы, подтвердив заказ, в дальнейшем отказываетесь от его получения, то Вам необходимо оплатить стоимость доставки + 50 руб за каждую возвращенную позицию. В случае необходимости возврата или обмена изделия свяжитесь с нашим менеджером.', '4', 1, 2);";
|
||||
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_basket_payment` VALUES (3, 'Безналичная оплата', '10.00', '%', 'Банковский платеж - после оформления заказа Вы сразу же можете распечатать квитанцию для оплаты через банк. Большая просьба - после осуществления перевода сразу уведомить нас об отправке денег по адресу e-mail. Мы сформируем и отправим Ваш заказ в течение 3-5 рабочих дней с момента поступления денег на наш расчетный счет. Если заказанного товара не окажется на складе, наш менеджер обязательно свяжется с Вами для разрешения возникшей ситуации.', '3,4', 1, 3);";
|
||||
|
||||
// Обновление модуля
|
||||
$module_sql_update[] = "
|
||||
UPDATE
|
||||
`%%PRFX%%_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $modul['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $modul['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $modul['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $modul['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
";
|
||||
|
||||
$module_sql_update[] = "
|
||||
RENAME TABLE
|
||||
`%%PRFX%%_modul_basket_payment`
|
||||
TO
|
||||
`%%PRFX%%_module_basket_payment`
|
||||
";
|
||||
|
||||
$module_sql_update[] = "
|
||||
RENAME TABLE
|
||||
`%%PRFX%%_modul_basket_delivery`
|
||||
TO
|
||||
`%%PRFX%%_module_basket_delivery`
|
||||
";
|
||||
|
||||
$module_sql_update[] = "
|
||||
RENAME TABLE
|
||||
`%%PRFX%%_modul_basket_payment`
|
||||
TO
|
||||
`%%PRFX%%_module_basket_payment`
|
||||
";
|
||||
?>
|
||||
15
templates/basket_show.tpl
Normal file
15
templates/basket_show.tpl
Normal file
@@ -0,0 +1,15 @@
|
||||
{oBasket->getBasket assign='basket'}
|
||||
|
||||
<div id="basket" class="box">
|
||||
<h2>{#BASKET_TITLE#} <span class="ajax-loader" style="display:none;"><img src="{$ABS_PATH}modules/basket/images/loader-12.gif" alt="load..."></span></h2>
|
||||
{if $basket.products}
|
||||
<div>
|
||||
<ul>
|
||||
{foreach from=$basket.products item=product}<li><a href="{$ABS_PATH}?module=basket&action=delete&id={$product->id}" onClick="return false;"><img src="{$ABS_PATH}modules/basket/images/trash.gif" id="basket-delete_{$product->id}"></a>{$product->name} <small>({$product->quantity}{#BASKET_UNIT#}) - {$product->amount|string_format:"%.2f"}{#BASKET_CURRENCY#}</small></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
<hr />
|
||||
<p><a href="{$ABS_PATH}index.php?module=basket&action=order">{#BASKET_ORDER_CHECKOUT#}</a> {#BASKET_ORDER_TOTAL#}: {$basket.total|string_format:"%.2f"}{#BASKET_CURRENCY#} {$basket.quantity}</p>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
4
templates/index.php
Normal file
4
templates/index.php
Normal file
@@ -0,0 +1,4 @@
|
||||
<?php
|
||||
header('Location:/');
|
||||
exit;
|
||||
?>
|
||||
159
templates/mail_text.tpl
Normal file
159
templates/mail_text.tpl
Normal file
@@ -0,0 +1,159 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>{#BASKET_SHOP_NAME#}</title>
|
||||
{literal}
|
||||
<style type="text/css">
|
||||
html,body,td,th,div {font:11px Verdana,Arial,Helvetica,sans-serif;}
|
||||
.border {background-color:#ccc;}
|
||||
.header {background-color:#eee;}
|
||||
.row {background-color:#fff;}
|
||||
</style>
|
||||
{/literal}
|
||||
</head>
|
||||
{oBasket->getBasket assign='basket'}
|
||||
<body>
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td valign="top">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td><strong>{#BASKET_SHOP_NAME#}</strong><br>{#BASKET_SHOP_ADDRESS#}</td>
|
||||
<td align="right"><img src="{$smarty.const.HOST}{$smarty.const.ABS_PATH}templates/{$smarty.const.THEME_FOLDER}/images/{#BASKET_SHOP_LOGO#}" alt="" border="0" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr noshade="noshade" size="1">
|
||||
<h3><strong>{#BASKET_ORDER_TITLE#}</strong></h3>
|
||||
<hr noshade="noshade" size="1">
|
||||
<em>{#BASKET_ORDER_HEAD#}</em>
|
||||
<hr noshade="noshade" size="1"><br>
|
||||
|
||||
<table width="100%" border="0" cellpadding="3" cellspacing="1" class="border">
|
||||
<col valign="top" align="center" width="30">
|
||||
<col valign="top">
|
||||
<col valign="top" align="center" width="100">
|
||||
<col valign="top" align="center" width="100">
|
||||
<col valign="top" align="center" width="100">
|
||||
<col valign="top" align="right" width="100">
|
||||
<col valign="top" align="right" width="100">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="header"><strong>№</strong></th>
|
||||
<th class="header"><strong>{#BASKET_PRODUCT_NAME#}</strong></th>
|
||||
<th class="header"><strong>{#BASKET_PRODUCT_SIZE#}</strong></th>
|
||||
<th class="header"><strong>{#BASKET_PRODUCT_ARTICLE#}</strong></th>
|
||||
<th class="header"><strong>{#BASKET_PRODUCT_QUANTITY#}</strong></th>
|
||||
<th class="header"><strong>{#BASKET_PRODUCT_PRICE#}</strong></th>
|
||||
<th class="header"><strong>{#BASKET_PRODUCT_AMOUNT#}</strong></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{foreach name=product from=$basket.products item=product}
|
||||
<tr>
|
||||
<td class="row">{$smarty.foreach.product.iteration}</td>
|
||||
<td class="row">{$product->name|truncate:100|escape}</td>
|
||||
<td class="row">{$product->size}</td>
|
||||
<td class="row">{$product->article}</td>
|
||||
<td class="row">{$product->quantity}{#BASKET_UNIT#}</td>
|
||||
<td class="row" nowrap="nowrap">{$product->price|string_format:"%.2f"}{#BASKET_CURRENCY#}</td>
|
||||
<td class="row" nowrap="nowrap">{$product->amount|string_format:"%.2f"}{#BASKET_CURRENCY#}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
<tr>
|
||||
<td class="row" colspan="4" align="right">{#BASKET_ORDER_TOTAL#} </td>
|
||||
<td class="row"><strong>{$basket.total_send|string_format:"%.2f"}{#BASKET_CURRENCY#}</strong></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="250" align="left" class="header">Вид доставки</th>
|
||||
<th width="150" align="left" class="header">Стоимость доставки</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="row">{$delivery_method_titel}</td>
|
||||
<td class="row"><strong>{if $delivery_method_operands|escape == '%'}{$delivery_method_price}%{elseif $delivery_method_operands|escape == 'Money'}{if $delivery_method_price|escape == 0 || $delivery_method_price=='0.00'}Бесплатно{else}{num_format val=$delivery_method_price|string_format:"%.2f"} руб.{/if}{elseif $delivery_method_operands|escape == 'Text'}{$delivery_method_price|escape}{/if}</strong></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="250" align="left" class="header">Вид оплаты</th>
|
||||
<th width="150" align="left" class="header">Стоимость</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="row">{$payment_method_titel}</td>
|
||||
<td class="row"><strong>{if $payment_method_operands|escape == '%'}{$payment_method_price}%{elseif $payment_method_operands|escape == 'Money'}{if $payment_method_price|escape == 0 || $payment_method_price=='0.00'}Бесплатно{else}{num_format val=$payment_method_price|string_format:"%.2f"} руб.{/if}{elseif $payment_method_operands|escape == 'Text'}{$payment_method_price|escape}{/if}</strong></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td class="row"><strong>{#BASKET_ORDER_TOTAL#}</strong> - <strong>{$basket.total|string_format:"%.2f"}{#BASKET_CURRENCY#}</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="4">
|
||||
<col width="100" valign="top" align="right">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="header"> </td>
|
||||
<td class="header"><strong>{#BASKET_CUSTOMER_INFO#}</strong></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{#BASKET_CUSTOMER_NAME#}</td>
|
||||
<td>{$customer.name|escape}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#BASKET_CUSTOMER_EMAIL#}</td>
|
||||
<td>{$customer.email}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#BASKET_CUSTOMER_PHONE#}</td>
|
||||
<td>{$customer.phone|escape}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#BASKET_CUSTOMER_ADDRESS#}</td>
|
||||
<td>{textformat wrap_char='<br>'}{$customer.address|truncate:1000|escape}{/textformat}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#BASKET_CUSTOMER_DESCRIPTION#}</td>
|
||||
<td>{textformat wrap_char='<br>'}{$customer.description|truncate:1000|escape}{/textformat}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{#BASKET_ORDER_DATE#}</td>
|
||||
<td>{$smarty.now|date_format:"%d.%m.%Y, %H:%M"}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<hr noshade="noshade" size="1">
|
||||
<strong>{#BASKET_ORDER_INFO#}</strong><br>
|
||||
<br>
|
||||
<strong>{#BASKET_SHOP_NAME#}</strong><br>
|
||||
{#BASKET_SHOP_ADDRESS#}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
13
templates/order_finish.tpl
Normal file
13
templates/order_finish.tpl
Normal file
@@ -0,0 +1,13 @@
|
||||
<div id="basket-order" class="tablebox">
|
||||
<table class="progress" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<col width="38"><col width="195">
|
||||
<col width="38"><col width="195">
|
||||
<col width="38"><col width="195">
|
||||
<tr>
|
||||
<th>1</th><td>{#BASKET_PROGRESSBAR_STEP1#}</td>
|
||||
<th>2</th><td>{#BASKET_PROGRESSBAR_STEP2#}</td>
|
||||
<th class="active">3</th><td class="active">{#BASKET_PROGRESSBAR_STEP3#}</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>{#BASKET_ORDER_SEND_SUCCESS#}</p>
|
||||
</div>
|
||||
97
templates/order_form.tpl
Normal file
97
templates/order_form.tpl
Normal file
@@ -0,0 +1,97 @@
|
||||
{oBasket->getBasket assign='basket'}
|
||||
|
||||
{if $basket.products}
|
||||
<div id="basket-order" class="tablebox">
|
||||
|
||||
<table class="progress" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<col width="38"><col width="195">
|
||||
<col width="38"><col width="195">
|
||||
<col width="38"><col width="195">
|
||||
<tr>
|
||||
<th>1</th><td>{#BASKET_PROGRESSBAR_STEP1#}</td>
|
||||
<th class="active">2</th><td class="active">{#BASKET_PROGRESSBAR_STEP2#}</td>
|
||||
<th>3</th><td>{#BASKET_PROGRESSBAR_STEP3#}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p><em>{#BASKET_ORDER_FORM_TIP#}</em></p>
|
||||
|
||||
<form method="post" action="index.php?module=basket&action=send">
|
||||
{* раскомментировать при желании отображать список заказанных товаров
|
||||
<table width="100%" border="1" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col width="40">
|
||||
<col>
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
</colgroup>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>№</th>
|
||||
<th>{#BASKET_PRODUCT_NAME#}</th>
|
||||
<th>{#BASKET_PRODUCT_SIZE#}</th>
|
||||
<th>{#BASKET_PRODUCT_ARTICLE#}</th>
|
||||
<th>{#BASKET_PRODUCT_QUANTITY#}</th>
|
||||
<th>{#BASKET_PRODUCT_PRICE#}</th>
|
||||
<th>{#BASKET_PRODUCT_AMOUNT#}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{foreach name=product from=$basket.products item=product}
|
||||
<tr>
|
||||
<td align="center">{$smarty.foreach.product.iteration}</td>
|
||||
<td align="left">{$product->name|escape}</td>
|
||||
<td align="center">{$product->size|escape}</td>
|
||||
<td align="center">{$product->article|escape}</td>
|
||||
<td align="center">{$product->quantity}</td>
|
||||
<td align="center">{$product->price|string_format:"%.2f"}</td>
|
||||
<td align="center">{$product->amount|string_format:"%.2f"}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="7" align="right">{$basket.total|string_format:"%.2f"}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
*}
|
||||
<fieldset>
|
||||
<p>
|
||||
<label>{#BASKET_CUSTOMER_NAME#}</label>
|
||||
<input type="text" name="name" title="" maxlength="50" value="{$smarty.request.name|default:$smarty.session.user_name|escape}" />
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label>{#BASKET_CUSTOMER_EMAIL#}</label>
|
||||
<input type="text" name="email" title="" maxlength="100" value="{$smarty.request.email|default:$smarty.session.user_email|escape}" />
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label>{#BASKET_CUSTOMER_PHONE#}</label>
|
||||
<input type="text" name="phone" title="" maxlength="50" value="{$smarty.request.phone|escape}" />
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label>{#BASKET_CUSTOMER_ADDRESS#}</label>
|
||||
<textarea name="address" title="">{$smarty.request.address}</textarea>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label>{#BASKET_CUSTOMER_DESCRIPTION#}</label>
|
||||
<textarea name="description" title="">{$smarty.request.description}</textarea>
|
||||
</p>
|
||||
|
||||
<input type="submit" class="button" value="{#BASKET_SEND#}" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
{else}
|
||||
<h2 id="page-heading">{#BASKET_EMPTY#}</h2>
|
||||
{/if}
|
||||
213
templates/order_show.tpl
Normal file
213
templates/order_show.tpl
Normal file
@@ -0,0 +1,213 @@
|
||||
{oBasket->getBasket assign='basket'}
|
||||
|
||||
{if $basket.products}
|
||||
<div id="basket-order" class="tablebox">
|
||||
|
||||
<table class="progress" width="100%" border="0" cellpadding="0" cellspacing="0">
|
||||
<col width="38"><col width="195">
|
||||
<col width="38"><col width="195">
|
||||
<col width="38"><col width="195">
|
||||
<tr>
|
||||
<th class="active">1</th><td class="active">{#BASKET_PROGRESSBAR_STEP1#}</td>
|
||||
<th>2</th><td>{#BASKET_PROGRESSBAR_STEP2#}</td>
|
||||
<th>3</th><td>{#BASKET_PROGRESSBAR_STEP3#}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p><em>{#BASKET_ORDER_SHOW_TIP#}</em></p>
|
||||
|
||||
<form method="post" action="{$smarty.const.ABS_PATH}">
|
||||
<input type="hidden" name="module" value="basket" />
|
||||
<input type="hidden" name="action" value="update" />
|
||||
|
||||
<table width="100%" border="1" cellpadding="0" cellspacing="0">
|
||||
<colgroup>
|
||||
<col width="80">
|
||||
<col>
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
<col width="80">
|
||||
</colgroup>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{#BASKET_PRODUCT_DELETE#}</th>
|
||||
<th>{#BASKET_PRODUCT_NAME#}</th>
|
||||
<th>{#BASKET_PRODUCT_SIZE#}</th>
|
||||
<th>{#BASKET_PRODUCT_ARTICLE#}</th>
|
||||
<th>{#BASKET_PRODUCT_QUANTITY#}</th>
|
||||
<th>{#BASKET_PRODUCT_PRICE#}</th>
|
||||
<th>{#BASKET_PRODUCT_AMOUNT#}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{foreach from=$basket.products item=product}
|
||||
<tr>
|
||||
<td align="center"><input type="checkbox" name="product_delete[{$product->id}]" value="1" /></td>
|
||||
<td align="left">{$product->name|escape}</td>
|
||||
<td align="left">{$product->size|escape}</td>
|
||||
<td align="center">{$product->article|escape}</td>
|
||||
<td align="center"><input type="text" name="product_quantity[{$product->id}]" size="1" maxlength="2" value="{$product->quantity}" /></td>
|
||||
<td align="right">{$product->price|string_format:"%.2f"}</td>
|
||||
<td align="right">{$product->amount|string_format:"%.2f"}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<br /><br />
|
||||
|
||||
<table width="100%" border="1" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="4" class="table-head">Пожалуйста, выберите желаемый вид доставки</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th width="5"> </th>
|
||||
<th width="250" align="left">Вид доставки</th>
|
||||
<th width="150" align="left">Стоимость доставки</th>
|
||||
<th align="left">Описание</th>
|
||||
</tr>
|
||||
{foreach from=$basket.delivery item=delivery}
|
||||
<tr>
|
||||
<td><input style="cursor:pointer" type="radio" name="delivery_id" value="{$delivery->id|escape}" {if $delivery->id|escape==$smarty.session.delivery_id}checked{/if}></td>
|
||||
<td><strong>{$delivery->delivery_title|escape}</strong></td>
|
||||
<td><strong>
|
||||
|
||||
{if $delivery->delivery_price_operands|escape == '%'}{$delivery->delivery_price}%
|
||||
|
||||
{elseif $delivery->delivery_price_operands|escape == 'Money'}
|
||||
|
||||
{if $delivery->delivery_price|escape == 0 || $delivery->delivery_price=='0.00'}Бесплатно{else}{num_format val=$delivery->delivery_price|string_format:"%.2f"} руб.{/if}
|
||||
|
||||
{elseif $delivery->delivery_price_operands|escape == 'Text'}{$delivery->delivery_price|escape}{/if}
|
||||
|
||||
</strong></td>
|
||||
<td><a class="tooltip" title="" href="javascript:void(0);">Подробнее</a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{if $smarty.session.delivery_id}
|
||||
<br /><br />
|
||||
<table width="100%" border="1" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="4" class="table-head">Выбор метода платежа</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th width="5"> </th>
|
||||
<th width="250" align="left">Метод оплаты</th>
|
||||
<th width="150" align="left">Стоимость</th>
|
||||
<th align="left">Описание</th>
|
||||
</tr>
|
||||
{foreach from=$basket.payment item=payment}
|
||||
<tr>
|
||||
<td><input style="cursor:pointer" type="radio" name="payment_id" value="{$payment->id|escape}" {if $payment->id|escape==$smarty.session.payment_id}checked{/if}></td>
|
||||
<td><strong>{$payment->payment_title|escape}</strong></td>
|
||||
<td><strong>
|
||||
|
||||
{if $payment->payment_price_operands|escape == '%'}{$payment->payment_price}%
|
||||
|
||||
{elseif $payment->payment_price_operands|escape == 'Money'}
|
||||
|
||||
{if $payment->payment_price|escape == 0 || $payment->payment_price=='0.00'}Бесплатно{else}{num_format val=$payment->payment_price|string_format:"%.2f"} руб.{/if}
|
||||
|
||||
{elseif $payment->payment_price_operands|escape == 'Text'}{$payment->payment_price|escape}{/if}
|
||||
|
||||
</strong></td>
|
||||
<td><a class="tooltip" title="" href="javascript:void(0);">Подробнее</a></td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{/if}
|
||||
|
||||
<br /><br />
|
||||
<table width="100%" border="1" cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="5" class="table-head">Итого</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
|
||||
<tfoot>
|
||||
<tr>
|
||||
<th colspan="7" align="right">
|
||||
<span class="ajax-loader" style="display:none;"><img src="{$ABS_PATH}templates/{$smarty.const.THEME_FOLDER}/images/loader-12.gif"></span>{$basket.total|string_format:"%.2f"}
|
||||
</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
</table>
|
||||
|
||||
<br /><br />
|
||||
<input type="submit" class="button" value="{#BASKET_UPDATE#}" style="float:left;" />
|
||||
<br /><br />
|
||||
|
||||
{if $smarty.session.delivery_id && $smarty.session.payment_id}
|
||||
<a href="index.php?module=basket&action=form">{#BASKET_NEXT#}</a>
|
||||
{/if}
|
||||
|
||||
</form>
|
||||
|
||||
{literal}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#basket-order form").submit(function() {
|
||||
$(this).ajaxSubmit({
|
||||
type: "post",
|
||||
beforeSubmit: function(formData, jqForm) {
|
||||
$("#basket-order .ajax-loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$("#basket-order").before(response).remove();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$("input:radio[name=delivery_id]").click(function() {
|
||||
$("#basket-order form").unbind("submit").ajaxSubmit({
|
||||
type: "post",
|
||||
data: {delivery: '1', payment: '0'},
|
||||
beforeSubmit: function(formData, jqForm) {
|
||||
$("#basket-order .ajax-loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$("#basket-order").before(response).remove();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$("input:radio[name=payment_id]").click(function() {
|
||||
$("#basket-order form").unbind("submit").ajaxSubmit({
|
||||
type: "post",
|
||||
data: {delivery: '1', payment: '1'},
|
||||
beforeSubmit: function(formData, jqForm) {
|
||||
$("#basket-order .ajax-loader").show();
|
||||
},
|
||||
success: function(response) {
|
||||
$("#basket-order").before(response).remove();
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/literal}
|
||||
|
||||
</div>
|
||||
{else}
|
||||
<h2 id="page-heading">{#BASKET_EMPTY#}</h2>
|
||||
{/if}
|
||||
79
templates_admin/basket_delivery.tpl
Normal file
79
templates_admin/basket_delivery.tpl
Normal file
@@ -0,0 +1,79 @@
|
||||
<div class="title"><h5>{#DeliveryMethod#}</h5></div>
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#WelcomeText#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#DeliveryMethod#}</h5>
|
||||
<div class="num"><a class="basicNum" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment&cp={$sess}">{#EditPaymentMethod#}</a></div>
|
||||
<div class="num"><a class="basicNum" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=1&cp={$sess}">{#mainPage#}</a></div>
|
||||
</div>
|
||||
|
||||
<form action="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery&cp={$sess}&sub=save" method="post" class="mainForm">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col>
|
||||
<col width="60">
|
||||
<col width="140">
|
||||
<col width="20">
|
||||
<col width="20">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>{#DeliveryMethodName#}</td>
|
||||
<td>{#DeliveryMethodPosition#}</td>
|
||||
<td>{#DeliveryMethodActive#}</td>
|
||||
<td colspan="2">{#Actions#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$methods item=delivery}
|
||||
<tr>
|
||||
<td>
|
||||
<div class="pr12"><input type="text" name="delivery_title[{$delivery->id}]" value="{$delivery->delivery_title|stripslashes}"></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="pr12"><input name="delivery_position[{$delivery->id}]" type="text" value="{$delivery->delivery_position}" size="3" maxlength="3" /></div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input type="radio" name="delivery_activ[{$delivery->id}]" value="1" {if $delivery->delivery_activ=='1'}checked {/if}/><label>{#Yes#}</label>
|
||||
<input type="radio" name="delivery_activ[{$delivery->id}]" value="0" {if $delivery->delivery_activ=='0'}checked {/if}/><label>{#No#}</label>
|
||||
</td>
|
||||
<td>
|
||||
<a class="topleftDir icon_sprite ico_edit" href="javascript:void(0);" title="{#ButtonEdit#}" onclick="windowOpen('index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery_edit&cp={$sess}&pop=1&id={$delivery->id}','800','680','1','shopshipper');"></a>
|
||||
</td>
|
||||
<td>
|
||||
{if $delivery->id!=1}
|
||||
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" title="{#DeliveryMethodDel#}" dir="{#DeliveryMethodDel#}" name="{#DeliveryMethodDelTitle#}" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery_del&id={$delivery->id}"></a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/foreach}
|
||||
<tr>
|
||||
<td colspan="5"><input type="submit" class="basicBtn" value="{#ButtonSave#}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#NewDeliveryMethod#}</h5>
|
||||
</div>
|
||||
<form method="post" action="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery_new&cp={$sess}" class="mainForm">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic" id="Fields">
|
||||
<tr>
|
||||
<td class="first">
|
||||
<input style="width:250px" type="text" name="delivery_title" value="" placeholder="{#DeliveryMethodName#}"> <input type="submit" class="basicBtn" value="{#ButtonAdd#}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
56
templates_admin/basket_delivery_edit.tpl
Normal file
56
templates_admin/basket_delivery_edit.tpl
Normal file
@@ -0,0 +1,56 @@
|
||||
<div class="first"></div>
|
||||
|
||||
<div class="title"><h5>{#EditDeliveryMethod#}</h5></div>
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#EditDeliveryInfo#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#EditDeliveryMethod#}</h5>
|
||||
</div>
|
||||
<form method="post" action="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery_edit&cp={$sess}&pop=1&id={$smarty.request.id}&sub=save" class="mainForm">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<tr>
|
||||
<td width="180">{#DeliveryName#}</td>
|
||||
<td>
|
||||
<input style="width:200px" type="text" name="delivery_title" value="{$delivery->delivery_title|stripslashes}">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{#DeliveryDescription#}</td>
|
||||
<td>{$Edi}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{#DeliveryActive#} </td>
|
||||
<td>
|
||||
<input type="radio" name="delivery_activ" value="1" {if $delivery->delivery_activ=='1'}checked {/if}/><label>{#Yes#}</label>
|
||||
<input type="radio" name="delivery_activ" value="0" {if $delivery->delivery_activ=='0'}checked {/if}/><label>{#No#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{#DeliveryPrice#}</td>
|
||||
<td>
|
||||
<input name="delivery_price" type="text" id="delivery_price" value="{$delivery->delivery_price}" size="55" style="width: 300px;" style="float: left;" />
|
||||
|
||||
<select name="delivery_price_operands">
|
||||
<option value="Money" {if $delivery->delivery_price_operands=='Money'}selected="selected"{/if}>{#PaymentCostMoney#}</option>
|
||||
<option value="%" {if $delivery->delivery_price_operands=='%'}selected="selected"{/if}>{#PaymentCostPercent#}</option>
|
||||
<option value="Text" {if $delivery->delivery_price_operands=='Text'}selected="selected"{/if}>{#PaymentCostText#}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2"><input class="basicBtn" type="submit" value="{#ButtonSave#}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
77
templates_admin/basket_payment.tpl
Normal file
77
templates_admin/basket_payment.tpl
Normal file
@@ -0,0 +1,77 @@
|
||||
<div class="title"><h5>{#PaymentMethod#}</h5></div>
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#WelcomeText#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#PaymentMethod#}</h5>
|
||||
<div class="num"><a class="basicNum" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery&cp={$sess}">{#EditDeliveryMethod#}</a></div>
|
||||
<div class="num"><a class="basicNum" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=1&cp={$sess}">{#mainPage#}</a></div>
|
||||
</div>
|
||||
|
||||
<form action="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment&cp={$sess}&sub=save" method="post" class="mainForm">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col>
|
||||
<col width="60">
|
||||
<col width="140">
|
||||
<col width="20">
|
||||
<col width="20">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>{#PaymentMethodName#}</td>
|
||||
<td>{#PaymentMethodPosition#}</td>
|
||||
<td>{#PaymentMethodActive#}</td>
|
||||
<td colspan="2">{#Actions#}</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach from=$methods item=payment}
|
||||
<tr>
|
||||
<td>
|
||||
<div class="pr12"><input type="text" name="payment_title[{$payment->id}]" value="{$payment->payment_title|stripslashes}"></div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="pr12"><input name="payment_position[{$payment->id}]" type="text" value="{$payment->payment_position}" size="3" maxlength="3" /></div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<input type="radio" name="payment_activ[{$payment->id}]" value="1" {if $payment->payment_activ=='1'}checked {/if}/><label>{#Yes#}</label>
|
||||
<input type="radio" name="payment_activ[{$payment->id}]" value="0" {if $payment->payment_activ=='0'}checked {/if}/><label>{#No#}</label>
|
||||
</td>
|
||||
<td>
|
||||
<a class="topleftDir icon_sprite ico_edit" href="javascript:void(0);" title="{#ButtonEdit#}" onclick="windowOpen('index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment_edit&cp={$sess}&pop=1&id={$payment->id}','800','680','1','shopshipper');"></a>
|
||||
</td>
|
||||
<td>
|
||||
{if $payment->id!=1}
|
||||
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" title="{#PaymentMethodDel#}" dir="{#PaymentMethodDel#}" name="{#PaymentMethodDelTitle#}" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment_del&id={$payment->id}"></a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
{/foreach}
|
||||
<tr>
|
||||
<td colspan="5"><input type="submit" class="basicBtn" value="{#ButtonSave#}"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#NewPaymentMethod#}</h5>
|
||||
</div>
|
||||
<form method="post" action="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment_new&cp={$sess}" class="mainForm">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic" id="Fields">
|
||||
<tr>
|
||||
<td class="first">
|
||||
<input style="width:250px" type="text" name="payment_title" value="" placeholder="{#PaymentMethodName#}"> <input type="submit" class="basicBtn" value="{#ButtonAdd#}" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
76
templates_admin/basket_payment_edit.tpl
Normal file
76
templates_admin/basket_payment_edit.tpl
Normal file
@@ -0,0 +1,76 @@
|
||||
<div class="first"></div>
|
||||
|
||||
<div class="title"><h5>{#EditPaymentMethod#}</h5></div>
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#EditPaymentInfo#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#EditDeliveryMethod#}</h5>
|
||||
</div>
|
||||
<form method="post" action="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment_edit&cp={$sess}&pop=1&id={$smarty.request.id}&sub=save" class="mainForm">
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<tr>
|
||||
<td width="180">{#PaymentName#}</td>
|
||||
<td>
|
||||
<input style="width:200px" type="text" name="payment_title" value="{$payment->payment_title|stripslashes}">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{#PaymentDescription#}</td>
|
||||
<td>{$Edi}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{#PaymentActive#} </td>
|
||||
<td>
|
||||
<input type="radio" name="payment_activ" value="1" {if $payment->payment_activ=='1'}checked {/if}/><label>{#Yes#}</label>
|
||||
<input type="radio" name="payment_activ" value="0" {if $payment->payment_activ=='0'}checked {/if}/><label>{#No#}</label>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>{#PaymentPrice#}</td>
|
||||
<td>
|
||||
<input name="payment_price" type="text" id="payment_price" value="{$payment->payment_price}" size="55" style="width: 300px;" style="float: left;" />
|
||||
<select name="payment_price_operands">
|
||||
<option value="Money" {if $payment->payment_price_operands=='Money'}selected="selected"{/if}>{#PaymentCostMoney#}</option>
|
||||
<option value="%" {if $payment->payment_price_operands=='%'}selected="selected"{/if}>{#PaymentCostPercent#}</option>
|
||||
<option value="Text" {if $payment->payment_price_operands=='Text'}selected="selected"{/if}>{#PaymentCostText#}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
{#AllowedDeliveryMethods#}<br />
|
||||
<small>{#DeliveryMethodInf#}</small>
|
||||
</td>
|
||||
<td>
|
||||
<select name="payment_delivery[]" multiple="multiple" size="8" style="width:200px">
|
||||
{foreach from=$basket_delivery item=delivery}
|
||||
{assign var='sel' value=''}
|
||||
{if $delivery->id}
|
||||
{if (in_array($delivery->id,$payment->payment_delivery))}
|
||||
{assign var='sel' value='selected'}
|
||||
{/if}
|
||||
{/if}
|
||||
<option value="{$delivery->id}" {$sel}>{$delivery->delivery_title|escape:html}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2"><input class="basicBtn" type="submit" value="{#ButtonSave#}" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
62
templates_admin/basket_start.tpl
Normal file
62
templates_admin/basket_start.tpl
Normal file
@@ -0,0 +1,62 @@
|
||||
<div class="title"><h5>{#ModName#}</h5></div>
|
||||
|
||||
<div class="widget" style="margin-top: 0px;">
|
||||
<div class="body">
|
||||
{#WelcomeText#}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="widgets">
|
||||
<!-- Left widgets -->
|
||||
<div class="left">
|
||||
|
||||
<!-- Statistics -->
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>Вид оплаты</h5>
|
||||
<div class="num"><a class="basicNum" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_payment&cp={$sess}">{#ButtonEdit#}</a></div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="95%">
|
||||
<col width="5%">
|
||||
<tbody>
|
||||
{foreach from=$payment item=payment}
|
||||
<tr>
|
||||
<td>{$payment->payment_title|stripslashes}</td>
|
||||
<td align="center">{if $payment->payment_activ=='1'}<span class="icon_sprite ico_ok"></span>{else}<span class="icon_sprite ico_delete"></span>{/if}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Right widgets -->
|
||||
<div class="right">
|
||||
|
||||
<!-- User widget -->
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#DeliveryMethod#}</h5>
|
||||
<div class="num"><a class="basicNum" href="index.php?do=modules&action=modedit&mod=basket&moduleaction=basket_delivery&cp={$sess}">{#ButtonEdit#}</a></div>
|
||||
</div>
|
||||
<table cellpadding="0" cellspacing="0" width="100%" class="tableStatic">
|
||||
<col width="95%">
|
||||
<col width="5%">
|
||||
<tbody>
|
||||
{foreach from=$delivery item=delivery}
|
||||
<tr>
|
||||
<td>{$delivery->delivery_title|stripslashes}</td>
|
||||
<td align="center">{if $delivery->delivery_activ=='1'}<span class="icon_sprite ico_ok"></span>{else}<span class="icon_sprite ico_delete"></span>{/if}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="fix"></div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user