uawdijnntqw1x1x1
IP : 216.73.216.229
Hostname : intecwork2.ru
Kernel : Linux intecwork2.ru 3.10.0-962.3.2.lve1.5.83.el7.x86_64 #1 SMP Thu Nov 23 15:58:18 UTC 2023 x86_64
Disable Function : None :)
OS : Linux
PATH:
/
var
/
www
/
amortar
/
data
/
www
/
amg174.ru
/
.
/
karta-sayta
/
..
/
7c7f9
/
get_lids.php.tar
/
/
var/www/amortar/data/www/amg174.ru/get_lids.php000064400000023414151757313670015335 0ustar00<?php //@author ma@intecweb.ru require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); if (!CModule::IncludeModule("iblock")) { return; } define("PASSWORD_FOR_GET", "intec_lids_secret"); define("PASSWORD_FOR_SETTINGS", "intec_secret"); define("PASSWORD_FOR_SAVE_SETTINGS", "psw_intec"); $settingsNameFile = $_SERVER["DOCUMENT_ROOT"]."/settings_get_lids"; /** * �������� ����� * @url /get_lids.php?psw=intec_lids_secret */ if ($_GET["psw"] == PASSWORD_FOR_GET) { echo getLeads($settingsNameFile); } /** * ������� � ����������� * @url /get_lids.php?action=settings&psw=intec_secret */ if ($_GET["action"] == "settings" && $_GET["psw"] == PASSWORD_FOR_SETTINGS) { drawSettingsPage($settingsNameFile); } /** * ��������� �������� * @url /get_lids.php?action=save&psw=psw_intec */ if ($_GET["action"] == "save" && $_GET["psw"] == PASSWORD_FOR_SAVE_SETTINGS) { if (!empty($_GET["id"])) { saveSettingsToFile($_GET["id"], $settingsNameFile); } echo drawSaveForm(); } function drawSettingsPage ($settingsNameFile) { echo "<h1>��������� ���-����</h1>"; echo "<p>������� ��������� � �������� ���</p>"; $iblocks = getSettingsFromFile($settingsNameFile); $iblockRecords = CIBlock::GetList([], ["SITE_ID" => SITE_ID]); echo "<form>"; echo "<input type='hidden' name='psw' value='".PASSWORD_FOR_SAVE_SETTINGS."'>"; echo '<input type="hidden" name="action" value="save">'; echo '<table>'; while ($iblockRecord = $iblockRecords->Fetch()) { echo '<tr>'; echo '<td>'; echo $iblockRecord["NAME"].'['.$iblockRecord["ID"].']'; echo '</td>'; echo '<td>'; echo "<input type='checkbox' name='id[]' value='".$iblockRecord["ID"]."' "; if (in_array($iblockRecord["ID"], $iblocks)) { echo 'checked'; } echo '>'; echo '</td>'; echo '</tr>'; } echo '</table>'; echo '<input type="submit" value="�������">'; echo '</form>'; } function drawSaveForm() { echo '<script>'; echo 'alert("����� �������");'; echo "document.location.href = '/get_lids.php?psw=".PASSWORD_FOR_SETTINGS."&action=settings';"; echo '</script>'; } function saveSettingsToFile($text, $settingsNameFile) { $text = serialize($text); file_put_contents($settingsNameFile, $text); } function getSettingsFromFile($settingsNameFile) { if (file_exists($settingsNameFile)) { return unserialize(file_get_contents($settingsNameFile)); } return false; } /** * �������� � json * @param settingsNameFile - ��� �� ����� � ����������� */ function getLeads($settingsNameFile = false) { if (!$settingsNameFile) { $settingsNameFile = $_SERVER["DOCUMENT_ROOT"]."/settings_get_lids"; } $iblockIds = getSettingsFromFile($settingsNameFile); $results = []; $results = collectFromChatBot(); $results = array_merge($results, collectOrdersFromKiosk()); $results = array_merge($results, collectOrdersFromSale()); $results = array_merge($results, collectOrdersFromStartShop()); $results = array_merge($results, collectsLeadsFromBitrixForms()); $results = array_merge($results, collectLeadsFromStartShopForms()); $results = array_merge($results, collectLeadsFromIblocks($iblockIds)); return json_encode($results); } function collectFromChatBot() { $results = []; if (CModule::IncludeModule("intec.chatbot")) { $records = CChatBotResult::GetList([], [">=DATE_CREATE" => getDateYesterday()]); if (!empty($records)) { foreach ($records->arResult as $record) { $res = []; $fields = [[ "NAME" => "COMMENT", "VALUE" => convert($record["PROPERTIES"]["COMMENT"]) ], [ "NAME" => "EMAIL", "VALUE" => convert($record["PROPERTIES"]["EMAIL"]) ], [ "NAME" => "NAME", "VALUE" => convert($record["PROPERTIES"]["NAME"]) ], [ "NAME" => "PHONE", "VALUE" => convert($record["PROPERTIES"]["PHONE"]) ] ]; $results[] = createRecord("CHAT_BOT", $record["ID"], $record["DATE_CREATE"], $fields); } } } return $results; } function collectOrdersFromKiosk() { $results = []; if (CModule::IncludeModule("intec_basket")) { $arFilter = [ "IBLOCK_CODE" => "INTEC_BASKET_ORDER", ">=DATE_CREATE" => getDateYesterday(true) ]; $records = CIBlockElement::GetList([], $arFilter, false, ["nPageSize" => 50], []); if (!empty($records)) { while ($record = $records->GetNextElement()) { $arFields = $record->GetFields(); $arProperties = $record->GetProperties(); $fields = [[ "NAME" => "EMAIL", "VALUE" => $chat_bot["EMAIL"]["VALUE"] ], [ "NAME" => "NAME", "VALUE" => convert($arProperties["FIO"]["VALUE"]) ], [ "NAME" => "PHONE", "VALUE" => $arProperties["PHONE"]["VALUE"] ] ]; $results[] = createRecord("ORDER", $arFields["ID"], $arFields["DATE_CREATE"], $fields); } } } return $results; } function collectOrdersFromSale() { $results = []; if (CModule::IncludeModule("sale")) { $arFilter = [ ">=DATE_INSERT" => getDateYesterday(true) ]; $orders = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter); if ($orders) { while ($order = $orders->Fetch()) { $fields = [[ "NAME" => "EMAIL", "VALUE" => $order["USER_EMAIL"] ], [ "NAME" => "NAME", "VALUE" => convert($order["USER_NAME"]." ".$order["USER_LAST_NAME"]) ] ]; $results[] = createRecord("ORDER", $order["ID"], $order["DATE_INSERT"], $fields); } } } return $results; } function collectsLeadsFromBitrixForms() { $results = []; if (CModule::IncludeModule("form")) { $arFilter = [ "SITE" => SITE_ID ]; $formRecords = CForm::GetList($by="s_id", $order="desc", $arFilter, $is_filtered); while ($formRecord = $formRecords->Fetch()) { $forms[] = $formRecord["ID"]; } foreach ($forms as $key => $formId) { $arFilter = [ "DATE_CREATE_1" => getDateYesterday(true), "DATE_CREATE_2" => getDateToday(true), ]; $leads = CFormResult::GetList( $formId, ($by = "s_timestamp"), ($order = "desc"), $arFilter, $is_filtered, "N", 10 ); if ($leads) { while ($lead = $leads->Fetch()) { $res = array(); $formFields = CFormResult::GetDataByID($lead["ID"], array(), $arResult, $arAnswer2); $fields = []; foreach($formFields as $formField) { $fields[] = [ "NAME" => convert($formField[0]["TITLE"]), "VALUE" => convert($formField[0]["USER_TEXT"]) ]; } $results[] = createRecord("FEEDBACK", $lead["ID"], $lead["DATE_CREATE"], $fields); } } } } return $results; } function collectOrdersFromStartShop() { $results = []; if (CModule::IncludeModule("intec.startshop")) { $orders = CStartShopOrder::GetList([], ["SID" => SITE_ID, ">=DATE_CREATE" => getDateYesterday()]); if (!empty($orders)) { while ($order = $orders->Fetch()) { foreach ($order["PROPERTIES"] as $key => $prop) { $order["PROPERTIES"][$key] = convert($prop); } $results[] = createRecord("ORDER", $order["ID"], $order["DATE_CREATE"], $order["PROPERTIES"]); } } } return $results; } function collectLeadsFromStartShopForms() { $results = []; if (CModule::IncludeModule("intec.startshop") && class_exists(CStartShopForm)) { $forms = CStartShopForm::GetList([], ['SID' => SITE_ID]); if (!empty($forms)) { $formsId = []; $formProps = []; while ($form = $forms->Fetch()) { $formsId[] = $form["ID"]; $props = CStartShopFormProperty::GetList([], ["FORM" => $formsId]); while ($prop = $props->Fetch()) { $formProps[$form["ID"]][$prop["ID"]] = $prop; } } $leads = CStartShopFormResult::GetList([], ["FORM" => $formsId, ">=DATE_CREATE" => getDateYesterday()]); if (!empty($leads)) { while ($result = $leads->Fetch()){ $fields = []; foreach ($result["PROPERTIES"] as $property => $value) { $fields[] = [ "NAME" => $formProps[$result["FORM"]][$property]["CODE"], "VALUE" => convert($value) ]; } $results[] = createRecord("FEEDBACK", $result["ID"], $result["DATE_CREATE"], $fields); } } } } return $results; } /** * @param $iblockIds - id ���������� c ������� */ function collectLeadsFromIblocks($iblockIds) { $results = []; if ($iblockIds) { $arFilter = [ "IBLOCK_ID" => $iblockIds, "SITE_ID" => SITE_ID, ">=DATE_CREATE" => getDateYesterday(true) ]; $records = CIBlockElement::GetList(['created_date'=> 'desc'], $arFilter, false, ["nPageSize"=>50]); while ($record = $records->GetNextElement()) { $arFields = $record->GetFields(); $arProperties = $record->GetProperties(); $fields = []; foreach ($arProperties as $prop) { $fields[] = [ "NAME" => convert($prop["NAME"]), "VALUE" => convert($prop["VALUE"]) ]; } $results[] = createRecord("FEEDBACK", $arFields["ID"], $arFields["DATE_CREATE"], $fields); } } return $results; } function getDateToday($bitrix = false) { global $DB; if ($bitrix) { return date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), time()); } else { return date("Y-m-d H:i:s", time()); } } function getDateYesterday($bitrix = false) { global $DB; if ($bitrix) { return date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), getTimeYesterday()); } else { return date("Y-m-d H:i:s", getTimeYesterday()); } } function getTimeYesterday() { return time() - 60*60*24; } /** * @param $typeOrder - FEEDBACK|ORDER|CHAT_BOT * @param $fields - [["NAME" => "123123"], ["PHONE" => "+7"], ....] */ function createRecord($typeOrder, $id, $dateCreate, $fields = []) { return [ "id" => $id, "date" => $dateCreate, "type_order" => $typeOrder, "fields" => $fields ]; } function convert($str) { if (SITE_CHARSET == "windows-1251") { return iconv("windows-1251" ,"utf-8", $str); } return $str; } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");?>
/var/www/amortar/data/www/amg174.ru/./karta-sayta/../7c7f9/get_lids.php.tar