PageRenderTime 23ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/bitrix/modules/form/admin/form_list.php

https://bitbucket.org/alex_poluektov/itech_test
PHP | 341 lines | 256 code | 57 blank | 28 comment | 34 complexity | cbf284cd16aef807a7ce76c93f4a660e MD5 | raw file
Possible License(s): Apache-2.0
  1. <?
  2. /*
  3. #########################################
  4. # Bitrix: SiteManager #
  5. # Copyright (c) 2004 - 2006 Bitrix #
  6. # http://www.bitrix.ru #
  7. # mailto:admin@bitrix.ru #
  8. #########################################
  9. */
  10. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  11. $sTableID = "tbl_form_list";
  12. $oSort = new CAdminSorting($sTableID, "ID", "asc");
  13. $lAdmin = new CAdminList($sTableID, $oSort);
  14. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/prolog.php");
  15. ClearVars();
  16. $FORM_RIGHT = $APPLICATION->GetGroupRight("form");
  17. if($FORM_RIGHT<="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  18. CModule::IncludeModule("form");
  19. $bSimple = (COption::GetOptionString("form", "SIMPLE", "Y") == "Y") ? true : false;
  20. //require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/form/include.php");
  21. IncludeModuleLangFile(__FILE__);
  22. $err_mess = "File: ".__FILE__."<br>Line: ";
  23. $arFilterFields = Array(
  24. "find_id",
  25. "find_id_exact_match",
  26. "find_name",
  27. "find_name_exact_match",
  28. "find_sid",
  29. "find_sid_exact_match",
  30. "find_description",
  31. "find_description_exact_match",
  32. "find_site"
  33. );
  34. $lAdmin->InitFilter($arFilterFields);
  35. $old_module_version = CForm::IsOldVersion();
  36. /***************************************************************************
  37. GET | POST processing
  38. ****************************************************************************/
  39. $reset_id = intval($reset_id);
  40. if ($FORM_RIGHT=="W" && $reset_id>0 && check_bitrix_sessid()) CForm::Reset($reset_id);
  41. $copy_id = intval($makecopy_id);
  42. if ($FORM_RIGHT=="W" && $copy_id>0 && check_bitrix_sessid())
  43. {
  44. CForm::Copy($copy_id);
  45. LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
  46. }
  47. InitBVar($find_id_exact_match);
  48. InitBVar($find_name_exact_match);
  49. InitBVar($find_sid_exact_match);
  50. InitBVar($find_description_exact_match);
  51. $arFilter = Array(
  52. "ID" => $find_id,
  53. "ID_EXACT_MATCH" => $find_id_exact_match,
  54. "NAME" => $find_name,
  55. "NAME_EXACT_MATCH" => $find_name_exact_match,
  56. "SID" => $find_sid,
  57. "SID_EXACT_MATCH" => $find_sid_exact_match,
  58. "DESCRIPTION" => $find_description,
  59. "DESCRIPTION_EXACT_MATCH" => $find_description_exact_match,
  60. "SITE" => $find_site
  61. );
  62. // "Save" button was pressed
  63. if ($lAdmin->EditAction() && $FORM_RIGHT>="W" && check_bitrix_sessid())
  64. {
  65. foreach($FIELDS as $ID=>$arFields)
  66. {
  67. if(!$lAdmin->IsUpdated($ID))
  68. continue;
  69. $DB->StartTransaction();
  70. $ID = IntVal($ID);
  71. $F_RIGHT = CForm::GetPermission($ID);
  72. if ($F_RIGHT>=30)
  73. {
  74. $arFieldsStore = Array(
  75. "TIMESTAMP_X" => $DB->GetNowFunction(),
  76. "C_SORT" => "'".intval($arFields[C_SORT])."'"
  77. );
  78. if (!$DB->Update("b_form",$arFieldsStore,"WHERE ID='".$ID."'",$err_mess.__LINE__))
  79. {
  80. $lAdmin->AddUpdateError(GetMessage("SAVE_ERROR").$ID.": ".GetMessage("FORM_SAVE_ERROR"), $ID);
  81. $DB->Rollback();
  82. }
  83. }
  84. $DB->Commit();
  85. }
  86. }
  87. // simgle and group actions processing
  88. if(($arID = $lAdmin->GroupAction()) && $FORM_RIGHT=="W" && check_bitrix_sessid())
  89. {
  90. if($_REQUEST['action_target']=='selected')
  91. {
  92. $arID = Array();
  93. $rsData = CForm::GetList($by, $order, $arFilter, $is_filtered);
  94. while($arRes = $rsData->Fetch())
  95. $arID[] = $arRes['ID'];
  96. }
  97. foreach($arID as $ID)
  98. {
  99. if(strlen($ID)<=0)
  100. continue;
  101. $ID = IntVal($ID);
  102. switch($_REQUEST['action'])
  103. {
  104. case "delete":
  105. @set_time_limit(0);
  106. $DB->StartTransaction();
  107. if(!CForm::Delete($ID))
  108. {
  109. $DB->Rollback();
  110. $lAdmin->AddGroupError(GetMessage("DELETE_ERROR"), $ID);
  111. }
  112. $DB->Commit();
  113. break;
  114. }
  115. }
  116. }
  117. //////////////////////////////////////////////////////////////////////
  118. // list initialization - get data
  119. $rsData = CForm::GetList($by, $order, $arFilter, $is_filtered);
  120. $arData = array();
  121. while ($arForm = $rsData->Fetch())
  122. {
  123. $F_RIGHT = CForm::GetPermission($arForm["ID"]);
  124. if ($F_RIGHT >= 20)
  125. {
  126. $arForm["F_RIGHT"] = $F_RIGHT;
  127. $arData[] = $arForm;
  128. }
  129. }
  130. $rsData->InitFromArray($arData);
  131. $rsData = new CAdminResult($rsData, $sTableID);
  132. $rsData->NavStart();
  133. // set navigation bar
  134. $lAdmin->NavText($rsData->GetNavPrint(GetMessage("FORM_PAGES")));
  135. $headers = array(
  136. array("id"=>"ID", "content"=>"ID", "sort"=>"s_id", "default"=>true),
  137. array("id"=>"SITE", "content"=>GetMessage("FORM_SITE"), "default"=>true),
  138. array("id"=>"C_SORT", "content"=>GetMessage("FORM_C_SORT"), "sort"=>"s_c_sort", "default"=>true)
  139. );
  140. if (!$bSimple)
  141. $headers[] = array("id"=>"SID", "content"=>GetMessage("FORM_SID"), "sort"=>"s_sid", "default"=>true);
  142. $headers[] = array("id"=>"NAME", "content"=>GetMessage("FORM_NAME"), "sort"=>"s_name", "default"=>true);
  143. $headers[] = array("id"=>"QUESTIONS", "content"=>GetMessage("FORM_QUESTIONS"), "default"=>true);
  144. if (COption::GetOptionString("form", "SIMPLE")!="Y")
  145. {
  146. $headers[]=array("id"=>"C_FIELDS", "content"=>GetMessage("FORM_FIELDS"), "default"=>true);
  147. $headers[]=array("id"=>"STATUSES", "content"=>GetMessage("FORM_STATUSES"), "default"=>true);
  148. }
  149. $headers[]=array("id"=>"RESULTS", "content"=>GetMessage("FORM_RESULTS"), "default"=>true);
  150. $lAdmin->AddHeaders($headers);
  151. while($arRes = $rsData->NavNext(true, "f_"))
  152. {
  153. //echo "<pre>"; print_r($arRes); echo "</pre>";
  154. $row =& $lAdmin->AddRow($f_ID, $arRes);
  155. //$F_RIGHT = CForm::GetPermission($f_ID);
  156. $F_RIGHT = $f_F_RIGHT;
  157. //echo $F_RIGHT;
  158. unset($txt);
  159. $arrSITE = CForm::GetSiteArray($f_ID);
  160. reset($arrSITE);
  161. if (is_array($arrSITE))
  162. {
  163. foreach($arrSITE as $sid)
  164. $txt.= "<a href='/bitrix/admin/site_edit.php?LID=".htmlspecialcharsbx($sid, ENT_QUOTES)."&lang=".LANGUAGE_ID."'>".htmlspecialcharsbx($sid)."</a>,";
  165. }
  166. else
  167. $txt="&nbsp;";
  168. $txt=trim($txt,",");
  169. $row->AddViewField("SITE",$txt);
  170. if ($bSimple)
  171. {
  172. $f_QUESTIONS+=$f_C_FIELDS;
  173. $txt="<a title=\"".GetMessage("FORM_QUESTIONS_ALT")."\" href=\"form_field_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">$f_QUESTIONS</a>&nbsp;[<a title=\"".GetMessage("FORM_ADD_QUESTION")."\" href=\"form_field_edit_simple.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">+</a>]";
  174. }
  175. else
  176. $txt="<a title=\"".GetMessage("FORM_QUESTIONS_ALT")."\" href=\"form_field_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">$f_QUESTIONS</a>&nbsp;[<a title=\"".GetMessage("FORM_ADD_QUESTION")."\" href=\"form_field_edit.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">+</a>]";
  177. $row->AddViewField("QUESTIONS",$txt);
  178. $txt="<a title=\"".GetMessage("FORM_FIELDS_ALT")."\" href=\"form_field_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID&additional=Y\">$f_C_FIELDS</a>&nbsp;[<a title=\"".GetMessage("FORM_ADD_FIELD")."\" href=\"form_field_edit.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID&additional=Y\">+</a>]";
  179. $row->AddViewField("C_FIELDS",$txt);
  180. $txt="<a title=\"".GetMessage("FORM_STATUSES_ALT")."\" href=\"form_status_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">$f_STATUSES</a>&nbsp;[<a title=\"".GetMessage("FORM_ADD_STATUS")."\" href=\"form_status_edit.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">+</a>]";
  181. $row->AddViewField("STATUSES",$txt);
  182. $txt="<a title=\"".str_replace("\"#NAME#\"", "", GetMessage("FORM_RESULTS_ALT"))."\" href=\"form_result_list.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">".(CFormResult::GetCount($f_ID))."</a>&nbsp;[<a title=\"".GetMessage("FORM_ADD_RESULT")."\" href=\"form_result_edit.php?lang=".LANGUAGE_ID."&WEB_FORM_ID=$f_ID\">+</a>]";
  183. $row->AddViewField("RESULTS",$txt);
  184. if ($FORM_RIGHT=="W") $row->AddInputField("C_SORT");
  185. $arActions = Array();
  186. if ($F_RIGHT>=25)
  187. $arActions[] = array("DEFAULT"=>"Y", "ICON"=>"edit", "TITLE"=>GetMessage("FORM_EDIT_ALT"), "ACTION"=>$lAdmin->ActionRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=$f_ID"), "TEXT"=>GetMessage("FORM_EDIT"));
  188. if (CForm::IsAdmin())
  189. $arActions[] = array("ICON"=>"copy", "TITLE"=>GetMessage("FORM_COPY_ALT"),"ACTION"=>$lAdmin->ActionRedirect("form_list.php?lang=".LANGUAGE_ID."&amp;makecopy_id=$f_ID&".bitrix_sessid_get()),"TEXT"=>GetMessage("FORM_COPY"));
  190. if ($F_RIGHT>=30)
  191. {
  192. $arActions[] = array("SEPARATOR"=>true);
  193. $arActions[] = array("TITLE"=>GetMessage("FORM_DELETE_RESULTS_ALT"),"ACTION"=>"javascript:if(confirm('".CUtil::JSEscape(GetMessage("FORM_CONFIRM_DELETE_RESULTS"))."')) window.location='?lang=".LANGUAGE_ID."&reset_id=".$f_ID."&".bitrix_sessid_get()."'", "TEXT"=>GetMessage("FORM_DELETE_RESULTS"));
  194. }
  195. if (CForm::IsAdmin())
  196. $arActions[] = array("ICON"=>"delete", "TITLE"=>GetMessage("FORM_DELETE_ALT"),"ACTION"=>"javascript:if(confirm('".CUtil::JSEscape(GetMessage("FORM_CONFIRM_DELETE"))."')) window.location='?lang=".LANGUAGE_ID."&action=delete&ID=$f_ID&".bitrix_sessid_get()."'","TEXT"=>GetMessage("FORM_DELETE"));
  197. $row->AddActions($arActions);
  198. }
  199. // list footer
  200. $lAdmin->AddFooter(
  201. array(
  202. array("title"=>GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value"=>$rsData->SelectedRowsCount()),
  203. array("counter"=>true, "title"=>GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value"=>"0"),
  204. )
  205. );
  206. if ($FORM_RIGHT=="W")
  207. // add list buttons
  208. $lAdmin->AddGroupActionTable(Array(
  209. "delete"=>GetMessage("FORM_DELETE_L"),
  210. ));
  211. // context menu
  212. if ($FORM_RIGHT=="W")
  213. {
  214. $aMenu = array();
  215. $aMenu[] = array(
  216. "TEXT" => GetMessage("FORM_CREATE"),
  217. "TITLE"=>GetMessage("FORM_CREATE_TITLE"),
  218. "LINK"=>"form_edit.php?lang=".LANG,
  219. "ICON" => "btn_new"
  220. );
  221. $aContext = $aMenu;
  222. $lAdmin->AddAdminContextMenu($aContext);
  223. }
  224. // check list output mode
  225. $lAdmin->CheckListMode();
  226. /***************************************************************************
  227. HTML form
  228. ****************************************************************************/
  229. $APPLICATION->SetTitle(GetMessage("FORM_PAGE_TITLE"));
  230. require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
  231. ?>
  232. <a name="tb"></a>
  233. <form name="form1" method="GET" action="<?=$APPLICATION->GetCurPage()?>?">
  234. <?
  235. $oFilter = new CAdminFilter(
  236. $sTableID."_filter",
  237. array(
  238. GetMessage("FORM_FL_ID"),
  239. GetMessage("FORM_FL_SITE"),
  240. GetMessage("FORM_FL_SID"),
  241. GetMessage("FORM_FL_DESCRIPTION"),
  242. )
  243. );
  244. $oFilter->Begin();
  245. ?>
  246. <tr>
  247. <td><b><?echo GetMessage("FORM_F_NAME")?></b></td>
  248. <td><input type="text" name="find_name" size="47" value="<?echo htmlspecialcharsbx($find_name)?>"><?=InputType("checkbox", "find_name_exact_match", "Y", $find_name_exact_match, false, "", "title='".GetMessage("FORM_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  249. </tr>
  250. <tr>
  251. <td><?echo GetMessage("FORM_F_ID")?></td>
  252. <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("FORM_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  253. </tr>
  254. <tr>
  255. <td><?=GetMessage("FORM_F_SITE")?><br><img src="/bitrix/images/form/mouse.gif" width="44" height="21" border=0 alt=""></td>
  256. <td><?
  257. $ref = array();
  258. $ref_id = array();
  259. $rs = CSite::GetList(($v1="sort"), ($v2="asc"));
  260. while ($ar = $rs->Fetch())
  261. {
  262. $ref[] = "[".$ar["ID"]."] ".$ar["NAME"];
  263. $ref_id[] = $ar["ID"];
  264. }
  265. echo SelectBoxMFromArray("find_site[]", array("reference" => $ref, "reference_id" => $ref_id), $find_site, "",false,"3");
  266. ?></td>
  267. </tr>
  268. <tr>
  269. <td><?echo GetMessage("FORM_F_SID")?></td>
  270. <td><input type="text" name="find_sid" size="47" value="<?echo htmlspecialcharsbx($find_sid)?>"><?=InputType("checkbox", "find_sid_exact_match", "Y", $find_sid_exact_match, false, "", "title='".GetMessage("FORM_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  271. </tr>
  272. <tr>
  273. <td><?echo GetMessage("FORM_F_DESCRIPTION")?></td>
  274. <td><input type="text" name="find_description" size="47" value="<?echo htmlspecialcharsbx($find_description)?>"><?=InputType("checkbox", "find_description_exact_match", "Y", $find_description_exact_match, false, "", "title='".GetMessage("FORM_EXACT_MATCH")."'")?>&nbsp;<?=ShowFilterLogicHelp()?></td>
  275. </tr>
  276. <?
  277. $oFilter->Buttons(array("table_id"=>$sTableID, "url"=>$APPLICATION->GetCurPage()));
  278. $oFilter->End();
  279. #############################################################
  280. ?>
  281. </form>
  282. <?
  283. $lAdmin->DisplayList();
  284. require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>