Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.35 KB | None | 0 0
  1. <?php
  2. require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_before.php');
  3. require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_admin_after.php');  
  4.  
  5. $moduleID = 'fss.corpsite';
  6.  
  7.  
  8. $module_id = basename(dirname(__FILE__));
  9. use Bitrix\Main\Localization\Loc;
  10.  
  11. Loc::loadMessages($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/options.php");
  12. Loc::loadMessages(__FILE__);
  13. if($_SERVER['REQUEST_METHOD'] === 'GET'){
  14.     $GLOBALS['APPLICATION']->SetTitle(GetMessage('settings_title'));
  15. }  
  16. CJSCore::Init(array("jquery"));
  17. $filter = Array();
  18. $rsGroups = CGroup::GetList(($by="c_sort"), ($order="desc"), $filter);
  19. $groups = array();
  20. while($rsGroups->NavNext(true, "f_")):
  21.     if($f_ID != 1)
  22.         $groups[$f_ID] = $f_NAME;
  23. endwhile;
  24.  
  25. $options = include_once "options_cfg.php";
  26. $BD_RIGHT = $APPLICATION->GetGroupRight($module_id);
  27. $arSites = array();
  28. $db_res = CSite::GetList($by , $sort ,array("ACTIVE"=>"Y"));
  29. while($res = $db_res->Fetch()){
  30.     $arSites[] = $res;
  31. }
  32. if($REQUEST_METHOD=="POST" && strlen($Update.$Apply.$RestoreDefaults)>0  && check_bitrix_sessid()){
  33.  
  34.     if(strlen($RestoreDefaults)>0){
  35.         \Bitrix\Main\Config\Option::delete($module_id);
  36.     }else{
  37.         \Bitrix\Main\Config\Option::delete($module_id);
  38.  
  39.         foreach ($_POST as $site=>$option){
  40.             foreach($_POST[$site] as $key=>$val){
  41.                 if(substr_count($key,'FSS_CF_')>0){
  42.                     \Bitrix\Main\Config\Option::set($module_id,$key,$val,$site);
  43.                 }else{
  44.  
  45.                 }
  46.             }
  47.         }
  48.  
  49.         foreach($arSites as $site){
  50.  
  51.             foreach($options as $arOptionS){
  52.                 if(is_array($arOptionS) && $arOptionS[1]!=='fss_custom'){
  53.                     if($arOptionS[1] == 'file_field'){
  54.                         $_POST[$site['ID']][$arOptionS[0]] = $_POST[$arOptionS[0].'_'.$site['ID']];
  55.                     }
  56.  
  57.  
  58.                     if($arOptionS[3][0] == "checkbox" && !isset($_POST[$site['ID']][$arOptionS[0]]))
  59.                         $_POST[$site][$arOptionS[0]] = "N";
  60.  
  61.  
  62.  
  63.                     \Bitrix\Main\Config\Option::set($module_id,$arOptionS[0],$_POST[$site['ID']][$arOptionS[0]],$site['ID']);
  64.                 }
  65.             }
  66.         }
  67.     }
  68. }
  69. $by = "id";
  70. $sort = "asc";
  71.  
  72. $arTabs = array();
  73. foreach($arSites as $key => $arSite){
  74.     $arTabs[] = array(
  75.         "DIV" => "fss_options_".($key+1),
  76.         "TAB" => GetMessage('setting_tabs').' '.$arSite["NAME"].' ['.$arSite["ID"].']',
  77.         "ICON" => "settings",
  78.         "TITLE" => GetMessage('setting_tabs').' '.$arSite["NAME"].'['.$arSite["ID"].']',
  79.         "PAGE_TYPE" => "site_settings",
  80.         "SITE_ID" => $arSite["ID"],
  81.     );
  82. }
  83.  
  84. $tabControl = new \CAdminTabControl("tabControl", $arTabs);
  85. $tabControl->Begin();
  86. ?>
  87. <script>
  88.     function toggleRelationField(el,rel){
  89.         var name = el.attr('name').split('[')[1].split(']')[0];
  90.         if(el.attr('type')=='checkbox'){
  91.             if(el.is(':checked')){
  92.                 el.closest('.adm-detail-content-table').find('.'+name+'_rel').show();
  93.             }else{
  94.                 el.closest('.adm-detail-content-table').find('.'+name+'_rel').hide();
  95.             }
  96.         }else{
  97.             el.closest('.adm-detail-content-table').find('.'+name+'_rel').hide();
  98.             el.closest('.adm-detail-content-table').find('.sub_fields_'+rel).show();
  99.         }
  100.     }
  101. </script>
  102. <form method="post" action="<? echo $APPLICATION->GetCurPage() ?>?mid=<?= urlencode($mid) ?>&lang=<? echo LANGUAGE_ID ?>">
  103.     <?php
  104.     foreach($arTabs as $key => $arTab){
  105.  
  106.         $tabControl->BeginNextTab();
  107.         foreach ($options as $arOption) {
  108.             if($arOption[1]=='file_field'){
  109.                 $uploaded = \Bitrix\Main\Config\Option::get($module_id,$arOption[0],'',$arTab['SITE_ID']);
  110.  
  111.                 ?>
  112.                 <tr>
  113.                     <td colspan="2">
  114.                         <?php
  115.                         if($uploaded){
  116.                             $logo_path = CFile::GetPath($uploaded);
  117.                             ?>
  118.                             <div>
  119.                                 <input type="hidden" name="<?=$arOption[0].'_'.$arTab['SITE_ID']?>" value="<?=$uploaded?>"/>
  120.                                 <img src="<?php echo $logo_path; ?>" alt="">
  121.                             </div>
  122.                             <?php
  123.                         }
  124.  
  125.                         $APPLICATION->IncludeComponent("bitrix:main.file.input", "drag_n_drop",
  126.                             array(
  127.                                 "INPUT_NAME"=>$arOption[0].'_'.$arTab['SITE_ID'],
  128.                                 "MULTIPLE"=>"N",
  129.                                 "MODULE_ID"=>"main",
  130.                                 "MAX_FILE_SIZE"=>"",
  131.                                 "ALLOW_UPLOAD"=>"I",
  132.                                 "ALLOW_UPLOAD_EXT"=>""
  133.                             ),
  134.                             false
  135.                         );?>
  136.                     </td>
  137.                 </tr>
  138.             <?}elseif($arOption[1]=='fss_custom'){
  139.                 if($arOption[3]=='textarea'):?>
  140.                     <?php $htmlOptions = ''; foreach ($arOption['htmlOptions'] as $o_key=>$o_val){$htmlOptions.=' '.$o_key.'="'.$o_val.'"';}?>
  141.                     <tr>
  142.                     <td style="vertical-align: top;"><?php echo $arOption[2]; ?></td>
  143.                     <td>
  144.                     <textarea name="<?=$arTab['SITE_ID'];?>[<?php echo $arOption[0]; ?>]" <?php echo $htmlOptions ?>><?=\Bitrix\Main\Config\Option::get($module_id,$arOption[0],'',$arTab['SITE_ID']);?></textarea>
  145.  
  146.                     </td>
  147.                     </tr>
  148.                 <?php endif; if($arOption[3]=='select'):?>
  149.                     <tr>
  150.                         <td><?php echo $arOption[2]; ?></td>
  151.                         <td>
  152.                             <?php $htmlOptions = ''; foreach ($arOption['htmlOptions'] as $o_key=>$o_val){$htmlOptions.=' '.$o_key.'="'.$o_val.'"';}?>
  153.                             <?php $keys_for_rel = array(); ?>
  154.                             <select name="<?=$arTab['SITE_ID'];?>[<?php echo $arOption[0]; ?>]"<?php echo $htmlOptions ?>>
  155.                                 <?php foreach($arOption['values'] as $key=>$item): ?>
  156.                                     <?php $keys_for_rel[] = $key; ?>
  157.                                     <option <?php if(\Bitrix\Main\Config\Option::get($module_id,$arOption[0],'',$arTab['SITE_ID'])==$key): ?> selected <?php endif; ?> value="<?php echo $key; ?>"><?php echo $item; ?></option>
  158.                                 <?php endforeach; ?>
  159.                             </select>
  160.                         </td>
  161.                     </tr>
  162.                 <?php endif; ?>
  163.                 <?php if($arOption[3]=='checkbox'):?>
  164.                     <tr>
  165.                         <td><?php echo $arOption[2]; ?></td>
  166.                         <td>
  167.                             <?php $htmlOptions = ''; foreach ($arOption['htmlOptions'] as $o_key=>$o_val){$htmlOptions.=' '.$o_key.'="'.$o_val.'"';}?>
  168.                             <?php $keys_for_rel = array('Y'); ?>
  169.                             <input name="<?=$arTab['SITE_ID'];?>[<?php echo $arOption[0]; ?>]" type="checkbox" value="Y" <?php if(\Bitrix\Main\Config\Option::get($module_id,$arOption[0],'',$arTab['SITE_ID'])==='Y'): ?> checked <?php endif; ?> <?php echo $htmlOptions; ?>/>
  170.                         </td>
  171.                     </tr>
  172.                 <?php endif; ?>
  173.                 <?php foreach ($keys_for_rel as $k_): ?>
  174.                     <?php if(isset($arOption['relation_fields'][$k_])): ?>
  175.                         <?php foreach($arOption['relation_fields'][$k_] as $subField): ?>
  176.                             <?php if($subField[2]=='checkbox'):?>
  177.                                 <tr class="<?php echo $arOption[0]; ?>_rel sub_fields_<?php echo $k_; ?>" <?php if(\Bitrix\Main\Config\Option::get($module_id,$arOption[0],'',$arTab['SITE_ID'])!==$k_): ?> style="display: none;" <?php endif; ?>>
  178.                                     <td><?php echo $subField[1]; ?></td>
  179.                                     <td>
  180.                                         <input name="<?=$arTab['SITE_ID'];?>[<?php echo $subField[0]; ?>]" type="checkbox" value="Y" <?php if(\Bitrix\Main\Config\Option::get($module_id,$subField[0],'',$arTab['SITE_ID'])==='Y'): ?> checked <?php endif; ?>/>
  181.                                     </td>
  182.                                 </tr>
  183.                             <?php endif; ?>
  184.                             <?php if($subField[2]=='text'):?>
  185.                                 <tr class="<?php echo $arOption[0]; ?>_rel sub_fields_<?php echo $k_; ?>" <?php if(\Bitrix\Main\Config\Option::get($module_id,$arOption[0],'',$arTab['SITE_ID'])!==$k_): ?> style="display: none;" <?php endif; ?>>
  186.                                     <td><?php echo $subField[1]; ?></td>
  187.                                     <td>
  188.                                         <input name="<?=$arTab['SITE_ID'];?>[<?php echo $subField[0]; ?>]" type="text" value="<?php echo \Bitrix\Main\Config\Option::get($module_id,$subField[0],'',$arTab['SITE_ID']); ?>" />
  189.                                     </td>
  190.                                 </tr>
  191.                             <?php endif; ?>
  192.                         <?php endforeach; ?>
  193.                     <?php endif; ?>
  194.                 <?php endforeach; ?>
  195.             <?php }else{
  196.                 if($arOption[0] == 'BD_SITE_TIMEZONE_OFFSET'){
  197.                     ?>
  198.                     <tr>
  199.                         <td align="center" colspan="2"><?=GetMessage('server_time')?>: <?=date('H:i:s')?>, <?=GetMessage('server_time2')?></td>
  200.                     </tr>
  201.                     <?php
  202.                 }
  203.                 //BD__AdmSettingsDrawRow($module_id, $arOption,$arTab['SITE_ID']);
  204.             }
  205.         }
  206.     }
  207.  
  208.     ?>
  209.  
  210.     <?$tabControl->Buttons();?>
  211.     <input name="Update" value="" type="hidden">
  212.     <input class="adm-btn-save" type="submit" name="Apply" value="<?=Loc::getMessage("MAIN_OPT_APPLY")?>" title="<?=Loc::getMessage("MAIN_OPT_APPLY_TITLE")?>">
  213.     <?if(strlen($_REQUEST["back_url_settings"])>0):?>
  214.         <input type="button" name="Cancel" value="<?=Loc::getMessage("MAIN_OPT_CANCEL")?>" title="<?=Loc::getMessage("MAIN_OPT_CANCEL_TITLE")?>" onclick="window.location='<?=htmlspecialchars(CUtil::addslashes($_REQUEST["back_url_settings"]))?>'">
  215.         <input type="hidden" name="back_url_settings" value="<?=htmlspecialchars($_REQUEST["back_url_settings"])?>">
  216.     <?endif?>
  217.  
  218.     <?=bitrix_sessid_post();?>
  219.     <?php $tabControl->End(); ?>
  220. </form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement