PageRenderTime 25ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/main/admin/geoip_handler_edit.php

https://gitlab.com/alexprowars/bitrix
PHP | 219 lines | 189 code | 26 blank | 4 comment | 13 complexity | 7983821889be07e4435a22ca3ee06c0c MD5 | raw file
  1. <?
  2. /**
  3. * @global CUser $USER
  4. * @global CMain $APPLICATION
  5. */
  6. use \Bitrix\Main\Localization\Loc,
  7. \Bitrix\Main\Service\GeoIp;
  8. require_once(dirname(__FILE__)."/../include/prolog_admin_before.php");
  9. if(!$USER->CanDoOperation('edit_other_settings'))
  10. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  11. Loc::loadMessages(__FILE__);
  12. $className = isset($_REQUEST['CLASS_NAME']) ? htmlspecialcharsbx($_REQUEST['CLASS_NAME']) : '';
  13. $id = intval($_REQUEST["ID"]) > 0 ? intval($_REQUEST["ID"]) : 0;
  14. $errMess = null;
  15. $handler = GeoIp\Manager::getHandlerByClassName($className);
  16. if(!$handler)
  17. LocalRedirect(!empty($_REQUEST["back_url"]) ? $_REQUEST["back_url"] : 'geoip_handlers_list.php?lang='.LANG);
  18. if($_SERVER['REQUEST_METHOD'] == "POST" && ($_POST['save'] <> "" || $_POST['apply'] <> "") && check_bitrix_sessid())
  19. {
  20. $fields = array(
  21. "CLASS_NAME" => $className,
  22. "SORT" => intval($_POST["SORT"]),
  23. "ACTIVE" => $_POST["ACTIVE"] == 'Y' ? 'Y' : 'N',
  24. "CONFIG" => $handler->createConfigField($_POST),
  25. );
  26. if($id > 0)
  27. {
  28. $res = GeoIp\HandlerTable::update($id, $fields);
  29. }
  30. else
  31. {
  32. $res = GeoIp\HandlerTable::add($fields);
  33. }
  34. if($res->isSuccess())
  35. {
  36. $id = $res->getId();
  37. if(isset($_POST['apply']))
  38. LocalRedirect("geoip_handler_edit.php?lang=".LANG."&ID=".$id."&CLASS_NAME=".urlencode($className));
  39. else
  40. LocalRedirect(!empty($_REQUEST["back_url"]) ? $_REQUEST["back_url"] : 'geoip_handlers_list.php?lang='.LANG);
  41. }
  42. else
  43. {
  44. $errMess = new CAdminMessage(
  45. implode("\n<br>", $res->getErrorMessages()
  46. ));
  47. }
  48. }
  49. $providingData = $handler->getProvidingData();
  50. $APPLICATION->SetTitle(Loc::getMessage('GEOIP_EDIT_TITLE'));
  51. require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
  52. $menu = array(
  53. array(
  54. "TEXT" => Loc::getMessage('GEOIP_EDIT_LIST'),
  55. "TITLE" => Loc::getMessage('GEOIP_EDIT_LIST_T'),
  56. "LINK"=>"geoip_handlers_list.php?lang=".LANG,
  57. "ICON"=>"btn_list",
  58. )
  59. );
  60. if($id > 0)
  61. {
  62. $menu[] = array(
  63. "TEXT" => Loc::getMessage('GEOIP_EDIT_DELETE'),
  64. "TITLE" => Loc::getMessage('GEOIP_EDIT_DELETE_T'),
  65. "LINK" => "javascript:if(confirm('".GetMessage("GEOIP_EDIT_DELETE_CONFIRM")."')) window.location='geoip_handlers_list.php?ID=".$id."&action=delete&lang=".LANG."&".bitrix_sessid_get()."';",
  66. "ICON" => "btn_delete",
  67. );
  68. }
  69. $context = new CAdminContextMenu($menu);
  70. $context->Show();
  71. if($errMess)
  72. echo $errMess->Show();
  73. $aTabs = array(
  74. array("DIV" => "edit1", "TAB" => Loc::getMessage('GEOIP_EDIT_MAIN_SETTINGS'), "TITLE" => Loc::getMessage('GEOIP_EDIT_MAIN_SETTINGS_T')),
  75. array("DIV" => "edit2", "TAB" => Loc::getMessage('GEOIP_EDIT_SPECIFIC_SETTINGS'), "TITLE" => Loc::getMessage('GEOIP_EDIT_SPECIFIC_SETTINGS_T')),
  76. );
  77. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  78. ?>
  79. <form method="POST" action="<?= $APPLICATION->GetCurPage()?>" name="geoip_handlers_form">
  80. <?=bitrix_sessid_post()?>
  81. <input type="hidden" name="ID" value=<?=$id?>>
  82. <input type="hidden" name="lang" value="<?=LANGUAGE_ID?>">
  83. <?
  84. $tabControl->Begin();
  85. $tabControl->BeginNextTab();
  86. ?>
  87. <?if($id > 0):?>
  88. <tr>
  89. <td width="40%"><?=Loc::getMessage('GEOIP_EDIT_F_ID')?>:</td>
  90. <td width="60%"><?=$id?></td>
  91. </tr>
  92. <?endif;?>
  93. <tr>
  94. <td><?=Loc::getMessage('GEOIP_EDIT_F_TITLE')?>:</td>
  95. <td><?=$handler->getTitle()?></td>
  96. </tr>
  97. <tr>
  98. <td><?=Loc::getMessage('GEOIP_EDIT_F_DESCRIPTION')?>:</td>
  99. <td><?=$handler->getDescription()?></td>
  100. </tr>
  101. <tr>
  102. <td><?=Loc::getMessage('GEOIP_EDIT_F_ACTIVE')?>:</td>
  103. <td><input type="checkbox" name="ACTIVE" value="Y"<?=$handler->isActive() ? ' checked' : ''?>></td>
  104. </tr>
  105. <tr>
  106. <td><?=Loc::getMessage('GEOIP_EDIT_F_SORT')?>:</td>
  107. <td><input type="text" name="SORT" size="3" maxlength="10" value="<?=$handler->getSort()?>"></td>
  108. </tr>
  109. <tr>
  110. <td><?=Loc::getMessage('GEOIP_EDIT_F_CLASS')?>:</td>
  111. <td><input type="text" name="CLASS_NAME" size="45" maxlength="255" value="<?=$className?>" readonly></td>
  112. </tr>
  113. <tr>
  114. <td><?=Loc::getMessage('GEOIP_EDIT_F_IS_INSTALLED')?>:</td>
  115. <td><input type="checkbox" name="IS_INSTALLED" value="Y"<?=$handler->isInstalled() ? ' checked' : ''?> disabled></td>
  116. </tr>
  117. <tr>
  118. <td><?=Loc::getMessage('GEOIP_EDIT_F_LANG')?>:</td>
  119. <td><?=implode(', ', $handler->getSupportedLanguages())?></td>
  120. </tr>
  121. <tr class="heading">
  122. <td colspan="2"><?=Loc::getMessage('GEOIP_EDIT_PROVIDING_INFO')?>:</td>
  123. </tr>
  124. <tr>
  125. <td><?=Loc::getMessage('GEOIP_EDIT_PI_ASN')?>:</td>
  126. <td><input type="checkbox"<?=$providingData->asn ? ' checked' : ''?> disabled></td>
  127. </tr>
  128. <tr>
  129. <td><?=Loc::getMessage('GEOIP_EDIT_PI_COUNTRY_NAME')?>:</td>
  130. <td><input type="checkbox"<?=$providingData->countryName ? ' checked' : ''?> disabled></td>
  131. </tr>
  132. <tr>
  133. <td><?=Loc::getMessage('GEOIP_EDIT_PI_COUNTRY_CODE')?>:</td>
  134. <td><input type="checkbox"<?=$providingData->countryCode ? ' checked' : ''?> disabled></td>
  135. </tr>
  136. <tr>
  137. <td><?=Loc::getMessage('GEOIP_EDIT_PI_REGION_NAME')?>:</td>
  138. <td><input type="checkbox"<?=$providingData->regionName ? ' checked' : ''?> disabled></td>
  139. </tr>
  140. <tr>
  141. <td><?=Loc::getMessage('GEOIP_EDIT_PI_REGION_CODE')?>:</td>
  142. <td><input type="checkbox"<?=$providingData->regionCode ? ' checked' : ''?> disabled></td>
  143. </tr>
  144. <tr>
  145. <td><?=Loc::getMessage('GEOIP_EDIT_PI_SUBREGION_NAME')?>:</td>
  146. <td><input type="checkbox"<?=$providingData->subRegionName ? ' checked' : ''?> disabled></td>
  147. </tr>
  148. <tr>
  149. <td><?=Loc::getMessage('GEOIP_EDIT_PI_CITY_NAME')?>:</td>
  150. <td><input type="checkbox"<?=$providingData->cityName ? ' checked' : ''?> disabled></td>
  151. </tr>
  152. <tr>
  153. <td><?=Loc::getMessage('GEOIP_EDIT_PI_ZIP')?>:</td>
  154. <td><input type="checkbox"<?=$providingData->zipCode ? ' checked' : ''?> disabled></td>
  155. </tr>
  156. <tr>
  157. <td><?=Loc::getMessage('GEOIP_EDIT_PI_LAT')?>:</td>
  158. <td><input type="checkbox"<?=$providingData->latitude ? ' checked' : ''?> disabled></td>
  159. </tr>
  160. <tr>
  161. <td><?=Loc::getMessage('GEOIP_EDIT_PI_LON')?>:</td>
  162. <td><input type="checkbox"<?=$providingData->longitude ? ' checked' : ''?> disabled></td>
  163. </tr>
  164. <tr>
  165. <td><?=Loc::getMessage('GEOIP_EDIT_PI_TIMEZONE')?>:</td>
  166. <td><input type="checkbox"<?=$providingData->timezone ? ' checked' : ''?> disabled></td>
  167. </tr>
  168. <tr>
  169. <td><?=Loc::getMessage('GEOIP_EDIT_PI_ISP')?>:</td>
  170. <td><input type="checkbox"<?=$providingData->ispName ? ' checked' : ''?> disabled></td>
  171. </tr>
  172. <tr>
  173. <td><?=Loc::getMessage('GEOIP_EDIT_PI_ORG')?>:</td>
  174. <td><input type="checkbox"<?=$providingData->organizationName ? ' checked' : ''?> disabled></td>
  175. </tr>
  176. <?$tabControl->BeginNextTab();?>
  177. <?$adminConfigHtml = GeoIp\Manager::getHandlerAdminConfigHtml($handler);?>
  178. <?if(!empty($adminConfigHtml)):?>
  179. <?=$adminConfigHtml?>
  180. <?else:?>
  181. <tr>
  182. <td colspan="2"><?=Loc::getMessage('GEOIP_EDIT_SPECIFIC_ABSENT')?>:</td>
  183. </tr>
  184. <?endif;?>
  185. <?
  186. $tabControl->Buttons(array(
  187. "back_url" => "geoip_handlers_list.php?lang=".LANG,
  188. ));
  189. $tabControl->End();
  190. ?>
  191. </form>
  192. <?
  193. require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");