PageRenderTime 49ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 1ms

/modules/main/admin/culture_admin.php

https://gitlab.com/alexprowars/bitrix
PHP | 160 lines | 125 code | 30 blank | 5 comment | 16 complexity | 8a99ce2c8f087969d29ca65179ee61dd MD5 | raw file
  1. <?php
  2. /**
  3. * @global CUser $USER
  4. * @global CMain $APPLICATION
  5. */
  6. require_once(dirname(__FILE__)."/../include/prolog_admin_before.php");
  7. require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/prolog.php");
  8. define("HELP_FILE", "settings/culture_admin.php");
  9. if(!$USER->CanDoOperation('edit_other_settings') && !$USER->CanDoOperation('view_other_settings'))
  10. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  11. $isAdmin = $USER->CanDoOperation('edit_other_settings');
  12. use Bitrix\Main;
  13. use Bitrix\Main\Localization\CultureTable;
  14. use Bitrix\Main\Localization\Loc;
  15. Loc::loadMessages(__FILE__);
  16. $tableID = "tbl_culture";
  17. $sorting = new CAdminSorting($tableID, "name", "asc");
  18. $adminList = new CAdminList($tableID, $sorting);
  19. /** @var $request Main\HttpRequest */
  20. $request = Main\Context::getCurrent()->getRequest();
  21. if($adminList->EditAction() && $isAdmin)
  22. {
  23. foreach($request["FIELDS"] as $ID => $arFields)
  24. {
  25. if(!$adminList->IsUpdated($ID))
  26. continue;
  27. $result = CultureTable::update($ID, $arFields);
  28. if(!$result->isSuccess())
  29. {
  30. $adminList->AddUpdateError("(ID=".$ID.") ".implode("<br>", $result->getErrorMessages()), $ID);
  31. }
  32. }
  33. }
  34. if(($arID = $adminList->GroupAction()) && $isAdmin)
  35. {
  36. if($request['action_target'] == 'selected')
  37. {
  38. $arID = array();
  39. $data = CultureTable::getList();
  40. while($culture = $data->fetch())
  41. $arID[] = $culture['ID'];
  42. }
  43. foreach($arID as $ID)
  44. {
  45. if(intval($ID) <= 0)
  46. continue;
  47. switch($request['action_button'])
  48. {
  49. case "delete":
  50. $result = CultureTable::delete($ID);
  51. if(!$result->isSuccess())
  52. {
  53. $adminList->AddGroupError("(ID=".$ID.") ".implode("<br>", $result->getErrorMessages()), $ID);
  54. }
  55. break;
  56. }
  57. }
  58. }
  59. $APPLICATION->SetTitle(Loc::getMessage("TITLE"));
  60. $sortBy = mb_strtoupper($sorting->getField());
  61. if(!CultureTable::getEntity()->hasField($sortBy))
  62. {
  63. $sortBy = "NAME";
  64. }
  65. $sortOrder = mb_strtoupper($sorting->getOrder());
  66. if($sortOrder <> "DESC")
  67. {
  68. $sortOrder = "ASC";
  69. }
  70. $nav = new \Bitrix\Main\UI\AdminPageNavigation("nav-culture");
  71. $cultureList = CultureTable::getList(array(
  72. 'order' => array($sortBy => $sortOrder),
  73. 'count_total' => true,
  74. 'offset' => $nav->getOffset(),
  75. 'limit' => $nav->getLimit(),
  76. ));
  77. $nav->setRecordCount($cultureList->getCount());
  78. $adminList->setNavigation($nav, Loc::getMessage("PAGES"));
  79. $adminList->AddHeaders(array(
  80. array("id"=>"ID", "content"=>"ID", "sort"=>"ID", "default"=>true),
  81. array("id"=>"NAME", "content"=>Loc::getMessage("NAME"), "sort"=>"NAME", "default"=>true),
  82. array("id"=>"CODE", "content"=>Loc::getMessage("culture_code"), "sort"=>"CODE", "default"=>true),
  83. array("id"=>"FORMAT_DATE", "content"=>Loc::getMessage("culture_date"), "sort"=>"FORMAT_DATE", "default"=>true),
  84. array("id"=>"FORMAT_DATETIME", "content"=>Loc::getMessage("culture_datetime"), "sort"=>"FORMAT_DATETIME", "default"=>true),
  85. array("id"=>"FORMAT_NAME", "content"=>Loc::getMessage("culture_name"), "sort"=>"FORMAT_NAME", "default"=>true),
  86. array("id"=>"CHARSET", "content"=>Loc::getMessage("culture_charset"), "sort"=>"CHARSET", "default"=>true),
  87. array("id"=>"WEEK_START", "content"=>Loc::getMessage("culture_week"), "sort"=>"WEEK_START", "default"=>false),
  88. array("id"=>"DIRECTION", "content"=>Loc::getMessage("culture_direction"), "sort"=>"DIRECTION", "default"=>false),
  89. ));
  90. $days = array(Loc::getMessage("culture_su"), Loc::getMessage("culture_mo"), Loc::getMessage("culture_tu"), Loc::getMessage("culture_we"), Loc::getMessage("culture_th"), Loc::getMessage("culture_fr"), Loc::getMessage("culture_sa"));
  91. while($culture = $cultureList->fetch())
  92. {
  93. $id = htmlspecialcharsbx($culture["ID"]);
  94. $name = htmlspecialcharsbx($culture["NAME"]);
  95. $row = &$adminList->AddRow($id, $culture, "culture_edit.php?ID=".$id."&lang=".LANGUAGE_ID, Loc::getMessage("LANG_EDIT_TITLE"));
  96. $row->AddViewField("ID", $id);
  97. $row->AddField("NAME", '<a href="culture_edit.php?ID='.$id.'&amp;lang='.LANGUAGE_ID.'" title="'.Loc::getMessage("LANG_EDIT_TITLE").'">'.$name.'</a>', $name);
  98. $row->AddInputField("CODE");
  99. $row->AddInputField("FORMAT_DATE");
  100. $row->AddInputField("FORMAT_DATETIME");
  101. $row->AddInputField("FORMAT_NAME");
  102. $row->AddViewField("WEEK_START", $days[$culture["WEEK_START"]]);
  103. $row->AddInputField("CHARSET");
  104. $row->AddViewField("DIRECTION", ($culture["DIRECTION"] == CultureTable::LEFT_TO_RIGHT? Loc::getMessage("culture_left_to_right") : Loc::getMessage("culture_right_to_left")));
  105. $arActions = array();
  106. $arActions[] = array("ICON"=>"edit", "TEXT"=>Loc::getMessage("CHANGE"), "ACTION"=>$adminList->ActionRedirect("culture_edit.php?ID=".$id));
  107. if($isAdmin)
  108. {
  109. $arActions[] = array("ICON"=>"copy", "TEXT"=>Loc::getMessage("COPY"), "ACTION"=>$adminList->ActionRedirect("culture_edit.php?COPY_ID=".$id));
  110. $arActions[] = array("SEPARATOR"=>true);
  111. $arActions[] = array("ICON"=>"delete", "TEXT"=>Loc::getMessage("DELETE"), "ACTION"=>"if(confirm('".Loc::getMessage('CONFIRM_DEL')."')) ".$adminList->ActionDoGroup($id, "delete"));
  112. }
  113. $row->AddActions($arActions);
  114. }
  115. $adminList->AddGroupActionTable(array(
  116. "delete"=>true,
  117. ));
  118. $aContext = array(
  119. array(
  120. "TEXT" => Loc::getMessage("ADD_LANG"),
  121. "LINK" => "culture_edit.php?lang=".LANGUAGE_ID,
  122. "TITLE" => Loc::getMessage("ADD_LANG_TITLE"),
  123. "ICON" => "btn_new"
  124. ),
  125. );
  126. $adminList->AddAdminContextMenu($aContext);
  127. $adminList->CheckListMode();
  128. require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
  129. $adminList->DisplayList();
  130. require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");