PageRenderTime 44ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/subscribe/admin/rubric_edit.php

https://gitlab.com/alexprowars/bitrix
PHP | 304 lines | 276 code | 20 blank | 8 comment | 29 complexity | 6ed2964f162ecf74cb93a94ce239da71 MD5 | raw file
  1. <?
  2. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
  3. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/include.php");
  4. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/subscribe/prolog.php");
  5. IncludeModuleLangFile(__FILE__);
  6. define("HELP_FILE", "add_newsletter.php");
  7. $POST_RIGHT = $APPLICATION->GetGroupRight("subscribe");
  8. if($POST_RIGHT=="D")
  9. $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
  10. $aTabs = array(
  11. array("DIV" => "edit1", "TAB" => GetMessage("rub_tab_rubric"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("rub_tab_rubric_title")),
  12. array("DIV" => "edit2", "TAB" => GetMessage("rub_tab_generation"), "ICON"=>"main_user_edit", "TITLE"=>GetMessage("rub_tab_generation_title")),
  13. );
  14. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  15. $ID = intval($ID); // Id of the edited record
  16. $message = null;
  17. $bVarsFromForm = false;
  18. if($REQUEST_METHOD == "POST" && ($save!="" || $apply!="") && $POST_RIGHT=="W" && check_bitrix_sessid())
  19. {
  20. $rubric = new CRubric;
  21. $arFields = Array(
  22. "ACTIVE" => ($ACTIVE <> "Y"? "N":"Y"),
  23. "NAME" => $NAME,
  24. "CODE" => $CODE,
  25. "SORT" => $SORT,
  26. "DESCRIPTION" => $DESCRIPTION,
  27. "LID" => $LID,
  28. "AUTO" =>($AUTO <> "Y"? "N":"Y"),
  29. "DAYS_OF_MONTH" => $DAYS_OF_MONTH,
  30. "DAYS_OF_WEEK" => (is_array($DAYS_OF_WEEK)?implode(",", $DAYS_OF_WEEK):""),
  31. "TIMES_OF_DAY" => $TIMES_OF_DAY,
  32. "TEMPLATE" => $TEMPLATE,
  33. "VISIBLE" => ($VISIBLE <> "Y"? "N":"Y"),
  34. "FROM_FIELD" => $FROM_FIELD,
  35. "LAST_EXECUTED" => $LAST_EXECUTED
  36. );
  37. if($ID > 0)
  38. {
  39. $res = $rubric->Update($ID, $arFields);
  40. }
  41. else
  42. {
  43. $ID = $rubric->Add($arFields);
  44. $res = ($ID>0);
  45. }
  46. if($res)
  47. {
  48. if($apply!="")
  49. LocalRedirect("/bitrix/admin/rubric_edit.php?ID=".$ID."&mess=ok&lang=".LANG."&".$tabControl->ActiveTabParam());
  50. else
  51. LocalRedirect("/bitrix/admin/rubric_admin.php?lang=".LANG);
  52. }
  53. else
  54. {
  55. if($e = $APPLICATION->GetException())
  56. $message = new CAdminMessage(GetMessage("rub_save_error"), $e);
  57. $bVarsFromForm = true;
  58. }
  59. }
  60. //Edit/Add part
  61. ClearVars();
  62. $str_SORT = 100;
  63. $str_ACTIVE = "Y";
  64. $str_AUTO = "N";
  65. $str_DAYS_OF_MONTH = "";
  66. $str_DAYS_OF_WEEK = "";
  67. $str_TIMES_OF_DAY = "";
  68. $str_VISIBLE = "Y";
  69. $str_LAST_EXECUTED = ConvertTimeStamp(time()+CTimeZone::GetOffset(), "FULL");
  70. $str_FROM_FIELD = COption::GetOptionString("subscribe", "default_from");
  71. if($ID>0)
  72. {
  73. $rubric = CRubric::GetByID($ID);
  74. if(!$rubric->ExtractFields("str_"))
  75. $ID=0;
  76. }
  77. if($ID>0 && !$message)
  78. $DAYS_OF_WEEK = explode(",", $str_DAYS_OF_WEEK);
  79. if(!is_array($DAYS_OF_WEEK))
  80. $DAYS_OF_WEEK = array();
  81. if($bVarsFromForm)
  82. $DB->InitTableVarsForEdit("b_list_rubric", "", "str_");
  83. $APPLICATION->SetTitle(($ID>0? GetMessage("rub_title_edit").$ID : GetMessage("rub_title_add")));
  84. require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
  85. $aMenu = array(
  86. array(
  87. "TEXT"=>GetMessage("rub_list"),
  88. "TITLE"=>GetMessage("rub_list_title"),
  89. "LINK"=>"rubric_admin.php?lang=".LANG,
  90. "ICON"=>"btn_list",
  91. )
  92. );
  93. if($ID>0)
  94. {
  95. $aMenu[] = array("SEPARATOR"=>"Y");
  96. $aMenu[] = array(
  97. "TEXT"=>GetMessage("rub_add"),
  98. "TITLE"=>GetMessage("rubric_mnu_add"),
  99. "LINK"=>"rubric_edit.php?lang=".LANG,
  100. "ICON"=>"btn_new",
  101. );
  102. $aMenu[] = array(
  103. "TEXT"=>GetMessage("rub_delete"),
  104. "TITLE"=>GetMessage("rubric_mnu_del"),
  105. "LINK"=>"javascript:if(confirm('".GetMessage("rubric_mnu_del_conf")."'))window.location='rubric_admin.php?ID=".$ID."&action=delete&lang=".LANG."&".bitrix_sessid_get()."';",
  106. "ICON"=>"btn_delete",
  107. );
  108. $aMenu[] = array("SEPARATOR"=>"Y");
  109. $aMenu[] = array(
  110. "TEXT"=>GetMessage("rub_check"),
  111. "TITLE"=>GetMessage("rubric_mnu_check"),
  112. "LINK"=>"template_test.php?lang=".LANG."&ID=".$ID
  113. );
  114. }
  115. $context = new CAdminContextMenu($aMenu);
  116. $context->Show();
  117. ?>
  118. <?
  119. if($_REQUEST["mess"] == "ok" && $ID>0)
  120. CAdminMessage::ShowMessage(array("MESSAGE"=>GetMessage("rub_saved"), "TYPE"=>"OK"));
  121. if($message)
  122. echo $message->Show();
  123. elseif($rubric->LAST_ERROR!="")
  124. CAdminMessage::ShowMessage($rubric->LAST_ERROR);
  125. ?>
  126. <form method="POST" Action="<?echo $APPLICATION->GetCurPage()?>" ENCTYPE="multipart/form-data" name="post_form">
  127. <?
  128. $tabControl->Begin();
  129. ?>
  130. <?
  131. //********************
  132. //Rubric
  133. //********************
  134. $tabControl->BeginNextTab();
  135. ?>
  136. <tr>
  137. <td width="40%"><?echo GetMessage("rub_act")?></td>
  138. <td width="60%"><input type="checkbox" name="ACTIVE" value="Y"<?if($str_ACTIVE == "Y") echo " checked"?>></td>
  139. </tr>
  140. <tr>
  141. <td><?echo GetMessage("rub_visible")?></td>
  142. <td><input type="checkbox" name="VISIBLE" value="Y"<?if($str_VISIBLE == "Y") echo " checked"?>></td>
  143. </tr>
  144. <tr>
  145. <td><?echo GetMessage("rub_site")?></td>
  146. <td><?echo CLang::SelectBox("LID", $str_LID);?></td>
  147. </tr>
  148. <tr class="adm-detail-required-field">
  149. <td><?echo GetMessage("rub_name")?></td>
  150. <td><input type="text" name="NAME" value="<?echo $str_NAME;?>" size="45" maxlength="100"></td>
  151. </tr>
  152. <tr>
  153. <td><?echo GetMessage("rub_sort")?></td>
  154. <td><input type="text" name="SORT" value="<?echo $str_SORT;?>" size="6"></td>
  155. </tr>
  156. <tr>
  157. <td><?echo GetMessage("rub_code")?></td>
  158. <td><input type="text" name="CODE" value="<?echo $str_CODE;?>" size="45"></td>
  159. </tr>
  160. <tr>
  161. <td class="adm-detail-valign-top"><?echo GetMessage("rub_desc")?></td>
  162. <td><textarea class="typearea" name="DESCRIPTION" cols="45" rows="5" wrap="VIRTUAL" style="width:100%"><?echo $str_DESCRIPTION; ?></textarea></td>
  163. </tr>
  164. <tr>
  165. <td><?echo GetMessage("rub_auto")?></td>
  166. <td><input type="checkbox" name="AUTO" value="Y"<?if($str_AUTO == "Y") echo " checked"?> OnClick="if(this.checked) tabControl.EnableTab('edit2'); else tabControl.DisableTab('edit2');"></td>
  167. </tr>
  168. <?
  169. //********************
  170. //Auto params
  171. //********************
  172. $tabControl->BeginNextTab();
  173. ?>
  174. <tr class="heading">
  175. <td colspan="2"><?echo GetMessage("rub_schedule")?></td>
  176. </tr>
  177. <tr class="adm-detail-required-field">
  178. <td width="40%"><?echo GetMessage("rub_last_executed"). ":"?></td>
  179. <td width="60%"><?echo CalendarDate("LAST_EXECUTED", $str_LAST_EXECUTED, "post_form", "20")?></td>
  180. </tr>
  181. <tr>
  182. <td><?echo GetMessage("rub_dom")?></td>
  183. <td><input class="typeinput" type="text" name="DAYS_OF_MONTH" value="<?echo $str_DAYS_OF_MONTH;?>" size="30" maxlength="100"></td>
  184. </tr>
  185. <tr>
  186. <td class="adm-detail-valign-top"><?echo GetMessage("rub_dow")?></td>
  187. <td>
  188. <table cellspacing=1 cellpadding=0 border=0 class="internal">
  189. <? $arDoW = array(
  190. "1" => GetMessage("rubric_mon"),
  191. "2" => GetMessage("rubric_tue"),
  192. "3" => GetMessage("rubric_wed"),
  193. "4" => GetMessage("rubric_thu"),
  194. "5" => GetMessage("rubric_fri"),
  195. "6" => GetMessage("rubric_sat"),
  196. "7" => GetMessage("rubric_sun")
  197. );
  198. ?>
  199. <tr class="heading"><?foreach($arDoW as $strVal=>$strDoW):?>
  200. <td><?=$strDoW?></td>
  201. <?endforeach;?>
  202. </tr>
  203. <tr>
  204. <?foreach($arDoW as $strVal=>$strDoW):?>
  205. <td style="text-align:center"><input type="checkbox" name="DAYS_OF_WEEK[]" value="<?=$strVal?>"<?if(array_search($strVal, $DAYS_OF_WEEK) !== false) echo " checked"?>></td>
  206. <?endforeach;?>
  207. </tr>
  208. </table>
  209. </td>
  210. </tr>
  211. <tr class="adm-detail-required-field">
  212. <td><?echo GetMessage("rub_tod")?></td>
  213. <td><input type="text" name="TIMES_OF_DAY" value="<?echo $str_TIMES_OF_DAY;?>" size="30" maxlength="255"></td>
  214. </tr>
  215. <tr class="heading">
  216. <td colspan="2"><?echo GetMessage("rub_template")?></td>
  217. </tr>
  218. <?
  219. $arTemplates=CPostingTemplate::GetList();
  220. if(count($arTemplates)>0):
  221. ?>
  222. <tr class="adm-detail-required-field">
  223. <td class="adm-detail-valign-top"><?echo GetMessage("rub_templates")?></td>
  224. <td><table>
  225. <?
  226. $i=0;
  227. foreach($arTemplates as $strTemplate):
  228. $arTemplate = CPostingTemplate::GetByID($strTemplate);
  229. ?>
  230. <tr>
  231. <td class="adm-detail-valign-top"><input type="radio" id="TEMPLATE<?=$i?>" name="TEMPLATE" value="<?=$arTemplate["PATH"]?>"<?if($str_TEMPLATE==$arTemplate["PATH"]) echo "checked"?>></td>
  232. <td>
  233. <label for="TEMPLATE<?=$i?>" title="<?=$arTemplate["DESCRIPTION"]?>"><?=($arTemplate["NAME"] <> ''?$arTemplate["NAME"]:GetMessage("rub_no_name"))?></label><br>
  234. <?if(IsModuleInstalled("fileman")):?>
  235. <a title="<?=GetMessage("rub_manage")?>" href="/bitrix/admin/fileman_admin.php?path=<?=urlencode("/".$arTemplate["PATH"])?>"><?=$arTemplate["PATH"]?></a>
  236. <?else:?>
  237. <?=$arTemplate["PATH"]?>
  238. <?endif?>
  239. </td>
  240. <?$i++?>
  241. </tr>
  242. <?endforeach;?>
  243. </table></td>
  244. </tr>
  245. <?else:?>
  246. <tr>
  247. <td colspan="2"><?=GetMessage("rub_no_templates")?></td>
  248. </tr>
  249. <?endif?>
  250. <tr class="heading">
  251. <td colspan="2"><?echo GetMessage("rub_post_fields")?></td>
  252. </tr>
  253. <tr class="adm-detail-required-field">
  254. <td><?echo GetMessage("rub_post_fields_from")?></td>
  255. <td><input type="text" name="FROM_FIELD" value="<?echo $str_FROM_FIELD;?>" size="30" maxlength="255"></td>
  256. </tr>
  257. <?
  258. $tabControl->Buttons(
  259. array(
  260. "disabled"=>($POST_RIGHT<"W"),
  261. "back_url"=>"rubric_admin.php?lang=".LANG,
  262. )
  263. );
  264. ?>
  265. <?echo bitrix_sessid_post();?>
  266. <input type="hidden" name="lang" value="<?=LANG?>">
  267. <?if($ID>0 && !$bCopy):?>
  268. <input type="hidden" name="ID" value="<?=$ID?>">
  269. <?endif;?>
  270. <?
  271. $tabControl->End();
  272. ?>
  273. <?
  274. $tabControl->ShowWarnings("post_form", $message);
  275. ?>
  276. <script language="JavaScript">
  277. <!--
  278. if(document.post_form.AUTO.checked)
  279. tabControl.EnableTab('edit2');
  280. else
  281. tabControl.DisableTab('edit2');
  282. //-->
  283. </script>
  284. <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");?>