PageRenderTime 62ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/modules/intranet_email/intra-email.php

https://github.com/timschofield/2.8
PHP | 774 lines | 619 code | 67 blank | 88 comment | 117 complexity | 39ad361609065563f4e3d490819c263a MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause, GPL-2.0
  1. <?php
  2. error_reporting(E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR);
  3. require('./roots.php');
  4. require('../../include/helpers/inc_environment_global.php');
  5. /**
  6. * CARE2X Integrated Hospital Information System Deployment 2.1 - 2004-10-02
  7. * GNU General Public License
  8. * Copyright 2002,2003,2004,2005 Elpidio Latorilla
  9. * elpidio@care2x.org,
  10. *
  11. * See the file "copy_notice.txt" for the licence notice
  12. */
  13. define('MODULE','intranet_email');
  14. define('LANG_FILE_MODULAR','intranet_email.php');
  15. $local_user='ck_intra_email_user';
  16. require_once($root_path.'include/helpers/inc_front_chain_lang.php');
  17. //$db->debug=1;
  18. /**
  19. * The getMailNum() function counts the number of mails in different boxes (inbox,sent,drafts,trash)
  20. *
  21. * param $element = element name (the box being checked)
  22. * param $username = email address to be searched
  23. *
  24. * global $link = the database link handle created by the helpers/inc_db_makelink.php include
  25. * global $dbtable = the table for the mailboxes
  26. *
  27. * return = number of mails in the box
  28. */
  29. function getMailNum($element_name,$username)
  30. {
  31. global $db; // the db connection object created with ADODB
  32. global $dbtable;
  33. $sql="SELECT $element_name FROM $dbtable WHERE email='".addslashes($username)."'";
  34. if($ergebnis=$db->Execute($sql)) {
  35. if($ergebnis->RecordCount()) {
  36. $cont=$ergebnis->FetchRow();
  37. $bufa=explode('_',$cont[$element_name]);
  38. if((sizeof($bufa)==1)&&($bufa[0]=='')) return 0; else return sizeof($bufa);
  39. }
  40. } else { return 0;}
  41. }
  42. /**
  43. * Set some initial values
  44. */
  45. $thisfile=basename(__FILE__);
  46. if(!isset($folder)) $folder='inbox';
  47. if(!isset($mode)) $mode='';
  48. //init db parameters
  49. $dbtable='care_mail_private';
  50. $breakfile='intra-email-pass.php'.URL_APPEND;
  51. $linecount=0;
  52. $modetypes=array('sendmail','listmail','compose');
  53. /* Load the date formatter */
  54. require_once($root_path.'include/helpers/inc_date_format_functions.php');
  55. if(in_array($mode,$modetypes))
  56. {
  57. if(!isset($db) || !$db) include_once($root_path.'include/helpers/inc_db_makelink.php');
  58. if($dblink_ok) {
  59. // sendmail (save to db) module
  60. switch($mode)
  61. {
  62. case 'sendmail';
  63. {
  64. $uid=uniqid('');
  65. $sdate=date('YmdHis');
  66. $sql="INSERT INTO $dbtable
  67. ( recipient,
  68. sender,
  69. sender_ip,
  70. cc,
  71. bcc,
  72. subject,
  73. body,
  74. sign,
  75. ask4ack,
  76. reply2,
  77. attachment,
  78. attach_type,
  79. read_flag,
  80. mailgroup,
  81. maildir,
  82. exec_level,
  83. exclude_addr,
  84. send_dt,
  85. send_stamp,
  86. uid
  87. )
  88. VALUES (
  89. '$recipient',
  90. '".$_COOKIE[$local_user.$sid]."',
  91. '$REMOTE_ADDR',
  92. '$cc',
  93. '$bcc',
  94. '$subject',
  95. '".htmlspecialchars($body_txt)."',
  96. '',
  97. '$ack',
  98. '".$_COOKIE[$local_user.$sid]."',
  99. '',
  100. '',
  101. '0',
  102. '',
  103. '',
  104. '1',
  105. '',
  106. '".date('Y-m-d H:i:s')."',
  107. '".date('Y-m-d H:i:s')."',
  108. '$uid'
  109. )";
  110. /// the send_stamp is left out to force its auto update
  111. $db->BeginTrans();
  112. $ok=$db->Execute($sql);
  113. if($ok&&$db->CommitTrans())
  114. {
  115. $saveok=true;
  116. $sendok=1;
  117. // if($folder=="inbox") $folder="sent";
  118. //echo "q ok ".$sql;
  119. $dbtable='care_mail_private_users';
  120. $sql="SELECT $folder, lastcheck FROM $dbtable WHERE email='".$_COOKIE[$local_user.$sid]. "'";
  121. if($ergebnis=$db->Execute($sql))
  122. {
  123. $content=$ergebnis->FetchRow();
  124. if(strlen($subject)>30) $sub=substr($subject,0,30).'...';
  125. else $sub=$subject;
  126. $buf="t=".date('Y-m-d H:i:s')."&r=1&f=$recipient&s=$sub&d=".date('Y-m-d H:i:s')."&z=".strlen($body_txt)."&u=$uid\r\n";
  127. if($content[$folder]=='') $content[$folder]=$buf;
  128. else $content[$folder].='_'.$buf;
  129. if(empty($content['lastcheck'])) $content['lastcheck']='0001-01-01 00:00:00';
  130. $sql="UPDATE $dbtable SET $folder='".$content[$folder]."' , lastcheck='".$content['lastcheck']."'
  131. WHERE email='".$_COOKIE[$local_user.$sid]. "'";
  132. $db->BeginTrans();
  133. $ok=$db->Execute($sql);
  134. if($ok&&$db->CommitTrans()) {
  135. //echo "$LDDbNoUpdate<br>$sql";
  136. }else {
  137. $db->RollbackTrans();
  138. echo "$LDDbNoSave<br>$sql";
  139. }
  140. }else {
  141. echo "$LDDbNoRead<br>$sql";
  142. }
  143. }else {
  144. $db->RollbackTrans();
  145. echo "$LDDbNoSave<br>$sql";
  146. }
  147. break;
  148. }// end of sendmail module
  149. case 'listmail':
  150. {
  151. // set dbtable to users
  152. $dbtable='care_mail_private_users';
  153. // get the last check timestamp
  154. $sql="SELECT $folder, lastcheck FROM $dbtable WHERE email='".$_COOKIE[$local_user.$sid]."'";
  155. if($ergebnis=$db->Execute($sql))
  156. {
  157. if($ergebnis->RecordCount())
  158. {
  159. $content=$ergebnis->FetchRow();
  160. if($folder=='inbox')
  161. {
  162. // if last check time stamp found check for new mails
  163. $dbtable='care_mail_private';
  164. if(empty($content['lastcheck'])) $content['lastcheck']=DBF_NODATETIME;
  165. $sql="SELECT * FROM $dbtable WHERE ( recipient $sql_LIKE '%".$_COOKIE[$local_user.$sid]."%'
  166. OR cc $sql_LIKE '%".$_COOKIE[$local_user.$sid]."%'
  167. OR bcc $sql_LIKE '%".$_COOKIE[$local_user.$sid]."%')
  168. AND send_stamp > '".$content['lastcheck']."'";
  169. //echo $sql;
  170. if($ergebnis=$db->Execute($sql))
  171. {
  172. if($ergebnis->RecordCount())
  173. {
  174. $newmail=1;
  175. while ($mails=$ergebnis->FetchRow())
  176. {
  177. if(strlen($mails['subject'])>30) $sub=substr($mails['subject'],0,30).'...';
  178. else $sub=$mails['subject'];
  179. $buf="t=".$mails['send_stamp']."&r=0&f=".$mails['sender']."&s=$sub&d=".$mails['send_dt']."&z=".strlen($mails['body'])."\r\n";
  180. if($content['inbox']=='') $content['inbox']=$buf;
  181. else $content[inbox].="_".$buf;
  182. }
  183. $dbtable='care_mail_private_users';
  184. $sql="UPDATE $dbtable SET inbox='".$content['inbox']."', lastcheck ='".date('Y-m-d H:i:s')."' WHERE email='".$_COOKIE[$local_user.$sid]. "'";
  185. $db->BeginTrans();
  186. $ok=$db->Execute($sql);
  187. if($ok) {
  188. $db->CommitTrans();
  189. } else {
  190. $db->RollbackTrans();
  191. echo "$LDDbNoUpdate<br>$sql";
  192. }
  193. }
  194. }else { echo "$LDDbNoRead<br>$sql"; }
  195. } // end of if folder == inbox
  196. }
  197. else
  198. {
  199. // if last check data not available
  200. $userok=0;
  201. }
  202. }else {echo "$db_sqlquery_fail<p> $sql <p> $LDDbNoRead";};
  203. // get the number of filed mails in every folder
  204. $dbtable='care_mail_private_users';
  205. if($folder!='inbox')
  206. {
  207. $inbnum=getMailNum('inbox',$_COOKIE[$local_user.$sid]);
  208. }
  209. else
  210. {
  211. $newmails=0; $newmails=substr_count($content[inbox],'r=0');
  212. }
  213. if($folder!='sent')
  214. {
  215. $sentnum=getMailNum('sent',$_COOKIE[$local_user.$sid]);
  216. }
  217. if($folder!='drafts')
  218. {
  219. $drafnum=getMailNum('drafts',$_COOKIE[$local_user.$sid]);
  220. }
  221. if($folder!='trash')
  222. {
  223. $trasnum=getMailNum('trash',$_COOKIE[$local_user.$sid]);
  224. }
  225. break;
  226. }// end of case listmail
  227. } // end of switch mode
  228. if(($mode=='sendmail')||($mode=='compose'))
  229. {
  230. // set dbtable to users
  231. $dbtable='care_mail_private_users';
  232. $sql="SELECT addr_quick FROM $dbtable WHERE email='".$_COOKIE[$local_user.$sid]. "'";
  233. if($ergebnis=$db->Execute($sql))
  234. {
  235. if($ergebnis->RecordCount())
  236. {
  237. $content=$ergebnis->FetchRow();
  238. $qa=explode('; ',trim($content['addr_quick']));
  239. //foreach($qa as $v) echo $v;
  240. }
  241. }else { echo "$LDDbNoRead<br>$sql"; }
  242. } // end of if mode sendmail or compose
  243. if($reply)
  244. {
  245. $dbtable='care_mail_private';
  246. if($reply<2) $sql='SELECT subject, body '; else $sql='SELECT * ';
  247. $sql.="FROM $dbtable WHERE recipient='$recipient'
  248. AND sender='$sender'
  249. AND reply2='$reply2'
  250. AND send_dt='$send_dt'
  251. AND send_stamp='$send_stamp'";
  252. if($ergebnis=$db->Execute($sql))
  253. {
  254. if($ergebnis->RecordCount())
  255. {
  256. $content=$ergebnis->FetchRow();
  257. $subject=$content['subject'];
  258. switch($reply)
  259. {
  260. case 1: if($reply2) $recipient=$reply2; else $recipient=$sender;
  261. $body_txt="\r\n\r\n\r\n\r\n\r\n\r\n$sender schrieb: am: $send_dt Uhr\r\n****\r\n".$content['body'];
  262. break;
  263. case 2: $recipient=$content['recipient'];
  264. $ack=$content['ask4ack'];
  265. $cc=$content['cc'];
  266. $bcc=$content['bcc'];
  267. $subject=$content['subject'];
  268. $body_txt=$content['body'];
  269. break;
  270. case 3: $recipient=''; $subject=$content['subject'];
  271. $body_txt="Forward>>
  272. Original Nachricht:
  273. An: $content[recipient]
  274. Von: $content[sender]";
  275. if($content[cc]) $body_txt.="
  276. CC: $content[cc]";
  277. if($content[bcc]) $body_txt.="
  278. BCC: $content[bcc]";
  279. $body_txt.="
  280. $content[body]";
  281. break;
  282. }
  283. }
  284. }else { echo "$LDDbNoRead<br>$sql"; }
  285. //echo $sql;
  286. } // end of if reply
  287. }
  288. else { echo "$LDDbNoLink<br>$sql"; }
  289. } // end of if mode!=""
  290. # Start Smarty templating here
  291. /**
  292. * LOAD Smarty
  293. */
  294. # Note: it is advisable to load this after the inc_front_chain_lang.php so
  295. # that the smarty script can use the user configured template theme
  296. require_once(CARE_BASE.'/include/helpers/smarty_care.class.php');
  297. $smarty = new smarty_care('common');
  298. # Prepare title
  299. $sTemp = "$LDIntraEmail - ";
  300. if($mode=='compose'){
  301. $sTemp.=$LDComposeMail;
  302. }else{
  303. switch($folder){
  304. case 'inbox': $sTemp.=$LDInbox; break;
  305. case 'sent': $sTemp.=$LDSent; break;
  306. case 'drafts': $sTemp.=$LDDrafts; break;
  307. case 'trash': $sTemp.=$LDRecycle; break;
  308. default:
  309. }
  310. }
  311. # Title in toolbar
  312. $smarty->assign('sToolbarTitle',$sTemp);
  313. $smarty->assign('LDBack', $LDBack);
  314. $smarty->assign('LDHelp', $LDHelp);
  315. $smarty->assign('LDClose', $LDClose);
  316. # href for help button
  317. $smarty->assign('pbHelp',CARE_GUI . "modules/" . MODULE . "/help/" . $lang . "/intramail.html");
  318. # href for close button
  319. $smarty->assign('breakfile',$breakfile);
  320. # Window bar title
  321. $smarty->assign('title',$sTemp);
  322. # Set body onLoad javascript
  323. if($mode=='compose') $smarty->assign('sOnLoadJs','onLoad="document.mailform.recipient.focus()"');
  324. # Collect extra javascript code
  325. ob_start();
  326. ?>
  327. <script language="javascript" >
  328. <!--
  329. var feld="recipient";
  330. <?php
  331. if($mode=='listmail')
  332. echo '
  333. function chkDelete(d,m)
  334. {
  335. for (i=0;i<m;i++){
  336. if(eval("d.del"+i+".checked"))
  337. if(confirm("'.$LDConfirmDelete.'")) return true;
  338. else {
  339. for (i=0;i<m;i++) if(eval("d.del"+i+".checked")) eval("d.del"+i+".checked=false");
  340. d.sel_all.checked=false;
  341. break;
  342. }
  343. }
  344. return false;
  345. }
  346. function selectAll(s,m)
  347. {
  348. if(s.checked) v="true"; else v="false";
  349. d=document.listform;
  350. for(i=0;i<m;i++) eval("d.del"+i+".checked="+v);
  351. }
  352. ';
  353. ?>
  354. <?php if(($mode=='compose')||($mode=='sendmail')) : ?>
  355. function save2draft()
  356. {
  357. d=document.mailform;
  358. d.folder.value="drafts";
  359. if(d.subject.value=="") d.subject.value="<?php echo $LDSubject ?>:";
  360. d.submit();
  361. }
  362. function chkCompose(d)
  363. {
  364. if((d.recipient.value=="")&&(d.folder.value!="drafts"))
  365. {
  366. alert("<?php echo $LDAlertNoRecipient ?>");
  367. d.recipient.focus();
  368. return false;
  369. }
  370. if((d.subject.value=="")||(d.subject.value=="Betreff:"))
  371. {
  372. if(confirm("<?php echo $LDAlertNoSubject ?>")) return true;
  373. d.subject.focus();
  374. return false;
  375. }
  376. if((d.body_txt.value==""))
  377. {
  378. alert("<?php echo $LDAlertNoText ?>");
  379. d.body_txt.focus();
  380. return false;
  381. }
  382. }
  383. function useadd(a)
  384. {
  385. if (feld=="subject")
  386. { document.mailform.subject.focus();
  387. return;
  388. }
  389. if(eval("document.mailform."+feld+".value==''")) eval("document.mailform."+feld+".value=a");
  390. else eval("document.mailform."+feld+".value=document.mailform."+feld+".value + '; '+a");
  391. eval("document.mailform."+feld+".focus()");
  392. }
  393. function showAll()
  394. {
  395. url="intra-email-showaddr.php?sid=<?php echo "$sid&lang=$lang&mode=$mode&folder=$folder&l2h=$l2h" ?>";
  396. //window.location.href=url;
  397. addrwin=window.open(url,"addrwin","width=600,height=500,menubar=no,resizable=yes,scrollbars=yes");
  398. }
  399. function chgQuickAddr()
  400. {
  401. url="intra-email-chgQaddr.php?sid=<?php echo "$sid&lang=$lang&eadd=".$_COOKIE[$local_user.$sid] ?>";
  402. addrwin=window.open(url,"addrwin","width=600,height=500,menubar=no,resizable=yes,scrollbars=yes");
  403. }
  404. <?php endif; ?>
  405. // -->
  406. </script>
  407. <?php
  408. $sTemp = ob_get_contents();
  409. ob_end_clean();
  410. $smarty->append('JavaScript',$sTemp);
  411. # Start buffering page output
  412. ob_start();
  413. /**
  414. * Top horizontal nav bar
  415. */
  416. echo '
  417. &nbsp; <b>';
  418. if($mode!='listmail') echo '<a href="intra-email.php'.URL_APPEND.'&mode=listmail">'.$LDInbox.'</a> | ';
  419. else echo $LDInbox.' | ';
  420. if($mode!='compose') echo '<a href="intra-email.php'.URL_APPEND.'&mode=compose">'.$LDNewEmail.'</a> | ';
  421. else echo $LDNewEmail.' | ';
  422. echo '<a href="intra-email-addrbook.php'.URL_APPEND.'&mode='.$mode.'&folder='.$folder.'">'.$LDAddrBook.'</a> |
  423. <a href="javascript:gethelp(\'intramail.php\',\'mail\',\''.$mode.'\',\''.$folder.'\',\''.$sendok.'\')">'.$LDHelp.'</a>|
  424. <a href="intra-email-pass.php'.URL_APPEND.'">'.$LDLogout.'</a></b>
  425. <hr color=#000080>
  426. &nbsp; <FONT color="#800000">'.$_COOKIE[$local_user.$sid].'<br>
  427. ';
  428. /* echo '<a href="intra-email-addrbook.php'.URL_APPEND.'&mode='.$mode.'&folder='.$folder.'">'.$LDAddrBook.'</a> |
  429. <a href="intra-email-options.php'.URL_APPEND.'">'.$LDOptions.'</a> |
  430. <a href="javascript:gethelp(\'intramail.php\',\'mail\',\''.$mode.'\',\''.$folder.'\',\''.$sendok.'\')">'.$LDHelp.'</a>|
  431. <a href="intra-email-pass.php'.URL_APPEND.'">'.$LDLogout.'</a></b>
  432. <hr color=#000080>
  433. &nbsp; <FONT color="#800000">'.$_COOKIE[$local_user.$sid].'</font><br>
  434. ';
  435. *//**
  436. * Compose routine
  437. */
  438. if(($mode=='compose')||($mode=='sendmail'))
  439. {
  440. echo '<ul><form name="mailform" action="'.$thisfile.'" method="post" onSubmit="return chkCompose(this)">';
  441. if(($mode=='sendmail')&&($sendok))
  442. {
  443. echo ' <font class="prompt">';
  444. if($folder=='drafts') echo $LDEmail2Drafts;
  445. else echo $LDEmailSent;
  446. echo '</font>';
  447. }
  448. echo '
  449. <table border=0 cellspacing=1 cellpadding=3 width="80%" height="80%">
  450. <tr>
  451. <td bgcolor="#f3f3f3" align=right><FONT face="Verdana,Helvetica,Arial" size=2 color="#000080">'.$LDRecipient.':</td>
  452. <td bgcolor="#f3f3f3"><FONT face="Verdana,Helvetica,Arial" size=2 >';
  453. if($sendok) echo $recipient; else echo '<input type="text" name="recipient" size=40 maxlength=40 value="'.$recipient.'" onFocus="feld=\'recipient\'">';
  454. echo '
  455. </td>
  456. <td rowspan=6 bgcolor="#f3f3f3" valign=top>';
  457. if(!$sendok)
  458. {
  459. echo '
  460. <FONT face="Verdana,Helvetica,Arial" size=2 color="#000080">
  461. '.$LDQuickAddr.':</font><FONT face="Verdana,Helvetica,Arial" size=2><p>';
  462. for($i=0;$i<sizeof($qa);$i++)
  463. {
  464. echo '
  465. <a href="javascript:useadd(\''.$qa[$i].'\')" title="'.$LDInsertAddr.'" ><img '.createComIcon($root_path,'arrow-blu.gif','0','middle').'> '.$qa[$i].'</a><br>';
  466. }
  467. echo '
  468. <p><input type="button" value="'.$LDShowAll.'" onClick="showAll()">
  469. <input type="button" value="'.$LDChange.'" onClick="chgQuickAddr()">
  470. <br>';
  471. }
  472. echo '
  473. </td>
  474. </tr>
  475. <tr>
  476. <td bgcolor="#f3f3f3""&nbsp;</td>
  477. <td bgcolor="#f3f3f3">';
  478. if(!$sendok)
  479. {
  480. echo '
  481. <input type="checkbox" name="ack" value="1" ';
  482. if($ack) echo "checked";
  483. echo '><FONT face="Verdana,Helvetica,Arial" size=1>'.$LDAskAck;
  484. }
  485. echo '
  486. </td>
  487. </tr>
  488. <tr>
  489. <td bgcolor="#f3f3f3" align=right><FONT face="Verdana,Helvetica,Arial" size=2 color="#000080">'.$LDCC.' (CC)</td>
  490. <td bgcolor="#f3f3f3">';
  491. if($sendok) echo '<FONT face="Verdana,Helvetica,Arial" size=2 >'.$cc;
  492. else echo '<input type="text" name="cc" size=40 maxlength=40 value="'.$cc.'" onFocus="feld=\'cc\'">';
  493. echo '
  494. </td>
  495. </tr>
  496. <tr>
  497. <td bgcolor="#f3f3f3" align=right><FONT face="Verdana,Helvetica,Arial" size=2 color="#000080">'.$LDBCC.' <a href="#" title="'.$LDBCCTxt.'"><font color="#0000ff"><u>(BCC)</u></font></a></td>
  498. <td bgcolor="#f3f3f3">';
  499. if($sendok) echo '<FONT face="Verdana,Helvetica,Arial" size=2 >'.$bcc;
  500. else echo '<input type="text" name="bcc" size=40 maxlength=40 value="'.$bcc.'" onFocus="feld=\'bcc\'">';
  501. echo '
  502. </td>
  503. </tr>
  504. <tr>
  505. <td bgcolor="#f3f3f3" align=right><FONT face="Verdana,Helvetica,Arial" size=2 color="#000080">'.$LDSubject.':</td>
  506. <td bgcolor="#f3f3f3">';
  507. if($sendok) echo '<FONT face="Verdana,Helvetica,Arial" size=2 >'.$subject;
  508. else echo '<input type="text" name="subject" size=40 maxlength=150 value="'.$subject.'" onFocus="feld=\'subject\'">';
  509. echo '
  510. </td>
  511. </tr>';
  512. /* <tr>
  513. <td bgcolor="#f3f3f3" align=right><FONT face="Verdana,Helvetica,Arial" size=2 color="#000080">Anhang:</td>
  514. <td bgcolor="#f3f3f3"><input type="button" name="attach" value="Einf'gen/Aktualisieren" ></td>
  515. </tr>
  516. */
  517. echo'
  518. <tr>
  519. <td colspan=3 bgcolor="#f3f3f3">';
  520. if(!$sendok)
  521. {
  522. echo '
  523. <input type="submit" value="'.$LDSend.'">';
  524. if($folder!="drafts") echo '
  525. <input type="button" value="'.$LDSave2Draft.'" onClick=save2draft()>';
  526. echo '
  527. <input type="reset" value="'.$LDReset.'" align=right onClick=document.mailform.recipient.focus()>
  528. <br><textarea name="body_txt" cols=77 rows=14 wrap="physical">'.$body_txt.'</textarea><br>
  529. <input type="submit" value="'.$LDSend.'">
  530. ';
  531. if($folder!="drafts") echo '
  532. <input type="button" value="'.$LDSave2Draft.'" onClick=save2draft()>';
  533. /*echo '
  534. <input type="reset" value="'.$LDReset.'" onClick=document.mailform.recipient.focus()>';*/
  535. }
  536. else echo '<FONT face="Verdana,Helvetica,Arial" size=2 >'.nl2br($body_txt);
  537. echo '
  538. </td>
  539. </tr>
  540. </table>
  541. <input type="hidden" name="sid" value="'.$sid.'">
  542. <input type="hidden" name="lang" value="'.$lang.'">
  543. <input type="hidden" name="mode" value="sendmail">
  544. <input type="hidden" name="folder" value="sent">
  545. </form>
  546. </ul>
  547. ';
  548. }
  549. //******************************************* list mail *******************************
  550. if($mode=='listmail')
  551. { // prepare inbox for display
  552. $arrlist=explode('_',$content[$folder]);
  553. if(!$l2h) rsort($arrlist); else sort($arrlist);
  554. reset($arrlist);
  555. $maxrow=sizeof($arrlist);
  556. if(($maxrow==1)&&($arrlist[0]=='')) $maxrow=0;
  557. /* Load common icons */
  558. $img_closemail=createComIcon($root_path,'c-mail.gif','0');
  559. $img_openmail=createComIcon($root_path,'o-mail.gif','0');
  560. $img_closefolder=createComIcon($root_path,'cf.gif','0');
  561. $img_openfolder=createComIcon($root_path,'of.gif','0');
  562. $img_uparrow=createComIcon($root_path,'arw_up.gif','0');
  563. $img_dwnarrow=createComIcon($root_path,'arw_down.gif','0');
  564. echo'
  565. <table border=0>
  566. <tr>
  567. <td valign=top><FONT color="#0000f0"><nobr>
  568. ';
  569. /**
  570. * Left nav bar for mailboxes
  571. */
  572. if($folder=='inbox')
  573. echo '<img '.$img_openfolder.'> <b>'.$LDInbox.' </b>';
  574. else echo '<a href="'.$thisfile.URL_APPEND.'&mode=listmail&l2h='.$l2h.'"><img '.$img_closefolder.'> '.$LDInbox.'</a>';
  575. echo '<font size=1 face=verdana,arial color="#0"> (';
  576. if($folder=='inbox') echo $maxrow; else echo $inbnum;
  577. echo ')</font>';
  578. echo '<br>';
  579. if($folder=='sent')
  580. echo '<img '.$img_openfolder.'> <b>'.$LDSent.'</b>';
  581. else echo '<a href="'.$thisfile.URL_APPEND.'&mode=listmail&l2h='.$l2h.'&folder=sent"><img '.$img_closefolder.'> '.$LDSent.'</a>';
  582. echo '<font size=1 face=verdana,arial color="#0"> (';
  583. if($folder=='sent') echo $maxrow; else echo $sentnum;
  584. echo ')</font>';
  585. echo '<br>';
  586. if($folder=='drafts') echo '<img '.$img_openfolder.'> <b>'.$LDDrafts.'</b>';
  587. else echo '<a href="'.$thisfile.URL_APPEND.'&mode=listmail&l2h='.$l2h.'&folder=drafts"><img '.$img_closefolder.'> '.$LDDrafts.'</a>';
  588. echo '<font size=1 face=verdana,arial color="#0"> (';
  589. if($folder=='drafts') echo $maxrow; else echo $drafnum;
  590. echo ')</font>';
  591. echo '<br>';
  592. if($folder=='trash') echo '<img '.$img_openfolder.'> <b>'.$LDRecycle.'</b>';
  593. else echo '<a href="'.$thisfile.URL_APPEND.'&mode=listmail&l2h='.$l2h.'&folder=trash"><img '.$img_closefolder.'> '.$LDRecycle.'</a>';
  594. echo '<font size=1 face=verdana,arial color="#0"> (';
  595. if($folder=='trash') echo $maxrow; else echo $trasnum;
  596. echo ')</font>';
  597. /**
  598. * End of left nav bar for mailboxes
  599. */
  600. echo '<br>
  601. </td>
  602. <td valign=top><img src="'.$root_path.'gui/img/common/default/pixel.gif" border=0 width=10 height=1>
  603. </td>
  604. <td valign=top><FONT face="Verdana,Helvetica,Arial" size=2> ';
  605. if($maxrow)
  606. {
  607. echo '<FONT face="Verdana,Helvetica,Arial" size=5 color="#0000f0"><b>';
  608. switch($folder)
  609. {
  610. case 'inbox': echo "$LDInbox</b><br><img ".$img_closemail."><font size=1 color=#0> ".str_replace('~nr~',$newmails,$LDEmailCount)."</font>"; break;
  611. case 'sent': echo $LDSent; break;
  612. case 'drafts': echo $LDDrafts; break;
  613. case 'trash': echo $LDRecycle; break;
  614. }
  615. echo '</font>
  616. <form name="listform" action="intra-email-delete.php" method="post" onSubmit="return chkDelete(this,'.sizeof($arrlist).')">
  617. <input type="submit" value="'.$LDDelete.'"> &nbsp; &nbsp;
  618. <br> <table border=0 cellspacing=0 cellpadding=0>
  619. <tr ><td colspan=6 height=1><img src="'.$root_path.'gui/img/common/default/pixel.gif" border=0 height=4 width=1></td></tr>
  620. <tr bgcolor="#0060ae">
  621. <td>&nbsp;</td>
  622. <td> <input type="checkbox" name="sel_all" value="1" onClick="selectAll(this,'.$maxrow.')"><br>
  623. </td>
  624. <td><FONT face="Verdana,Helvetica,Arial" size=2 color="#ffffff">&nbsp;&nbsp;<b>';
  625. if($folder=='inbox') echo "$LDFrom:"; else echo "$LDTo:/$LDFrom:";
  626. echo '
  627. </b></td>
  628. <td><FONT face="Verdana,Helvetica,Arial" size=2 color="#ffffff">&nbsp;&nbsp;<b>'.$LDSubject.':</b></td>
  629. <td><FONT face="Verdana,Helvetica,Arial" size=2 color="#ffffff">&nbsp;';
  630. if($l2h) echo '<a href="'.$thisfile.URL_APPEND.'&l2h=0&mode=listmail&folder='.$folder.'" title="'.$LDSortDate.'"><img '.$img_uparrow; else echo '<a href="'.$thisfile.URL_APPEND.'&l2h=1&mode=listmail&folder='.$folder.'" title="'.$LDSortDate.'"><img '.$img_dwnarrow;
  631. echo '
  632. width=12 height=20 border=0 align=absmiddle alt="'.$LDSortDate.'"> <font color="#ffffff"><b>'.$LDDate.' '.$LDTime.':</b></font></a></td>
  633. <td><FONT face="Verdana,Helvetica,Arial" size=2 color="#ffffff">&nbsp;&nbsp;<b>'.$LDSize.':</b>&nbsp;</td>
  634. </tr>';
  635. /* Create the mail list */
  636. for($i=0;$i<sizeof($arrlist);$i++)
  637. {
  638. parse_str(trim($arrlist[$i]),$minfo);
  639. $buf="intra-email-read.php?sid=$sid&lang=$lang&ua=$ck_intra_email_user&s_stamp=$minfo[t]&read=$minfo[r]&from=$minfo[f]&subj=".strtr($minfo[s]," ","+")."&date=".strtr($minfo[d]," ","+")."&size=$minfo[z]&l2h=$l2h&folder=$folder";
  640. if($minfo[r]) {echo '<tr bgcolor="#ffffff">';} else {echo ' <tr bgcolor="#ffeeee">';}
  641. echo '<td>&nbsp;';
  642. if($minfo[r]) echo '<a href="'.$buf.'"><img '.$img_openmail.' alt="'.$LDReadEmail.'"><br></a>';
  643. else echo '<img '.$img_closemail.' alt="'.$LDReadEmail.'"><br>';
  644. $delbuf="t=$minfo[t]&r=$minfo[r]&f=$minfo[f]&s=$minfo[s]&d=$minfo[d]&z=$minfo[z]";
  645. echo '
  646. </td>
  647. <td> <input type="checkbox" name="del'.$i.'" value="'.strtr($delbuf," ","+").'"><br>
  648. </td>
  649. <td><FONT face="Verdana,Helvetica,Arial" size=1>&nbsp;&nbsp;<a href="'.$buf.'" title="'.$LDReadEmail.'">'.$minfo['f'].'</a></td>
  650. <td><FONT face="Verdana,Helvetica,Arial" size=1>&nbsp;&nbsp;<a href="'.$buf.'" title="'.$LDReadEmail.'">'.$minfo['s'].'</a></td>
  651. <td><FONT face="Verdana,Helvetica,Arial" size=1>&nbsp;&nbsp;<a href="'.$buf.'" title="'.$LDReadEmail.'">'.formatDate2Local($minfo['d'],$date_format).' '.convertTimeToLocal(formatDate2Local($minfo['d'],$date_format,0,1)).'</a></td>
  652. <td align=right><FONT face="Verdana,Helvetica,Arial" size=1>&nbsp;&nbsp;<a href="'.$buf.'" title="'.$LDReadEmail.'">'.$minfo['z'].'&nbsp;</a></td>
  653. </tr>
  654. <tr ><td bgcolor="#66aace" colspan=6 height=1><img src="'.$root_path.'gui/img/common/default/pixel.gif" border=0 height=1 width=1></td></tr>';
  655. }
  656. echo '
  657. <tr ><td colspan=6 height=1><img src="'.$root_path.'gui/img/common/default/pixel.gif" border=0 height=4 width=1></td></tr>
  658. </table>
  659. <input type="hidden" name="mode" value="listmail">
  660. <input type="hidden" name="maxrow" value="'.$maxrow.'">
  661. <input type="hidden" name="sid" value="'.$sid.'">
  662. <input type="hidden" name="lang" value="'.$lang.'">
  663. <input type="hidden" name="l2h" value="'.$l2h.'">
  664. <input type="hidden" name="folder" value="'.$folder.'">
  665. <input type="submit" value="'.$LDDelete.'">
  666. </form>
  667. ';
  668. } // end of if maxrow
  669. else
  670. {
  671. echo '
  672. <FONT class="prompt">';
  673. switch($folder)
  674. {
  675. case 'inbox': $fbuf=$LDInbox; break;
  676. case 'sent': $fbuf=$LDSent; break;
  677. case 'drafts': $fbuf=$LDDrafts; break;
  678. case 'trash': $fbuf=$LDRecycle; break;
  679. }
  680. echo str_replace('~tagword~',$fbuf,$LDFolderEmpty).'</font>';
  681. }
  682. echo ' </td>
  683. </tr>
  684. </table>
  685. ';
  686. }elseif($mode==''){
  687. echo'<center>
  688. <FONT face="Verdana,Helvetica,Arial" size=3 color="#800000">
  689. '.$LDWelcome.' '.$usr.'</font><p>
  690. <FONT face="Verdana,Helvetica,Arial" size=2 >
  691. <a href="'.$thisfile.URL_APPEND.'&mode=listmail">'.$LDNoteIntra.'</a>
  692. </center>';
  693. }
  694. $sTemp = ob_get_contents();
  695. ob_end_clean();
  696. # Assign to main template object
  697. $smarty->assign('sMainFrameBlockData',$sTemp);
  698. /**
  699. * show Template
  700. */
  701. $smarty->display(CARE_BASE . 'main/view/mainframe.tpl');
  702. ?>