Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/goodde.yandexturboapi/admin/ |
Upload File : |
<? use Bitrix\Main\Loader, Bitrix\Main\Localization\Loc, Goodde\YandexTurbo\FeedTable; require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/goodde.yandexturboapi/admin/tools.php"); $moduleId = 'goodde.yandexturboapi'; Loc::loadMessages(__FILE__); if(CModule::IncludeModuleEx($moduleId) == 3) { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); CAdminMessage::showMessage(array( "MESSAGE" => Loc::getMessage("GOODDE_TYRBO_API_ERROR_MODULE_DEMO_EXPIRED"), "TYPE" => "ERROR", )); return; } elseif(!Loader::IncludeModule($moduleId)) { require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); CAdminMessage::showMessage(array( "MESSAGE" => Loc::getMessage("GOODDE_TYRBO_API_ERROR_MODULE"), "TYPE" => "ERROR", )); return; } $POST_RIGHT = $APPLICATION->GetGroupRight("goodde.yandexturboapi"); if ($POST_RIGHT == "D") $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED")); $strErrorMessage = ''; $FEED_ID = intval($_REQUEST['FEED_ID']); if ($_REQUEST["ACTION"]=="AGENT" && $USER->CanDoOperation('edit_php') && check_bitrix_sessid()) { if($FEED_ID > 0) { $arFeed = FeedTable::getById($FEED_ID)->fetch(); if($arFeed) { $FEED_ID = (int)$arFeed['ID']; } else { $FEED_ID = 0; } } if($FEED_ID > 0) { $agentPeriod = \Goodde\YandexTurbo\Turbo::checkTypeCount($_REQUEST['agent_period']); if($agentPeriod<=0) $agentPeriod = 24; if($arFeed['IN_AGENT'] == 'Y') CAgent::RemoveAgent("\Goodde\YandexTurbo\Turbo::preGenerateExport(".$FEED_ID.");", $moduleId); else CAgent::AddAgent("\Goodde\YandexTurbo\Turbo::preGenerateExport(".$FEED_ID.");", $moduleId, "N", $agentPeriod*60*60, "", "Y"); \Goodde\YandexTurbo\FeedTable::update($FEED_ID, array( 'IN_AGENT' => ($arFeed['IN_AGENT'] == 'Y' ? 'N' : 'Y') )); } if (mb_strlen($strErrorMessage)<=0) { $redirectUrl = "/bitrix/admin/goodde_feed_list.php?lang=".urlencode(LANGUAGE_ID)."&success_export=Y"; LocalRedirect($redirectUrl); } } $sTableId = "goodde_yandex_turbo_feed"; $oSort = new CAdminSorting($sTableId, "ID", "asc"); $lAdmin = new CAdminList($sTableId, $oSort); if($lAdmin->EditAction()) { foreach($FIELDS as $ID=>$arFields) { if(!$lAdmin->IsUpdated($ID)) continue; $DB->StartTransaction(); $ID = IntVal($ID); $res = FeedTable::getById($ID); if(!$arData = $res->fetch()){ foreach($arFields as $key=>$value) $arData[$key]=$value; $result = FeedTable::update($ID, $arData); if(!$result->isSuccess()) { if($e = $result->getErrorMessages()) $lAdmin->AddGroupError(Loc::getMessage("GOODDE_TYRBO_API_SAVE_ERROR")." ".$e, $ID); $DB->Rollback(); } } else { $lAdmin->AddGroupError(Loc::getMessage("GOODDE_TYRBO_API_SAVE_ERROR")." ".Loc::getMessage("GOODDE_TYRBO_API_NO_ELEMENT"), $ID); $DB->Rollback(); } $DB->Commit(); } } if(($arID = $lAdmin->GroupAction())) { if($_REQUEST['action_target']=='selected') { $arID = array(); $rsData = FeedTable::getList( array( 'select' => array('ID'), 'order' => array($by=>$order) ) ); while($arRes = $rsData->fetch()) $arID[] = $arRes['ID']; } foreach($arID as $ID) { if(IntVal($ID)<=0) continue; $ID = IntVal($ID); switch($_REQUEST['action']) { case "delete": set_time_limit(0); $DB->StartTransaction(); $result = FeedTable::delete($ID); if(!$result->isSuccess()) { $DB->Rollback(); $lAdmin->AddGroupError(Loc::getMessage("GOODDE_TYRBO_API_DELETE_ERROR"), $ID); } $DB->Commit(); break; case "activate": case "deactivate": if(($rsData = FeedTable::getById($ID)) && ($arFields = $rsData->fetch())) { $arFields["ACTIVE"]=($_REQUEST['action']=="activate"?"Y":"N"); $result = FeedTable::update($ID, $arFields); if(!$result->isSuccess()) if($e = $result->getErrorMessages()) $lAdmin->AddGroupError(Loc::getMessage("GOODDE_TYRBO_API_SAVE_ERROR").$e, $ID); } else $lAdmin->AddGroupError(Loc::getMessage("GOODDE_TYRBO_API_SAVE_ERROR")." ".Loc::getMessage("GOODDE_TYRBO_API_NO_ELEMENT"), $ID); break; } } } $APPLICATION->SetTitle(Loc::getMessage("GOODDE_TYRBO_API_ADMIN_TITLE")); $arOrder = (mb_strtoupper($by) === "ID"? array($by => $order): array($by => $order, "ID" => "ASC")); $arFilterFields = array( 'filter_name', 'filter_active', ); $lAdmin->InitFilter($arFilterFields); $arFilter = array('!IS_SECTION' => true); if($filter_name <> '') $arFilter['%NAME'] = Trim($filter_name); if($filter_active <> '') $arFilter['ACTIVE'] = Trim($filter_active); $myData = FeedTable::getList( array( 'filter' => $arFilter, 'order' => $arOrder ) ); $myData = new CAdminResult($myData, $sTableId); $myData->NavStart(); $lAdmin->NavText($myData->GetNavPrint(Loc::getMessage("GOODDE_TYRBO_API_ADMIN_NAV"))); $cols = FeedTable::getMap(); $colHeaders = array(); foreach ($cols as $colId => $col) { if(is_object($col)) { $colHeaders[] = array( "id" => $colId, "content" => $col->getTitle(), "sort" => $colId, "default" => true, ); } else { if($col['hidden']){ continue; } $colHeaders[] = array( "id" => $colId, "content" => $col["title"], "sort" => $colId, "default" => true, ); } } $lAdmin->AddHeaders($colHeaders); $visibleHeaderColumns = $lAdmin->GetVisibleHeaderColumns(); $arUsersCache = array(); $arElementCache = array(); while ($arRes = $myData->GetNext()) { $arActions = array(); $MODIFIED_BY = $arRes['MODIFIED_BY']; $CREATED_BY = $arRes['CREATED_BY']; $el_edit_url = \Goodde\YandexTurbo\CGooddeYandexTurboTools::GetAdminElementEditLink($arRes["ID"], 'goodde_feed_edit.php?ID='); $row =& $lAdmin->AddRow($arRes["ID"], $arRes); if (in_array("ACTIVE", $visibleHeaderColumns)) { $row->AddViewField("ACTIVE", $arRes['ACTIVE'] == 'Y'?Loc::getMessage("GOODDE_TYRBO_API_YES"):Loc::getMessage("GOODDE_TYRBO_API_NO")); } if (in_array("SERVER_ADDRESS", $visibleHeaderColumns)) { $row->AddViewField("IN_AGENT", $arRes['IN_AGENT'] == 'Y'?Loc::getMessage("GOODDE_TYRBO_API_YES"):Loc::getMessage("GOODDE_TYRBO_API_NO")); } if (in_array("IN_AGENT", $visibleHeaderColumns)) { if($arRes['FIELDS']['IS_SUBDOMAIN'] == 'Y' && $arRes['FIELDS']['HOST_ID_SUBDOMAIN']) { $row->AddViewField("SERVER_ADDRESS", \Goodde\YandexTurbo\Model\Request::getHostNamebyYandexHostId($arRes['FIELDS']['HOST_ID_SUBDOMAIN'])); } } if(in_array("ID", $visibleHeaderColumns) && intval($arRes["ID"]) > 0) { $row->AddViewField("ID", '<a href="'.$el_edit_url.'" title="ID">'.$arRes["ID"].'</a>'); } if(in_array('MODIFIED_BY', $visibleHeaderColumns) && intval($MODIFIED_BY) > 0) { if(!array_key_exists($MODIFIED_BY, $arUsersCache)) { $rsUser = CUser::GetByID($MODIFIED_BY); $arUsersCache[$MODIFIED_BY] = $rsUser->Fetch(); } if($arUser = $arUsersCache[$MODIFIED_BY]) $row->AddViewField("MODIFIED_BY", '[<a href="user_edit.php?lang='.LANGUAGE_ID.'&ID='.$MODIFIED_BY.'" title="'.GetMessage("IBLIST_A_USERINFO").'">'.$MODIFIED_BY."</a>] (".htmlspecialcharsEx($arUser["LOGIN"]).") ".htmlspecialcharsEx($arUser["NAME"]." ".$arUser["LAST_NAME"])); } if(in_array("CREATED_BY", $visibleHeaderColumns) && intval($CREATED_BY) > 0) { if(!array_key_exists($CREATED_BY, $arUsersCache)) { $rsUser = CUser::GetByID($CREATED_BY); $arUsersCache[$CREATED_BY] = $rsUser->Fetch(); } if($arUser = $arUsersCache[$CREATED_BY]) $row->AddViewField("CREATED_BY", '[<a href="user_edit.php?lang='.LANGUAGE_ID.'&ID='.$CREATED_BY.'" title="'.GetMessage("IBLIST_A_USERINFO").'">'.$CREATED_BY."</a>] (".htmlspecialcharsEx($arUser["LOGIN"]).") ".htmlspecialcharsEx($arUser["NAME"]." ".$arUser["LAST_NAME"])); } $arActions[] = array("ICON" => "edit", "TEXT" => Loc::getMessage("GOODDE_TYRBO_API_EDIT"), "ACTION" => $lAdmin->ActionRedirect($el_edit_url), "DEFAULT" => true,); if ('Y' == $arRes['IN_AGENT']) { $arActions[] = array( "TEXT" => Loc::getMessage("GOODDE_TYRBO_API_AGENT_DEL"), "TITLE" => Loc::getMessage("GOODDE_TYRBO_API_AGENT_DESCR_DEL"), "ACTION" => $lAdmin->ActionRedirect("/bitrix/admin/goodde_feed_list.php?lang=".LANGUAGE_ID."&".bitrix_sessid_get()."&ACTION=AGENT&FEED_ID=".$arRes['ID']), ); } else { $arActions[] = array( "TEXT" => Loc::getMessage("GOODDE_TYRBO_API_AGENT"), "TITLE" => Loc::getMessage("GOODDE_TYRBO_API_AGENT_DESCR"), "ACTION" => "ShowAgentForm('".$APPLICATION->GetCurPage()."?lang=".LANGUAGE_ID."&".bitrix_sessid_get()."&ACTION=AGENT&FEED_ID=".$arRes['ID']."');", ); } if($POST_RIGHT >= "W") $arActions[] = array("ICON" => "delete", "TEXT" => Loc::getMessage("GOODDE_TYRBO_API_DELETE"), "ACTION" => "if(confirm('" . GetMessageJS("GOODDE_TYRBO_API_DEL_CONF") . "')) " . $lAdmin->ActionDoGroup($arRes["ID"], "delete"),); $row->AddActions($arActions); } $lAdmin->AddFooter( array( array( "title" => Loc::getMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $myData->SelectedRowsCount() ), array( "counter" => true, "title" => Loc::getMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0" ), ) ); $lAdmin->AddGroupActionTable(Array( "delete"=>Loc::getMessage("MAIN_ADMIN_LIST_DELETE"), "activate"=>Loc::getMessage("MAIN_ADMIN_LIST_ACTIVATE"), "deactivate"=>Loc::getMessage("MAIN_ADMIN_LIST_DEACTIVATE"), )); $aContext = array(); if (empty($aContext)) { $aContext[] = array( "ICON" => "btn_new", "TEXT" => Loc::getMessage("GOODDE_TYRBO_API_ADD"), "LINK" => \Goodde\YandexTurbo\CGooddeYandexTurboTools::GetAdminElementEditLink(0, 'goodde_feed_edit.php?ID='), "LINK_PARAM" => "", "TITLE" => Loc::getMessage("GOODDE_TYRBO_API_ADD") ); } $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode(); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?> <div id="form_shadow" style="display:none;" class="float-form-shadow"> </div> <div id="agent_form" style="display:none;" class="float-form"> <form name="agentform" id="agentform" action="" method="post"> <table class="edit-table"> <tbody> <tr> <td style="white-space: nowrap; font-size: 12px;"><? echo Loc::getMessage("GOODDE_TYRBO_API_RUN_INTERVAL"); ?></td> <td><input type="text" name="agent_period" value="" size="10"></td> </tr> </tbody> <tfoot> <tr> <td colspan="2" style="text-align: center;"> <input type="submit" value="<? echo Loc::getMessage("GOODDE_TYRBO_API_SET"); ?>"> <input type="button" value="<? echo Loc::getMessage("GOODDE_TYRBO_API_CLOSE"); ?>" onclick="HideAgentForm();"> </td> </tr> </tfoot> </table> </form> </div> <form name="find_form" method="GET" action="<?echo $APPLICATION->GetCurPageParam()?>?"> <? $oFilter = new CAdminFilter( $sTableId."_filter", array( Loc::getMessage("GOODDE_TYRBO_API_FILTER_NAME"), Loc::getMessage("GOODDE_TYRBO_API_FILTER_ACTIVE"), ) ); $oFilter->Begin(); ?> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_FILTER_NAME")?>:</td> <td> <input type="text" name="filter_name" value="<?=htmlspecialcharsbx($filter_name)?>"> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_FILTER_ACTIVE")?>:</td> <td> <select name="filter_active"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_ALL")?></option> <option value="Y"<?if ($filter_active=="Y") echo " selected"?>><?=Loc::getMessage("GOODDE_TYRBO_API_YES")?></option> <option value="N"<?if ($filter_active=="N") echo " selected"?>><?=Loc::getMessage("GOODDE_TYRBO_API_NO")?></option> </select> </td> </tr> <? $oFilter->Buttons( array( "table_id" => $sTableId, "url" => $APPLICATION->GetCurPageParam("", $arFilterFields), "form" => "find_form" ) ); $oFilter->End(); ?> </form> <? if($_GET["success_export"] == "Y") { CAdminMessage::ShowNote(Loc::getMessage("GOODDE_TYRBO_API_SUCCESS")); } $lAdmin->DisplayList(); echo BeginNote(); echo Loc::getMessage("GOODDE_TYRBO_API_EXPORT_SETUP_CAT")?> /bitrix/php_interface/include/yandex_turbo/<br><br> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES1");?><br><br> <?if ($bWindowsHosting):?> <b><?=Loc::getMessage("GOODDE_TYRBO_API_NOTES2");?></b> <?else:?> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES3");?> <b><?echo $_SERVER["DOCUMENT_ROOT"];?>/bitrix/crontab/crontab.cfg</b> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES4");?><br> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES5");?><br> <b>crontab <?echo $_SERVER["DOCUMENT_ROOT"];?>/bitrix/crontab/crontab.cfg</b><br> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES6");?><br> <b>crontab -l</b><br> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES7");?><br> <b>crontab -r</b><br><br> <? $arRetval = array(); @exec("crontab -l", $arRetval); if (is_array($arRetval) && !empty($arRetval)) { echo Loc::getMessage("GOODDE_TYRBO_API_NOTES8");?><br> <textarea name="crontasks" cols="70" rows="5" readonly> <? echo htmlspecialcharsbx(implode("\n", $arRetval))."\n"; ?> </textarea><br> <? } echo Loc::getMessage("GOODDE_TYRBO_API_NOTES10");?><br><br> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES11_EXT", array('#FILE#' => '/bitrix/php_interface/include/yandex_turbo/cron_frame.php'));?><br> <?=Loc::getMessage("GOODDE_TYRBO_API_NOTES12_EXT");?><br> <?=Loc::getMessage('GOODDE_TYRBO_API_NOTES13_EXT', array('#FOLDER#' => '/bitrix/modules/'.$moduleId.'/load/')); endif; echo EndNote(); ?> <script type="text/javascript"> function ShowDiv(div, shadow) { var obDiv = BX(div); var obShadow = BX(shadow); if (!!obDiv && !!obShadow) { var obCoord = BX.GetWindowSize(); BX.style(obDiv, 'display', 'block'); BX.style(obShadow, 'display', 'block'); var l = parseInt(obCoord.scrollLeft + obCoord.innerWidth/2 - obDiv.offsetWidth/2); var t = parseInt(obCoord.scrollTop + obCoord.innerHeight/2 - obDiv.offsetHeight/2); BX.adjust(obDiv, {style: {left: l + "px", top: t + "px"}}); BX.adjust(obShadow, {style: {left: (l+4) + "px", top: (t+4) + "px", width: obDiv.offsetWidth + 'px', height: obDiv.offsetHeight + 'px'}}); } } function HideDiv(div, shadow) { var obDiv = BX(div); var obShadow = BX(shadow); if (!!obDiv && !!obShadow) { BX.style(obDiv, 'display', 'none'); BX.style(obShadow, 'display', 'none'); } } function SetForm(form, strAction) { var obForm = BX(form); if (!!obForm) { obForm.action = strAction; var obTbl = BX.findChild(obForm, {tag: 'table', className: 'edit-table'}, false, false); if (!!obTbl) { var n = obTbl.tBodies[0].rows.length; for (var i=0; i<n; i++) { if (obTbl.tBodies[0].rows[i].cells.length > 1) { BX.addClass(obTbl.rows[i].cells[0], 'adm-detail-content-cell-l'); BX.addClass(obTbl.rows[i].cells[1], 'adm-detail-content-cell-r'); } } } BX.adminFormTools.modifyFormElements(obTbl); return true; } return false; } function ShowAgentForm(strAction) { if (SetForm('agentform', strAction)) { ShowDiv('agent_form', 'form_shadow'); } } function HideAgentForm() { HideDiv('agent_form', 'form_shadow'); } </script> <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>