PageRenderTime 27ms CodeModel.GetById 11ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/mail/options.php

https://gitlab.com/alexprowars/bitrix
PHP | 252 lines | 223 code | 23 blank | 6 comment | 26 complexity | 2b2d70dc2e9f61655491dcc5b58aabb7 MD5 | raw file
  1. <?
  2. ##############################################
  3. # Bitrix: SiteManager #
  4. # Copyright (c) 2002-2004 Bitrix #
  5. # http://www.bitrixsoft.com #
  6. # mailto:admin@bitrixsoft.com #
  7. ##############################################
  8. global $MESS;
  9. IncludeModuleLangFile(__FILE__);
  10. IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/options.php");
  11. $module_id = "mail";
  12. CModule::IncludeModule($module_id);
  13. $MOD_RIGHT = $APPLICATION->GetGroupRight($module_id);
  14. if($MOD_RIGHT>="R"):
  15. $arAllOptions = array(
  16. array('save_src', getMessage('MAIL_OPTIONS_SAVE_SRC'), B_MAIL_SAVE_SRC, array('checkbox', 'Y')),
  17. array('save_attachments', getMessage('MAIL_OPTIONS_SAVE_ATTACHMENTS'), B_MAIL_SAVE_ATTACHMENTS, array('checkbox', 'Y')),
  18. array('connect_timeout', getMessage('MAIL_OPTIONS_TIMEOUT'), B_MAIL_TIMEOUT, array('text', 2)),
  19. array('spam_check', getMessage('MAIL_OPTIONS_CHECKSPAM'), B_MAIL_CHECK_SPAM, array('checkbox', 'Y')),
  20. array('time_keep_log', getMessage('MAIL_OPTIONS_LOG_SAVE'), B_MAIL_KEEP_LOG, array('text', 2)),
  21. array('sync_old_limit2', getMessage('MAIL_OPTIONS_SYNC_OLD_LIMIT'), 0, array('text', 2)),
  22. );
  23. if($MOD_RIGHT>="W" && check_bitrix_sessid())
  24. {
  25. if ($REQUEST_METHOD=="GET" && $RestoreDefaults <> '')
  26. {
  27. COption::RemoveOption($module_id);
  28. $z = CGroup::GetList("id", "asc", array("ACTIVE" => "Y", "ADMIN" => "N"));
  29. while($zr = $z->Fetch())
  30. $APPLICATION->DelGroupRight($module_id, array($zr["ID"]));
  31. }
  32. if($REQUEST_METHOD=="POST" && $Update <> '')
  33. {
  34. for($i=0; $i<count($arAllOptions); $i++)
  35. {
  36. $name=$arAllOptions[$i][0];
  37. $val=$$name;
  38. if($arAllOptions[$i][3][0]=="checkbox" && $val!="Y")
  39. $val="N";
  40. COption::SetOptionString("mail", $name, $val, $arAllOptions[$i][1]);
  41. }
  42. COption::SetOptionString("mail", "php_path", $php_path);
  43. }
  44. }
  45. $aTabs = array(
  46. array("DIV" => "edit1", "TAB" => GetMessage("MAIN_TAB_SET"), "ICON" => "support_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_SET")),
  47. array("DIV" => "edit2", "TAB" => GetMessage("MAIN_TAB_SMTP"), "ICON" => "support_settings", "TITLE" => GetMessage("MAIN_TAB_SMTP_TITLE")),
  48. array("DIV" => "edit3", "TAB" => GetMessage("MAIN_TAB_RIGHTS"), "ICON" => "support_settings", "TITLE" => GetMessage("MAIN_TAB_TITLE_RIGHTS")),
  49. );
  50. $tabControl = new CAdminTabControl("tabControl", $aTabs);
  51. ?>
  52. <?
  53. $tabControl->Begin();
  54. ?><form method="POST" action="<?echo $APPLICATION->GetCurPage()?>?mid=<?=htmlspecialcharsbx($mid)?>&lang=<?=LANGUAGE_ID?>"><?
  55. $tabControl->BeginNextTab();
  56. for($i=0; $i<count($arAllOptions); $i++):
  57. $Option = $arAllOptions[$i];
  58. $val = COption::GetOptionString("mail", $Option[0], $Option[2]);
  59. $type = $Option[3];
  60. ?>
  61. <tr>
  62. <td valign="top" width="50%"><?if($type[0]=="checkbox")
  63. echo "<label for=\"".htmlspecialcharsbx($Option[0])."\">".$Option[1]."</label>";
  64. else
  65. echo $Option[1];?></td>
  66. <td valign="top" width="50%">
  67. <?if($type[0]=="checkbox"):?>
  68. <input type="checkbox" name="<?echo htmlspecialcharsbx($Option[0])?>" id="<?echo htmlspecialcharsbx($Option[0])?>" value="Y"<?if($val=="Y")echo" checked";?>>
  69. <?elseif($type[0]=="text"):?>
  70. <input type="text" size="<?echo $type[1]?>" maxlength="255" value="<?echo htmlspecialcharsbx($val)?>" name="<?echo htmlspecialcharsbx($Option[0])?>">
  71. <?elseif($type[0]=="textarea"):?>
  72. <textarea rows="<?echo $type[1]?>" cols="<?echo $type[2]?>" name="<?echo htmlspecialcharsbx($Option[0])?>"><?echo htmlspecialcharsbx($val)?></textarea>
  73. <?endif?>
  74. </td>
  75. </tr>
  76. <?
  77. endfor;
  78. ?>
  79. <?$tabControl->BeginNextTab();?>
  80. <?$val = COption::GetOptionString("mail", "php_path", (mb_strtoupper(mb_substr(PHP_OS, 0, 3)) === "WIN") ? "../apache/php.exe -c ../apache/php.ini" : "authbind php -c /etc/php.ini");?>
  81. <script>
  82. var ss = false;
  83. function StartSMTPD()
  84. {
  85. if(BX('php_path').value!='<?=AddSlashes($val)?>' && !confirm("<?echo GetMessage("MAIL_OPT_CONFIRM")?>"))
  86. return false;
  87. BX.showWait();
  88. BX('iStartSMTPD').disabled = true;
  89. ss = 'start';
  90. BX.ajax({
  91. 'url':'/bitrix/admin/mail_smtpd_manager.php',
  92. 'method':'POST',
  93. 'data' : 'action=start&sessid=' + BX.bitrix_sessid(),
  94. 'dataType': 'json',
  95. 'timeout': 5,
  96. 'async': false,
  97. 'start': true,
  98. 'onsuccess': StartSMTPDY,
  99. 'onfailure': StartSMTPDN
  100. });
  101. }
  102. function StartSMTPDY(o)
  103. {
  104. BX.closeWait();
  105. if(o == "success")
  106. Stats(true);
  107. else
  108. alert("<?echo GetMessage("MAIL_OPT_ERR")?>"+o);
  109. }
  110. function StartSMTPDN()
  111. {
  112. BX.closeWait();
  113. alert('<?=GetMessage("MAIL_OPT_ERR_CON")?>');
  114. }
  115. var v = false, t;
  116. function Stats(norefresh)
  117. {
  118. v = true;
  119. BX.ajax({
  120. 'url':'/bitrix/admin/mail_smtpd_manager.php',
  121. 'method':'POST',
  122. 'data' : 'action=stats&sessid=' + BX.bitrix_sessid(),
  123. 'dataType': 'json',
  124. 'timeout': 10,
  125. 'async': false,
  126. 'start': true,
  127. 'onsuccess': (norefresh ? OnStats : OnStatsRefresh)
  128. });
  129. }
  130. function OnStatsRefresh(o)
  131. {
  132. if(!v)
  133. return;
  134. v = false;
  135. OnStats(o);
  136. setTimeout("Stats()", 5000);
  137. }
  138. function __TimePeriodToString(t)
  139. {
  140. var m = 0, h = 0, d = 0, s = t;
  141. if(t/60 > 1)
  142. {
  143. m = Math.floor(t/60);
  144. s = t%60;
  145. if(m/60>1)
  146. {
  147. h = Math.floor(m/60);
  148. m = m%60;
  149. if(h/24>0)
  150. {
  151. d = Math.floor(h/24);
  152. h = h%24;
  153. }
  154. }
  155. }
  156. return (d>0?d+"<?echo GetMessage("EMAIL_OPT_DAYS")?> ":'')+(h>0?h+"<?echo GetMessage("EMAIL_OPT_HR")?> ":'')+(m>0?m+"<?echo GetMessage("EMAIL_OPT_MIN")?> ":'')+s+"<?echo GetMessage("EMAL_OPT_SEC")?>";
  157. }
  158. function OnStats(o)
  159. {
  160. if(o == false)
  161. {
  162. BX('status').innerHTML = "<?echo GetMessage("EMAL_OPT_SMTP_STOPPED")?>";
  163. BX('iStopSMTPD').style.display = 'none';
  164. BX('iStartSMTPD').style.display = '';
  165. if(ss != 'start')
  166. BX('iStartSMTPD').disabled = false;
  167. }
  168. else
  169. {
  170. var d = new Date(o.started * 1000);
  171. BX('status').innerHTML = "<?echo GetMessage("EMAL_OPT_SMTP_RUN")?>"+"<br>"+
  172. "<?echo GetMessage("EMAL_OPT_SMTP_STAT_START")?>"+' '+ d.toString() +" ("+"<?echo GetMessage("EMAL_OPT_SMTP_STAT_UPTIME")?>"+" "+ __TimePeriodToString(o.uptime) + ")<br>"+
  173. "<?echo GetMessage("EMAL_OPT_SMTP_STAT_CNT")?>"+' '+ o.messages +" "+"<?echo GetMessage("EMAL_OPT_SMTP_STAT_CNT_MAIL")?>"+"<br>"+
  174. "<?echo GetMessage("EMAL_OPT_SMTP_STAT_CONS")?>"+" "+ o.connections +" ("+"<?echo GetMessage("EMAL_OPT_SMTP_STAT_CONS_NOW")?>"+" " + o.connections_now+")";
  175. BX('iStopSMTPD').style.display = '';
  176. if(ss != 'stop')
  177. BX('iStopSMTPD').disabled = false;
  178. BX('iStartSMTPD').style.display = 'none';
  179. }
  180. }
  181. function StopSMTPD()
  182. {
  183. ss = 'stop';
  184. BX('iStopSMTPD').disabled = true;
  185. BX.ajax({
  186. 'url':'/bitrix/admin/mail_smtpd_manager.php',
  187. 'method':'POST',
  188. 'data' : 'action=stop&sessid=' + BX.bitrix_sessid(),
  189. 'dataType': 'json',
  190. 'timeout': 10,
  191. 'async': true,
  192. 'start': true
  193. });
  194. }
  195. setTimeout("Stats()", 0);
  196. </script>
  197. <tr>
  198. <td valign="top" width="50%"><?echo GetMessage("EMAL_OPT_PHP_LINE")?></td>
  199. <td valign="middle" width="50%">
  200. <input type="text" id="php_path" size="35" maxlength="255" value="<?=htmlspecialcharsbx($val)?>" name="php_path"></td>
  201. </tr>
  202. <tr>
  203. <td valign="top" width="50%"><?echo GetMessage("EMAL_OPT_STATUS")?></td>
  204. <td valign="middle" width="50%" id="status"><?echo GetMessage("EMAL_OPT_STATUS_UNK")?></td>
  205. </tr>
  206. <tr>
  207. <td valign="top" width="50%"></td>
  208. <td valign="middle" width="50%">
  209. <input type="button" onclick="StartSMTPD()" id="iStartSMTPD" value="<?echo GetMessage("EMAL_OPT_START_SMTP")?>"> <input type="button" style="display:none" onclick="StopSMTPD()" id="iStopSMTPD" value="<?echo GetMessage("EMAL_OPT_STOP_SMTP")?>">
  210. </td>
  211. </tr>
  212. <?$tabControl->BeginNextTab();?>
  213. <?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/admin/group_rights.php");?>
  214. <?$tabControl->Buttons();?>
  215. <script type="text/javascript">
  216. function RestoreDefaults()
  217. {
  218. if(confirm('<?echo AddSlashes(GetMessage("MAIN_HINT_RESTORE_DEFAULTS_WARNING"))?>'))
  219. window.location = "<?echo $APPLICATION->GetCurPage()?>?RestoreDefaults=Y&lang=<?echo LANG?>&mid=<?echo urlencode($mid)?>&<?echo bitrix_sessid_get()?>";
  220. }
  221. </script>
  222. <input type="submit" name="Update" <?if ($MOD_RIGHT<"W") echo "disabled" ?> value="<?echo GetMessage("MAIL_OPTIONS_SAVE")?>">
  223. <input type="reset" name="reset" value="<?echo GetMessage("MAIL_OPTIONS_RESET")?>">
  224. <input type="hidden" name="Update" value="Y">
  225. <input type="button" <?if ($MOD_RIGHT<"W") echo "disabled" ?> title="<?echo GetMessage("MAIN_HINT_RESTORE_DEFAULTS")?>" OnClick="RestoreDefaults();" value="<?echo GetMessage("MAIN_RESTORE_DEFAULTS")?>">
  226. <?$tabControl->End();?>
  227. <?echo bitrix_sessid_post()?>
  228. </form>
  229. <?endif; //if($MOD_RIGHT>="R"):?>