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\Iblock, Bitrix\Catalog, Bitrix\Currency, Bitrix\Main\Web\Json, Bitrix\Main\Config\Option, Bitrix\Main\Localization\Loc, Goodde\YandexTurbo\Turbo, Goodde\YandexTurbo\FeedTable, Goodde\YandexTurbo\Model\Request; 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"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/prolog.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; } Loader::includeModule('iblock'); $catalogIncluded = Loader::includeModule('catalog'); CJSCore::Init(array('goodde_yandexturboapi')); \Bitrix\Main\Page\Asset::getInstance()->addJs('/bitrix/js/iblock/iblock_edit.js'); \Bitrix\Main\Page\Asset::getInstance()->addJs('https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js'); $POST_RIGHT = $APPLICATION->GetGroupRight("goodde.yandexturboapi"); if ($POST_RIGHT == "D") $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED")); $aTabs = array( array("DIV" => "edit1", "TAB" => Loc::getMessage("GOODDE_TYRBO_API_TAB_MAIN"), "ICON"=>"main_user_edit", "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_TAB_MAIN")), array("DIV" => "edit2", "TAB" => Loc::getMessage("GOODDE_TYRBO_API_TAB_FILTER"), "ICON"=>"main_user_edit", "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_TAB_FILTER_TITLE")), array("DIV" => "edit3", "TAB" => Loc::getMessage("GOODDE_TYRBO_API_TAB_DEBUG"), "ICON"=>"main_user_edit", "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_TAB_DEBUG_TITLE")), array("DIV" => "edit4", "TAB" => Loc::getMessage("GOODDE_TYRBO_API_TAB_PRODUCTION"), "ICON"=>"main_user_edit", "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_TAB_PRODUCTION_TITLE")), ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $ID = intval($ID); $IBLOCK_ID = intval($_REQUEST['IBLOCK_ID']); $message = null; $bVarsFromForm = false; $arProviderKeyByIndex = array( 'call' => 0, 'chat' => 1, 'mail' => 2, 'callback' => 3, 'facebook' => 4, 'google' => 5, 'odnoklassniki' => 6, 'telegram' => 7, 'twitter' => 8, 'viber' => 9, 'vkontakte' => 10, 'whatsapp' => 11, ); if($REQUEST_METHOD == "POST" && ($save!="" || $apply!="") && check_bitrix_sessid()) { $FILTER = $_REQUEST['FILTER']; $arMap = FeedTable::getMap(); $arFields = array(); foreach($arMap as $key => $field) { if(isset($_REQUEST[$key]) && $field['editable']) { if(!is_array($_REQUEST[$key])) { $_REQUEST[$key] = trim($_REQUEST[$key]); } $arFields[$key] = $_REQUEST[$key]; } elseif($field['data_type'] == 'boolean' && $field['editable']) { $arFields[$key] = 'N'; } } if($FILTER['ELEMENTS']) $arFields['ELEMENTS_FILTER'] = $FILTER['ELEMENTS']; else $arFields['ELEMENTS_FILTER'] = array(); if($FILTER['OFFERS']) $arFields['OFFERS_FILTER'] = $FILTER['OFFERS']; else $arFields['OFFERS_FILTER'] = array(); if($catalogIncluded) { $obCond = new CCatalogCondTree(); $boolCond = $obCond->Init(BT_COND_MODE_PARSE, BT_COND_BUILD_CATALOG, array()); if($_POST['FILTER_ELEMENTS_CONDITION']) { $arFields['ELEMENTS_CONDITION'] = $obCond->Parse($_POST['FILTER_ELEMENTS_CONDITION']); } else { $arFields['ELEMENTS_CONDITION'] = array(); } if($_POST['FILTER_OFFERS_CONDITION']) { $arFields['OFFERS_CONDITION'] = $obCond->Parse($_POST['FILTER_OFFERS_CONDITION']); } else { $arFields['OFFERS_CONDITION'] = array(); } } if(is_array($arFields['IPROPERTY_TEMPLATES']) && $ID > 0) { $arSetTemlates = array(); $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($IBLOCK_ID); foreach($arFields['IPROPERTY_TEMPLATES'] as $k => $arIproperty) { $arSetTemlates[$k] = $arIproperty['TEMPLATE']; if(mb_strlen($arIproperty['TEMPLATE']) <= 0) unset($arFields['IPROPERTY_TEMPLATES'][$k]); } $ipropTemlates->set($arSetTemlates); unset($arSetTemlates); } if(!is_array($arFields['PROPERTY'])) { unset($arFields['PROPERTY']); $arFields['PROPERTY'] = array(); } if(!is_array($arFields['OFFERS_PROPERTY'])) { unset($arFields['OFFERS_PROPERTY']); $arFields['OFFERS_PROPERTY'] = array(); } foreach($arFields['PROPERTY'] as $k => $arProperty) { if(mb_strlen($arProperty) <= 0) unset($arFields['PROPERTY'][$k]); } $arFields['PROPERTY'] = array_values($arFields['PROPERTY']); foreach($arFields['OFFERS_PROPERTY'] as $k => $arProperty) { if(mb_strlen($arProperty) <= 0) unset($arFields['OFFERS_PROPERTY'][$k]); } $arFields['OFFERS_PROPERTY'] = array_values($arFields['OFFERS_PROPERTY']); $arFields['LIMIT'] = min(intval($arFields['LIMIT']), 1000); $arFields['FIELDS']['AMOUNT_ITEM'] = min(intval($arFields['FIELDS']['AMOUNT_ITEM']), 10000); $arFields['SERVER_ADDRESS'] = trim($arFields['SERVER_ADDRESS'], '/'); $arFields['FIELDS']['IS_SUBDOMAIN'] = (isset($arFields['FIELDS']['IS_SUBDOMAIN']) ? 'Y' : ''); if($arFields['FIELDS']['IS_SUBDOMAIN'] != 'Y') { $arFields['FIELDS']['HOST_ID_SUBDOMAIN'] = $arFields['FIELDS']['IS_SUBDOMAIN'] = ''; } $arFields['FIELDS']['IS_EXTENDED_HTML'] = (isset($arFields['FIELDS']['IS_EXTENDED_HTML']) ? 'Y' : ''); if($arFields['FIELDS']['IS_EXTENDED_HTML'] != 'Y') { $arFields['FIELDS']['IS_EXTENDED_HTML'] = $arFields['FIELDS']['IS_EXTENDED_HTML'] = ''; } $arFields['RELATED_LIMIT'] = min(intval($arFields['RELATED_LIMIT']), 30); $arFields['RELATED_SOURCE'] = trim($arFields['RELATED_SOURCE']); $arFields['SHARE_NETWORKS'] = is_array($arFields['SHARE_NETWORKS']) ? $arFields['SHARE_NETWORKS'] : array(); $arFields['MENU'] = array(); if(is_array($ids)) { $aMenuLinksTmp = $arFields['MENU']; $aMenuSort = Array(); for($i = 0, $l = count($ids); $i < $l; $i++) { $num = $ids[$i]; if (!isset($aMenuLinksTmp[$num-1]) && $only_edit) continue; if((${"del_".$num}=="Y" || (mb_strlen(${"text_".$num})<=0 && mb_strlen(${"link_".$num})<=0)) && !$only_edit) { unset($aMenuLinksTmp[$num-1]); continue; } $aMenuLinksTmp[$num-1][0] = ${"text_".$num}; $aMenuLinksTmp[$num-1][1] = ${"link_".$num}; $aMenuSort[] = IntVal(${"sort_".$num}); } for($i = 0, $l = count($aMenuSort)-1; $i < $l; $i++) for($j = $i + 1, $len = count($aMenuSort); $j < $len; $j++) if($aMenuSort[$i]>$aMenuSort[$j]) { $tmpSort = $aMenuLinksTmp[$i]; $aMenuLinksTmp[$i] = $aMenuLinksTmp[$j]; $aMenuLinksTmp[$j] = $tmpSort; $tmpSort = $aMenuSort[$i]; $aMenuSort[$i] = $aMenuSort[$j]; $aMenuSort[$j] = $tmpSort; } $arFields['MENU'] = $aMenuLinksTmp; } $arFields['FORM'] = $_REQUEST['FORM']; $arFields['FEEDBACK'] = $_REQUEST['FEEDBACK']; $i = 1; $providerValue = ''; $arRequestFeedback = array(); foreach($_REQUEST['FEEDBACK']['TYPE'] as $key => $arFeedback) { if(!isset($arFeedback['DELETE'])) { if($providerValue = $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']]) $arFeedback['PROVIDER_VALUE'] = array($arFeedback['PROVIDER_KEY'] => $providerValue); elseif($providerValue = $arFeedback['PROVIDER_VALUE'][$arProviderKeyByIndex[$arFeedback['PROVIDER_KEY']]]) $arFeedback['PROVIDER_VALUE'] = array($arFeedback['PROVIDER_KEY'] => $providerValue); else unset($arFeedback['PROVIDER_VALUE']); $arRequestFeedback[$i] = $arFeedback; $i++; } } $arFields['FEEDBACK']['TYPE'] = $arRequestFeedback; unset($arFeedback, $arRequestFeedback); if($ID > 0) { unset($arFields['IBLOCK_ID']); if($arFields['LID']) { $arFields['SERVER_ADDRESS'] = Request::getServerAddress($arFields['LID']); } $arFields['MODIFIED_BY'] = $GLOBALS['USER']->GetID(); $arFields['TIMESTAMP_X'] = new \Bitrix\Main\Type\DateTime(); $result = FeedTable::update($ID, $arFields); } else { if($_REQUEST['LID']) { $arFields['SERVER_ADDRESS'] = Request::getServerAddress($_REQUEST['LID']); } $arFields['IBLOCK_ID'] = $IBLOCK_ID; $arFields['CREATED_BY'] = $GLOBALS['USER']->GetID(); $arFields['DATE_CREATE'] = new \Bitrix\Main\Type\DateTime(); $result = FeedTable::add($arFields); if($result->isSuccess()) { $ID = $result->getId(); } } if($result->isSuccess()) { if ($apply != "") LocalRedirect("/bitrix/admin/goodde_feed_edit.php?ID=".$ID."&mess=ok&lang=".LANG."&".$tabControl->ActiveTabParam()); else LocalRedirect("/bitrix/admin/goodde_feed_list.php?lang=".LANG); } else { if($e = $result->getErrorMessages()) $message = new CAdminMessage(Loc::getMessage("GOODDE_TYRBO_API_ERROR").implode("; ",$e)); $bVarsFromForm = true; } } $arPubDate = array( 'DATE_CREATE' => Loc::getMessage("GOODDE_TYRBO_API_DATE_CREATE"), 'TIMESTAMP_X' => Loc::getMessage("GOODDE_TYRBO_API_TIMESTAMP_X"), 'ACTIVE_FROM' => Loc::getMessage("GOODDE_TYRBO_API_ACTIVE_FROM"), ); $arShareNetworks = array( 'facebook' => 'Facebook', 'odnoklassniki' => Loc::getMessage("GOODDE_TYRBO_API_OK"), 'telegram' => 'Telegram', 'twitter' => 'Twitter', 'vkontakte' => Loc::getMessage("GOODDE_TYRBO_API_VK"), ); $arProps = array(); $arLinkProps = array(); $arPrice = array(); $arPropertyCode = array(); $arPropertyId = array(); $arOffersPropertyId = array(); $arGalleryProps = array(); $arIblockTree = array(); $arIblocks = array(); $str_IPROPERTY_TEMPLATES = array(); $res = CIBlockType::GetList(array('name' => 'asc')); while($arIblockType = $res->Fetch()) { if($arIBType = CIBlockType::GetByIDLang($arIblockType["ID"], LANG)) { $arIblockTree[$arIblockType['ID']] = array( 'NAME' => htmlspecialcharsEx($arIBType["NAME"]), 'IBLOCK' => array(), ); } } $res = CIBlock::GetList(array('name' => 'asc'), array('ACTIVE' => 'Y')); while($arIblock = $res->Fetch()) { $arIblockTree[$arIblock['IBLOCK_TYPE_ID']]['IBLOCK'][$arIblock['ID']] = $arIblock['NAME']; $arIblocks[$arIblock['ID']] = $arIblock['NAME']; } ///res if($ID > 0) { if (!$arFields = FeedTable::getById($ID)->fetch()) $ID = 0; if($arFields['IS_SECTION'] == 'Y') LocalRedirect("/bitrix/admin/goodde_feed_list.php?lang=".LANG); $IBLOCK_ID = $arFields['IBLOCK_ID']; } if ($IBLOCK_ID > 0) { if (empty($arFields['NAME'])) { $arFields['NAME'] = $arIblocks[$IBLOCK_ID]; } } if(empty($arFields['SORT'])) { $arFields['SORT'] = 500; } if(empty($arFields['FIGCAPTION_VIDEO'])) { $arFields['FIGCAPTION_VIDEO'] = Loc::getMessage('GOODDE_TYRBO_API_FIGCAPTION_VIDEO_DEFAULT'); } if(empty($arFields['TEMPLATE'])) { $arFields['TEMPLATE'] = '.default'; } if(empty($arFields['LIMIT'])) { $arFields['LIMIT'] = 100; } if(empty($arFields['FIELDS']['AMOUNT_ITEM'])) { $arFields['FIELDS']['AMOUNT_ITEM'] = 10000; } if(empty($arFields['FIELDS']['IS_SUBDOMAIN'])) { $arFields['FIELDS']['IS_SUBDOMAIN'] = ''; } if(empty($arFields['FIELDS']['IS_EXTENDED_HTML'])) { $arFields['FIELDS']['IS_EXTENDED_HTML'] = ''; } if(empty($arFields['FIELDS']['HOST_ID_SUBDOMAIN'])) { $arFields['FIELDS']['HOST_ID_SUBDOMAIN'] = ''; } if(empty($arFields['RELATED_LIMIT'])) { $arFields['RELATED_LIMIT'] = 4; } if($ID <= 0) { if(!$arFields['ELEMENTS_FILTER']) { $arFields['ELEMENTS_FILTER'] = unserialize('a:1:{s:6:"ACTIVE";s:1:"Y";}'); } if(!$arFields['OFFERS_FILTER']) { $arFields['OFFERS_FILTER'] = unserialize('a:1:{s:6:"ACTIVE";s:1:"Y";}'); } if(empty($arFields['MENU'])) { $arFields['MENU'][] = array( 0 => Loc::getMessage("GOODDE_TYRBO_API_MENU_DEFAULT"), 1 => '/', ); } } else { if(empty($arFields['MENU'])) { $arFields['MENU'][] = array(); } } if($IBLOCK_ID > 0) { $arTemplateList = \Goodde\YandexTurbo\Turbo::getTemplateList(); $ipropTemlates = new \Bitrix\Iblock\InheritedProperty\IblockTemplates($IBLOCK_ID); $str_IPROPERTY_TEMPLATES = $ipropTemlates->findTemplates(); $rsProps = CIBlockProperty::GetList(array('name' => 'asc'), array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y')); while ($arProp = $rsProps->Fetch()) { $arProps['PROPERTY_' . $arProp['CODE']] = $arProp['NAME']; if ($arProp['PROPERTY_TYPE'] != 'F') { $arPropertyCode[$arProp['CODE']] = $arProp['NAME']; $arPropertyId[$arProp['ID']] = $arProp['NAME']; } if ($arProp['PROPERTY_TYPE'] == 'E' && $arProp['LINK_IBLOCK_ID'] == $IBLOCK_ID) { $arLinkProps[$arProp['CODE']] = $arProp['NAME']; } if ($arProp['PROPERTY_TYPE'] == 'F' && $arProp['MULTIPLE'] == 'Y') { $arGalleryProps[$arProp['CODE']] = $arProp['NAME']; } } if($catalogIncluded) { $arCatalog = \CCatalogSKU::GetInfoByIBlock($IBLOCK_ID); if($arCatalog['CATALOG'] == 'Y') { $arPrice = CCatalogIBlockParameters::getPriceTypesList(); if($arCatalog['CATALOG_TYPE'] == \CCatalogSku::TYPE_FULL || $arCatalog['CATALOG_TYPE'] == \CCatalogSku::TYPE_PRODUCT) { $rsProps = CIBlockProperty::GetList(array('name' => 'asc'), array('IBLOCK_ID' => $arCatalog['IBLOCK_ID'], 'ACTIVE' => 'Y', 'MULTIPLE' => 'N')); while ($arProp = $rsProps->Fetch()) { if($arProp['PROPERTY_TYPE'] != 'F') { $arOffersPropertyId[$arProp['ID']] = $arProp['NAME']; } } } } } } if (!is_array($arFields['SHARE_NETWORKS'])) { $arFields['SHARE_NETWORKS'] = array(); } if(!is_array($arFields['PROPERTY'])) { $arFields['PROPERTY'] = array(); } if(!is_array($arFields['OFFERS_PROPERTY'])) { $arFields['OFFERS_PROPERTY'] = array(); } if(!isset($arFields['ITEM_STATUS'])) { $arFields['ITEM_STATUS'] = 'true'; } if($bVarsFromForm) $DB->InitTableVarsForEdit("goodde_yandex_turbo_feed", "", "str_"); $APPLICATION->SetTitle(($ID>0 ? Loc::getMessage("GOODDE_TYRBO_API_EDIT_TITLE").$ID : Loc::getMessage("GOODDE_TYRBO_API_ADD_TITLE"))); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); $aMenu = array( array( "TEXT"=>Loc::getMessage("GOODDE_TYRBO_API_LIST"), "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_LIST_TITLE"), "LINK"=>"goodde_feed_list.php?lang=".LANG, "ICON"=>"btn_list", ) ); if($ID>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT"=>Loc::getMessage("GOODDE_TYRBO_API_ADD"), "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_ADD"), "LINK"=>"goodde_feed_edit.php?lang=".LANG, "ICON"=>"btn_new", ); $aMenu[] = array( "TEXT"=>Loc::getMessage("GOODDE_TYRBO_API_DELETE"), "TITLE"=>Loc::getMessage("GOODDE_TYRBO_API_DELETE"), "LINK"=>"javascript:if(confirm('".Loc::getMessage("GOODDE_TYRBO_API_DELETE_CONF")."'))window.location='goodde_feed_list.php?ID=".$ID."&action=delete&lang=".LANG."&".bitrix_sessid_get()."';", "ICON"=>"btn_delete", ); } function getEditHtml($key = '', $arFeedback = array()) { ?> <div class="form-block <?=($key == 'template' ? 'template' : '')?>" data-form-block="" <?=($key == 'template' ? 'data-form-block-template=""' : '')?>> <span> <select name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][STICK]' : '')?>"> <option <?=($arFeedback['STICK'] == 'left' ? 'selected=""' : '')?> value="left"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_LEFT")?></option> <option <?=($arFeedback['STICK'] == 'right' ? 'selected=""' : '')?> value="right"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_RIGHT")?></option> <option <?=($arFeedback['STICK'] == 'false' ? 'selected=""' : '')?> value="false"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_FALSE")?></option> </select> </span> <span> <select name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_KEY]' : '')?>" data-similar-init=""> <option <?=($arFeedback['PROVIDER_KEY'] == 'call' ? 'selected=""' : '')?> value="call"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_CALL")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'chat' ? 'selected=""' : '')?> value="chat"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_CHAT")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'mail' ? 'selected=""' : '')?> value="mail"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_MAIL")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'callback' ? 'selected=""' : '')?> value="callback"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_CALLBACK")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'facebook' ? 'selected=""' : '')?> value="facebook"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_FACEBOOK")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'google' ? 'selected=""' : '')?> value="google"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_GOOGLE")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'odnoklassniki' ? 'selected=""' : '')?> value="odnoklassniki"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_ODNOKLASSNIKI")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'telegram' ? 'selected=""' : '')?> value="telegram"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_TELEGRAM")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'twitter' ? 'selected=""' : '')?> value="twitter"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_TWITTER")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'viber' ? 'selected=""' : '')?> value="viber"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_VIBER")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'vkontakte' ? 'selected=""' : '')?> value="vkontakte"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_VKONTAKTE")?></option> <option <?=($arFeedback['PROVIDER_KEY'] == 'whatsapp' ? 'selected=""' : '')?> value="whatsapp"><?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_WHATSAPP")?></option> </select> </span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][call]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'call' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][mail]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'mail' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][callback]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'callback' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][facebook]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'facebook' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][google]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'google' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][odnoklassniki]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'odnoklassniki' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][telegram]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'telegram' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][twitter]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'twitter' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][viber]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'viber' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][vkontakte]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'vkontakte' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span data-similar-input=""><input type="text" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][PROVIDER_VALUE][whatsapp]' : '')?>" value="<?=($arFeedback['PROVIDER_KEY'] == 'whatsapp' ? $arFeedback['PROVIDER_VALUE'][$arFeedback['PROVIDER_KEY']] : '')?>"></span> <span class="form-block-remove"><label title="<?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_DELETE")?>"><img src="/bitrix/themes/.default/images/actions/delete_button.gif" alt="<?=GetMessage("GOODDE_TYRBO_API_FEEDBACK_STICK_OP_DELETE")?>"><input data-remove="<?=($key != 'template' ? 'static' : '')?>" type="checkbox" name="<?=($key != 'template' ? 'FEEDBACK[TYPE]['.$key.'][DELETE]' : '')?>"></label></span> </div> <? } $context = new CAdminContextMenu($aMenu); $context->Show(); $arItems = CIBlockParameters::GetPathTemplateMenuItems("DETAIL", "__SetUrlVar", "mnu_DETAIL_URL", "DETAIL_URL"); $u = new CAdminPopupEx( "mnu_DETAIL_URL", $arItems, array("zIndex" => 2000) ); $u->Show(); if($_REQUEST["mess"] == "ok" && $ID>0) CAdminMessage::ShowMessage(array("MESSAGE"=>Loc::getMessage("GOODDE_TYRBO_API_SAVED"), "TYPE"=>"OK")); if($message) echo $message->Show(); elseif($redirectElement->LAST_ERROR!="") CAdminMessage::ShowMessage($redirectElement->LAST_ERROR); ?> <script> BX.ready(function(){ BX.bind(BX('select-iblock'), 'change', function () { var url = $('option:selected', this).data('url'); if (url) { document.location = url; } }); if(BX('feed_fields_table')){ execAjax('changeOfferType'); BX.addCustomEvent('OnChangeFieldRow', function(){ setTimeout(function(){ sortFieldRow(); }, 1000); }); } }); var InheritedPropertiesTemplates = new JCInheritedPropertiesTemplates( 'frm', 'iblock_templates.ajax.php?ENTITY_TYPE=B&ENTITY_ID=<?echo intval($IBLOCK_ID)?>&bxpublic=y' ); BX.ready(function(){ setTimeout(function(){ InheritedPropertiesTemplates.updateInheritedPropertiesTemplates(true); }, 1000); }); function __SetUrlVar(id, mnu_id, el_id) { var obj_ta = BX(el_id); //IE if (document.selection) { obj_ta.focus(); var sel = document.selection.createRange(); sel.text = id; } //FF else if (obj_ta.selectionStart || obj_ta.selectionStart == '0') { var startPos = obj_ta.selectionStart; var endPos = obj_ta.selectionEnd; var caretPos = startPos + id.length; obj_ta.value = obj_ta.value.substring(0, startPos) + id + obj_ta.value.substring(endPos, obj_ta.value.length); obj_ta.setSelectionRange(caretPos, caretPos); obj_ta.focus(); } else { obj_ta.value += id; obj_ta.focus(); } BX.fireEvent(obj_ta, 'change'); obj_ta.focus(); } $(document).ready(function() { if($('[data-subdomain]').length){ $('input[data-subdomain]').change(function(){ if($(this).attr('checked') != 'checked') $(this).closest('.adm-detail-content-table').find('tr[data-optioncode="HOST_ID_SUBDOMAIN"]').each(function(){ $(this).css('display','none'); }); else $(this).closest('.adm-detail-content-table').find('tr[data-optioncode="HOST_ID_SUBDOMAIN"]').each(function(){ $(this).css('display',''); }); }); $('input[data-subdomain]').change(); } }); function getDefaultData() { var obData = { 'FEED[ID]': $('input[type="hidden"][name="ID"]').val(), 'FEED[IBLOCK_ID]': $('input[type="hidden"][name="IBLOCK_ID"]').val(), 'FIELDS[SECTION_ID][]': $('select[name="FILTER[SECTIONS_ID][]"]').val(), 'FEED[USE_CATALOG]': typeof $('input[type="hidden"][name="USE_CATALOG"]').val() === "undefined" ? '' : 'Y', 'FIELDS[USE_SUBSECTIONS]': typeof $('input[name="FILTER[ELEMENTS][INCLUDE_SUBSECTIONS]"]:checked').val() === "undefined" ? '' : 'Y', 'sessid': BX.bitrix_sessid() }; return obData; } function sortFieldRow() { var sortable = $('#feed_fields_table .td-condition.td-condition-sort'); if(sortable) { sortable.sortable({ handle: '.adm-btn-sort' }); sortable.disableSelection(); } } $(function () { $(document).on('click', '#feed_fields_table .controls .adm-btn-add', function () { var curRow = $(this).closest('.field-row'); var cloneRow = curRow.clone(); cloneRow.find('.adm-btn[disabled]').removeAttr('disabled'); cloneRow.insertAfter(curRow); setTimeout(function(){ sortFieldRow(); }, 1); }); }); </script> <div id="wait1" style="position: fixed; float: right; width: 100%; right: 0;"></div> <form id="feed_edit_form" method="POST" action="<?echo $APPLICATION->GetCurPage()?>" enctype="multipart/form-data" name="feed_edit_form"> <?=bitrix_sessid_post();?> <? $tabControl->Begin(); $tabControl->BeginNextTab(); if($ID <= 0) { ?> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_IBLOCK") ?></th> <td width="60%"> <select name="IBLOCK_ID" required id="select-iblock"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_VYBRAT")?></option> <?foreach ($arIblockTree as $arType):?> <optgroup label="<?=$arType['NAME']?>"> <?foreach($arType['IBLOCK'] as $iIblockID => $sIblockName):?> <option value="<?=$iIblockID?>" data-url="<?=$APPLICATION->GetCurPageParam('IBLOCK_ID=' . $iIblockID, ['IBLOCK_ID'])?>" <?=($IBLOCK_ID == $iIblockID ? 'selected' : '')?>> <?=$sIblockName?> </option> <?endforeach;?> </optgroup> <?endforeach;?> </select> </td> </tr> <? } if($IBLOCK_ID > 0) { if($ID > 0) { ?> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_IBLOCK")?></th> <td width="60%"> <?foreach($arIblocks as $iIblockID => $sIblockName):?> <?if($IBLOCK_ID == $iIblockID):?> <?='['.$iIblockID.'] '.$sIblockName?> <?endif;?> <?endforeach;?> </td> </tr> <? } ?> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_LID")?></th> <td width="60%"> <?\Goodde\YandexTurbo\CGooddeYandexTurboTools::ShowLidField('LID', $arFields['LID']);?> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_ACTIVE")?></td> <td> <input type="checkbox" name="ACTIVE" value="Y" <?=($arFields['ACTIVE'] ? ($arFields['ACTIVE'] == 'Y' ? 'checked' : '') : 'checked')?>> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_SORT")?></td> <td> <input type="text" size="10" name="SORT" value="<?=$arFields['SORT']?>"> </td> </tr> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_LIMIT")?></th> <td width="60%"> <input type="text" size="10" name="LIMIT" id="LIMIT" value="<?=$arFields['LIMIT']?>"> </td> </tr> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_AMOUNT_ITEM")?></th> <td width="60%"> <input type="text" size="10" name="FIELDS[AMOUNT_ITEM]" id="AMOUNT_ITEM" value="<?=$arFields['FIELDS']['AMOUNT_ITEM']?>"> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_TEMPLATE")?></td> <td> <select name="TEMPLATE" id="TEMPLATE" style="width:45%"> <?foreach($arTemplateList as $sValue => $name):?> <option value="<?=$sValue?>" <?=($arFields['TEMPLATE'] == $sValue ? 'selected' : '')?>><?=$name?></option> <?endforeach;?> </select> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_DETAIL_URL")?></td> <td> <input type="text" size="60" name="DETAIL_URL" id="DETAIL_URL" size="55" maxlength="255" value="<?=$arFields['DETAIL_URL']?>"> <input type="button" id="mnu_DETAIL_URL" value='...'> </td> </tr> <? if($ID > 0) { ?> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_IPROPERTY_VALUES_TITLE")?></td> <td><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "G_ELEMENT_META_TITLE_".$ID, $str_IPROPERTY_TEMPLATES, "E")?></td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_IPROPERTY_VALUES_PAGE_TITLE")?></td> <td><?echo IBlockInheritedPropertyInput($IBLOCK_ID, "G_ELEMENT_PAGE_TITLE_".$ID, $str_IPROPERTY_TEMPLATES, "E")?></td> </tr> <? } if(!empty($arPrice)) { ?> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_PRICE")?></td> <td width="60%"> <select name="PRICE_CODE" id="PRICE_CODE" style="width:45%"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_NOT_CHOSEN")?></option> <?foreach($arPrice as $sValue => $sLabel):?> <option value="<?=$sValue?>" <?=($arFields['PRICE_CODE'] == $sValue ? 'selected' : '')?>><?=$sLabel?></option> <?endforeach;?> </select> </td> </tr> <? } ?> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_ITEM_STATUS")?></td> <td> <select name="ITEM_STATUS" style="width:45%"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_NOT_CHOSEN")?></option> <option value="false" <?=($arFields['ITEM_STATUS'] == 'false' ? 'selected' : '')?>><?=Loc::getMessage("GOODDE_TYRBO_API_ITEM_STATUS_FALSE")?></option> <option value="true" <?=($arFields['ITEM_STATUS'] == 'true' ? 'selected' : '')?>><?=Loc::getMessage("GOODDE_TYRBO_API_ITEM_STATUS_TRUE")?></option> </select> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_ALL_FEED")?></td> <td> <input type="checkbox" name="ALL_FEED" id="ALL_FEED" value="Y" <?=($arFields['ALL_FEED'] == 'Y' ? 'checked="checked"' : '')?>> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED") ?></td> </tr> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_NAME") ?></th> <td width="60%"> <input type="text" size="60" name="NAME" id="NAME" value="<?= $arFields['NAME']; ?>"> </td> </tr> <? if($ID > 0) { ?> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_SERVER_ADDRESS") ?></th> <td width="60%"> <?=$arFields['SERVER_ADDRESS']?> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_IS_EXTENDED_HTML") ?></td> <td width="60%"> <input id="IS_EXTENDED_HTML" type="checkbox" id="IS_EXTENDED_HTML" value="Y" name="FIELDS[IS_EXTENDED_HTML]" class="adm-designed-checkbox" <?=($arFields['FIELDS']['IS_EXTENDED_HTML'] ? 'checked="checked"' : '')?>> <label class="adm-designed-checkbox-label" for="IS_EXTENDED_HTML"></label> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_IS_DOMAIN") ?></td> <td width="60%"> <input data-subdomain="" id="IS_SUBDOMAIN" type="checkbox" id="IS_SUBDOMAIN" value="Y" name="FIELDS[IS_SUBDOMAIN]" class="adm-designed-checkbox" <?=($arFields['FIELDS']['IS_SUBDOMAIN'] ? 'checked="checked"' : '')?>> <label class="adm-designed-checkbox-label" for="IS_SUBDOMAIN"></label> </td> </tr> <tr> <td colspan="2" align="center"> <? echo BeginNote(); echo Loc::getMessage("GOODDE_TYRBO_API_SUBDOMAIN_NOTE"); echo EndNote(); ?> </td> </tr> <tr data-optioncode="HOST_ID_SUBDOMAIN"> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_HOST_ID_SUBDOMAIN") ?></th> <td width="60%"> <?if($arFields['FIELDS']['HOST_ID_SUBDOMAIN'] <> ''):?> <input type="hidden" id="HOST_ID_SUBDOMAIN" name="FIELDS[HOST_ID_SUBDOMAIN]" value="<?=$arFields['FIELDS']['HOST_ID_SUBDOMAIN']?>"> <?=$arFields['FIELDS']['HOST_ID_SUBDOMAIN']?> <input value="<?=$arFields['FIELDS']['HOST_ID_SUBDOMAIN']?>" name="FIELDS[HOST_ID_SUBDOMAIN]" type="hidden"> <?else:?> <select name="FIELDS[HOST_ID_SUBDOMAIN]" id="HOST_ID_SUBDOMAIN"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_VYBRAT")?></option> <?foreach(\Goodde\YandexTurbo\Model\Request::curHost($arFields['LID']) as $arHost):?> <option value="<?=$arHost['host_id']?>" <?=($arFields['FIELDS']['HOST_ID_SUBDOMAIN'] == $arHost['host_id'] ? 'selected' : '')?>> <?=$arHost['host_id']?> </option> <?endforeach;?> </select> <?endif;?> </td> </tr> <? } ?> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_DESCRIPTION") ?></td> <td width="60%"> <textarea name="DESCRIPTION" cols="60" rows="10"><?=$arFields['DESCRIPTION']?></textarea> </td> </tr> <tr> <td><?=Loc::getMessage("GOODDE_TYRBO_API_FIGCAPTION_VIDEO")?></td> <td> <input type="text" size="60" name="FIGCAPTION_VIDEO" id="FIGCAPTION_VIDEO" value="<?=$arFields['FIGCAPTION_VIDEO']?>"> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_1") ?></td> </tr> <tr> <th width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_CONTENT") ?></th> <td width="60%"> <select name="CONTENT" id="CONTENT" style="width:45%"> <optgroup label="<?=Loc::getMessage("GOODDE_TYRBO_API_FILED_IBLOCK") ?>"> <option value="DETAIL_TEXT" <?= ($arFields['CONTENT'] == 'DETAIL_TEXT' ? 'selected' : ''); ?>> <?=Loc::getMessage("GOODDE_TYRBO_API_DETAIL_TEXT") ?></option> <option value="PREVIEW_TEXT" <?= ($arFields['CONTENT'] == 'PREVIEW_TEXT' ? 'selected' : ''); ?>> <?=Loc::getMessage("GOODDE_TYRBO_API_PREVIEW_TEXT") ?></option> </optgroup> <?if(!empty($arProps)):?> <optgroup label="<?=Loc::getMessage("GOODDE_TYRBO_API_PROPERTY_IBLOCK") ?>"> <?foreach($arProps as $sValue => $sLabel):?> <option value="<?=mb_strtoupper($sValue) ?>" <?=($arFields['CONTENT'] == $sValue ? 'selected' : '')?>><?=$sLabel?></option> <?endforeach;?> </optgroup> <?endif;?> </select> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_PUB_DATE")?></td> <td width="60%"> <select name="PUB_DATE" id="PUB_DATE"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_NOT_CHOSEN")?></option> <?foreach($arPubDate as $sValue => $sLabel):?> <option value="<?=$sValue?>" <?=($arFields['PUB_DATE'] == $sValue ? 'selected' : '')?>> <?=$sLabel?> </option> <?endforeach;?> </select> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_PROPERTY_TITLE")?></td> <td width="60%"> <select name="PROPERTY[]" id="PROPERTY" multiple size="8" style="width:45%"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_NOT_CHOSEN")?></option> <?if($arPropertyId):?> <?foreach($arPropertyId as $sValue => $sLabel):?> <option value="<?=$sValue?>" <?=(in_array($sValue, $arFields['PROPERTY']) ? 'selected' : '')?>><?=$sLabel?></option> <?endforeach; ?> <?endif;?> </select> </td> </tr> <?if($arOffersPropertyId):?> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_OFFERS_PROPERTY_TITLE")?></td> <td width="60%"> <select name="OFFERS_PROPERTY[]" id="OFFERS_PROPERTY" multiple size="8" style="width:45%"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_NOT_CHOSEN")?></option> <?foreach($arOffersPropertyId as $sValue => $sLabel):?> <option value="<?=$sValue?>" <?=(in_array($sValue, $arFields['OFFERS_PROPERTY']) ? 'selected' : '')?>><?=$sLabel?></option> <?endforeach; ?> </select> </td> </tr> <?endif;?> <tr> <td colspan="2" align="center"> <table id="feed_fields_table" cellpadding="0" cellspacing="0" width="100%"></table> </td> </tr> <tr> <td colspan="2" align="center" id="fieldset-item-add-button"> <br> <button class="adm-btn" onclick="customFieldAdd(this); return false;"><?=Loc::getMessage('GOODDE_TYRBO_API_HEADING_FIELD_ADD')?></button> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_2") ?></td> </tr> <tr> <td colspan="2"> <table cellspacing="4" cellpadding="0" width="100%"> <tr> <td align="center"> <table cellPadding="2" cellSpacing="2" border="0" width="60%" id="t" class="internal"> <tr class="heading"> <td align="center" width="35%"><?=Loc::getMessage("GOODDE_TYRBO_API_MENU_NAME")?></td> <td align="center" width="35%"><?=Loc::getMessage("GOODDE_TYRBO_API_MENU_LINK")?></td> <td align="center" width="20%"><?=Loc::getMessage("GOODDE_TYRBO_API_MENU_SORT")?></td> <td align="center" width="10%"><?=Loc::getMessage("GOODDE_TYRBO_API_MENU_DEL")?></td> </tr> <? $itemcnt = 0; for($i = 1, $l = count($arFields['MENU']); $i <= $l; $i++) { $itemcnt++; $aMenuLinksItem = $arFields['MENU'][$i-1]; ?> <tr> <input name="ids[]" value="<?=$i?>" type="hidden"> <td style="padding: 2px;"><input type="text" name="text_<?=$i?>" value="<?=htmlspecialcharsbx($aMenuLinksItem[0])?>" size="40"></td> <td style="padding: 2px;"><input type="text" name="link_<?=$i?>" value="<?=htmlspecialcharsbx($aMenuLinksItem[1])?>" size="40"></td> <td style="padding: 2px;"><input type="text" name="sort_<?=$i?>" value="<?= $i*10?>" size="5"></td> <td align="center" style="padding: 2px;"><input name="del_<?=$i?>" value="Y" id="del_<?=$i?>" class="adm-designed-checkbox" type="checkbox"><label class="adm-designed-checkbox-label" for="del_<?=$i?>" title=""></label></td> </tr> <tr id="<?= $i?>"> <td align="right" colspan="4"><input type="button" onClick="AddMenuItem(this)" value="<?=GetMessage("GOODDE_TYRBO_API_MENU_ADD_ITEM")?>"></td> </tr> <? } ?> </table> </td> </tr> </table> <input type="hidden" name="itemcnt" value="<?=$itemcnt?>"> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_3") ?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_GALLERY_TITLE")?></td> <td width="60%"> <input type="text" size="60" name="GALLERY_TITLE" id="GALLERY_TITLE" value="<?=$arFields['GALLERY_TITLE']?>"> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_RELATED_SOURCE") ?></td> <td width="60%"> <select name="GALLERY" id="GALLERY" style="width:45%"> <option value=""><?=Loc::getMessage("GOODDE_TYRBO_API_NOT_CHOSEN")?></option> <?if(!empty($arGalleryProps)):?> <optgroup label="<?=Loc::getMessage("GOODDE_TYRBO_API_PROPERTY_TYPE_FILE") ?>"> <?foreach ($arGalleryProps as $sValue => $sLabel): ?> <option value="<?=$sValue?>" <?=($arFields['GALLERY'] == $sValue ? 'selected' : '')?>><?=$sLabel?></option> <?endforeach; ?> </optgroup> <?endif;?> </select> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_4")?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_RELATED_SOURCE")?></td> <td width="60%"> <select name="RELATED_SOURCE" id="RELATED_SOURCE" style="width:45%"> <option value="QUEUE" <?=($arFields['RELATED_SOURCE'] == 'QUEUE' ? 'selected' : '')?>><?=Loc::getMessage("GOODDE_TYRBO_API_QUEUE")?></option> <option value="AUTOPARSING" <?=($arFields['RELATED_SOURCE'] == 'AUTOPARSING' ? 'selected' : '')?>><?=Loc::getMessage("GOODDE_TYRBO_API_AUTO_SPARSING")?></option> </select> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_RELATED_LIMIT")?></td> <td width="60%"> <input type="text" size="10" name="RELATED_LIMIT" id="RELATED_LIMIT" value="<?=$arFields['RELATED_LIMIT']?>"> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_SHARE_BUTTON")?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_SERVICES")?></td> <td width="60%"> <?foreach($arShareNetworks as $sValue => $sLabel):?> <label> <input type="checkbox" name="SHARE_NETWORKS[]" value="<?=$sValue?>" <?=(in_array($sValue, $arFields['SHARE_NETWORKS']) ? 'checked' : '')?>> <?=$sLabel?> </label> <?endforeach;?> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_5")?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_RELATED_FORM_AGREEMENT_COMPANY")?>:</td> <td width="60%"> <input type="text" name="FORM[AGREEMENT][COMPANY]" value="<?=$arFields['FORM']['AGREEMENT']['COMPANY']?>" style="width:50%"> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_RELATED_FORM_AGREEMENT_LINK")?>:</td> <td width="60%"> <input type="text" name="FORM[AGREEMENT][LINK]" value="<?=$arFields['FORM']['AGREEMENT']['LINK']?>" style="width:50%"> </td> </tr> <tr class="heading"> <td colspan="2"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_6")?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_FEEDBACK_SHOW")?>:</td> <td width="60%"> <label><input name="FEEDBACK[SHOW]" id="SHOW" value="Y" <?=($arFields['FEEDBACK']['SHOW'] == 'Y' ? ' checked="checked"' : '')?> class="adm-designed-checkbox" type="checkbox"><label class="adm-designed-checkbox-label" for="SHOW" title=""></label></label> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_FEEDBACK_TITLE")?>:</td> <td width="60%"> <input type="text" name="FEEDBACK[TITLE]" value="<?=$arFields['FEEDBACK']['TITLE']?>" style="width:50%"> </td> </tr> <tr> <td colspan="2" style="padding: 15px 15px 3px;text-align: center; color: #4B6267;font-weight: bold; border-bottom: 5px solid #E0E8EA;"><?=Loc::getMessage("GOODDE_TYRBO_API_FEED_7")?></td> </tr> <tr> <td width="40%"></td> <td width="60%" data-clone-container=""> <? getEditHtml('template'); if($arFields['FEEDBACK']['TYPE']) { foreach($arFields['FEEDBACK']['TYPE'] as $key => $arFeedback) { getEditHtml($key, $arFeedback); } } ?> <div data-block-target=""></div> <div class="add-more" ><span class="adm-btn" data-add-more=""><span><?=Loc::getMessage("GOODDE_TYRBO_API_FEEDBACK_TYPE_ADD")?></span></span></div> </td> </tr> <? } $tabControl->BeginNextTab(); ?> <tr class="heading" align="center"> <td colspan="2"><?=Loc::getMessage('GOODDE_TYRBO_API_ELEMENTS_FILTER')?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage('GOODDE_TYRBO_API_FILTER_ACTIVE')?></td> <td width="60%"> <input name="FILTER[ELEMENTS][ACTIVE]" value="Y" type="checkbox"<?=($arFields['ELEMENTS_FILTER']['ACTIVE'] == 'Y' ? ' checked' : '')?>> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_FILTER_ACTIVE_DATE")?></td> <td width="60%"> <input type="checkbox" name="FILTER[ELEMENTS][ACTIVE_DATE]" value="Y" <?=($arFields['ELEMENTS_FILTER']['ACTIVE_DATE'] == 'Y' ? 'checked' : '')?>> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage('GOODDE_TYRBO_API_ELEMENTS_FILTER_SECTION_ACTIVE')?></td> <td width="60%"> <input name="FILTER[ELEMENTS][SECTION_ACTIVE]" value="Y" type="checkbox"<?=($arFields['ELEMENTS_FILTER']['SECTION_ACTIVE'] == 'Y' ? ' checked' : '')?>> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage('GOODDE_TYRBO_API_ELEMENTS_FILTER_SECTION_GLOBAL_ACTIVE')?></td> <td width="60%"> <input name="FILTER[ELEMENTS][SECTION_GLOBAL_ACTIVE]" value="Y" type="checkbox"<?=($arFields['ELEMENTS_FILTER']['SECTION_GLOBAL_ACTIVE'] == 'Y' ? ' checked' : '')?>> </td> </tr> <? if($catalogIncluded && $arCatalog['CATALOG'] == 'Y') { ?> <tr> <td width="40%"><span id="hint_elements_catalog_available"></span> <?=Loc::getMessage('GOODDE_TYRBO_API_FILTER_CATALOG_AVAILABLE')?></td> <td width="60%"> <input name="FILTER[ELEMENTS][CATALOG_AVAILABLE]" value="Y" type="checkbox"<?=($arFields['ELEMENTS_FILTER']['CATALOG_AVAILABLE'] == 'Y' ? ' checked' : '')?>> </td> </tr> <tr id="tr_ELEMENTS_CONDITION"> <td colspan="2"> <div id="ELEMENTS_CONDITION" style="position: relative; z-index: 1;"></div> <? $obCond = new CCatalogCondTree(); $boolCond = $obCond->Init( BT_COND_MODE_DEFAULT, BT_COND_BUILD_CATALOG, array( 'FORM_NAME' => 'feed_edit_form', 'CONT_ID' => 'ELEMENTS_CONDITION', 'JS_NAME' => 'JSCatCond', 'PREFIX' => 'FILTER_ELEMENTS_CONDITION', ) ); if(!$boolCond) { if($ex = $APPLICATION->GetException()) echo $ex->GetString() . "<br>"; } else { $obCond->Show($arFields['ELEMENTS_CONDITION']); } ?> </td> </tr> <? if($arCatalog['CATALOG_TYPE'] == \CCatalogSku::TYPE_FULL || $arCatalog['CATALOG_TYPE'] == \CCatalogSku::TYPE_PRODUCT) { ?> <tr class="heading" align="center"> <td colspan="2"><?=Loc::getMessage('GOODDE_TYRBO_API_OFFERS_FILTER')?></td> </tr> <tr> <td width="40%"><?=Loc::getMessage('GOODDE_TYRBO_API_FILTER_ACTIVE')?></td> <td width="60%"> <input name="FILTER[OFFERS][ACTIVE]" value="Y" type="checkbox"<?=($arFields['OFFERS_FILTER']['ACTIVE'] == 'Y' ? ' checked' : '')?>> </td> </tr> <tr> <td width="40%"><?=Loc::getMessage("GOODDE_TYRBO_API_FILTER_ACTIVE_DATE")?></td> <td width="60%"> <input type="checkbox" name="FILTER[OFFERS][ACTIVE_DATE]" value="Y" <?=($arFields['OFFERS_FILTER']['ACTIVE_DATE'] == 'Y' ? 'checked' : '')?>> </td> </tr> <tr> <td width="40%"><span id="hint_offers_catalog_available"></span> <?=Loc::getMessage('GOODDE_TYRBO_API_FILTER_CATALOG_AVAILABLE')?></td> <td width="60%"> <input name="FILTER[OFFERS][CATALOG_AVAILABLE]" value="Y" type="checkbox"<?=($arFields['OFFERS_FILTER']['CATALOG_AVAILABLE'] == 'Y' ? ' checked' : '')?>> </td> </tr> <tr id="tr_OFFERS_CONDITIONS"> <td colspan="2"> <div id="OFFERS_CONDITION" style="position: relative; z-index: 1;"></div> <? $obCond = new CCatalogCondTree(); $boolCond = $obCond->Init( BT_COND_MODE_DEFAULT, BT_COND_BUILD_CATALOG, array( 'FORM_NAME' => 'feed_edit_form', 'CONT_ID' => 'OFFERS_CONDITION', 'JS_NAME' => 'JSCatCond', 'PREFIX' => 'FILTER_OFFERS_CONDITION', ) ); if(!$boolCond) { if($ex = $APPLICATION->GetException()) echo $ex->GetString() . "<br>"; } else { $obCond->Show($arFields['OFFERS_CONDITION']); } ?> </td> </tr> <? } } ?> <? $tabControl->BeginNextTab(); ?> <input class="adm-btn-save" value="<?=Loc::getMessage("GOODDE_TYRBO_API_RUN")?>" onclick="generateTurboFeed('<?=$ID?>', 'debug_run')" name="debug_run" id="feed_debug_run_button_<?=$ID?>" type="button"> <? $tabControl->BeginNextTab(); ?> <input class="adm-btn-save" value="<?=Loc::getMessage("GOODDE_TYRBO_API_RUN")?>" onclick="generateTurboFeed('<?=$ID?>', 'production_run')" name="production_run" id="feed_production_run_button_<?=$ID?>" type="button"> <? $tabControl->Buttons( array( "disabled"=>false, "back_url"=>"goodde_feed_list.php?lang=".LANG, ) ); ?> <input type="hidden" name="USE_CATALOG" value="<?=($catalogIncluded ? 'Y' : '')?>"> <input type="hidden" name="IBLOCK_ID" value="<?=$IBLOCK_ID?>"> <input type="hidden" name="lang" value="<?=LANG?>"> <?if($ID>0 && !$bCopy):?> <input type="hidden" name="ID" value="<?=$ID?>"> <?endif;?> <? $tabControl->End(); ?> </form> <? $tabControl->ShowWarnings("goodde_feed_edit", $message); ?> <script> function generateTurboFeed(ID, action) { var node = BX('turbo_feed_run'); node.style.display = 'block'; var windowPos = BX.GetWindowSize(); var pos = BX.pos(node); if(pos.top > windowPos.scrollTop + windowPos.innerHeight) { window.scrollTo(windowPos.scrollLeft, pos.top + 150 - windowPos.innerHeight); } BX.runFeed(ID, action, 0, '', ''); } BX.runFeed = function(ID, action, value, pid, NS) { BX.adminPanel.showWait(BX('feed_'+action+'_button_' + ID)); BX.ajax.post('/bitrix/admin/turbo_'+action+'.php', { lang:'<?=LANGUAGE_ID?>', action: action, ID: ID, value: value, pid: pid, NS: NS, sessid: BX.bitrix_sessid() }, function(data) { BX.adminPanel.closeWait(BX('feed_'+action+'_button_' + ID)); BX('turbo_feed_progress').innerHTML = data; }); }; BX.finishTurboFeed = function(ID) { if(ID > 0){ tabControl.SelectTab("edit3"); document.location = "/bitrix/admin/goodde_task_edit.php?ID="+ID+"&lang=<?=LANGUAGE_ID?>"; } else{ tabControl.SelectTab("edit4"); document.location = "/bitrix/admin/goodde_task_list.php?lang=<?=LANGUAGE_ID?>"; } }; function AddMenuItem(ob) { var f = document.feed_edit_form, tbl = document.getElementById("t"), row = ob.parentNode.parentNode, curnum = parseInt(row.id), srt = 10; if(document.feed_edit_form["sort_"+curnum]) srt = parseInt(document.feed_edit_form["sort_"+curnum].value) + 10; for(var i=1; i<=f.itemcnt.value; i++) { var s = document.feed_edit_form["sort_"+i]; if(s) { s = parseInt(s.value); if(s>=srt) document.feed_edit_form["sort_"+i].value = s + 10; } } var num = row.rowIndex / 2; var nums = parseInt(f.itemcnt.value) + 1; var oRow = tbl.insertRow(num * 2 + 1); var oCell = oRow.insertCell(-1); oRow.id = nums; oCell.className = ''; oCell.align='right'; oCell.colSpan="4"; oCell.innerHTML = '<input type="button" onClick="AddMenuItem(this)" value="<?=GetMessage("GOODDE_TYRBO_API_MENU_ADD_ITEM")?>">'; oRow = tbl.insertRow(num * 2 + 1); var cond_str = '<?= $cond_str?>'; cond_str = cond_str.replace(/tmp_menu_item_id/ig, nums); var code = [], start, end, i, cnt; while((start = cond_str.indexOf('<' + 'script>')) != -1) { var end = cond_str.indexOf('</' + 'script>', start); if(end == -1) break; code[code.length] = cond_str.substr(start + 8, end - start - 8); cond_str = cond_str.substr(0, start) + cond_str.substr(end + 9); } for(var i = 0, cnt = code.length; i < cnt; i++) if(code[i] != '') jsUtils.EvalGlobal(code[i]); oCell = oRow.insertCell(-1); oCell.style = 'padding: 2px;'; oCell.innerHTML = '<input type="hidden" name="ids[]" value="'+nums+'">'+ '<input type="text" size="40" name="text_'+nums+'" value="">'; oCell = oRow.insertCell(-1); oCell.style = 'padding: 2px;'; oCell.innerHTML = '<input type="text" size="40" name="link_'+nums+'" value="">'; oCell = oRow.insertCell(-1); oCell.style = 'padding: 2px;'; oCell.innerHTML = '<input type="text" size="5" name="sort_'+nums+'" value="'+srt+'">'; oCell = oRow.insertCell(-1); oCell.align='center'; oCell.style = 'padding: 2px;'; oCell.innerHTML = '<input type="checkbox" name="del_'+nums+'" value="Y" class="adm-designed-checkbox"><label class="adm-designed-checkbox-label" for="del_'+nums+'" title=""></label>'; f.itemcnt.value = nums; } BX.hint_replace(BX('hint_elements_catalog_available'), '<?=CUtil::JSEscape(Loc::getMessage('GOODDE_TYRBO_API_FILTER_CATALOG_AVAILABLE_HINT')); ?>'); BX.hint_replace(BX('hint_offers_catalog_available'), '<?=CUtil::JSEscape(Loc::getMessage('GOODDE_TYRBO_API_FILTER_CATALOG_AVAILABLE_HINT')); ?>'); </script> <div id="turbo_feed_run" style="display: none;"> <div id="turbo_feed_progress"><?=Turbo::showProgress(Loc::getMessage('GOODDE_RUN_INIT'), Loc::getMessage('GOODDE_RUN_TITLE'), 0)?></div> </div> <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>