本文整理汇总了PHP中MG::createHook方法的典型用法代码示例。如果您正苦于以下问题:PHP MG::createHook方法的具体用法?PHP MG::createHook怎么用?PHP MG::createHook使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MG
的用法示例。
在下文中一共展示了MG::createHook方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: validDataForm
/**
* Проверяет корректность введенных данных в форме регистрации.
*
* @param array $userData массив данных пользователя.
* @param string $mode режим проверки данных (full|pass) полный (по умолчанию) или только пароль.
* @return string ошибка в случае не верного ввода данных в одном из полей.
*/
public function validDataForm($userData, $mode = 'full')
{
// Проверка электронного адреса.
if (USER::getUserInfoByEmail($userData['email']) && 'full' == $mode) {
$error .= '<span class="email-in-use">Указанный email уже используется</span>';
}
// Пароль должен быть больше 5-ти символов.
if (strlen($userData['pass']) < 5) {
$error .= '<span class="passError">Пароль менее 5 символов</span>';
}
// Проверяем равенство введенных паролей.
if (URL::getQueryParametr('pass2') != $userData['pass']) {
$error .= '<span class="wrong-pass">Введенные пароли не совпадают</span>';
}
if ('full' == $mode) {
// Проверка электронного адреса.
if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $userData['email'])) {
$error .= '<span class="errorEmail">Неверно заполнено email</span>';
}
if (MG::getSetting('useCaptcha') == "true") {
if (strtolower(URL::getQueryParametr('capcha')) != strtolower($_SESSION['capcha'])) {
$error .= "<span class='error-captcha-text'>Текст с картинки введен неверно!</span>";
}
}
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $error, $args);
}
示例2: isValidData
/**
* Проверяет корректность ввода данных.
*
* @param array $arrayData массив с данными введенными пользователем.
* @return bool|string $error сообщение с ошибкой в случае некорректных данных.
*/
public function isValidData($arrayData)
{
$result = false;
if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $arrayData['email'])) {
$error = '<span class="error-email">E-mail не существует!</span>';
} elseif (!trim($arrayData['message'])) {
$error = 'Введите текст сообщения!';
}
if (MG::getSetting('useCaptcha') == "true") {
if (strtolower($arrayData['capcha']) != strtolower($_SESSION['capcha'])) {
$error .= "<span class='error-captcha-text'>Текст с картинки введен неверно!</span>";
}
}
// Если нет ощибок, то заносит информацию в поля класса.
if ($error) {
$result = $error;
} else {
$this->fio = trim($arrayData['fio']);
$this->email = trim($arrayData['email']);
$this->message = trim($arrayData['message']);
$result = false;
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例3: mgDecrypt
/**
* Функция дешифрования
* @param String $str Строка с закодированным текстом
* @return String Строка с результатом Дешифрования
*/
function mgDecrypt($str)
{
$data = base64_decode($str);
$result = str_replace(self::$_salt, '', $data);
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例4: createUrl
/**
* Конвертирует рускоязычны URL в транслит.
* @param string $str рускоязычный url.
* @return string|bool
*/
public static function createUrl($urlstr)
{
$result = false;
if (preg_match('/[^A-Za-z0-9_\\-]/', $urlstr)) {
$urlstr = translitIt($urlstr);
$urlstr = preg_replace('/[^A-Za-z0-9_\\-]/', '', $urlstr);
$result = $urlstr;
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例5: changePass
/**
* Функция смены пароля пользователя
*
* После проверки корректности введеных данных производит хэширование и внесения в БД пароля пользователя
*
* @param string $newPass - новый пароль пользователя
* @param int $id - id пользователя
* @param bool $forgotPass - флаг для функции восстановления пароля, когда не происходит изменения данных пользователя находящихся в системе
* @return string - сообщение о результате операции
*/
public function changePass($newPass, $id, $forgotPass = false)
{
$userData = array('pass' => $newPass);
$registration = new Models_Registration();
if ($err = $registration->validDataForm($userData, 'pass')) {
$msg = $err;
} else {
$userData['pass'] = crypt($userData['pass']);
USER::update($id, $userData, $forgotPass);
$msg = "Пароль изменен";
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $msg, $args);
}
示例6: getDeliveryById
/**
* Получает параметры способа доставки по его id.
*
* @param string $url запрашиваемой категории.
* @return array массив с данными о категории.
*
*/
public function getDeliveryById($id)
{
$result = array();
$res = DB::query('
SELECT *
FROM `' . PREFIX . 'delivery`
WHERE id = ' . DB::quote($id));
if (!empty($res)) {
if ($deliv = DB::fetchAssoc($res)) {
$result = $deliv;
}
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例7: getMenu
/**
* Возвращает меню в HTML виде.
* @return type
*/
public static function getMenu()
{
$menuItem = self::getArrayMenu();
$print = '<ul class="top-menu-list">';
foreach ($menuItem as $name => $item) {
if ('Вход' == $item['title'] && '' != $_SESSION['User']) {
$print .= '<li><a href=' . SITE . '"/enter">' . $_SESSION['User'] . '</a><a class="logOut" href="enter?out=1"><span style="font-size:10px">[ выйти ]</span></a></li>';
} else {
$item['title'] = MG::contextEditor('page', $item['title'], $item["id"], 'page');
$print .= '<li><a href="' . $item['url'] . '">' . $item['title'] . '</a></li>';
}
}
$print .= '</ul>';
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $print, $args);
}
示例8: actionWhenPayment
/**
* Действие при оплате заказа
* Обновляет статус заказа на Оплачен, отправляет письма оповещения, генерирует хук.
*/
public function actionWhenPayment($args)
{
$result = true;
ob_start();
$order = new Models_Order();
if (method_exists($order, 'updateOrder')) {
$order->updateOrder(array('id' => $args['paymentOrderId'], 'status_id' => 2));
}
if (method_exists($order, 'sendMailOfPayed')) {
$order->sendMailOfPayed($args['paymentOrderId'], $args['paymentAmount'], $args['paymentID']);
}
if (method_exists($order, 'sendLinkForElectro')) {
$order->sendLinkForElectro($args['paymentOrderId']);
}
$content = ob_get_contents();
ob_end_clean();
// если в ходе работы метода допущен вывод контента, то записать в лог ошибку.
if (!empty($content)) {
MG::loger('ERROR PAYMENT: ' . $content);
}
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例9: getCartData
//.........这里部分代码省略.........
$variantsId = array();
foreach ($_SESSION['cart'] as $key => $item) {
if (!empty($item['id'])) {
if (!empty($item['variantId'])) {
$variantsId[] = $item['variantId'];
}
$itemIds[] = $item['id'];
}
}
if (!empty($itemIds)) {
// Пробегаем по содержимому.
$idsPr = implode(',', array_unique($itemIds));
$where = ' IN (' . trim(DB::quote($idsPr), "'") . ')';
}
} else {
$where = ' IN (0)';
}
// Пробегаем по содержимому.
// $where = ' IN ('.trim(DB::quote(implode(',',$itemIds)),"'").')';
$result = DB::query('
SELECT CONCAT(c.parent_url,c.url) AS category_url, p.url AS product_url, p.*, rate,
(p.price_course + p.price_course * (IFNULL(rate,0))) as `price_course`, p.currency_iso
FROM `' . PREFIX . 'product` AS p
LEFT JOIN `' . PREFIX . 'category` AS c ON c.id = p.cat_id
WHERE p.id ' . $where);
$array_variants = array();
if (!empty($variantsId)) {
$ids = implode(',', $variantsId);
$variants_res = DB::query('SELECT pv.*, c.rate,(pv.price_course + pv.price_course *(IFNULL(c.rate,0))) as `price_course`,
p.currency_iso
FROM `' . PREFIX . 'product_variant` pv
LEFT JOIN `' . PREFIX . 'product` as p ON
p.id = pv.product_id
LEFT JOIN `' . PREFIX . 'category` as c ON
c.id = p.cat_id
WHERE pv.id IN (' . trim(DB::quote($ids, true)) . ')');
while ($variant_row = DB::fetchAssoc($variants_res)) {
$array_variants[$variant_row['id']] = $variant_row;
}
}
$currencyRate = MG::getSetting('currencyRate');
$currencyShopIso = MG::getSetting('currencyShopIso');
$products_row = array();
while ($prod = DB::fetchAssoc($result)) {
$products_row[$prod['id']] = $prod;
}
foreach ($_SESSION['cart'] as $key => $item) {
$variant = null;
$row = $products_row[$item['id']];
$arrayImages = explode("|", $row['image_url']);
if (!empty($item['variantId'])) {
$variant = $array_variants[$item['variantId']];
$image = $variant['image'] ? $variant['image'] : $arrayImages[0];
$row['price'] = $variant['price'];
$row['code'] = $variant['code'];
$row['count'] = $variant['count'];
$row['image_url'] = $variant['image'] ? $variant['image'] : $row['image_url'];
$row['image_url_new'] = mgImageProductPath($image, $item['id'], 'small');
$row['weight'] = $variant['weight'];
$row['title'] = $row['title'] . " " . $variant['title_variant'];
$row['variantId'] = $variant['id'];
$row['price_course'] = $variant['price_course'];
}
$price = $row['price_course'];
if ($item['id'] == $row['id']) {
$count = $item['count'];
$row['countInCart'] = $count;
$row['property_html'] = htmlspecialchars_decode(str_replace('&', '&', $item['property']));
$price = self::plusPropertyMargin($price, $item['propertyReal'], $currencyRate[$row['currency_iso']]);
$row['property'] = $item['propertySetId'];
$priceWithCoupon = $modelCart->applyCoupon($_SESSION['couponCode'], $price, $row);
//$row['currency_iso'] = $row['currency_iso']?$row['currency_iso']:$currencyShopIso;
//$price *= $currencyRate[$row['currency_iso']];
$priceWithDiscount = $modelCart->applyDiscountSystem($price);
//$price = $priceWithCoupon < $priceWithDiscount['price'] ? $priceWithCoupon : $priceWithDiscount['price'];
$price = $modelCart->customPrice(array('product' => $row, 'priceWithCoupon' => $priceWithCoupon, 'priceWithDiscount' => $priceWithDiscount['price']));
// если выбран формат без копеек, то округляем стоимость до ворматирования.
if (in_array(MG::getSetting('priceFormat'), array('1234', '1 234', '1,234'))) {
$price = round($price);
}
$row['priceInCart'] = MG::priceCourse($price * $count) . " " . $settings['currency'];
if (!empty($arrayImages)) {
$row['image_url'] = $arrayImages[0];
$row['image_url_new'] = mgImageProductPath($arrayImages[0], $item['id'], 'small');
}
$row['category_url'] = SHORT_LINK == '1' ? '' : $row['category_url'] . '/';
$row['price'] = $price;
$res['dataCart'][] = $row;
$totalPrice += $price * $count;
$totalCount += $count;
$itemIds[] = $item['id'];
}
}
$res['cart_price_wc'] = MG::priceCourse($totalPrice) . " " . $settings['currency'];
$res['cart_count'] = $totalCount;
$res['cart_price'] = MG::priceCourse($totalPrice);
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $res, $args);
}
示例10: notSetGoods
/**
* Проверяет есть в заказе комплект или нет при копировании заказа
* @param array $id - id товара
*/
public function notSetGoods($id)
{
$result = true;
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例11: createRelatedForm
/**
* Возвращает HTML блок связанных товаров
* @param type $args
* @return type
*/
public function createRelatedForm($args, $title = 'С этим товаром покупают', $layout = 'layout_related')
{
if ($args) {
$data['title'] = $title;
$stringRelated = ' null';
$sortRelated = array();
foreach (explode(',', $args) as $item) {
$stringRelated .= ',' . DB::quote($item);
$sortRelated[$item] = $item;
}
$stringRelated = substr($stringRelated, 1);
$data['products'] = $this->getProductByUserFilter(' p.code IN (' . $stringRelated . ') and p.activity = 1 ');
if (!empty($data['products'])) {
$data['currency'] = MG::getSetting('currency');
foreach ($data['products'] as $item) {
$img = explode('|', $item['image_url']);
$item['img'] = $img[0];
$item['category_url'] = SHORT_LINK == '1' ? '' : $item['category_url'] . '/';
$item['url'] = SITE . '/' . (isset($item["category_url"]) ? $item["category_url"] : 'catalog/') . $item["product_url"];
$item['price'] = MG::priceCourse($item['price_course']);
$sortRelated[$item['code']] = $item;
}
$data['products'] = array();
//сортируем связанные товары в том порядке, в котором они идут в строке артикулов
foreach ($sortRelated as $item) {
if (!empty($item['id']) && is_array($item)) {
$data['products'][$item['id']] = $item;
}
}
$result = MG::layoutManager($layout, $data);
}
}
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例12: Moguta
DB::init();
Storage::init();
PM::init();
MG::init();
URL::init();
User::init();
Mailer::init();
// Если сайт временно закрыт, то выводитя заглушка, хранящаяся в корне движка.
if (MG::isDowntime()) {
require_once 'downTime.html';
exit;
}
// Запоминает откуда пришел пользователь.
MG::logReffererInfo();
// Подключить index.php всех плагинов.
PM::includePlugins();
// Хук выполняющийся до запуска движка.
MG::createHook('mg_start');
// Запуск движка.
$moguta = new Moguta();
$moguta = $moguta->run();
// Вывод результата на экран, предварительно обработав все возможные шорткоды.
echo PM::doShortcode(MG::printGui($moguta));
// Хук выполняющийся после того как отработал движок.
MG::createHook('mg_end', true, $moguta);
// Ввывод консоли запросов к БД.
if (DEBUG_SQL) {
echo DB::console();
}
// Завершение процесса кэширвания.
Storage::close();
示例13: array
//.........这里部分代码省略.........
'blockedProp' => array(), // массив из ID свойств, которые ненужно выводить в форме.
'noneAmount' => false, // не выводить input для количества.
'titleBtn' => "В корзину", // название кнопки.
'blockVariants' => '', // блок вариантов.
'classForButton' => 'addToCart buy-product buy', // классы для кнопки.
'noneButton' => false, // не выводить кнопку отправки.
'addHtml' => '' // добавить HTML в содержимое формы.
)
* </code>
* @param int $param - массив параметров.
* $blockedProp - массив с ID свойствам, которые не надо выводить.
* @return string html форма.
*/
public function createPropertyForm($param = array('id' => null, 'maxCount' => null, 'productUserFields' => null, 'action' => "/catalog", 'method' => "POST", 'ajax' => true, 'blockedProp' => array(), 'noneAmount' => false, 'titleBtn' => "В корзину", 'blockVariants' => '', 'classForButton' => 'addToCart buy-product buy', 'noneButton' => false, 'addHtml' => ''))
{
extract($param);
if (empty($classForButton)) {
$classForButton = 'addToCart buy-product buy';
}
if ($id === null || $maxCount === null) {
return "error param!";
}
// если используется аяксовый метод выбора, то подключаем доп класс для работы с формой.
$marginPrice = 0;
// добавочная цена, в зависимости от выбраных автоматом характеристик
$secctionCartNoDummy = array();
//Не подставной массив характеристик, все характеристики с настоящими #ценами#
//в сессию записать реальные значения, в паблик подмену, с привязкой в конце #№
$html = '<form action="' . SITE . $action . '" method="' . $method . '" class="property-form">';
if ($ajax) {
mgAddMeta("<script type=\"text/javascript\" src=\"" . SITE . "/mg-core/script/jquery.form.js\"></script>");
}
if (!empty($productUserFields)) {
foreach ($productUserFields as $property) {
if (in_array($property['id'], $blockedProp)) {
continue;
}
/*
'select' - набор значений, можно интерпретировать как выпадающий список либо набор радиокнопок
'assortment' - мультиселект
'string' - пара ключь значение
'assortmentCheckBox' - набор чекбоксов
*/
switch ($property['type']) {
case 'select':
$html .= "";
break;
case 'assortmentCheckBox':
$html .= "";
break;
case 'assortment':
$html .= "";
break;
case 'string':
$marginStoper = $marginPrice;
if (!empty($property['value'])) {
$html .= '<p>' . $property['name'] . ': <span class="label-black">' . (!empty($property['value']) ? $property['value'] : $property['data']) . '</span></p>';
}
break;
default:
if (!empty($property['data'])) {
$html .= '' . $property['name'] . ': <span class="label-black">' . str_replace("|", ",", $property['data']) . '</span>';
}
break;
}
}
$_SESSION['propertyNodummy'] = $secctionCartNoDummy;
}
$html .= '<div class="buy-container">';
if ($maxCount == "0") {
$hidder = 'style="display:none"';
}
if (!$noneAmount) {
$html .= '<div class="hidder-element" ' . $hidder . ' ><p class="qty-text">Количество:</p>
<div class="cart_form">
<input type="text" name="amount_input" class="amount_input" data-max-count="' . $maxCount . '" value="1" />
<div class="amount_change">
<a href="#" class="up">+</a>
<a href="#" class="down">-</a>
</div>
</div>
</div>';
}
$html .= '<div class="hidder-element" ' . $hidder . ' ><input type="hidden" name="inCartProductId" value="' . $id . '">';
if (!$noneButton) {
// Если товаров на складе нет, то не выводить кнопку в корзину.
if ($ajax) {
$html .= '<a class="' . $classForButton . '" href="' . SITE . '/catalog?inCartProductId=' . $id . '" data-item-id="' . $id . '">' . $titleBtn . '</a><input type="submit" name="buyWithProp" onclick="return false;" style="display:none">';
} else {
$html .= '<input type="submit" name="buyWithProp">';
}
}
$html .= $addHtml;
$html .= '</div>
</div>';
$html .= '</form>';
$result = array('html' => $html, 'marginPrice' => $marginPrice);
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}
示例14:
<div class="widget-table-wrapper">
<div class="widget-table-title">
<h4 class="settings-table-icon"><?php
$lang = MG::get('lang');
echo $lang['SETTINGS_PLUGIN'];
?>
"<?php
echo URL::getQueryParametr('pluginTitle');
?>
"</h4>
</div>
<div class="widget-table-body">
<a href="javascript:void(0);" onclick="$('a[id=plugins]').click();" class="go-back-plugins"><span>← <?php
echo $lang['BACK_PLUGIN'];
?>
</span></a>
<?php
MG::createHook(URL::getQueryParametr('mguniqueurl'));
?>
</div>
<div class="clear"></div>
</div>
示例15: applyCoupon
/**
* Применяет скидку по купону
* @param string $code - код купона товара.
* @param string $price - входящая стоимость.
* @param string $product - информация о продукте.
* @return double - возвращает новую стоимость товара
*/
public function applyCoupon($code, $price, $product = null)
{
$result = $price;
$args = func_get_args();
return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args);
}