Файл: mg-core/controllers/product.php
Строк: 71
<?php
/**
* Контроллер Product
*
* Класс Controllers_Product обрабатывает действия пользователей на странице товара.
* - Пересчитывает стоимость товара.
* - Подготавливает форму для вариантов товара.
*
* @author Авдеев Марк <mark-avdeev@mail.ru>
* @package moguta.cms
* @subpackage Controller
*/
class Controllers_Product extends BaseController {
function __construct() {
$model = new Models_Product;
// Требуется только пересчет цены товара.
if (!empty($_REQUEST['calcPrice'])) {
$model->calcPrice();
exit;
}
$product = Storage::get(md5('ControllersProduct'.URL::getUrl()));
if ($product == null) {
$settings = MG::get('settings');
$product = $model->getProduct(URL::getQueryParametr('id'));
$product['meta_title'] = $product['meta_title'] ? $product['meta_title'] : $product['title'];
$product['currency'] = $settings['currency'];
$blockVariants = $model->getBlockVariants($product['id']);
$blockedProp = $model->noPrintProperty();
$propertyFormData = $model->createPropertyForm($param = array(
'id' => $product['id'],
'maxCount' => $product['count'],
'productUserFields' => $product['thisUserFields'],
'action' => "/catalog",
'method' => "POST",
'ajax' => true,
'blockedProp' => $blockedProp,
'noneAmount' => false,
'titleBtn' => "В корзину",
'blockVariants' => $blockVariants
));
// Легкая форма без характеристик.
$liteFormData = $model->createPropertyForm($param = array(
'id' => $product['id'],
'maxCount' => $product['count'],
'productUserFields' => null,
'action' => "/catalog",
'method' => "POST",
'ajax' => true,
'blockedProp' => $blockedProp,
'noneAmount' => false,
'titleBtn' => "В корзину",
'blockVariants' => $blockVariants
));
$product['price']+=$propertyFormData['marginPrice'];
$currencyRate = MG::getSetting('currencyRate');
$currencyShopIso = MG::getSetting('currencyShopIso');
$product['currency_iso'] = $product['currency_iso']?$product['currency_iso']:$currencyShopIso;
$product['old_price'] = $product['old_price']*$currencyRate[$product['currency_iso']];
$product['old_price'] = $product['old_price']? MG::priceCourse($product['old_price']):0;
$product['price'] = MG::priceCourse($product['price_course']);
$product['propertyForm'] = $propertyFormData['html'];
$product['propertyNodummy'] = $propertyFormData['propertyNodummy'];
$product['stringsProperties'] = $propertyFormData['stringsProperties'];
$product['liteFormData'] = $liteFormData['html'];
$product['description'] = MG::inlineEditor(PREFIX.'product', "description", $product['id'], $product['description']);
$product['title'] = MG::modalEditor('catalog', $product['title'], 'edit', $product["id"]);
// Информация об отсутствии товара на складе.
if (MG::getSetting('printRemInfo') == "true" && $product['count'] == 0) {
$message = 'Здравствуйте, меня интересует товар "'.str_replace("'", """, $product['title']).'" с артикулом "'.$product['code'].'", но его нет в наличии.
Сообщите, пожалуйста, о поступлении этого товара на склад. ';
$product['remInfo'] = "<span class='rem-info'>Товара временно нет на складе!<br/><a href='".SITE."/feedback?message=".$message."'>Сообщить когда будет в наличии.</a></span>";
}
if ($product['count'] < 0) {
$product['count'] = "∞";
};
$product['related'] = $model->createRelatedForm($product['related']);
Storage::save(md5('ControllersProduct'.URL::getUrl()), $product);
}
// MG::set('propertyNodummy',$product['propertyNodummy']);
// $_SESSION['propertyNodummy'] = $product['propertyNodummy'];
$this->data = $product;
}
}