PageRenderTime 39ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/main/admin/rating_list.php

https://gitlab.com/alexprowars/bitrix
PHP | 201 lines | 174 code | 21 blank | 6 comment | 16 complexity | 85739e70465c682243ce5eb44b281bfc MD5 | raw file
  1. <?
  2. ##############################################
  3. # Bitrix Site Manager #
  4. # Copyright (c) 2002-2010 Bitrix #
  5. # http://www.bitrixsoft.com #
  6. # mailto:admin@bitrixsoft.com #
  7. ##############################################
  8. require_once(dirname(__FILE__)."/../include/prolog_admin_before.php");
  9. if(!$USER->CanDoOperation('edit_ratings'))
  10. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  11. $isAdmin = $USER->CanDoOperation('edit_ratings');
  12. IncludeModuleLangFile(__FILE__);
  13. $sTableID = "tbl_rating";
  14. $oSort = new CAdminSorting($sTableID, "id", "desc");
  15. $lAdmin = new CAdminList($sTableID, $oSort);
  16. function CheckFilter()
  17. {
  18. global $FilterArr, $lAdmin;
  19. foreach ($FilterArr as $f) global $$f;
  20. return count($lAdmin->arFilterErrors)==0;
  21. }
  22. $FilterArr = Array(
  23. "find_name",
  24. "find_active",
  25. "find_id",
  26. "find_entity_id",
  27. );
  28. $lAdmin->InitFilter($FilterArr);
  29. $arFilter = Array();
  30. if(CheckFilter())
  31. {
  32. $arFilter = Array(
  33. "NAME" => $find_name,
  34. "ACTIVE" => $find_active,
  35. "ID" => $find_id,
  36. "ENTITY_ID" => $find_entity_id,
  37. );
  38. }
  39. if($lAdmin->EditAction())
  40. {
  41. foreach($FIELDS as $ID=>$arFields)
  42. {
  43. $ID = intval($ID);
  44. if($ID <= 0)
  45. continue;
  46. $arUpdate['NAME'] = $arFields['NAME'];
  47. $arUpdate['ACTIVE'] = $arFields['ACTIVE'] == 'Y' ? 'Y' : 'N';
  48. if(!CRatings::Update($ID, $arUpdate))
  49. {
  50. $e = $APPLICATION->GetException();
  51. $lAdmin->AddUpdateError(($e? $e->GetString():GetMessage("RATING_LIST_ERR_EDIT")), $ID);
  52. }
  53. }
  54. }
  55. if(($arID = $lAdmin->GroupAction()))
  56. {
  57. if($_REQUEST['action_target']=='selected')
  58. {
  59. $rsData = CRatings::GetList(array($by=>$order), $arFilter);
  60. while($arRes = $rsData->Fetch())
  61. $arID[] = $arRes['ID'];
  62. }
  63. foreach($arID as $ID)
  64. {
  65. $ID = intval($ID);
  66. if($ID <= 0)
  67. continue;
  68. switch($_REQUEST['action'])
  69. {
  70. case "recalculate":
  71. if(!CRatings::Calculate($ID, true))
  72. $lAdmin->AddGroupError(GetMessage("RATING_LIST_ERR_CAL"), $ID);
  73. break;
  74. case "delete":
  75. if(!CRatings::Delete($ID))
  76. $lAdmin->AddGroupError(GetMessage("RATING_LIST_ERR_DEL"), $ID);
  77. break;
  78. }
  79. }
  80. }
  81. $rsData = CRatings::GetList(array($by=>$order), $arFilter);
  82. $rsData = new CAdminResult($rsData, $sTableID);
  83. $rsData->NavStart();
  84. $lAdmin->NavText($rsData->GetNavPrint(GetMessage("RATING_LIST_NAV")));
  85. $aHeaders = array(
  86. array("id"=>"ID", "content"=>"ID", "sort"=>"id", "default"=>true),
  87. array("id"=>"NAME", "content"=>GetMessage("RATING_NAME"), "sort"=>"name", "default"=>true),
  88. array("id"=>"ACTIVE", "content"=>GetMessage("RATING_ACTIVE"), "sort"=>"active", "default"=>true),
  89. array("id"=>"CREATED", "content"=>GetMessage("RATING_CREATED"), "sort"=>"created", "default"=>false),
  90. array("id"=>"LAST_MODIFIED", "content"=>GetMessage("RATING_LAST_MODIFIED"), "sort"=>"last_modified", "default"=>true),
  91. array("id"=>"LAST_CALCULATED", "content"=>GetMessage("RATING_LAST_CALCULATED"), "sort"=>"last_calculated", "default"=>true),
  92. array("id"=>"CALCULATED", "content"=>GetMessage("RATING_STATUS"), "sort"=>"status", "default"=>true),
  93. array("id"=>"ENTITY_ID", "content"=>GetMessage("RATING_ENTITY_ID"), "sort"=>"entity_id", "default"=>false),
  94. );
  95. $lAdmin->AddHeaders($aHeaders);
  96. while($arRes = $rsData->NavNext(true, "f_"))
  97. {
  98. $row =& $lAdmin->AddRow($f_ID, $arRes);
  99. $row->AddInputField("NAME", array("size"=>20));
  100. $row->AddViewField("NAME", $f_NAME);
  101. $row->AddViewField("ACTIVE", $f_ACTIVE == "Y" ? GetMessage("RATING_ACTIVE_YES") : GetMessage("RATING_ACTIVE_NO"));
  102. $row->AddViewField("LAST_CALCULATED", empty($f_LAST_CALCULATED) ? GetMessage("RATING_STATUS_WAITING") : $f_LAST_CALCULATED);
  103. $row->AddViewField("CALCULATED", $f_CALCULATED != 'N' ? ($f_CALCULATED == 'C' ? GetMessage("RATING_STATUS_WORKING") : GetMessage("RATING_STATUS_DONE")) : GetMessage("RATING_STATUS_WAITING"));
  104. $arActions = Array(
  105. array(
  106. "ICON"=>"edit",
  107. "DEFAULT"=>true,
  108. "TEXT"=>GetMessage("RATING_LIST_EDIT"),
  109. "ACTION"=>$lAdmin->ActionRedirect("rating_edit.php?ID=".$f_ID)
  110. ),
  111. array(
  112. "ICON"=>"edit",
  113. "TEXT"=>GetMessage("RATING_LIST_RECALCULATE"),
  114. "ACTION"=>$lAdmin->ActionDoGroup($f_ID, "recalculate")
  115. ),
  116. array(
  117. "ICON"=>"delete",
  118. "TEXT"=>GetMessage("RATING_LIST_DEL"),
  119. "ACTION"=>"if(confirm('".GetMessage("RATING_LIST_DEL_CONF")."')) ".$lAdmin->ActionDoGroup($f_ID, "delete")
  120. ),
  121. );
  122. $row->AddActions($arActions);
  123. }
  124. $lAdmin->AddGroupActionTable(Array(
  125. "delete"=>true,
  126. ));
  127. $aContext = array(
  128. array(
  129. "TEXT"=>GetMessage("RATING_LIST_ADD"),
  130. "LINK"=>"rating_edit.php?lang=".LANG,
  131. "TITLE"=>GetMessage("RATING_LIST_ADD_TITLE"),
  132. "ICON"=>"btn_new",
  133. ),
  134. );
  135. $lAdmin->AddAdminContextMenu($aContext);
  136. $lAdmin->CheckListMode();
  137. $APPLICATION->SetTitle(GetMessage("MAIN_RATING_LIST"));
  138. require_once ($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_admin_after.php");
  139. $oFilter = new CAdminFilter(
  140. $sTableID."_filter",
  141. array(
  142. GetMessage("RATING_LIST_FLT_ACTIVE"),
  143. GetMessage("RATING_LIST_FLT_ID"),
  144. GetMessage("RATING_LIST_FLT_ENTITY_ID"),
  145. )
  146. );
  147. ?>
  148. <form name="form1" method="GET" action="<?=$APPLICATION->GetCurPage()?>">
  149. <input type="hidden" name="lang" value="<?=LANGUAGE_ID?>">
  150. <?$oFilter->Begin();?>
  151. <tr>
  152. <td><?echo GetMessage("RATING_LIST_FLT_NAME")?></td>
  153. <td><input type="text" name="find_name" size="40" value="<?echo htmlspecialcharsbx($find_name)?>"><?=ShowFilterLogicHelp()?></td>
  154. </tr>
  155. <tr>
  156. <td><?echo GetMessage("RATING_LIST_FLT_ACTIVE")?></td>
  157. <td><select name="find_active">
  158. <option value=""><?echo GetMessage("RATING_LIST_FLT_ALL")?></option>
  159. <option value="Y"<?if($find_active == "Y") echo " selected"?>><?echo GetMessage("RATING_LIST_FLT_ACTIVE")?></option>
  160. <option value="N"<?if($find_active == "N") echo " selected"?>><?echo GetMessage("RATING_LIST_FLT_INACTIVE")?></option>
  161. </select>
  162. </td>
  163. </tr>
  164. <tr>
  165. <td><?echo GetMessage("RATING_LIST_FLT_ID")?></td>
  166. <td><input type="text" name="find_id" size="13" value="<?echo htmlspecialcharsbx($find_id)?>"></td>
  167. </tr>
  168. <tr>
  169. <td><?echo GetMessage("RATING_LIST_FLT_ENTITY_ID")?></td>
  170. <td><input type="text" name="find_entity_id" value="<?echo htmlspecialcharsbx($find_entity_id)?>" size="40"><?=ShowFilterLogicHelp()?></td>
  171. </tr>
  172. <?
  173. $oFilter->Buttons(array("table_id"=>$sTableID,"url"=>$APPLICATION->GetCurPage(),"form"=>"form1"));
  174. $oFilter->End();
  175. ?>
  176. </form>
  177. <?
  178. $lAdmin->DisplayList();
  179. require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_admin.php");
  180. ?>