PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/local/tools/ajax/get_one_click_product.php

https://bitbucket.org/veloprobeg/veloprobeg.ru
PHP | 223 lines | 201 code | 18 blank | 4 comment | 11 complexity | f6effed50252cd67f113c5f3d658f17d MD5 | raw file
  1. <?
  2. define('NO_KEEP_STATISTIC', true);
  3. define('NO_AGENT_CHECK', true);
  4. define("NO_AGENT_STATISTIC", true);
  5. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
  6. //require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
  7. $elementId = isset($_REQUEST['ELEMENT_ID']) ? intval($_REQUEST['ELEMENT_ID']) : 0;
  8. $offerId = isset($_REQUEST['OFFER_ID']) ? intval($_REQUEST['OFFER_ID']) : 0;
  9. $sectionId = isset($_REQUEST['SECTION_ID']) ? intval($_REQUEST['SECTION_ID']) : 0;
  10. $isAjax = isset($_REQUEST['AJAX']) ? ($_REQUEST['AJAX'] == 'Y') : false;
  11. //$file = $_SERVER["DOCUMENT_ROOT"].'/click.txt';
  12. //$string = "<?php\n return ".var_export($_REQUEST, true).';';
  13. //file_put_contents($file, $string);
  14. ?>
  15. <? if (intval($_REQUEST['ELEMENT_ID']) > 0 && !$isAjax) { ?>
  16. <? $APPLICATION->IncludeComponent(
  17. "bitrix:catalog.element",
  18. "one_click",
  19. array(
  20. "IBLOCK_TYPE" => "catalog",
  21. "IBLOCK_ID" => IBLOCK_CATALOG_ID,
  22. "COMPONENT_TEMPLATE" => "one_click",
  23. "ELEMENT_ID" => $elementId,
  24. "ELEMENT_CODE" => "",
  25. "SECTION_ID" => $sectionId,
  26. "SECTION_CODE" => "",
  27. "HIDE_NOT_AVAILABLE" => "N",
  28. "PROPERTY_CODE" => array(
  29. 0 => "",
  30. 1 => "",
  31. ),
  32. "OFFERS_FIELD_CODE" => array(
  33. 0 => "",
  34. 1 => "",
  35. ),
  36. "OFFERS_PROPERTY_CODE" => array(
  37. 0 => "ARTNUMBER",
  38. 1 => "COLOR_REF",
  39. 2 => "SIZES_SHOES",
  40. 3 => "SIZES_CLOTHES",
  41. 4 => "MORE_PHOTO",
  42. 5 => "",
  43. ),
  44. "OFFERS_SORT_FIELD" => "sort",
  45. "OFFERS_SORT_ORDER" => "asc",
  46. "OFFERS_SORT_FIELD2" => "id",
  47. "OFFERS_SORT_ORDER2" => "desc",
  48. "OFFERS_LIMIT" => "0",
  49. "BACKGROUND_IMAGE" => "-",
  50. "TEMPLATE_THEME" => "blue",
  51. "ADD_PICT_PROP" => "-",
  52. "LABEL_PROP" => "NEWPRODUCT",
  53. "OFFER_ADD_PICT_PROP" => "MORE_PHOTO",
  54. "OFFER_TREE_PROPS" => array(
  55. 0 => "COLOR_REF",
  56. 1 => "SIZES_SHOES",
  57. 2 => "SIZES_CLOTHES",
  58. ),
  59. "DISPLAY_NAME" => "Y",
  60. "DETAIL_PICTURE_MODE" => "IMG",
  61. "ADD_DETAIL_TO_SLIDER" => "N",
  62. "DISPLAY_PREVIEW_TEXT_MODE" => "E",
  63. "PRODUCT_SUBSCRIPTION" => "N",
  64. "SHOW_DISCOUNT_PERCENT" => "Y",
  65. "SHOW_OLD_PRICE" => "Y",
  66. "SHOW_MAX_QUANTITY" => "N",
  67. "SHOW_CLOSE_POPUP" => "N",
  68. "MESS_BTN_BUY" => "Купить",
  69. "MESS_BTN_ADD_TO_BASKET" => "В корзину",
  70. "MESS_BTN_SUBSCRIBE" => "Подписаться",
  71. "MESS_BTN_COMPARE" => "Сравнить",
  72. "MESS_NOT_AVAILABLE" => "Нет в наличии",
  73. "USE_VOTE_RATING" => "N",
  74. "USE_COMMENTS" => "N",
  75. "BRAND_USE" => "N",
  76. "SECTION_URL" => "",
  77. "DETAIL_URL" => "",
  78. "SECTION_ID_VARIABLE" => "SECTION_ID",
  79. "CHECK_SECTION_ID_VARIABLE" => "N",
  80. "SEF_MODE" => "N",
  81. "CACHE_TYPE" => "N",
  82. "CACHE_TIME" => "36000000",
  83. "CACHE_GROUPS" => "Y",
  84. "SET_TITLE" => "Y",
  85. "SET_CANONICAL_URL" => "N",
  86. "SET_BROWSER_TITLE" => "Y",
  87. "BROWSER_TITLE" => "-",
  88. "SET_META_KEYWORDS" => "Y",
  89. "META_KEYWORDS" => "-",
  90. "SET_META_DESCRIPTION" => "Y",
  91. "META_DESCRIPTION" => "-",
  92. "SET_LAST_MODIFIED" => "N",
  93. "USE_MAIN_ELEMENT_SECTION" => "N",
  94. "ADD_SECTIONS_CHAIN" => "Y",
  95. "ADD_ELEMENT_CHAIN" => "N",
  96. "ACTION_VARIABLE" => "action",
  97. "PRODUCT_ID_VARIABLE" => "id",
  98. "DISPLAY_COMPARE" => "N",
  99. "PRICE_CODE" => array(
  100. 0 => "BASE",
  101. ),
  102. "USE_PRICE_COUNT" => "N",
  103. "SHOW_PRICE_COUNT" => "1",
  104. "PRICE_VAT_INCLUDE" => "Y",
  105. "PRICE_VAT_SHOW_VALUE" => "N",
  106. "CONVERT_CURRENCY" => "N",
  107. "BASKET_URL" => "/personal/basket.php",
  108. "USE_PRODUCT_QUANTITY" => "N",
  109. "PRODUCT_QUANTITY_VARIABLE" => "",
  110. "ADD_PROPERTIES_TO_BASKET" => "Y",
  111. "PRODUCT_PROPS_VARIABLE" => "prop",
  112. "PARTIAL_PRODUCT_PROPERTIES" => "N",
  113. "PRODUCT_PROPERTIES" => array(),
  114. "OFFERS_CART_PROPERTIES" => array(
  115. 0 => "ARTNUMBER",
  116. 1 => "COLOR_REF",
  117. 2 => "SIZES_SHOES",
  118. 3 => "SIZES_CLOTHES",
  119. ),
  120. "ADD_TO_BASKET_ACTION" => array(
  121. 0 => "BUY",
  122. ),
  123. "LINK_IBLOCK_TYPE" => "",
  124. "LINK_IBLOCK_ID" => "",
  125. "LINK_PROPERTY_SID" => "",
  126. "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
  127. "USE_GIFTS_DETAIL" => "N",
  128. "USE_GIFTS_MAIN_PR_SECTION_LIST" => "N",
  129. "GIFTS_DETAIL_PAGE_ELEMENT_COUNT" => "3",
  130. "GIFTS_DETAIL_HIDE_BLOCK_TITLE" => "N",
  131. "GIFTS_DETAIL_BLOCK_TITLE" => "Выберите один из подарков",
  132. "GIFTS_DETAIL_TEXT_LABEL_GIFT" => "Подарок",
  133. "GIFTS_SHOW_DISCOUNT_PERCENT" => "Y",
  134. "GIFTS_SHOW_OLD_PRICE" => "Y",
  135. "GIFTS_SHOW_NAME" => "Y",
  136. "GIFTS_SHOW_IMAGE" => "Y",
  137. "GIFTS_MESS_BTN_BUY" => "Выбрать",
  138. "GIFTS_MAIN_PRODUCT_DETAIL_PAGE_ELEMENT_COUNT" => "3",
  139. "GIFTS_MAIN_PRODUCT_DETAIL_HIDE_BLOCK_TITLE" => "N",
  140. "GIFTS_MAIN_PRODUCT_DETAIL_BLOCK_TITLE" => "Выберите один из товаров, чтобы получить подарок",
  141. "SET_STATUS_404" => "N",
  142. "SHOW_404" => "N",
  143. "MESSAGE_404" => "",
  144. "USE_ELEMENT_COUNTER" => "Y",
  145. "SHOW_DEACTIVATED" => "N",
  146. "DISABLE_INIT_JS_IN_COMPONENT" => "N",
  147. "SET_VIEWED_IN_COMPONENT" => "N",
  148. "BONUS_RATIO" => BONUS_RATIO,
  149. 'OFFER_ID' => $offerId
  150. ),
  151. false
  152. ); ?>
  153. <? } elseif (intval($_REQUEST['ELEMENT_ID']) > 0 && $isAjax) { ?>
  154. <?
  155. $name = isset($_REQUEST['NAME']) ? $_REQUEST['NAME'] : '';
  156. $text = isset($_REQUEST['text']) ? $_REQUEST['text'] : '';
  157. $phone = isset($_REQUEST['PHONE']) ? $_REQUEST['PHONE'] : '';
  158. $result = array(
  159. 'STATUS' => 'OK'
  160. );
  161. if(!\Bitrix\Main\Loader::includeModule('iblock')) {
  162. $errors[] = 'Не подключен модуль ИБ';
  163. }
  164. if (empty($name)) {
  165. $errors[] = 'Не заполнено Имя!';
  166. }
  167. if (empty($phone)) {
  168. $errors[] = 'Не заполнено Телефон!';
  169. }
  170. if (intval($elementId) <= 9) {
  171. $errors[] = 'Не передан идентификатор товара';
  172. }
  173. if (!check_bitrix_sessid()) {
  174. $errors[] = 'Ваша сессия устарела';
  175. }
  176. if (empty($errors)) {
  177. $product = \CIBlockElement::GetList(array(), array(
  178. 'ID' => $elementId
  179. ), false, false, array(
  180. 'ID',
  181. 'IBLOCK_ID',
  182. 'IBLOCK_TYPE_ID',
  183. 'NAME'
  184. ))->Fetch();
  185. $fields = array(
  186. 'ID' => $product['ID'],
  187. 'IBLOCK_ID' => $product['IBLOCK_ID'],
  188. 'IBLOCK_TYPE' => $product['IBLOCK_TYPE_ID'],
  189. 'PRODUCT_NAME' => $product['NAME'],
  190. 'NAME' => $name,
  191. 'TEXT' => $text,
  192. 'PHONE' => $phone,
  193. );
  194. CEvent::Send('ONE_CLICK_SALE', array('s1'), $fields);
  195. $result['STATUS'] = 'SEND';
  196. } else {
  197. $result['STATUS'] = 'ERROR';
  198. $result['ERRORS'] = $errors;
  199. $result['EMEIL_VALIDATE'] = $email_validate;
  200. }
  201. $APPLICATION->RestartBuffer();
  202. echo \CUtil::PhpToJSObject($result);
  203. die();
  204. ?>
  205. <? } ?>