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/abricos.chatgpt/load/ |
Upload File : |
<? //<title>chatgpt</title> /** @global CDatabase $DB */ /** @global CUser $USER */ /** @global CMain $APPLICATION */ /** @global string $ACTION */ /** @global array $arOldSetupVars */ /** @global int $IBLOCK_ID */ /** @global string $SETUP_FILE_NAME */ /** @global string $SETUP_SERVER_NAME */ /** @global mixed $V */ /** @global mixed $XML_DATA */ /** @global string $SETUP_PROFILE_NAME */ use Bitrix\Main, Bitrix\Iblock; CModule::IncludeModule("abricos.chatgpt"); include_once('lib.php'); IncludeModuleLangFile(__FILE__); global $APPLICATION, $USER; $arSetupErrors = array(); if($_GET['PROFILE_ID']) { global $DB; $strSql ="SELECT * FROM `abricos_chatgpt_profile` WHERE `id`=".$DB->ForSql($_GET['PROFILE_ID']).";"; $res = $DB->Query($strSql, false, $err_mess.__LINE__); $arOldSetupVars=array(); while ($row = $res->Fetch()) { $SETUP_PROFILE_NAME=$row['name_prof']; $statusKey=$row['period']; $arOldSet=explode('&',$row['SETUP_VARS']); $arOldSetupVars['V']=array(); $arOldSetupVars['CHATGPT_PROP']=array(); foreach($arOldSet as $valSet) { $arOl=explode('=',$valSet); if($posAr=strpos($arOl[0],'[')) { $nameAr=substr($valSet,0,($posAr)); $arOldSetupVars[$nameAr][]=$arOl[1]; } else $arOldSetupVars[$arOl[0]]=$arOl[1]; } } } $strAllowExportPath ="/"; if ($_GET['PROFILE_ID']) { if (isset($arOldSetupVars['IBLOCK_ID'])) $IBLOCK_ID = $arOldSetupVars['IBLOCK_ID']; if (isset($arOldSetupVars['SITE_ID'])) $SITE_ID = $arOldSetupVars['SITE_ID']; if (isset($arOldSetupVars['SETUP_FILE_NAME'])) $SETUP_FILE_NAME = str_replace($strAllowExportPath,'',$arOldSetupVars['SETUP_FILE_NAME']); if (isset($arOldSetupVars['SETUP_PROFILE_NAME'])) $SETUP_PROFILE_NAME = $arOldSetupVars['SETUP_PROFILE_NAME']; if (isset($arOldSetupVars['V'])) $V = $arOldSetupVars['V']; if (isset($arOldSetupVars['CHATGPT_PERIOD'])) $CHATGPT_PERIOD = $arOldSetupVars['CHATGPT_PERIOD']; if (isset($arOldSetupVars['CHATGPT_DESCR'])) $CHATGPT_DESCR = $arOldSetupVars['CHATGPT_DESCR']; if (isset($arOldSetupVars['CHATGPT_QUESTION'])) $CHATGPT_QUESTION = $arOldSetupVars['CHATGPT_QUESTION']; if (isset($arOldSetupVars['CHATGPT_TEMPLATE_CAT'])) $CHATGPT_TEMPLATE_CAT = $arOldSetupVars['CHATGPT_TEMPLATE_CAT']; if (isset($arOldSetupVars['CHATGPT_TEMPLATE_CAT_CUSTOM'])) $CHATGPT_TEMPLATE_CAT_CUSTOM = $arOldSetupVars['CHATGPT_TEMPLATE_CAT_CUSTOM']; if (isset($arOldSetupVars['CHATGPT_ANSWER_TO'])) $CHATGPT_ANSWER_TO = $arOldSetupVars['CHATGPT_ANSWER_TO']; if (isset($arOldSetupVars['CHATGPT_HTML'])) $CHATGPT_HTML = $arOldSetupVars['CHATGPT_HTML']; if (isset($arOldSetupVars['CHATGPT_INIBLOCK'])) $CHATGPT_INIBLOCK = $arOldSetupVars['CHATGPT_INIBLOCK']; if (isset($arOldSetupVars['CHATGPT_KEY'])) $CHATGPT_KEY = $arOldSetupVars['CHATGPT_KEY']; if (isset($arOldSetupVars['MAX_TOKENS'])) $MAX_TOKENS = $arOldSetupVars['MAX_TOKENS']; if (isset($arOldSetupVars['NO_DESCR'])) $NO_DESCR = $arOldSetupVars['NO_DESCR']; } if ($STEP > 1){ $IBLOCK_ID = (int)$IBLOCK_ID; $rsIBlocks = CIBlock::GetByID($IBLOCK_ID); if ($IBLOCK_ID <= 0 || !($arIBlock = $rsIBlocks->Fetch())) { $arSetupErrors[] = GetMessage("CET_ERROR_NO_IBLOCK1")." #".$IBLOCK_ID." ".GetMessage("CET_ERROR_NO_IBLOCK2"); } else { $bRightBlock = !CIBlockRights::UserHasRightTo($IBLOCK_ID, $IBLOCK_ID, "iblock_admin_display"); if ($bRightBlock) { $arSetupErrors[] = str_replace('#IBLOCK_ID#',$IBLOCK_ID,GetMessage("CET_ERROR_IBLOCK_PERM")); } } $SITE_ID = trim($SITE_ID); if ($SITE_ID === '') { $arSetupErrors[] = GetMessage('BX_CATALOG_EXPORT_YANDEX_ERR_EMPTY_SITE'); } else { $iterator = Main\SiteTable::getList(array( 'select' => array('LID'), 'filter' => array('=LID' => $SITE_ID, '=ACTIVE' => 'Y') )); $site = $iterator->fetch(); if (empty($site)) { $arSetupErrors[] = GetMessage('BX_CATALOG_EXPORT_YANDEX_ERR_BAD_SITE'); } } if (!isset($SETUP_FILE_NAME) || $SETUP_FILE_NAME == '') { $arSetupErrors[] = GetMessage("CET_ERROR_NO_FILENAME"); } elseif ($APPLICATION->GetFileAccessPermission($strAllowExportPath.$SETUP_FILE_NAME) < "W") { $arSetupErrors[] = str_replace("#FILE#", $strAllowExportPath.$SETUP_FILE_NAME, GetMessage('CET_YAND_RUN_ERR_SETUP_FILE_ACCESS_DENIED')); } $SETUP_SERVER_NAME = (isset($SETUP_SERVER_NAME) ? trim($SETUP_SERVER_NAME) : ''); $COMPANY_NAME = (isset($COMPANY_NAME) ? trim($COMPANY_NAME) : ''); if (empty($arSetupErrors)) { $bAllSections = false; $arSections = array(); if (!empty($V) && is_array($V)) { foreach ($V as $key => $value) { if (trim($value) == "0") { $bAllSections = true; break; } $value = (int)$value; if ($value > 0) $arSections[] = $value; } } if (!$bAllSections && !empty($arSections)) { $arCheckSections = array(); $rsSections = CIBlockSection::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID, 'ID' => $arSections), false, array('ID')); while ($arOneSection = $rsSections->Fetch()) { $arCheckSections[] = $arOneSection['ID']; } $arSections = $arCheckSections; } if (!$bAllSections && empty($arSections)) { $arSetupErrors[] = GetMessage("CET_ERROR_NO_GROUPS"); $V = array(); } } if (is_array($V)) { $V = array_unique(array_values($V),SORT_NUMERIC); $_REQUEST['V'] = $V; } if (is_array($CHATGPT_PROP)) { $CHATGPT_PROP = array_unique(array_values($CHATGPT_PROP)); $_REQUEST['CHATGPT_PROP'] = $CHATGPT_PROP; } //$arCatalog = CCatalogSku::GetInfoByIBlock($IBLOCK_ID); if (!isset($USE_HTTPS) || $USE_HTTPS != 'Y') $USE_HTTPS = 'N'; if (isset($_POST['MAX_EXECUTION_TIME']) && is_string($_POST['MAX_EXECUTION_TIME'])) $maxExecutionTime = $_POST['MAX_EXECUTION_TIME']; $maxExecutionTime = (!isset($maxExecutionTime) ? 0 : (int)$maxExecutionTime); if ($maxExecutionTime < 0) $maxExecutionTime = 0; if ($ACTION=="EXPORT_SETUP" || $ACTION=="EXPORT_EDIT" || $ACTION=="EXPORT_COPY") { if (!isset($SETUP_PROFILE_NAME) || $SETUP_PROFILE_NAME == '') $arSetupErrors[] = GetMessage("CET_ERROR_NO_PROFILE_NAME"); } if (!empty($arSetupErrors)) { $STEP = 1; } } if (!empty($arSetupErrors)) ShowError(implode('<br>', $arSetupErrors)); $actionParams = "?ACTION=SAVE"; ?> <style> .notif{ padding-left: 10px; font-size: 11px; color: #4a4a4a; } .buttonSet{ cursor: pointer; float: left; border: 1px dashed #5e99c3; margin: 5px; padding: 10px; background-color: #a9cafb; } .show{display:table-row!important} .none{display:none!important} .active{background-color: #5cf341;} </style> <? CJSCore::Init(array("jquery")); ?> <form method="post" action="<?echo $APPLICATION->GetCurPage().$actionParams ?>" name="chatgpt_setup_form" id="chatgpt_setup_form" > <? $aTabs = array( array("DIV" => "yand_edit1", "TAB" => GetMessage("CAT_ABRICOS_CHATGPT_TAB1"), "ICON" => "store", "TITLE" => GetMessage("CAT_ABRICOS_CHATGPT_TAB1")), ); $tabControl = new CAdminTabControl("tabChatgpt", $aTabs, false, true); $tabControl->Begin(); $tabControl->BeginNextTab(); if ($STEP == 1) { if (!isset($SITE_ID)) $SITE_ID = ''; if (!isset($XML_DATA)) $XML_DATA = ''; $siteList = array(); $iterator = Main\SiteTable::getList(array( 'select' => array('LID', 'NAME', 'SORT'), 'filter' => array('=ACTIVE' => 'Y'), 'order' => array('SORT' => 'ASC') )); while ($row = $iterator->fetch()) $siteList[$row['LID']] = $row['NAME']; unset($row, $iterator); $iblockIds = array(); $iblockSites = array(); $iblockMultiSites = array(); $iterator = Iblock\IblockTable::getList(array()); while ($row = $iterator->fetch()) { $row['PRODUCT_IBLOCK_ID'] = (int)$row['PRODUCT_IBLOCK_ID']; $row['IBLOCK_ID'] = (int)$row['IBLOCK_ID']; if ($row['PRODUCT_IBLOCK_ID'] > 0) { if ($row['PRODUCT_IBLOCK_ACTIVE'] == 'Y') $iblockIds[$row['PRODUCT_IBLOCK_ID']] = true; } else { if ($row['IBLOCK_ACTIVE'] == 'Y') $iblockIds[$row['IBLOCK_ID']] = true; } } unset($row, $iterator); if (!empty($iblockIds)) { $activeIds = array(); $iterator = Iblock\IblockSiteTable::getList(array( 'select' => array('IBLOCK_ID', 'SITE_ID', 'SITE_SORT' => 'SITE.SORT'), 'filter' => array('@IBLOCK_ID' => array_keys($iblockIds), '=SITE.ACTIVE' => 'Y'), 'order' => array('IBLOCK_ID' => 'ASC', 'SITE_SORT' => 'ASC') )); while ($row = $iterator->fetch()) { $id = (int)$row['IBLOCK_ID']; if (!isset($iblockSites[$id])) $iblockSites[$id] = array( 'ID' => $id, 'SITES' => array() ); $iblockSites[$id]['SITES'][] = array( 'ID' => $row['SITE_ID'], 'NAME' => $siteList[$row['SITE_ID']] ); if (!isset($iblockMultiSites[$id])) $iblockMultiSites[$id] = false; else $iblockMultiSites[$id] = true; $activeIds[$id] = true; } unset($id, $row, $iterator); if (empty($activeIds)) { $iblockIds = array(); $iblockSites = array(); $iblockMultiSites = array(); } else { $iblockIds = array_intersect_key($iblockIds, $activeIds); } unset($activeIds); } if (empty($iblockIds)) { } $currentList = array(); if ($IBLOCK_ID > 0 && isset($iblockIds[$IBLOCK_ID])) { $currentList = $iblockSites[$IBLOCK_ID]['SITES']; if ($SITE_ID === '') { $firstSite = reset($currentList); $SITE_ID = $firstSite['ID']; } } if($IBLOCK_ID>0) { $dbRes = CIBlockProperty::GetList( array('SORT' => 'ASC'), array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y') ); $arIBlock['PROPERTY'] = array(); while ($arRes = $dbRes->Fetch()) { $arIBlock['PROPERTY'][$arRes['ID']] = $arRes; } } ?> <? if(!CAbricosChatgptLib::CurlInstalled()) {?> <tr><td colspan=2><div align="center"><?=GetMessage("CURL")?></div></td></tr> <?}?> <? if($statusKey==10) {?> <tr><td colspan=2><div align="center"><b><?=GetMessage("KeyError")?></b></div></td></tr> <?}?> <? if(CModule::IncludeModuleEx("abricos.chatgpt")==2) {?> <tr><td colspan=2><div align="center"><?=GetMessage("DEMO")?></div></td></tr> <? }?> <? if(CModule::IncludeModuleEx("abricos.chatgpt")==3) {?> <tr><td colspan=2><div align="center"><?=GetMessage("DEMO_OFF")?></div></td></tr> <? }?> <tr> <td width="40%"><?=GetMessage('BX_CATALOG_EXPORT_IBLOCK'); ?></td> <td width="60%"><? echo GetIBlockDropDownListEx( $IBLOCK_ID, 'IBLOCK_TYPE_ID', 'IBLOCK_ID', array( 'ID' => array_keys($iblockIds), 'CHECK_PERMISSIONS' => 'Y', 'MIN_PERMISSION' => 'U' ), "ClearSelected(); changeIblockSites(0); BX('id_ifr').src='/bitrix/tools/abricos.chatgpt/chatgpt_util.php?IBLOCK_ID=0&'+'".bitrix_sessid_get()."';", "ClearSelected(); changeIblockSites(this[this.selectedIndex].value); BX('id_ifr').src='/bitrix/tools/abricos.chatgpt/chatgpt_util.php?IBLOCK_ID='+this[this.selectedIndex].value+'&'+'".bitrix_sessid_get()."';", 'class="adm-detail-iblock-types"', 'class="adm-detail-iblock-list"' ); ?> <script type="text/javascript"> var TreeSelected = []; <? $intCountSelected = 0; if (!empty($V) && is_array($V)) { foreach ($V as $oneKey) { ?>TreeSelected[<? echo $intCountSelected ?>] = <? echo (int)$oneKey; ?>; <? $intCountSelected++; } } ?> function ClearSelected() { BX.showWait(); TreeSelected = []; } </script> </td> </tr> <tr id="tr_SITE_ID" style="display: <?=(count($currentList) > 1 ? 'table-row' : 'none' ); ?>;"> <td width="40%"><?=GetMessage('BX_CATALOG_EXPORT_CHATGPT_SITE'); ?></td> <td width="60%"> <script type="text/javascript"> function changeIblockSites(iblockId) { var iblockSites = <?=CUtil::PhpToJSObject($iblockSites); ?>, iblockMultiSites = <?=CUtil::PhpToJSObject($iblockMultiSites); ?>, tableRow = null, siteControl = null, i, currentSiteList; tableRow = BX('tr_SITE_ID'); siteControl = BX('SITE_ID'); if (!BX.type.isElementNode(tableRow) || !BX.type.isElementNode(siteControl)) return; for (i = siteControl.length-1; i >= 0; i--) siteControl.remove(i); if (typeof(iblockSites[iblockId]) !== 'undefined') { currentSiteList = iblockSites[iblockId]['SITES']; for (i = 0; i < currentSiteList.length; i++) { siteControl.appendChild(BX.create( 'option', { props: {value: BX.util.htmlspecialchars(currentSiteList[i].ID)}, html: BX.util.htmlspecialchars('[' + currentSiteList[i].ID + '] ' + currentSiteList[i].NAME) } )); } } if (siteControl.length > 0) siteControl.selectedIndex = 0; else siteControl.selectedIndex = -1; BX.style(tableRow, 'display', (siteControl.length > 1 ? 'table-row' : 'none')); } </script> <select id="SITE_ID" name="SITE_ID"> <? foreach ($currentList as $site) { $selected = ($site['ID'] == $SITE_ID ? ' selected' : ''); $name = '['.$site['ID'].'] '.$site['NAME']; ?><option value="<?=htmlspecialcharsbx($site['ID']); ?>"<?=$selected; ?>><?=htmlspecialcharsbx($name); ?></option><? } unset($name, $selected, $site); ?> </select> </td> </tr> <tr> <td width="40%" valign="top"><?echo GetMessage("CET_SELECT_GROUP");?></td> <td width="60%"><? /* if ($intCountSelected) { foreach ($V as $oneKey) { $oneKey = (int)$oneKey; ?><input type="hidden" value="<? echo $oneKey; ?>" name="V[]" id="oldV<? echo $oneKey; ?>"><? } unset($oneKey); } */ ?><div id="tree"></div> <script type="text/javascript"> BX.showWait(); clevel = 0; function delOldV(obj) { if (!!obj) { var intSelKey = BX.util.array_search(obj.value, TreeSelected); if (obj.checked == false) { if (-1 < intSelKey) { TreeSelected = BX.util.deleteFromArray(TreeSelected, intSelKey); } var objOldVal = BX('oldV'+obj.value); if (!!objOldVal) { objOldVal.parentNode.removeChild(objOldVal); objOldVal = null; } } else { if (-1 == intSelKey) { TreeSelected[TreeSelected.length] = obj.value; } } } } function buildNoMenu() { var buffer; buffer = '<?echo GetMessageJS("CET_FIRST_SELECT_IBLOCK");?>'; BX('tree', true).innerHTML = buffer; BX.closeWait(); } function buildMenu() { var i, buffer, imgSpace, space; buffer = '<table border="0" cellspacing="0" cellpadding="0">'; buffer += '<tr>'; buffer += '<td colspan="2" valign="top" align="left"><input type="checkbox" name="V[]" value="0" id="v0"'+(BX.util.in_array(0,TreeSelected) ? ' checked' : '')+' onclick="delOldV(this);"><label for="v0"><font class="text"><b><?echo CUtil::JSEscape(GetMessage("CET_ALL_GROUPS"));?></b></font></label></td>'; buffer += '</tr>'; for (i in Tree[0]) { if (!Tree[0][i]) { space = '<input type="checkbox" name="V[]" value="'+i+'" id="V'+i+'"'+(BX.util.in_array(i,TreeSelected) ? ' checked' : '')+' onclick="delOldV(this);"><label for="V'+i+'"><span class="text">' + Tree[0][i][0] + '</span></label>'; imgSpace = ''; } else { space = '<input type="checkbox" name="V[]" value="'+i+'"'+(BX.util.in_array(i,TreeSelected) ? ' checked' : '')+' onclick="delOldV(this);"><a href="javascript: collapse(' + i + ')"><span class="text"><b>' + Tree[0][i][0] + '</b></span></a>'; imgSpace = '<img src="/bitrix/images/load/plus.gif" width="13" height="13" id="img_' + i + '" OnClick="collapse(' + i + ')">'; } buffer += '<tr>'; buffer += '<td width="20" valign="top" align="center">' + imgSpace + '</td>'; buffer += '<td id="node_' + i + '">' + space + '</td>'; buffer += '</tr>'; } buffer += '</table>'; BX('tree', true).innerHTML = buffer; BX.adminPanel.modifyFormElements('chatgpt_setup_form'); BX.closeWait(); } function collapse(node) { if (!BX('table_' + node)) { var i, buffer, imgSpace, space; buffer = '<table border="0" id="table_' + node + '" cellspacing="0" cellpadding="0">'; for (i in Tree[node]) { if (!Tree[node][i]) { space = '<input type="checkbox" name="V[]" value="'+i+'" id="V'+i+'"'+(BX.util.in_array(i,TreeSelected) ? ' checked' : '')+' onclick="delOldV(this);"><label for="V'+i+'"><font class="text">' + Tree[node][i][0] + '</font></label>'; imgSpace = ''; } else { space = '<input type="checkbox" name="V[]" value="'+i+'"'+(BX.util.in_array(i,TreeSelected) ? ' checked' : '')+' onclick="delOldV(this);"><a href="javascript: collapse(' + i + ')"><font class="text"><b>' + Tree[node][i][0] + '</b></font></a>'; imgSpace = '<img src="/bitrix/images/load/plus.gif" width="13" height="13" id="img_' + i + '" OnClick="collapse(' + i + ')">'; } buffer += '<tr>'; buffer += '<td width="20" align="center" valign="top">' + imgSpace + '</td>'; buffer += '<td id="node_' + i + '">' + space + '</td>'; buffer += '</tr>'; } buffer += '</table>'; BX('node_' + node).innerHTML += buffer; BX('img_' + node).src = '/bitrix/images/load/minus.gif'; } else { var tbl = BX('table_' + node); tbl.parentNode.removeChild(tbl); BX('img_' + node).src = '/bitrix/images/load/plus.gif'; } BX.adminPanel.modifyFormElements('chatgpt_setup_form'); } </script> <iframe src="/bitrix/tools/abricos.chatgpt/chatgpt_util.php?IBLOCK_ID=<?=intval($IBLOCK_ID)?>&<? echo bitrix_sessid_get(); ?>" id="id_ifr" name="ifr" style="display:none"></iframe> </td> </tr> <tr > <td width="40%"><? echo GetMessage('CHATGPT_DESCR_NO'); ?></td> <td width="60%"> <input type="hidden" name="NO_DESCR" value="N"> <input type="checkbox" name="NO_DESCR" value="Y"<? echo ($NO_DESCR == 'Y' ? ' checked' : ''); ?> </td> </tr> <tr> <td width="40%"><? echo GetMessage('CHATGPT_HTML'); ?></td> <td width="60%"> <input type="hidden" name="CHATGPT_HTML" value="N"> <input type="checkbox" name="CHATGPT_HTML" value="Y"<? echo ($CHATGPT_HTML == 'Y' ? ' checked' : ''); ?> </td> </tr> <tr> <td width="40%" class="adm-detail-content-cell-l"><?=GetMessage('CHATGPT_QUESTION'); ?></td> <td width="60%" id="questionCatId"> <select name="CHATGPT_QUESTION" id="templCat"> <option value="name"<? echo($CHATGPT_QUESTION == "name" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_QUESTION_CAT_NAME'); ?></option> <option value="descr"<? echo($CHATGPT_QUESTION == "descr" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_QUESTION_CAT_DESCR'); ?></option> </select> </td> </tr> <tr> <td width="40%" class="adm-detail-content-cell-l"><? echo GetMessage('CHATGPT_TEMPLATE'); ?></td> <td width="60%"> <select name="CHATGPT_TEMPLATE_CAT" id="templcat"> <option value="category"<? echo($CHATGPT_TEMPLATE_CAT == "descr" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_QUESTION_CAT_DESCR'); ?></option> <option value="seo-title"<? echo($CHATGPT_TEMPLATE_CAT == "seo-title" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_CAT_TITLE'); ?></option> <option value="seo-key"<? echo($CHATGPT_TEMPLATE_CAT == "seo-key" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_CAT_KEYWORDS'); ?></option> <option value="seo-descr"<? echo($CHATGPT_TEMPLATE_CAT == "seo-descr" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_SEO-DESCR'); ?></option> <option value="custom"<? echo($CHATGPT_TEMPLATE_CAT == "custom" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_CUSTOM'); ?></option> </select> </td> </tr> <script> $('#templcat').change(function(){ var selectval= $(this).val(); if( selectval== 'custom' ) { $('#customTemplcat').show(); } else { $('#customTemplcat').hide(); } }); </script> <tr id="customTemplcat" <? if($CHATGPT_TEMPLATE_CAT!="custom"){?> style="display:none;"<?}?>> <td width="40%" class="adm-detail-content-cell-l"><? echo GetMessage('CHATGPT_TEMPLATE_CUSTOM'); ?></td> <td width="60%"> <textarea maxlength="500" cols="40" rows="5" name="CHATGPT_TEMPLATE_CAT_CUSTOM" ><?=$CHATGPT_TEMPLATE_CAT_CUSTOM?></textarea><br> <?=GetMessage('CHATGPT_TEMPLATE_CAT_CUSTOM_NOTE');?> </td> </tr> <tr> <td width="40%" class="adm-detail-content-cell-l"><?=GetMessage('CHATGPT_ANSWER_TO'); ?></td> <td width="60%" id="answerCatId"> <select name="CHATGPT_ANSWER_TO" id="templ"> <option value="descr"<? echo($CHATGPT_ANSWER_TO== "descr" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_QUESTION_CAT_DESCR'); ?></option> <option value="title"<? echo($CHATGPT_ANSWER_TO== "title" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_CAT_TITLE'); ?></option> <option value="keywords"<? echo($CHATGPT_ANSWER_TO== "keywords" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_CAT_KEYWORDS'); ?></option> <option value="description"<? echo($CHATGPT_ANSWER_TO == "description" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_TEMPLATE_CAT_TITLE'); ?></option> </td> </tr> <tr > <td width="40%"><?echo GetMessage("MAX_TOKENS");?></td> <td width="60%"> <input type="text" name="MAX_TOKENS" value="<?echo htmlspecialcharsbx($MAX_TOKENS) ?>" size="30"> </td> </tr> <tr > <td width="40%"><? echo GetMessage('CHATGPT_INIBLOCK'); ?></td> <td width="60%"> <input type="hidden" name="CHATGPT_INIBLOCK" value="N"> <input type="checkbox" name="CHATGPT_INIBLOCK" value="Y"<? echo ($CHATGPT_INIBLOCK == 'Y' ? ' checked' : ''); ?> </td> </tr> <tr> <td width="40%" style="padding-top: 0;"> </td> <td width="60%" style="padding-top: 0;"><small><?=GetMessage("CHATGPT_INIBLOCK_NOTE");?></small></td> </tr> <tr class="heading newall"> <td colspan="2"><?=GetMessage('CHATGPT_ALL'); ?></td> </tr> <? $maxExecutionTime = (isset($maxExecutionTime) ? (int)$maxExecutionTime : 0); $array = explode(PHP_EOL, trim(COption::GetOptionString("abricos.chatgpt", "ABRICOS_CHATGPT_API"))); if(count($array)>1) { ?> <tr> <td width="40%"><? echo GetMessage('CHATGPT_KEY'); ?></td> <td width="60%"> <select name="CHATGPT_KEY"> <option value="rand"<? echo($CHATGPT_KEY == "rand" ? ' selected' : ''); ?>><?=GetMessage('CHATGPT_KEY_RAND'); ?></option> <? foreach($array as $key=>$value) { ?> <option value="<?=$key?>"<? echo(($CHATGPT_KEY != "rand" and $CHATGPT_KEY == $key) ? ' selected' : ''); ?>><?=$value; ?></option> <?}?> </select> </td> </tr> <? } else $CHATGPT_KEY=0; if ($ACTION=="EXPORT_SETUP" || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY' || $ACTION == 'NEW' || $ACTION == 'SAVE' ) { ?><tr> <td width="40%"><?echo GetMessage("CET_PROFILE_NAME");?></td> <td width="60%"> <input type="text" name="SETUP_PROFILE_NAME" value="<?echo htmlspecialcharsbx($SETUP_PROFILE_NAME) ?>" size="30" id="profile_name"> </td> </tr><? } } $tabControl->EndTab(); $tabControl->BeginNextTab(); if ($STEP==2) { $FINITE = true; } $tabControl->EndTab(); $tabControl->Buttons(); ?><? echo bitrix_sessid_post();?><? if ($ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') { ?><input type="hidden" name="PROFILE_ID" value="<? echo intval($PROFILE_ID); ?>"><? } if (2 > $STEP) { ?><input type="hidden" name="lang" value="<?echo LANGUAGE_ID ?>"> <input type="hidden" name="ACT_FILE" value="chatgpt"> <input type="hidden" name="VAR" value="EDITCAT"> <input type="hidden" name="ACTION" value="SAVE"> <input type="hidden" name="STEP" value="<?echo intval($STEP) + 1 ?>"> <input type="hidden" name="SETUP_FIELDS_LIST" value="V,IBLOCK_ID,SITE_ID,CHATGPT_DESCR,CHATGPT_QUESTION,CHATGPT_TEMPLATE_CAT,CHATGPT_ANSWER_TO,CHATGPT_HTML,CHATGPT_TEMPLATE_CAT_CUSTOM,CHATGPT_INIBLOCK,CHATGPT_KEY,MAX_TOKENS,VAR,NO_DESCR"> <input type="submit" id="save_button" value="<?echo ($ACTION=="EXPORT")?GetMessage("CET_EXPORT"):GetMessage("CET_SAVE")?>"><? } $tabControl->End(); ?></form> <script type="text/javascript"> <?if ($STEP < 2):?> tabChatgpt.SelectTab("yand_edit1"); tabChatgpt.DisableTab("yand_edit2"); <?elseif ($STEP == 2):?> tabChatgpt.SelectTab("yand_edit2"); tabChatgpt.DisableTab("yand_edit1"); <?endif;?> </script>