init
This commit is contained in:
353
modules/Emails/allList.php
Normal file
353
modules/Emails/allList.php
Normal file
@@ -0,0 +1,353 @@
|
||||
<?php
|
||||
if (!defined('sugarEntry') || !sugarEntry)
|
||||
die('Not A Valid Entry Point');
|
||||
|
||||
//if (!is_admin($current_user)) die('Nie masz wystarczających uprawnień');
|
||||
|
||||
if (isset($_GET['request'])) {
|
||||
if ($_GET['request'] == 'showHeaders')
|
||||
echo loadHeaders($_GET['user_id'], $_GET['date_from'], $_GET['date_to'], $_GET['answered'], $_GET['seen'], $_GET['deleted'], $_GET['io'], 'in');
|
||||
|
||||
if ($_GET['request'] == 'showHeaders_outbox')
|
||||
echo loadHeaders($_GET['user_id'], $_GET['date_from'], $_GET['date_to'], null , null , $_GET['deleted'], $_GET['io'], 'out');
|
||||
|
||||
if ($_GET['request'] == 'showMail')
|
||||
echo loadMail($_GET['mail_id'], $_GET['user_id']);
|
||||
|
||||
if ($_GET['request'] == 'showAttachments')
|
||||
echo loadAttachments($_GET['mail_id'], $_GET['user_id']);
|
||||
} else
|
||||
initSearch();
|
||||
|
||||
function initSearch() {
|
||||
$xtpl = new XTemplate('modules/Emails/allList.html');
|
||||
$db = $GLOBALS['db'];
|
||||
|
||||
//generate users list
|
||||
//AND id!='9adce0e8-d0c2-dc41-83f8-4eb9333b6c77'
|
||||
//list without user Marek Wiśniewski
|
||||
$query = "
|
||||
SELECT
|
||||
id,
|
||||
first_name,
|
||||
last_name
|
||||
FROM
|
||||
users
|
||||
WHERE
|
||||
deleted = 0
|
||||
AND
|
||||
employee_status = 'Active'
|
||||
AND
|
||||
id != '9adce0e8-d0c2-dc41-83f8-4eb9333b6c77';
|
||||
";
|
||||
|
||||
// print_r($query);
|
||||
// exit;
|
||||
|
||||
$result = $db->query($query);
|
||||
$user_list = '';
|
||||
$user_list.='<select size="' . $result->num_rows . '" id="user_list" onClick="javascript:showHeaders()">';
|
||||
|
||||
while ($row = $db->fetchByAssoc($result)) {
|
||||
$user_list.='<option value="' . $row['id'] . '">' . $row['first_name'] . ' ' . $row['last_name'] . '</option>';
|
||||
}
|
||||
|
||||
$user_list.='</select>';
|
||||
$xtpl->assign("USER_LIST", $user_list);
|
||||
|
||||
$xtpl->parse("main");
|
||||
$xtpl->out("main");
|
||||
}
|
||||
|
||||
function loadHeaders($user_id, $date_from, $date_to, $answered, $seen, $deleted, $io, $in_out) {
|
||||
$db = $GLOBALS['db'];
|
||||
|
||||
$io = trim($io);
|
||||
|
||||
if ($in_out != 'in')
|
||||
$in_out = 'out';
|
||||
|
||||
//var_dump($in_out);
|
||||
|
||||
$whereConditions = array();
|
||||
|
||||
if(strlen($io))
|
||||
switch($in_out){
|
||||
default:
|
||||
case 'in':
|
||||
array_push($whereConditions, 'ec.`fromaddr` LIKE \'%' . $io . '%\'');
|
||||
break;
|
||||
case 'out':
|
||||
array_push($whereConditions, 'ec.`toaddr` LIKE \'%' . $io . '%\'');
|
||||
break;
|
||||
}
|
||||
|
||||
//echo '<pre>';
|
||||
//var_dump($whereConditions);
|
||||
//echo '</pre>';
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
ec.ie_id,
|
||||
ec.subject,
|
||||
ec.message_id,
|
||||
ec.fromaddr,
|
||||
ec.toaddr,
|
||||
ec.senddate,
|
||||
ec.alllist_text_id
|
||||
FROM
|
||||
email_cache AS ec
|
||||
INNER JOIN
|
||||
email_alllist_texts as et ON et.id=ec.alllist_text_id
|
||||
WHERE
|
||||
et.ie_id IN
|
||||
(
|
||||
SELECT id FROM inbound_email WHERE group_id='" . $user_id . "'
|
||||
)
|
||||
AND
|
||||
et.in_out LIKE '" . $in_out . "'";
|
||||
|
||||
$query .= $whereConditions ? (' AND ' . implode(' AND ', $whereConditions)) : '';
|
||||
|
||||
//print_r($query);
|
||||
//exit;
|
||||
|
||||
if (($date_from != '') && ($date_to != ''))
|
||||
{
|
||||
$query.=" AND senddate BETWEEN (SELECT DATE_FORMAT('" . $date_from . "', '%Y%m%d')) AND (SELECT DATE_FORMAT('" . $date_to . "', '%Y%m%d'))";
|
||||
} else {
|
||||
if ($date_from != '')
|
||||
$query.=" AND senddate >= '" . $date_from . "'";
|
||||
|
||||
if ($date_to != '')
|
||||
$query.=" AND senddate <= '" . $date_to . "'";
|
||||
}
|
||||
|
||||
$query.=" AND alllist_text_id IS NOT NULL";
|
||||
$query.=" ORDER BY senddate DESC";
|
||||
|
||||
$result = $db->query($query);
|
||||
|
||||
$header_list = '';
|
||||
$header_list .= '<table id ="header_table" cellpadding="1px">';
|
||||
$header_list .= '<tr id="header_table_head_row">';
|
||||
$header_list .= '<td width=500><b>Temat</b></td>';
|
||||
|
||||
switch($in_out){
|
||||
default:
|
||||
case 'in':
|
||||
$header_list .= '<td width=250><b>Nadawca</b></td>';
|
||||
break;
|
||||
case 'out':
|
||||
$header_list .= '<td width=250><b>Odbiorca</b></td>';
|
||||
break;
|
||||
}
|
||||
|
||||
$header_list .= '<td width=150><b>Data otrzymania</b></td>';
|
||||
$header_list .= '</tr>';
|
||||
|
||||
$s = 0;
|
||||
$a = 0;
|
||||
$d = 0;
|
||||
|
||||
while ($row = $db->fetchByAssoc($result)) {
|
||||
if ($row['deleted'] == 1) {
|
||||
$przekreP = '<s>';
|
||||
$przekreK = '</s>';
|
||||
} else {
|
||||
$przekreP = '';
|
||||
$przekreK = '';
|
||||
}
|
||||
|
||||
if ($row['answered'] == 1) {
|
||||
$podkreP = '<u>';
|
||||
$podkreK = '</u>';
|
||||
} else {
|
||||
$podkreP = '';
|
||||
$podkreK = '';
|
||||
}
|
||||
|
||||
if ($row['seen'] == 0) {
|
||||
$pogruP = '<b>';
|
||||
$pogruK = '</b>';
|
||||
} else {
|
||||
$pogruP = '';
|
||||
$pogruK = '';
|
||||
}
|
||||
|
||||
$subject = charsetEncode($row['subject']);
|
||||
$from = '';
|
||||
|
||||
switch($in_out){
|
||||
default:
|
||||
case 'in':
|
||||
$from = charsetEncode($row['fromaddr']);
|
||||
break;
|
||||
case 'out':
|
||||
$from = charsetEncode($row['toaddr']);
|
||||
break;
|
||||
}
|
||||
|
||||
$id = $row['alllist_text_id'];
|
||||
|
||||
$header_list .= '<tr onMouseOver="this.className=\'highlight\'" onMouseOut="this.className=\'normal\'" onClick="this.className=\'selected\';javascript:showAttachments(\'' . $id . '\');javascript:showMail(\'' . $id . '\');">
|
||||
<td width=500>' . $podkreP . $przekreP . $pogruP . $subject . $podkreK . $przekreK . $pogruK . '</td>
|
||||
<td width=250>' . $podkreP . $przekreP . $pogruP . ($from) . $podkreK . $przekreK . $pogruK . '</td>
|
||||
<td width=150>' . $podkreP . $przekreP . $pogruP . $row['senddate'] . $podkreK . $przekreK . $pogruK . '</td>
|
||||
</tr>
|
||||
';
|
||||
|
||||
if ($row['seen'] == 1)
|
||||
$s++;
|
||||
if ($row['answered'] == 1)
|
||||
$a++;
|
||||
if ($row['deleted'] == 1)
|
||||
$d++;
|
||||
}
|
||||
|
||||
$header_list.='</table>';
|
||||
$header_list.='</select></td><td valign="top" style="padding-left: 10px;">';
|
||||
|
||||
return $header_list;
|
||||
}
|
||||
|
||||
function loadHeaders_outbox($user_id, $date_from, $date_to, $deleted) {
|
||||
$db = $GLOBALS['db'];
|
||||
|
||||
$query = "SELECT id, assigned_user_id, name, deleted, date_sent FROM emails WHERE assigned_user_id='" . $user_id . "' AND (status='sent' OR status='archived') AND (type='out' OR type='archived') AND mailbox_id IS NULL";
|
||||
|
||||
if (($date_from != '') && ($date_to != ''))
|
||||
$query.=" AND date_sent BETWEEN (SELECT DATE_FORMAT('" . $date_from . "', '%Y%m%d')) AND (SELECT DATE_FORMAT('" . $date_to . "', '%Y%m%d'))";
|
||||
else {
|
||||
if ($date_from != '')
|
||||
$query.=" AND date_sent >= '" . $date_from . "'";
|
||||
|
||||
if ($date_to != '')
|
||||
$query.=" AND date_sent <= '" . $date_to . "'";
|
||||
}
|
||||
|
||||
if ($deleted == 0)
|
||||
$query.=" AND deleted=0";
|
||||
|
||||
if ($deleted == 1)
|
||||
$query.=" AND deleted=1";
|
||||
|
||||
$query.=" ORDER BY date_sent DESC";
|
||||
$result = $db->query($query);
|
||||
|
||||
$emails = array();
|
||||
while ($row = $db->fetchByAssoc($result)) {
|
||||
$res = $db->query("SELECT email_address FROM email_addresses AS ea INNER JOIN emails_email_addr_rel AS eear ON (eear.email_address_id=ea.id AND eear.address_type='FROM' AND email_id='" . $row['id'] . "') INNER JOIN inbound_email AS ie ON (ie.email_user!=ea.email_address AND ie.group_id='" . $user_id . "')");
|
||||
|
||||
if ($res->num_rows == 0)
|
||||
$emails[] = $row;
|
||||
}
|
||||
|
||||
//$header_list.='<select size="'.$result->num_rows.'" id="header_list" onClick="javascript:showMail()">';
|
||||
$header_list = '<table id ="header_table" cellpadding="1px"><tr id="header_table_head_row">
|
||||
<td width=650><b>Temat</b></td>
|
||||
<td width=150><b>Data wysłania</b></td>
|
||||
</tr>';
|
||||
$s = 0;
|
||||
$a = 0;
|
||||
$d = 0;
|
||||
|
||||
//while ($row = $db->fetchByAssoc($result)) {
|
||||
foreach ($emails as $row) {
|
||||
if ($row['deleted'] == 1) {
|
||||
$przekreP = '<s>';
|
||||
$przekreK = '</s>';
|
||||
} else {
|
||||
$przekreP = '';
|
||||
$przekreK = '';
|
||||
}
|
||||
|
||||
$subject = charsetEncode($row['name']);
|
||||
//$subject = charsetEncode($row['id']);
|
||||
//$from = fix_text($row['fromaddr']);
|
||||
|
||||
$header_list.='<tr onMouseOver="this.className=\'highlight\'" onMouseOut="this.className=\'normal\'">
|
||||
<td width=500>
|
||||
<a href="index.php?module=Emails&action=DetailView&record=' . $row['id'] . '" target="new">
|
||||
' . $podkreP . $przekreP . $pogruP . $subject . $podkreK . $przekreK . $pogruK . '</a></td>
|
||||
<td width=150>' . $podkreP . $przekreP . $pogruP . $row['date_sent'] . $podkreK . $przekreK . $pogruK . '</td>
|
||||
</tr>';
|
||||
if ($row['seen'] == 1)
|
||||
$s++;
|
||||
if ($row['answered'] == 1)
|
||||
$a++;
|
||||
if ($row['deleted'] == 1)
|
||||
$d++;
|
||||
}
|
||||
$header_list.='</table>';
|
||||
//$header_list.='</select></td><td valign="top" style="padding-left: 10px;">';
|
||||
return $header_list;
|
||||
}
|
||||
|
||||
function loadMail($id, $user_id) {
|
||||
$db = $GLOBALS['db'];
|
||||
$query = "SELECT description_html, attachments FROM email_alllist_texts WHERE id='" . $id . "';";
|
||||
$result = $db->query($query);
|
||||
$row = $db->fetchByAssoc($result);
|
||||
$text = htmlspecialchars_decode($row['description_html']);
|
||||
|
||||
//return $query;
|
||||
|
||||
//to fix images
|
||||
//
|
||||
//$attachments = explode(";", $row['attachments']);
|
||||
//$file_name = array();
|
||||
//if (count($attachments)>1)
|
||||
//foreach ($attachments as $file) {
|
||||
//$parts = explode("/", $file);
|
||||
// $ext = substr($parts[count($parts)-1],strlen($parts[count($parts)-1])-4, 4);
|
||||
// if (($ext=='.jpg') || ($ext=='.png') || ($ext=='.gif'))
|
||||
// array_push($file_name, $parts[count($parts)-1]);
|
||||
// }
|
||||
//
|
||||
//$text = str_replace('http://192.168.0.4/crm/cache//images/','modules/Emails/alllist_upload/'.$id.'/"',$text);
|
||||
//foreach ($file_name as $file)
|
||||
//$text = str_replace($id.'/"', $id.'/'.$file.'"', $text, 1);
|
||||
|
||||
str_replace("\n", "<br>", $text);
|
||||
return $text;
|
||||
}
|
||||
|
||||
function loadAttachments($id, $user_id) {
|
||||
$db = $GLOBALS['db'];
|
||||
$query = "SELECT attachments FROM email_alllist_texts WHERE id='" . $id . "';";
|
||||
$result = $db->query($query);
|
||||
$row = $db->fetchByAssoc($result);
|
||||
//$text = htmlspecialchars_decode($row['attachments']);
|
||||
$text = $row['attachments'];
|
||||
|
||||
$attachments = explode(";", $row['attachments']);
|
||||
$return = ' ';
|
||||
|
||||
if (count($attachments) == 1)
|
||||
return 'Załączników: 0<br><br>';
|
||||
else {
|
||||
//$return = "Załączników: ".(count($attachments)-1).'<br><br>';
|
||||
foreach ($attachments as $file) {
|
||||
$parts = explode("/", $file);
|
||||
$file_name = $parts[count($parts) - 1];
|
||||
$return.='<a target="new" href="modules/Emails/alllist_upload/' . $file . '">' . $file_name . '</a><br>';
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
//to fix headers charset
|
||||
function charsetEncode($string) {
|
||||
$a = imap_mime_header_decode($string);
|
||||
$result = '';
|
||||
|
||||
foreach ($a as $v)
|
||||
if ($v->charset != 'default')
|
||||
$result.=iconv($v->charset, "UTF-8", $v->text) . ' ';
|
||||
|
||||
if ($result != '')
|
||||
return $result;
|
||||
else
|
||||
return $string;
|
||||
}
|
||||
Reference in New Issue
Block a user