PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/main/admin/culture_edit.php

https://gitlab.com/alexprowars/bitrix
PHP | 345 lines | 315 code | 24 blank | 6 comment | 25 complexity | bd474689348c4de5214908cfbac89c77 MD5 | raw file
  1. <?
  2. /**
  3. * @global CUser $USER
  4. * @global CMain $APPLICATION
  5. */
  6. use Bitrix\Main;
  7. use Bitrix\Main\Localization\CultureTable;
  8. use Bitrix\Main\Localization\Loc;
  9. require_once(dirname(__FILE__)."/../include/prolog_admin_before.php");
  10. require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/prolog.php");
  11. define("HELP_FILE", "settings/culture_edit.php");
  12. if(!$USER->CanDoOperation('edit_other_settings') && !$USER->CanDoOperation('view_other_settings'))
  13. $APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED"));
  14. $isAdmin = $USER->CanDoOperation('edit_other_settings');
  15. $aTabs = array(
  16. array("DIV" => "edit1", "TAB" => Loc::getMessage("MAIN_PARAM"), "TITLE" => Loc::getMessage("MAIN_PARAM_TITLE")),
  17. array("DIV" => "edit2", "TAB" => Loc::getMessage("main_culture_edit_tab"), "TITLE" => Loc::getMessage("main_culture_edit_tab_title")),
  18. );
  19. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  20. /** @var $request Main\HttpRequest */
  21. $request = Main\Context::getCurrent()->getRequest();
  22. $errors = array();
  23. $ID = intval($request["ID"]);
  24. $COPY_ID = intval($request["COPY_ID"]);
  25. if($request->isPost() && ($request["save"] <> '' || $request["apply"] <> '') && $isAdmin && check_bitrix_sessid())
  26. {
  27. //reinit translations
  28. Main\ORM\Entity::destroy(CultureTable::class);
  29. $arFields = array(
  30. "NAME" => $request['NAME'],
  31. "FORMAT_DATE" => $request['FORMAT_DATE'],
  32. "FORMAT_DATETIME" => $request['FORMAT_DATETIME'],
  33. "WEEK_START" => intval($request["WEEK_START"]),
  34. "FORMAT_NAME" => $request["FORMAT_NAME"],
  35. "CHARSET" => $request['CHARSET'],
  36. "DIRECTION" => $request['DIRECTION'],
  37. "CODE" => $request['CODE'],
  38. "SHORT_DATE_FORMAT" => $request['SHORT_DATE_FORMAT'],
  39. "MEDIUM_DATE_FORMAT" => $request['MEDIUM_DATE_FORMAT'],
  40. "LONG_DATE_FORMAT" => $request['LONG_DATE_FORMAT'],
  41. "FULL_DATE_FORMAT" => $request['FULL_DATE_FORMAT'],
  42. "DAY_MONTH_FORMAT" => $request['DAY_MONTH_FORMAT'],
  43. "SHORT_TIME_FORMAT" => $request['SHORT_TIME_FORMAT'],
  44. "LONG_TIME_FORMAT" => $request['LONG_TIME_FORMAT'],
  45. "DAY_SHORT_MONTH_FORMAT" => $request['DAY_SHORT_MONTH_FORMAT'],
  46. "DAY_OF_WEEK_MONTH_FORMAT" => $request['DAY_OF_WEEK_MONTH_FORMAT'],
  47. "SHORT_DAY_OF_WEEK_MONTH_FORMAT" => $request['SHORT_DAY_OF_WEEK_MONTH_FORMAT'],
  48. "SHORT_DAY_OF_WEEK_SHORT_MONTH_FORMAT" => $request['SHORT_DAY_OF_WEEK_SHORT_MONTH_FORMAT'],
  49. "AM_VALUE" => $request['AM_VALUE'],
  50. "PM_VALUE" => $request['PM_VALUE'],
  51. "NUMBER_THOUSANDS_SEPARATOR" => $request['NUMBER_THOUSANDS_SEPARATOR'],
  52. "NUMBER_DECIMAL_SEPARATOR" => $request['NUMBER_DECIMAL_SEPARATOR'],
  53. "NUMBER_DECIMALS" => $request['NUMBER_DECIMALS'],
  54. );
  55. if($ID > 0)
  56. {
  57. $result = CultureTable::update($ID, $arFields);
  58. }
  59. else
  60. {
  61. $result = CultureTable::add($arFields);
  62. $ID = $result->getId();
  63. }
  64. if($result->isSuccess())
  65. {
  66. if($request["save"] <> '')
  67. LocalRedirect(BX_ROOT."/admin/culture_admin.php?lang=".LANGUAGE_ID);
  68. else
  69. LocalRedirect(BX_ROOT."/admin/culture_edit.php?lang=".LANGUAGE_ID."&ID=".$ID."&".$tabControl->ActiveTabParam());
  70. }
  71. else
  72. {
  73. $errors = $result->getErrorMessages();
  74. }
  75. }
  76. if(empty($errors))
  77. {
  78. $culture = false;
  79. if($ID > 0 || $COPY_ID > 0)
  80. {
  81. $cultureId = ($COPY_ID > 0? $COPY_ID : $ID);
  82. $culture = CultureTable::getById($cultureId)->fetch();
  83. }
  84. if($culture == false)
  85. {
  86. $culture = CultureTable::createObject()->collectValues();
  87. $weekStart = Loc::getMessage('LANG_EDIT_WEEK_START_DEFAULT');
  88. if($weekStart == '')
  89. $weekStart = 1;
  90. $culture["WEEK_START"] = $weekStart;
  91. }
  92. }
  93. else
  94. {
  95. $culture = $request->getPostList()->toArray();
  96. }
  97. $APPLICATION->SetTitle(($ID > 0? Loc::getMessage("EDIT_LANG_TITLE") : Loc::getMessage("NEW_LANG_TITLE")));
  98. require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
  99. $aMenu = array(
  100. array(
  101. "TEXT" => Loc::getMessage("RECORD_LIST"),
  102. "LINK" => "/bitrix/admin/culture_admin.php?lang=".LANGUAGE_ID,
  103. "TITLE" => Loc::getMessage("RECORD_LIST_TITLE"),
  104. "ICON" => "btn_list"
  105. )
  106. );
  107. if($ID > 0 && $isAdmin)
  108. {
  109. $aMenu[] = array("SEPARATOR"=>"Y");
  110. $aMenu[] = array(
  111. "TEXT" => Loc::getMessage("MAIN_NEW_RECORD"),
  112. "LINK" => "/bitrix/admin/culture_edit.php?lang=".LANGUAGE_ID,
  113. "TITLE" => Loc::getMessage("MAIN_NEW_RECORD_TITLE"),
  114. "ICON" => "btn_new"
  115. );
  116. $aMenu[] = array(
  117. "TEXT" => Loc::getMessage("MAIN_COPY_RECORD"),
  118. "LINK" => "/bitrix/admin/culture_edit.php?lang=".LANGUAGE_ID."&amp;COPY_ID=".$ID,
  119. "TITLE" => Loc::getMessage("MAIN_COPY_RECORD_TITLE"),
  120. "ICON" => "btn_copy"
  121. );
  122. $aMenu[] = array(
  123. "TEXT" => Loc::getMessage("MAIN_DELETE_RECORD"),
  124. "LINK" => "javascript:if(confirm('".CUtil::JSEscape(Loc::getMessage("MAIN_DELETE_RECORD_CONF"))."')) window.location='/bitrix/admin/culture_admin.php?ID=".$ID."&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."&action_button=delete';",
  125. "TITLE" => Loc::getMessage("MAIN_DELETE_RECORD_TITLE"),
  126. "ICON" => "btn_delete"
  127. );
  128. }
  129. $context = new CAdminContextMenu($aMenu);
  130. $context->Show();
  131. if(!empty($errors))
  132. {
  133. CAdminMessage::ShowMessage(join("\n", $errors));
  134. }
  135. $cultureField = array();
  136. foreach($culture as $key => $val)
  137. {
  138. $cultureField[$key] = htmlspecialcharsbx($val);
  139. }
  140. ?>
  141. <form method="POST" action="<?= htmlspecialcharsbx($request->getRequestedPage())?>" name="form1">
  142. <?=bitrix_sessid_post()?>
  143. <input type="hidden" name="lang" value="<?=LANGUAGE_ID?>">
  144. <input type="hidden" name="ID" value="<?= $ID?>">
  145. <?if($COPY_ID > 0):?><input type="hidden" name="COPY_ID" value="<?= $COPY_ID?>"><?endif?>
  146. <?
  147. $tabControl->Begin();
  148. $tabControl->BeginNextTab();
  149. ?>
  150. <?if($ID > 0):?>
  151. <tr>
  152. <td><?= Loc::getMessage('culture_id')?></td>
  153. <td><?= $ID?></td>
  154. </tr>
  155. <?endif?>
  156. <tr class="adm-detail-required-field">
  157. <td><?= Loc::getMessage('NAME')?></td>
  158. <td><input type="text" name="NAME" size="30" maxlength="255" value="<?= $cultureField["NAME"]?>"></td>
  159. </tr>
  160. <tr class="adm-detail-required-field">
  161. <td><?= Loc::getMessage('FORMAT_DATE')?></td>
  162. <td><input type="text" name="FORMAT_DATE" size="30" maxlength="255" value="<?= $cultureField["FORMAT_DATE"]?>"></td>
  163. </tr>
  164. <tr class="adm-detail-required-field">
  165. <td><?= Loc::getMessage('FORMAT_DATETIME')?></td>
  166. <td><input type="text" name="FORMAT_DATETIME" size="30" maxlength="255" value="<?= $cultureField["FORMAT_DATETIME"]?>"></td>
  167. </tr>
  168. <tr>
  169. <td><?= Loc::getMessage('LANG_EDIT_WEEK_START')?></td>
  170. <td><select name="WEEK_START">
  171. <?
  172. for ($i = 0; $i < 7; $i++)
  173. {
  174. echo '<option value="'.$i.'"'.($i == $culture["WEEK_START"] ? ' selected="selected"' : '').'>'.Loc::getMessage('DAY_OF_WEEK_' .$i).'</option>';
  175. }
  176. ?>
  177. </select></td>
  178. </tr>
  179. <tr class="adm-detail-required-field">
  180. <td><?= Loc::getMessage('FORMAT_NAME')?></td>
  181. <td>
  182. <select name="" onchange="if(this.value != ''){this.form.FORMAT_NAME.value = this.value;}">
  183. <option value=""><?echo Loc::getMessage("culture_edit_other")?></option>
  184. <?
  185. foreach (CSite::GetNameTemplates() as $template => $value)
  186. {
  187. echo '<option value="'.$template.'"'.($template == $culture["FORMAT_NAME"]? ' selected' : '').'>'.htmlspecialcharsex($value).'</option>'."\n";
  188. }
  189. ?>
  190. </select>
  191. </td>
  192. </tr>
  193. <tr class="adm-detail-required-field">
  194. <td></td>
  195. <td>
  196. <input type="text" name="FORMAT_NAME" size="30" maxlength="255" value="<?= $cultureField["FORMAT_NAME"]?>">
  197. </td>
  198. </tr>
  199. <tr class="adm-detail-required-field">
  200. <td><?= Loc::getMessage('CHARSET')?></td>
  201. <td><input type="text" name="CHARSET" size="30" maxlength="255" value="<?= $cultureField["CHARSET"]?>">
  202. </td>
  203. </tr>
  204. <tr>
  205. <td><?echo Loc::getMessage('DIRECTION')?></td>
  206. <td><select name="DIRECTION">
  207. <option value="Y"><?=Loc::getMessage('DIRECTION_LTR')?></option>
  208. <option value="N"<?if($culture["DIRECTION"] == "N") echo " selected"?>><?=Loc::getMessage('DIRECTION_RTL')?></option>
  209. </select>
  210. </td>
  211. </tr>
  212. <tr>
  213. <td><?= Loc::getMessage('culture_code')?></td>
  214. <td><input type="text" name="CODE" size="30" maxlength="255" value="<?= $cultureField["CODE"]?>"></td>
  215. </tr>
  216. <?
  217. $tabControl->BeginNextTab();
  218. ?>
  219. <tr class="heading">
  220. <td colspan="2"><?echo Loc::getMessage("main_culture_edit_date_formats")?></td>
  221. <tr>
  222. <tr>
  223. <td><?echo Loc::getMessage("main_culture_edit_short_date1")?></td>
  224. <td><input type="text" name="SHORT_DATE_FORMAT" size="20" maxlength="255" value="<?= $cultureField["SHORT_DATE_FORMAT"]?>">
  225. <?if($cultureField["SHORT_DATE_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["SHORT_DATE_FORMAT"]))?></td>
  226. </tr>
  227. <tr>
  228. <td><?echo Loc::getMessage("main_culture_edit_medium_date1")?></td>
  229. <td><input type="text" name="MEDIUM_DATE_FORMAT" size="20" maxlength="255" value="<?= $cultureField["MEDIUM_DATE_FORMAT"]?>">
  230. <?if($cultureField["MEDIUM_DATE_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["MEDIUM_DATE_FORMAT"]))?></td>
  231. </tr>
  232. <tr>
  233. <td><?echo Loc::getMessage("main_culture_edit_long_date1")?></td>
  234. <td><input type="text" name="LONG_DATE_FORMAT" size="20" maxlength="255" value="<?= $cultureField["LONG_DATE_FORMAT"]?>">
  235. <?if($cultureField["LONG_DATE_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["LONG_DATE_FORMAT"]))?></td>
  236. </tr>
  237. <tr>
  238. <td><?echo Loc::getMessage("main_culture_edit_day_month1")?></td>
  239. <td><input type="text" name="DAY_MONTH_FORMAT" size="20" maxlength="255" value="<?= $cultureField["DAY_MONTH_FORMAT"]?>">
  240. <?if($cultureField["DAY_MONTH_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["DAY_MONTH_FORMAT"]))?></td>
  241. </tr>
  242. <tr>
  243. <td><?echo Loc::getMessage("main_culture_edit_day_short_month")?></td>
  244. <td><input type="text" name="DAY_SHORT_MONTH_FORMAT" size="20" maxlength="255" value="<?= $cultureField["DAY_SHORT_MONTH_FORMAT"]?>">
  245. <?if($cultureField["DAY_SHORT_MONTH_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["DAY_SHORT_MONTH_FORMAT"]))?></td>
  246. </tr>
  247. <tr>
  248. <td><?echo Loc::getMessage("main_culture_edit_short_day_of_week_month")?></td>
  249. <td><input type="text" name="SHORT_DAY_OF_WEEK_MONTH_FORMAT" size="20" maxlength="255" value="<?= $cultureField["SHORT_DAY_OF_WEEK_MONTH_FORMAT"]?>">
  250. <?if($cultureField["SHORT_DAY_OF_WEEK_MONTH_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["SHORT_DAY_OF_WEEK_MONTH_FORMAT"]))?></td>
  251. </tr>
  252. <tr>
  253. <td><?echo Loc::getMessage("main_culture_edit_short_day_of_week_short_month")?></td>
  254. <td><input type="text" name="SHORT_DAY_OF_WEEK_SHORT_MONTH_FORMAT" size="20" maxlength="255" value="<?= $cultureField["SHORT_DAY_OF_WEEK_SHORT_MONTH_FORMAT"]?>">
  255. <?if($cultureField["SHORT_DAY_OF_WEEK_SHORT_MONTH_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["SHORT_DAY_OF_WEEK_SHORT_MONTH_FORMAT"]))?></td>
  256. </tr>
  257. <tr>
  258. <td><?echo Loc::getMessage("main_culture_edit_day_of_week_month")?></td>
  259. <td><input type="text" name="DAY_OF_WEEK_MONTH_FORMAT" size="20" maxlength="255" value="<?= $cultureField["DAY_OF_WEEK_MONTH_FORMAT"]?>">
  260. <?if($cultureField["DAY_OF_WEEK_MONTH_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["DAY_OF_WEEK_MONTH_FORMAT"]))?></td>
  261. </tr>
  262. <tr>
  263. <td><?echo Loc::getMessage("main_culture_edit_full_date1")?></td>
  264. <td><input type="text" name="FULL_DATE_FORMAT" size="20" maxlength="255" value="<?= $cultureField["FULL_DATE_FORMAT"]?>">
  265. <?if($cultureField["FULL_DATE_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["FULL_DATE_FORMAT"]))?></td>
  266. </tr>
  267. <tr class="heading">
  268. <td colspan="2"><?echo Loc::getMessage("main_culture_edit_time_formats")?></td>
  269. <tr>
  270. <tr>
  271. <td><?echo Loc::getMessage("main_culture_edit_short_time1")?></td>
  272. <td><input type="text" name="SHORT_TIME_FORMAT" size="20" maxlength="255" value="<?= $cultureField["SHORT_TIME_FORMAT"]?>">
  273. <?if($cultureField["SHORT_TIME_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["SHORT_TIME_FORMAT"]))?></td>
  274. </tr>
  275. <tr>
  276. <td><?echo Loc::getMessage("main_culture_edit_long_time1")?></td>
  277. <td><input type="text" name="LONG_TIME_FORMAT" size="20" maxlength="255" value="<?= $cultureField["LONG_TIME_FORMAT"]?>">
  278. <?if($cultureField["LONG_TIME_FORMAT"] <> '') echo htmlspecialcharsbx(FormatDate($cultureField["LONG_TIME_FORMAT"]))?></td>
  279. </tr>
  280. <tr>
  281. <td><?echo Loc::getMessage("main_culture_edit_am")?></td>
  282. <td><input type="text" name="AM_VALUE" size="10" maxlength="255" value="<?= $cultureField["AM_VALUE"]?>"></td>
  283. </tr>
  284. <tr>
  285. <td><?echo Loc::getMessage("main_culture_edit_pm")?></td>
  286. <td><input type="text" name="PM_VALUE" size="10" maxlength="255" value="<?= $cultureField["PM_VALUE"]?>"></td>
  287. </tr>
  288. <tr>
  289. <td colspan="2" align="center"><?=BeginNote()?><?=Loc::getMessage("main_culture_edit_note")?><?=EndNote()?></td>
  290. <tr>
  291. <tr class="heading">
  292. <td colspan="2"><?echo Loc::getMessage("main_culture_numbers_format")?></td>
  293. <tr>
  294. <tr>
  295. <td><?echo Loc::getMessage("main_culture_numbers_thousands_sep")?></td>
  296. <td><input type="text" name="NUMBER_THOUSANDS_SEPARATOR" size="10" maxlength="255" value="<?= $cultureField["NUMBER_THOUSANDS_SEPARATOR"]?>"></td>
  297. </tr>
  298. <tr>
  299. <td><?echo Loc::getMessage("main_culture_numbers_decimal_sep")?></td>
  300. <td><input type="text" name="NUMBER_DECIMAL_SEPARATOR" size="10" maxlength="255" value="<?= $cultureField["NUMBER_DECIMAL_SEPARATOR"]?>"></td>
  301. </tr>
  302. <tr>
  303. <td><?echo Loc::getMessage("main_culture_numbers_decimals")?></td>
  304. <td><input type="text" name="NUMBER_DECIMALS" size="10" maxlength="255" value="<?= $cultureField["NUMBER_DECIMALS"]?>"></td>
  305. </tr>
  306. <tr>
  307. <td><?echo Loc::getMessage("main_culture_numbers_example")?></td>
  308. <td><?=htmlspecialcharsbx(number_format(2345678.123456789, $cultureField["NUMBER_DECIMALS"], $cultureField["NUMBER_DECIMAL_SEPARATOR"], $cultureField["NUMBER_THOUSANDS_SEPARATOR"]))?></td>
  309. </tr>
  310. <?if(IsModuleInstalled("currency")):?>
  311. <tr>
  312. <td colspan="2" align="center"><?=BeginNote()?><?=Loc::getMessage("main_culture_edit_note_currencies", ["#LANG#" => LANGUAGE_ID]);?><?=EndNote()?></td>
  313. <tr>
  314. <?endif?>
  315. <?
  316. $tabControl->Buttons(array("disabled"=>!$isAdmin, "back_url"=>"culture_admin.php?lang=".LANGUAGE_ID));
  317. $tabControl->End();
  318. ?>
  319. </form>
  320. <?
  321. require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");