本文整理汇总了PHP中Storage::clear方法的典型用法代码示例。如果您正苦于以下问题:PHP Storage::clear方法的具体用法?PHP Storage::clear怎么用?PHP Storage::clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Storage
的用法示例。
在下文中一共展示了Storage::clear方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addOrder
//.........这里部分代码省略.........
}
$updateCountProd[] = "UPDATE `" . PREFIX . "product` SET `count_buy`= `count_buy` + 1 WHERE `id`=" . DB::quote($product['id']);
$resCount = null;
}
}
}
// Сериализует данные в строку для записи в бд.
$orderContent = addslashes(serialize($productPositions));
// Сериализует данные в строку для записи в бд информации об юридическом лице.
$yurInfo = '';
if (!empty($adminOrder['yur_info'])) {
$yurInfo = addslashes(serialize($adminOrder['yur_info']));
}
if (!empty($_POST['yur_info'])) {
$yurInfo = addslashes(serialize($_POST['yur_info']));
}
// Создает новую модель корзины, чтобы узнать сумму заказа.
$cart = new Models_Cart();
// Генерируем уникальный хэш для подтверждения заказа.
$hash = $this->_getHash($this->email);
//Достаем настройки заказов, чтобы установить статус для нового заказа.
$propertyOrder = MG::getOption('propertyOrder');
$propertyOrder = stripslashes($propertyOrder);
$propertyOrder = unserialize($propertyOrder);
$order_status_id = $this->payment == 3 && $propertyOrder['order_status'] == 1 ? 3 : $propertyOrder['order_status'];
// Формируем массив параметров для SQL запроса.
$array = array('user_email' => $this->email, 'summ' => number_format($this->summ, 2, '.', ''), 'order_content' => $orderContent, 'phone' => $this->phone, 'address' => $this->address, 'delivery_id' => $this->delivery, 'delivery_cost' => $this->delivery_cost, 'payment_id' => $this->payment, 'paided' => '0', 'status_id' => $order_status_id, 'confirmation' => $hash, 'yur_info' => $yurInfo, 'name_buyer' => $this->fio, 'date_delivery' => $this->dateDelivery, 'user_comment' => $this->info, 'ip' => $_SERVER['REMOTE_ADDR']);
// Если заказ оформляется через админку.
if ($adminOrder) {
$array['comment'] = $adminOrder['comment'];
$array['status_id'] = $adminOrder['status_id'];
$array['add_date'] = $formatedDate;
$array['date_delivery'] = $adminOrder['date_delivery'];
DB::buildQuery("INSERT INTO `" . PREFIX . "order` SET ", $array);
} else {
// Отдает на обработку родительской функции buildQuery.
DB::buildQuery("INSERT INTO `" . PREFIX . "order` SET add_date = now(), ", $array);
}
// Заказ номер id добавлен в базу.
$id = null;
$id = DB::insertId();
$_SESSION['usedCouponCode'] = $_SESSION['couponCode'];
unset($_SESSION['couponCode']);
$orderNumber = $this->getOrderNumber($id);
$hashStatus = '';
$linkToStatus = '';
if (MG::getSetting('autoRegister') == "false" && !USER::isAuth()) {
$hashStatus = md5($id . $this->email . rand(9999));
$linkToStatus = '<a href="' . SITE . '/order?hash=' . $hashStatus . '" target="blank">' . SITE . '/order?hash=' . $hashStatus . '</a>';
}
DB::query("UPDATE `" . PREFIX . "order` SET `number`= " . DB::quote($orderNumber) . ", `hash`=" . DB::quote($hashStatus) . " WHERE `id`=" . DB::quote($id) . "");
// Ссылка для подтверждения заказа
$link = 'ссылке <a href="' . SITE . '/order?sec=' . $hash . '&id=' . $id . '" target="blank">' . SITE . '/order?sec=' . $hash . '&id=' . $id . '</a>';
$table = "";
// Формирование тела письма.
if ($id) {
// Уменьшаем количество купленных товаров
if (!empty($updateCountProd)) {
foreach ($updateCountProd as $sql) {
DB::query($sql);
}
foreach ($productPositions as $product) {
Storage::clear(md5('ControllersProduct' . $product['url']));
}
}
// Если заказ создался, то уменьшаем количество товаров на складе.
$settings = MG::get('settings');
$delivery = $this->getDeliveryMethod(false, $this->delivery);
$sitename = $settings['sitename'];
$currency = MG::getSetting('currency');
$paymentArray = $this->getPaymentMethod($this->payment);
$subj = 'Оформлена заявка №' . ($orderNumber != "" ? $orderNumber : $id) . ' на сайте ' . $sitename;
foreach ($productPositions as &$item) {
foreach ($item as &$v) {
$v = rawurldecode($v);
}
}
$paramToMail = array('orderNumber' => $orderNumber, 'siteName' => MG::getSetting('sitename'), 'delivery' => $delivery, 'currency' => MG::getSetting('currency'), 'fio' => $this->fio, 'email' => $this->email, 'phone' => $this->phone, 'address' => $this->address, 'delivery' => $delivery['description'], 'payment' => $paymentArray['name'], 'adminOrder' => $adminOrder, 'result' => $this->summ, 'deliveryCost' => $this->delivery_cost, 'date_delivery' => $this->dateDelivery, 'total' => $this->delivery_cost + $this->summ, 'confirmLink' => $link, 'ip' => $this->ip, 'lastvisit' => $_SESSION['lastvisit'], 'firstvisit' => $_SESSION['firstvisit'], 'supportEmail' => MG::getSetting('noReplyEmail'), 'shopName' => MG::getSetting('shopName'), 'shopPhone' => MG::getSetting('shopPhone'), 'formatedDate' => date('Y-m-d H:i:s'), 'productPositions' => $productPositions, 'couponCode' => $_SESSION['couponCode'], 'toKnowStatus' => $linkToStatus);
$emailToUser = MG::layoutManager('email_order', $paramToMail);
$paramToMail['adminMail'] = true;
$emailToAdmin = MG::layoutManager('email_order', $paramToMail);
$mails = explode(',', MG::getSetting('adminEmail'));
foreach ($mails as $mail) {
if (preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]+\\.)+[a-zA-Z]{2,6}$/', $mail)) {
Mailer::addHeaders(array("Reply-to" => $this->email));
Mailer::sendMimeMail(array('nameFrom' => $this->fio, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => $sitename, 'emailTo' => $mail, 'subject' => $subj, 'body' => $emailToAdmin, 'html' => true));
}
}
// Отправка заявки пользователю.
Mailer::sendMimeMail(array('nameFrom' => $sitename, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => $this->fio, 'emailTo' => $this->email, 'subject' => $subj, 'body' => $emailToUser, 'html' => true));
// Если заказ успешно записан, то очищает корзину.
if (!$adminOrder) {
$cart->clearCart();
}
}
$result = array('id' => $id, 'orderNumber' => $orderNumber);
// Возвращаем номер созданого заказа.
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例2: processImportXml
//.........这里部分代码省略.........
$imageUrl[] = $image;
}
}
$imageUrl = implode($imageUrl, "|");
$id = (string) $item->Группы->Ид[0];
$name = (string) $item->Наименование[0];
$description = '';
if (isset($item->Описание)) {
$description = nl2br((string) $item->Описание[0], true);
}
foreach ($item->ЗначенияРеквизитов->ЗначениеРеквизита as $row) {
if ($row->Наименование == 'Полное наименование') {
$name = $row->Значение;
}
}
$code = !empty($item->Артикул[0]) ? $item->Артикул[0] : $item->ШтрихКод[0];
$id_1c = (string) $item->Ид[0];
$dataProd = array('title' => $name, 'url' => str_replace('\\', '-', URL::prepareUrl(MG::translitIt($name), true)), 'code' => $code, 'price' => 0, 'description' => $description, 'old_price' => '', 'image_url' => $imageUrl, 'count' => 0, 'cat_id' => $category[$id]['category_id'], 'meta_title' => $name, 'meta_keywords' => $name, 'meta_desc' => MG::textMore($description, 157), 'recommend' => 0, 'activity' => 1, 'new' => 0, 'related' => '', 'inside_cat' => '', '1c_id' => $id_1c, 'weight' => '0');
if ($importOnlyNew) {
unset($dataProd['description']);
unset($dataProd['image_url']);
unset($dataProd['meta_title']);
unset($dataProd['meta_keywords']);
unset($dataProd['recommend']);
unset($dataProd['activity']);
unset($dataProd['new']);
unset($dataProd['related']);
unset($dataProd['inside_cat']);
unset($dataProd['weight']);
}
//MG::loger(print_r($dataProd,1));
$res = DB::query('SELECT *
FROM ' . PREFIX . 'product WHERE `1c_id`=' . DB::quote($id_1c));
if ($row = DB::fetchAssoc($res)) {
DB::query('
UPDATE `' . PREFIX . 'product`
SET ' . DB::buildPartQuery($dataProd) . '
WHERE `1c_id`=' . DB::quote($id_1c));
} else {
$model->addProduct($dataProd);
}
// Привязываем свойства.
if (isset($item->ЗначенияСвойств)) {
foreach ($item->ЗначенияСвойств->ЗначенияСвойства as $prop) {
$this->propertyConnect($id_1c, $prop->Ид, $prop->Значение, $category[$id]['category_id']);
}
}
$execTime = microtime(true) - $this->startTime;
if ($execTime + 1 >= $this->maxExecTime) {
header("Content-type: text/xml; charset=utf-8");
echo "";
echo "progress\r\n";
echo "Выгружено товаров: {$currentPosition}";
$_SESSION['lastCountProduct1cImport'] = $currentPosition;
exit;
}
}
if ($this->unlinkFile) {
unlink($filename);
}
$_SESSION['lastCountProduct1cImport'] = 0;
} elseif ($xml && $filename == 'offers.xml') {
$currentPosition = 0;
foreach ($xml->ПакетПредложений[0]->Предложения[0] as $item) {
$currentPosition++;
if ($currentPosition <= $lastPositionOffer) {
continue;
}
$id = (string) $item->Ид[0];
$price = (string) $item->Цены->Цена->ЦенаЗаЕдиницу[0];
$count = (string) $item->Количество[0];
$partProd = array('price' => $price, 'count' => $count, 'price_course' => $price);
DB::query('
UPDATE `' . PREFIX . 'product`
SET ' . DB::buildPartQuery($partProd) . '
WHERE 1c_id = ' . DB::quote($id) . '
');
$execTime = microtime(true) - $this->startTime;
if ($execTime + 1 >= $this->maxExecTime) {
header("Content-type: text/xml; charset=utf-8");
echo "";
echo "progress\r\n";
echo "Выгружено предложений: {$currentPosition}";
$_SESSION['lastCountOffer1cImport'] = $currentPosition;
exit;
}
}
if ($this->unlinkFile) {
unlink($filename);
}
$_SESSION['lastCountOffer1cImport'] = 0;
Storage::clear();
} else {
echo "Ошибка загрузки XML\n";
foreach (libxml_get_errors() as $error) {
echo "\t", $error->message;
exit;
}
}
}
示例3: processImportXml
//.........这里部分代码省略.........
// проверяем, вдруг это предложение является вариантом для товара
$ids1c = explode('#', (string) $item->Ид[0]);
$variantId = '';
// если id варианта не найден
if (empty($ids1c[1])) {
// просто товар, не вариант
DB::query('
UPDATE `' . PREFIX . 'product`
SET ' . DB::buildPartQuery($partProd) . ' , `price_course` = ROUND(' . DB::quote($price * $currencyRate[$iso], TRUE) . ',2)
WHERE 1c_id = ' . DB::quote($ids1c[0]) . '
');
} else {
// если товарное предложение является вариантом для продукта
$productId = '';
$variantId = $ids1c[1];
$variant = array();
$dbRes = DB::query('
SELECT id FROM `' . PREFIX . 'product`
WHERE 1c_id = ' . DB::quote($ids1c[0]) . '
');
if ($row = DB::fetchArray($dbRes)) {
$productId = $row['id'];
$name = array();
foreach ($item->ХарактеристикиТовара->ХарактеристикаТовара as $prop) {
$name[] = $prop->Значение;
}
$name = implode(', ', $name);
$titleVariant = $name;
$variant = array('title_variant' => $titleVariant, 'code' => $item->Артикул[0], 'price' => $price, 'old_price' => '', 'image' => '', 'count' => $count < 0 ? 0 : $count, '1c_id' => $variantId, 'weight' => '0', 'activity' => 1, 'currency_iso' => $iso);
// ******
// ищем варианты для этого товара
$dbRes = DB::query('
SELECT id FROM `' . PREFIX . 'product_variant`
WHERE product_id = ' . DB::quote($productId) . '
');
// если еще ни одного небыло, то создаем и обновляем в таблице product значения по первому варианту
if ($row != DB::fetchArray($dbRes)) {
DB::query('
UPDATE `' . PREFIX . 'product`
SET ' . DB::buildPartQuery($partProd) . ' , `price_course` = ROUND(' . DB::quote($price * $currencyRate[$iso], TRUE) . ',2)
WHERE 1c_id = ' . DB::quote($ids1c[0]) . '
');
}
// ******
// проверяем, импортирован ли ранее этот вариант
$dbRes = DB::query('
SELECT id FROM `' . PREFIX . 'product_variant`
WHERE 1c_id = ' . DB::quote($ids1c[1]) . '
');
// если еще нет, то получаем массив всех имеющихся вариантов по этому продукту,
// добавляем к нему новый вариант и обновляем массив вариантов стандартными средствами
if (!($row = DB::fetchArray($dbRes))) {
$arrVariants = array();
$res = DB::query('
SELECT pv.*
FROM `' . PREFIX . 'product_variant` pv
WHERE pv.product_id = ' . DB::quote($productId) . '
ORDER BY sort
');
if (!empty($res)) {
while ($var = DB::fetchAssoc($res)) {
$arrVariants[$var['id']] = $var;
}
}
$variant['price_course'] = round($price * $currencyRate[$iso], 2);
$arrVariants[] = $variant;
$model->saveVariants($arrVariants, $productId);
} else {
// обновить вариант
DB::query('
UPDATE `' . PREFIX . 'product_variant`
SET ' . DB::buildPartQuery($variant) . ',`price_course` = ROUND(' . DB::quote($price * $currencyRate[$iso], TRUE) . ',2)
WHERE 1c_id = ' . DB::quote($ids1c[0]) . '
');
}
}
}
$execTime = microtime(true) - $this->startTime;
if ($execTime + 1 >= $this->maxExecTime) {
header("Content-type: text/xml; charset=utf-8");
echo "";
echo "progress\r\n";
echo "Выгружено предложений: {$currentPosition}";
$_SESSION['lastCountOffer1cImport'] = $currentPosition;
exit;
}
}
if ($this->unlinkFile) {
unlink($realDocumentRoot . '/tempcml/' . $filename);
}
$_SESSION['lastCountOffer1cImport'] = 0;
Storage::clear();
} else {
echo "Ошибка загрузки XML\n";
foreach (libxml_get_errors() as $error) {
echo "\t", $error->message;
exit;
}
}
}
示例4:
/**
* Очишает таблицу с кэшем объектов
* @return boolean
*/
public function clearСache()
{
Storage::clear();
return true;
}
示例5: sortToAdd
/**
* Сортировка по порядку добавления категорий на сайт.
*/
public function sortToAdd()
{
$res = DB::query('
UPDATE `' . PREFIX . 'category`
SET `sort` = `id`');
Storage::clear(md5('category'));
}