Advertisement
Guest User

Untitled

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