Ejemplo n.º 1
0
                    $lAdmin->AddUpdateError($e->GetString(), $ID);
                }
                break;
            case "deactivate":
            case "activate":
                $cData = new CXDILFScheme();
                $cData->Update($ID, array("ACTIVE" => $action == "deactivate" ? "N" : "Y"));
                break;
            default:
                break;
        }
    }
}
$arHeaders = array(array("id" => "ID", "content" => GetMessage("LFP_SCHEME_LIST_ID"), "sort" => "ID", "align" => "right", "default" => true), array("id" => "NAME", "content" => GetMessage("LFP_SCHEME_LIST_NAME"), "sort" => "NAME", "align" => "left", "default" => true), array("id" => "ACTIVE", "content" => GetMessage("LFP_SCHEME_LIST_ACTIVE"), "sort" => "ACTIVE", "align" => "left", "default" => true), array("id" => "SORT", "content" => GetMessage("LFP_SCHEME_LIST_SORT"), "sort" => "SORT", "align" => "left", "default" => true), array("id" => "LID", "content" => GetMessage("LFP_SCHEME_LIST_LID"), "sort" => "LID", "align" => "left", "default" => true), array("id" => "TYPE", "content" => GetMessage("LFP_SCHEME_LIST_TYPE"), "sort" => "TYPE", "align" => "left", "default" => true));
$lAdmin->AddHeaders($arHeaders);
$rsData = CXDILFScheme::GetList(array($by => $order));
$rsData = new CAdminResult($rsData, $sTableID);
while (is_array($arRes = $rsData->GetNext())) {
    $row =& $lAdmin->AddRow($arRes["ID"], $arRes);
    $row->AddInputField("NAME", array("size" => 20));
    $row->AddViewField("NAME", '<a href="xdi_lf_scheme_edit.php?ID=' . $arRes["ID"] . '&amp;lang=' . LANG . '">' . $arRes["NAME"] . '</a>');
    $row->AddEditField("LID", CLang::SelectBox("FIELDS[" . $arRes["ID"] . "][LID]", $arRes["LID"]));
    $row->AddInputField("SORT", array("size" => 20));
    $row->AddCheckField("ACTIVE");
    $row->AddViewField("ID", '<a href="xdi_lf_scheme_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $arRes["ID"] . '">' . $arRes["ID"] . '</a>');
    $row->AddViewField("TYPE", GetMessage("LFP_SCHEME_LIST_" . $arRes["TYPE"]));
    $arActions = array(array("ICON" => "edit", "DEFAULT" => true, "TEXT" => GetMessage("LFP_SCHEME_LIST_EDIT"), "ACTION" => $lAdmin->ActionRedirect('xdi_lf_scheme_edit.php?lang=' . LANGUAGE_ID . '&ID=' . $arRes["ID"])));
    $arActions[] = array("SEPARATOR" => "Y");
    if ($arRes["ACTIVE"] === "Y") {
        $arActions[] = array("TEXT" => GetMessage("LFP_SCHEME_LIST_DEACTIVATE"), "ACTION" => "if(confirm('" . GetMessage("LFP_SCHEME_LIST_DEACTIVATE_CONF") . "')) " . $lAdmin->ActionDoGroup($arRes["ID"], "deactivate"));
    } else {
Ejemplo n.º 2
0
 function CheckRequest()
 {
     global $DB;
     $result = "";
     if (!CModule::IncludeModule("socialnetwork")) {
         return $result;
     }
     $current_time = time();
     $time_of_exec = false;
     $rsScheme = CXDILFScheme::GetList(array(), array("ACTIVE" => "Y", "AUTO" => "Y"));
     while (($arScheme = $rsScheme->Fetch()) && $time_of_exec === false) {
         if ($arScheme["LAST_EXECUTED"] == '') {
             continue;
         }
         $last_executed = MakeTimeStamp(ConvertDateTime($arScheme["LAST_EXECUTED"], "DD.MM.YYYY HH:MI:SS"), "DD.MM.YYYY HH:MI:SS");
         if ($last_executed <= 0) {
             continue;
         }
         $arEventTmp = CSocNetLogTools::FindLogEventByID($arScheme["EVENT_ID"]);
         if (array_key_exists("REAL_EVENT_ID", $arEventTmp) && strlen($arEventTmp["REAL_EVENT_ID"]) > 0) {
             $arScheme["EVENT_ID"] = $arEventTmp["REAL_EVENT_ID"];
         }
         //parse schedule
         $arDoM = CXDImport::ParseDaysOfMonth($arScheme["DAYS_OF_MONTH"]);
         $arDoW = CXDImport::ParseDaysOfWeek($arScheme["DAYS_OF_WEEK"]);
         $arToD = CXDImport::ParseTimesOfDay($arScheme["TIMES_OF_DAY"]);
         if ($arToD) {
             sort($arToD, SORT_NUMERIC);
         }
         $arSDate = localtime($last_executed);
         //sdate = truncate(last_execute)
         $sdate = mktime(0, 0, 0, $arSDate[4] + 1, $arSDate[3], $arSDate[5] + 1900);
         while ($sdate < $current_time && $time_of_exec === false) {
             $arSDate = localtime($sdate);
             if ($arSDate[6] == 0) {
                 $arSDate[6] = 7;
             }
             //determine if date is good for execution
             if ($arDoM) {
                 $flag = array_search($arSDate[3], $arDoM);
                 if ($arDoW) {
                     $flag = array_search($arSDate[6], $arDoW);
                 }
             } elseif ($arDoW) {
                 $flag = array_search($arSDate[6], $arDoW);
             } else {
                 $flag = false;
             }
             if ($flag !== false && $arToD) {
                 foreach ($arToD as $intToD) {
                     if ($sdate + $intToD > $last_executed && $sdate + $intToD <= $current_time) {
                         $time_of_exec = $sdate + $intToD;
                         break;
                     }
                 }
             }
             $sdate = mktime(0, 0, 0, date("m", $sdate), date("d", $sdate) + 1, date("Y", $sdate));
             //next day
         }
         if ($time_of_exec !== false) {
             if ($arScheme["TYPE"] == "XML") {
                 $arParams = array();
                 if (strlen($arScheme["PARAMS"]) > 0) {
                     $arTmp = explode("&", $arScheme["PARAMS"]);
                     if (is_array($arTmp) && count($arTmp) > 0) {
                         foreach ($arTmp as $pair) {
                             list($key, $value) = explode("=", $pair);
                             $arParams[$key] = $value;
                         }
                     }
                 }
                 $arResponse = CXDILFSchemeXML::Request($arScheme["HOST"], $arScheme["PAGE"], $arScheme["PORT"], $arScheme["METHOD"], "http://" . $arScheme["HOST"], $arScheme["LOGIN"], $arScheme["PASSWORD"], $arParams);
                 if ($arResponse && is_array($arResponse)) {
                     if (XDI_DEBUG) {
                         CXDImport::WriteToLog("Successful webservice response, scheme ID: " . $arScheme["ID"], "RXML");
                     }
                     $entityName = $arScheme["NAME"];
                     if ($arScheme["EVENT_ID"] == "news") {
                         $rsIBlock = CIBlock::GetList(array("ID" => "ASC"), array("ACTIVE" => "Y", "TYPE" => "news", "ID" => $arScheme["ENTITY_ID"]));
                         if ($arIBlock = $rsIBlock->Fetch()) {
                             $entityName = $arIBlock["NAME"];
                         }
                     }
                     $arLogParams = array("ENTITY_NAME" => $entityName, "ENTITY_URL" => $arResponse["URL"]);
                     $arSonetFields = array("SITE_ID" => $arScheme["LID"], "ENTITY_TYPE" => $arScheme["ENTITY_TYPE"], "ENTITY_ID" => $arScheme["ENTITY_ID"], "EVENT_ID" => $arScheme["EVENT_ID"], "ENABLE_COMMENTS" => $arScheme["ENABLE_COMMENTS"], "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction(), "TITLE_TEMPLATE" => $arResponse["TITLE"], "TITLE" => $arResponse["TITLE"], "MESSAGE" => $arResponse["MESSAGE"], "TEXT_MESSAGE" => $arResponse["TEXT_MESSAGE"], "URL" => $arResponse["URL"], "PARAMS" => serialize($arLogParams), "MODULE_ID" => false, "CALLBACK_FUNC" => false);
                     $logID = CSocNetLog::Add($arSonetFields, false);
                     if (intval($logID) > 0) {
                         $arUpdateFields = array("TMP_ID" => $logID, "RATING_TYPE_ID" => "LOG_ENTRY", "RATING_ENTITY_ID" => $logID);
                         CSocNetLog::Update($logID, $arUpdateFields);
                         CXDILFScheme::SetSonetLogRights($logID, $arScheme["ENTITY_TYPE"], $arScheme["ENTITY_ID"], $arScheme["EVENT_ID"]);
                         CSocNetLog::CounterIncrement($logID);
                         if ($arScheme["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP && intval($arScheme["ENTITY_ID"]) > 0) {
                             $notify_title_tmp = str_replace(array("\r\n", "\n"), " ", $arScheme["NAME"]);
                             $notify_title = TruncateText($notify_title_tmp, 100);
                             $notify_title_out = TruncateText($notify_title_tmp, 255);
                             $arNotifyParams = array("LOG_ID" => $logID, "GROUP_ID" => intval($arScheme["ENTITY_ID"]), "NOTIFY_MESSAGE" => "", "URL" => "", "MESSAGE" => GetMessage("LFP_CLASS_SCHEME_IM_ADD", array("#title#" => $notify_title)), "MESSAGE_OUT" => GetMessage("LFP_CLASS_SCHEME_IM_ADD", array("#title#" => $notify_title_out)), "EXCLUDE_USERS" => array());
                             CSocNetSubscription::NotifyGroup($arNotifyParams);
                         }
                     }
                 } else {
                     CXDImport::WriteToLog("ERROR: Incorrect webservice response. Scheme ID: " . $arScheme["ID"] . ", server: " . $arScheme["HOST"] . ", port: " . $arScheme["PORT"] . ", page: " . $arScheme["PAGE"] . ", method: " . $arScheme["METHOD"] . ", params: " . $arScheme["PARAMS"], "RXML");
                 }
             } elseif ($arScheme["TYPE"] == "RSS") {
                 $arResponse = CXDILFSchemeRSS::Request($arScheme["HOST"], $arScheme["PAGE"], $arScheme["PORT"], $arScheme["PARAMS"], $arScheme["URI"]);
                 if ($arResponse && is_array($arResponse) && array_key_exists("item", $arResponse) && is_array($arResponse["item"]) && count($arResponse["item"]) > 0) {
                     if (XDI_DEBUG) {
                         CXDImport::WriteToLog("Successful RSS response. Scheme ID: " . $arScheme["ID"], "RRSS");
                     }
                     foreach ($arResponse["item"] as $arItem) {
                         $checksum = md5(serialize($arItem));
                         $rsLogEvents = CSocNetLog::GetList(array(), array("SITE_ID" => $arScheme["LID"], "ENTITY_TYPE" => $arScheme["ENTITY_TYPE"], "ENTITY_ID" => $arScheme["ENTITY_ID"], "EVENT_ID" => $arScheme["EVENT_ID"], "EXTERNAL_ID" => $checksum), false, array("nTopCount" => 1));
                         $arLogEvent = $rsLogEvents->Fetch();
                         if (!$arLogEvent) {
                             $entityName = $arScheme["NAME"];
                             if ($arScheme["EVENT_ID"] == "news") {
                                 $rsIBlock = CIBlock::GetList(array("ID" => "ASC"), array("ACTIVE" => "Y", "TYPE" => "news", "ID" => $arScheme["ENTITY_ID"]));
                                 if ($arIBlock = $rsIBlock->Fetch()) {
                                     $entityName = $arIBlock["NAME"];
                                 }
                             }
                             $arLogParams = array("SCHEME_ID" => $arScheme["ID"], "ENTITY_NAME" => $entityName, "ENTITY_URL" => $arResponse["link"]);
                             if (strlen($arItem["pubDate"]) > 0) {
                                 $arLogParams["SOURCE_TIMESTAMP"] = strtotime($arItem["pubDate"]);
                             }
                             $description = preg_replace("#^(.*?)([\\s]*<br[\\s]*/>)+[\\s]*[\n]*[\\s]*\$#is", "\\1", $arItem["description"]);
                             $arSonetFields = array("SITE_ID" => $arScheme["LID"], "ENTITY_TYPE" => $arScheme["ENTITY_TYPE"], "ENTITY_ID" => $arScheme["ENTITY_ID"], "EVENT_ID" => $arScheme["EVENT_ID"], "ENABLE_COMMENTS" => $arScheme["ENABLE_COMMENTS"], "TITLE_TEMPLATE" => $arItem["title"], "TITLE" => $arItem["title"], "MESSAGE" => $description, "TEXT_MESSAGE" => "", "URL" => $arItem["link"], "PARAMS" => serialize($arLogParams), "MODULE_ID" => false, "CALLBACK_FUNC" => false, "EXTERNAL_ID" => $checksum, "=LOG_DATE" => $GLOBALS["DB"]->CurrentTimeFunction());
                             $logID = CSocNetLog::Add($arSonetFields, false);
                             if (intval($logID) > 0) {
                                 $arUpdateFields = array("TMP_ID" => $logID, "RATING_TYPE_ID" => "LOG_ENTRY", "RATING_ENTITY_ID" => $logID);
                                 CSocNetLog::Update($logID, $arUpdateFields);
                                 CXDILFScheme::SetSonetLogRights($logID, $arScheme["ENTITY_TYPE"], $arScheme["ENTITY_ID"], $arScheme["EVENT_ID"]);
                                 CSocNetLog::CounterIncrement($logID);
                                 if ($arScheme["ENTITY_TYPE"] == SONET_SUBSCRIBE_ENTITY_GROUP && intval($arScheme["ENTITY_ID"]) > 0) {
                                     $notify_title_tmp = str_replace(array("\r\n", "\n"), " ", $arScheme["NAME"]);
                                     $notify_title = TruncateText($notify_title_tmp, 100);
                                     $notify_title_out = TruncateText($notify_title_tmp, 255);
                                     $arNotifyParams = array("LOG_ID" => $logID, "GROUP_ID" => intval($arScheme["ENTITY_ID"]), "NOTIFY_MESSAGE" => "", "URL" => "", "MESSAGE" => GetMessage("LFP_CLASS_SCHEME_IM_ADD", array("#title#" => $notify_title)), "MESSAGE_OUT" => GetMessage("LFP_CLASS_SCHEME_IM_ADD", array("#title#" => $notify_title_out)), "EXCLUDE_USERS" => array());
                                     CSocNetSubscription::NotifyGroup($arNotifyParams);
                                 }
                             }
                         } elseif (XDI_DEBUG) {
                             CXDImport::WriteToLog("RSS item is already in log. Scheme ID: " . $arScheme["ID"] . ", log ID: " . $arLogEvent["ID"], "RRSS");
                         }
                     }
                 } else {
                     CXDImport::WriteToLog("ERROR: Incorrect RSS response. Scheme ID: " . $arScheme["ID"] . ", server: " . $arScheme["HOST"] . ", port: " . $arScheme["PORT"] . ", page: " . $arScheme["PAGE"] . ", params: " . $arScheme["PARAMS"], "RRSS");
                 }
             }
             $strSql = "UPDATE b_xdi_lf_scheme SET LAST_EXECUTED=" . $DB->GetNowFunction() . " WHERE ID=" . intval($arScheme["ID"]);
             $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         }
         $result = "CXDILFScheme::CheckRequest();";
     }
     return $result;
 }
Ejemplo n.º 3
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    echo "B_PROLOG_INCLUDED error!";
    die;
}
if (!CModule::IncludeModule("xdimport") || !CModule::IncludeModule("socialnetwork")) {
    echo "Error loading modules!";
    return;
}
if (strlen($_POST["hash"]) > 0) {
    $rsScheme = CXDILFScheme::GetList(array(), array("ACTIVE" => "Y", "HASH" => $_POST["hash"]));
    if ($arScheme = $rsScheme->Fetch()) {
        if (strlen($_POST["title"]) > 0 && strlen($_POST["message"]) > 0) {
            if (XDI_DEBUG) {
                CXDImport::WriteToLog("Successful POST request, scheme ID: " . $arScheme["ID"], "RXML");
            }
            $arEventTmp = CSocNetLogTools::FindLogEventByID($arScheme["EVENT_ID"]);
            if (array_key_exists("REAL_EVENT_ID", $arEventTmp) && strlen($arEventTmp["REAL_EVENT_ID"]) > 0) {
                $arScheme["EVENT_ID"] = $arEventTmp["REAL_EVENT_ID"];
            }
            if ($arScheme["EVENT_ID"] == "news" && CModule::IncludeModule("iblock")) {
                $arLogParams = array("SCHEME_ID" => $arScheme["ID"]);
                $strParams = CharsetConverter::ConvertCharset($_POST["params"], CXDImport::DetectUTF8($_POST["params"]) ? "utf-8" : "windows-1251", SITE_CHARSET);
                $arParamPairs = explode("&", $strParams);
                if (is_array($arParamPairs)) {
                    foreach ($arParamPairs as $strPair) {
                        list($key, $value) = explode("=", $strPair);
                        if (strlen($key) > 0 && strlen($value) > 0) {
                            $arLogParams[$key] = $value;
                        }
Ejemplo n.º 4
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!CModule::IncludeModule("xdimport")) {
    return;
}
$strWarning = "";
$bVarsFromForm = false;
$ob = new CXDILFScheme();
$rsXDILFScheme = CXDILFScheme::GetList(array(), array("TYPE" => "RSS"));
$arXDILFScheme = $rsXDILFScheme->Fetch();
if (empty($arXDILFScheme)) {
    switch (LANGUAGE_ID) {
        case "ru":
            $host = "www.1c-bitrix.ru";
            $page = "/upload/xdimport/xdimport_rss_ru.xml";
            break;
        case "de":
            $host = "www.bitrix.de";
            $page = "/upload/xdimport/xdimport_rss_de.xml";
            break;
        default:
            $host = "www.bitrixsoft.com";
            $page = "/upload/xdimport/xdimport_rss_en.xml";
            break;
    }
    $arFields = array("ACTIVE" => "Y", "ENABLE_COMMENTS" => "Y", "SORT" => "100", "NAME" => GetMessage("XDI_SCHEME_NAME"), "TYPE" => "RSS", "LID" => WIZARD_SITE_ID, "DAYS_OF_WEEK" => "1,2,3,4,5,6,7", "TIMES_OF_DAY" => "8:00", "ENTITY_TYPE" => "P", "EVENT_ID" => "data", "HOST" => $host, "PAGE" => $page, "LAST_EXECUTED" => ConvertTimeStamp(time() - 86400, "FULL"));
    $res = $ob->Add($arFields);
    if ($res > 0) {