PageRenderTime 50ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/vote/admin/vote_channel_list.php

https://gitlab.com/alexprowars/bitrix
PHP | 283 lines | 237 code | 34 blank | 12 comment | 23 complexity | ce663fac2d9ac41abbe1e819bfc5cb05 MD5 | raw file
  1. <?
  2. ##############################################
  3. # Bitrix Site Manager Forum #
  4. # Copyright (c) 2002-2009 Bitrix #
  5. # http://www.bitrixsoft.com #
  6. # mailto:admin@bitrixsoft.com #
  7. ##############################################
  8. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  9. $sTableID = "tbl_vote_channel";
  10. $oSort = new CAdminSorting($sTableID, "ID", "asc");
  11. $lAdmin = new CAdminList($sTableID, $oSort);
  12. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/prolog.php");
  13. $VOTE_RIGHT = $APPLICATION->GetGroupRight("vote");
  14. if($VOTE_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  15. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/vote/include.php");
  16. IncludeModuleLangFile(__FILE__);
  17. $err_mess = "File: ".__FILE__."<br>Line: ";
  18. $arFilterFields = Array(
  19. "find_id",
  20. "find_id_exact_match",
  21. "find_site",
  22. "find_active",
  23. "find_title",
  24. "find_title_exact_match",
  25. "find_sid",
  26. "find_sid_exact_match"
  27. );
  28. /********************************************************************
  29. Actions
  30. ********************************************************************/
  31. $lAdmin->InitFilter($arFilterFields);
  32. InitBVar($find_id_exact_match);
  33. InitBVar($find_sid_exact_match);
  34. InitBVar($find_title_exact_match);
  35. $aMenu = array();
  36. $arFilter = Array(
  37. "ID" => $find_id,
  38. "ID_EXACT_MATCH" => $find_id_exact_match,
  39. "SITE" => $find_site,
  40. "ACTIVE" => $find_active,
  41. "SYMBOLIC_NAME" => $find_sid,
  42. "SYMBOLIC_NAME_EXACT_MATCH" => $find_sid_exact_match,
  43. "TITLE" => $find_title,
  44. "TITLE_EXACT_MATCH" => $find_title_exact_match
  45. );
  46. if ($lAdmin->EditAction() && $VOTE_RIGHT>="W" && check_bitrix_sessid())
  47. {
  48. $bupdate = false;
  49. foreach($FIELDS as $ID=>$arFields)
  50. {
  51. if(!$lAdmin->IsUpdated($ID))
  52. continue;
  53. $DB->StartTransaction();
  54. $ID = intval($ID);
  55. $arFieldsStore = Array(
  56. "TIMESTAMP_X" => $DB->GetNowFunction(),
  57. "ACTIVE" => "'".$DB->ForSql($arFields["ACTIVE"])."'",
  58. "C_SORT" => "'".intval($arFields["C_SORT"])."'",
  59. "TITLE" => "'".$DB->ForSql($arFields["TITLE"])."'",
  60. "SYMBOLIC_NAME" => "'".$DB->ForSql($arFields["SYMBOLIC_NAME"])."'",
  61. );
  62. if (!$DB->Update("b_vote_channel",$arFieldsStore,"WHERE ID='$ID'",$err_mess.__LINE__))
  63. {
  64. $lAdmin->AddUpdateError(GetMessage("SAVE_ERROR").$ID.": ".GetMessage("VOTE_SAVE_ERROR"), $ID);
  65. $DB->Rollback();
  66. }
  67. else
  68. $bupdate = true;
  69. $DB->Commit();
  70. }
  71. if ($bupdate)
  72. $CACHE_MANAGER->CleanDir("b_vote_channel");
  73. }
  74. if(($arID = $lAdmin->GroupAction()) && $VOTE_RIGHT=="W" && check_bitrix_sessid())
  75. {
  76. if($_REQUEST['action_target']=='selected')
  77. {
  78. $arID = Array();
  79. $rsData = CVoteChannel::GetList('', '', $arFilter);
  80. while($arRes = $rsData->Fetch())
  81. $arID[] = $arRes['ID'];
  82. }
  83. foreach($arID as $ID)
  84. {
  85. if($ID == '')
  86. continue;
  87. $ID = intval($ID);
  88. switch($_REQUEST['action'])
  89. {
  90. case "delete":
  91. @set_time_limit(0);
  92. $DB->StartTransaction();
  93. if(!CVoteChannel::Delete($ID))
  94. {
  95. $DB->Rollback();
  96. $lAdmin->AddGroupError(GetMessage("DELETE_ERROR"), $ID);
  97. }
  98. $DB->Commit();
  99. break;
  100. case "activate":
  101. case "deactivate":
  102. $arFields = Array("ACTIVE"=>($_REQUEST['action']=="activate"?"'Y'":"'N'"));
  103. if (!$DB->Update("b_vote_channel",$arFields,"WHERE ID='$ID'",$err_mess.__LINE__))
  104. $lAdmin->AddGroupError(GetMessage("VOTE_SAVE_ERROR"), $ID);
  105. else
  106. $CACHE_MANAGER->CleanDir("b_vote_channel");
  107. break;
  108. }
  109. }
  110. }
  111. $rsData = CVoteChannel::GetList('', '', $arFilter);
  112. $rsData = new CAdminResult($rsData, $sTableID);
  113. $rsData->NavStart();
  114. $lAdmin->NavText($rsData->GetNavPrint(GetMessage("VOTE_PAGES")));
  115. $lAdmin->AddHeaders(array(
  116. array("id"=>"ID", "content"=>"ID", "sort"=>"s_id", "default"=>true),
  117. array("id"=>"TIMESTAMP_X", "content"=>GetMessage("VOTE_TIMESTAMP"), "sort"=>"s_timestamp", "default"=>true),
  118. array("id"=>"SITE", "content"=>GetMessage("VOTE_SITE"), "default"=>true),
  119. array("id"=>"ACTIVE", "content"=>GetMessage("VOTE_ACTIVE"), "sort"=>"s_active", "default"=>true),
  120. array("id"=>"HIDDEN", "content"=>GetMessage("VOTE_HIDDEN"), "sort"=>"s_hidden", "default"=>true),
  121. array("id"=>"C_SORT", "content"=>GetMessage("VOTE_C_SORT"), "sort"=>"s_c_sort", "default"=>true),
  122. array("id"=>"SYMBOLIC_NAME", "content"=>GetMessage("VOTE_SID"), "sort"=>"s_symbolic_name", "default"=>true),
  123. array("id"=>"TITLE", "content"=>GetMessage("VOTE_TITLE"), "sort"=>"s_title", "default"=>true),
  124. array("id"=>"VOTES", "content"=>GetMessage("VOTE_VOTES"), "sort"=>"s_votes", "default"=>true),
  125. )
  126. );
  127. while($arRes = $rsData->NavNext(true, "f_"))
  128. {
  129. $row =& $lAdmin->AddRow($f_ID, $arRes);
  130. $arrSITE = CVoteChannel::GetSiteArray($f_ID);
  131. $str = "";
  132. if(is_array($arrSITE))
  133. {
  134. foreach($arrSITE as $sid)
  135. $str .= '<a title="'.GetMessage("VOTE_SITE_EDIT").'" href="/bitrix/admin/site_edit.php?LID='.$sid.'&lang='.LANGUAGE_ID.'">'.$sid.'</a>, ';
  136. };
  137. if ($VOTE_RIGHT=="W")
  138. {
  139. $row->AddViewField("SITE", trim($str, " ,"));
  140. $row->AddCheckField("ACTIVE");
  141. $row->AddViewField("HIDDEN", ($f_HIDDEN=="Y"? GetMessage("VOTE_YES"):GetMessage("VOTE_NO")));
  142. $row->AddInputField("C_SORT");
  143. $row->AddInputField("SYMBOLIC_NAME");
  144. $row->AddInputField("TITLE");
  145. $row->AddViewField("TITLE", '<a href="vote_channel_edit.php?lang='.LANGUAGE_ID.'&ID='.$f_ID.'" title="'.GetMessage("VOTE_EDIT_TITLE").'">'.$f_TITLE.'</a>');
  146. }
  147. else
  148. {
  149. $row->AddViewField("SITE", ($f_SITE=="Y"? GetMessage("VOTE_YES"):GetMessage("VOTE_NO")));
  150. $row->AddViewField("ACTIVE", ($f_ACTIVE=="Y"? GetMessage("VOTE_YES"):GetMessage("VOTE_NO")));
  151. $row->AddViewField("HIDDEN", ($f_HIDDEN=="Y"? GetMessage("VOTE_YES"):GetMessage("VOTE_NO")));
  152. }
  153. $row->AddViewField("VOTES", '<a title="'.GetMessage("VOTE_OPEN_VOTES").'" href="vote_list.php?lang='.LANGUAGE_ID.'&find_channel='.$f_ID.'&set_filter=Y">'.$f_VOTES.'</a>&nbsp;[<a title="'.GetMessage("VOTE_ADD_VOTE").'" href="vote_edit.php?CHANNEL_ID='.$f_ID.'&lang='.LANGUAGE_ID.'">+</a>]');
  154. $arActions = Array();
  155. $arActions[] = array("DEFAULT"=>"Y","ICON"=>"edit", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_EDIT"), "ACTION"=>$lAdmin->ActionRedirect("vote_channel_edit.php?ID=".$f_ID));
  156. if($f_ID!='1' && $VOTE_RIGHT=="W")
  157. {
  158. $arActions[] = array("SEPARATOR"=>true);
  159. $arActions[] = array("ICON"=>"delete", "TEXT"=>GetMessage("MAIN_ADMIN_MENU_DELETE"), "ACTION"=>"if(confirm('".GetMessage("VOTE_CONFIRM_DEL_CHANNEL")."')) window.location='vote_channel_list.php?lang=".LANGUAGE_ID."&action=delete&ID=$f_ID&".bitrix_sessid_get()."'");
  160. }
  161. if ($VOTE_RIGHT=="W")
  162. $row->AddActions($arActions);
  163. }
  164. $lAdmin->AddFooter(
  165. array(
  166. array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()),
  167. array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"),
  168. )
  169. );
  170. if ($VOTE_RIGHT=="W")
  171. $lAdmin->AddGroupActionTable(Array(
  172. "delete"=>GetMessage("VOTE_DELETE"),
  173. "activate"=>GetMessage("VOTE_ACTIVATE"),
  174. "deactivate"=>GetMessage("VOTE_DEACTIVATE"),
  175. ));
  176. if ($VOTE_RIGHT=="W")
  177. {
  178. $aMenu[] = array(
  179. "TEXT" => GetMessage("VOTE_CREATE"),
  180. "TITLE"=>GetMessage("VOTE_ADD_GROUP_TITLE"),
  181. "LINK"=>"vote_channel_edit.php?lang=".LANG,
  182. "ICON" => "btn_new"
  183. );
  184. $aContext = $aMenu;
  185. $lAdmin->AddAdminContextMenu($aContext);
  186. }
  187. $lAdmin->CheckListMode();
  188. /********************************************************************
  189. Form
  190. ********************************************************************/
  191. $APPLICATION->SetTitle(GetMessage("VOTE_PAGE_TITLE"));
  192. require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
  193. ?>
  194. <a name="tb"></a>
  195. <form name="find_form" method="GET" action="<?=$APPLICATION->GetCurPage()?>?">
  196. <?
  197. $oFilter = new CAdminFilter(
  198. $sTableID."_filter",
  199. array(
  200. GetMessage("VOTE_FLT_ID"),
  201. GetMessage("VOTE_SITE"),
  202. GetMessage("VOTE_FLT_ACTIVE"),
  203. GetMessage("VOTE_F_SID")
  204. )
  205. );
  206. $oFilter->Begin();
  207. ?>
  208. <tr>
  209. <td nowrap><b><?=GetMessage("VOTE_F_TITLE")?></b></td>
  210. <td nowrap><input type="text" name="find_title" value="<?echo htmlspecialcharsbx($find_title)?>" size="47"><?=InputType("checkbox", "find_title_exact_match", "Y", $find_title_exact_match, false, "", "title='".GetMessage("VOTE_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  211. </tr>
  212. <tr>
  213. <td>ID:</td>
  214. <td><input type="text" name="find_id" size="47" value="<?echo htmlspecialcharsbx($find_id)?>"><?=InputType("checkbox", "find_id_exact_match", "Y", $find_id_exact_match, false, "", "title='".GetMessage("VOTE_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  215. </tr>
  216. <tr valign="top">
  217. <td><?=GetMessage("VOTE_F_SITE")?><br><img src="/bitrix/images/vote/mouse.gif" width="44" height="21" border=0 alt=""></td>
  218. <td><?
  219. $ref = array();
  220. $ref_id = array();
  221. $rs = CSite::GetList();
  222. while ($ar = $rs->Fetch())
  223. {
  224. $ref[] = "[".$ar["ID"]."] ".$ar["NAME"];
  225. $ref_id[] = $ar["ID"];
  226. }
  227. echo SelectBoxMFromArray("find_site[]", array("reference" => $ref, "reference_id" => $ref_id), $find_site, "",false,"3");
  228. ?></td>
  229. </tr>
  230. <tr>
  231. <td nowrap><?=GetMessage("VOTE_F_ACTIVE")?></td>
  232. <td nowrap><?
  233. $arr = array("reference"=>array(GetMessage("VOTE_YES"), GetMessage("VOTE_NO")), "reference_id"=>array("Y","N"));
  234. echo SelectBoxFromArray("find_active", $arr, htmlspecialcharsbx($find_active), GetMessage("VOTE_ALL"));
  235. ?></td>
  236. </tr>
  237. <tr>
  238. <td nowrap><?=GetMessage("VOTE_F_SID")?></td>
  239. <td nowrap><input type="text" name="find_sid" value="<?echo htmlspecialcharsbx($find_sid)?>" size="47"><?=InputType("checkbox", "find_sid_exact_match", "Y", $find_sid_exact_match, false, "", "title='".GetMessage("VOTE_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  240. </tr>
  241. <?
  242. $oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage(), "form"=>"find_form"));
  243. $oFilter->End();
  244. ?>
  245. </form>
  246. <?
  247. $lAdmin->DisplayList();
  248. require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
  249. ?>