function cc_message_entry($data, $link = "message.php") { global $msg_status; $id = $data['msgid']; return array('msgid' => $id, 'mdate' => myTimestamp($data['mtime'], 'm', _MD_TIME_UNIT), 'title' => "<a href='message.php?id={$id}'>" . $data['title'] . "</a>", 'uname' => xoops_getLinkedUnameFromId($data['uid']), 'status' => $msg_status[$data['status']], 'raw' => $data); }
} // recording contactee access time $now = time(); if ($uid == $data['uid'] && $now > $data['atime']) { $xoopsDB->queryF("UPDATE " . CCMES . " SET atime={$now} WHERE msgid={$msgid}"); } include XOOPS_ROOT_PATH . "/header.php"; $breadcrumbs = new XoopsBreadcrumbs(_MD_CCENTER_RECEPTION, 'reception.php'); $pass = isset($_GET['p']) ? $_GET['p'] : ''; $add = $pass ? "p=" . urlencode($pass) : ""; $to_uname = XoopsUser::getUnameFromId($data['touid']); $res = $xoopsDB->query("SELECT * FROM " . FORMS . " WHERE formid=" . $data['fidref']); $form = $xoopsDB->fetchArray($res); $items = get_form_attribute($form['defs']); $raws = unserialize_text($data['body']); $values = cc_display_values($raws, $items, $data['msgid'], $add); $data['comment'] = $myts->displayTarea($data['comment']); $isadmin = $uid && $xoopsUser->isAdmin($xoopsModule->getVar('mid')); $title = $data['title']; if ($isadmin) { $breadcrumbs->set($title, "reception.php?form=" . $data['fidref']); } else { $breadcrumbs->set($title, "index.php?form=" . $data['fidref']); } list($lab) = array_keys($raws); $breadcrumbs->set($lab . ': ' . $raws[$lab], ''); $breadcrumbs->assign(); $has_mail = !empty($data['email']); $xoopsTpl->assign(array('subject' => $title, 'sender' => xoops_getLinkedUnameFromId($data['uid']), 'sendto' => $data['touid'] ? xoops_getLinkedUnameFromId($data['touid']) : _MD_CONTACT_NOTYET, 'cdate' => formatTimestamp($data['ctime']), 'mdate' => myTimestamp($data['mtime'], 'l', _MD_TIME_UNIT), 'adate' => myTimestamp($data['atime'], 'l', _MD_TIME_UNIT), 'readit' => $data['atime'] >= $data['mtime'], 'data' => $data, 'items' => $values, 'status' => $msg_status[$data['status']], 'is_eval' => is_cc_evaluate($msgid, $uid, $pass), 'is_mine' => $data['touid'] == $uid, 'is_getmine' => $data['touid'] == 0 && $uid && in_array($data['cgroup'], $xoopsUser->getGroups()), 'own_status' => array_slice($msg_status, 1, $isadmin ? 4 : 3), 'xoops_pagetitle' => htmlspecialchars($xoopsModule->getVar('name') . " | " . $data['title']), 'has_mail' => $has_mail)); include XOOPS_ROOT_PATH . '/include/comment_view.php'; include XOOPS_ROOT_PATH . "/footer.php";
function msg_detail($msgid) { global $xoopsDB, $msg_status, $myts; $users = $xoopsDB->prefix('users'); $res = $xoopsDB->query("SELECT m.*,title,priuid,u.uname,cgroup,f.uname cfrom FROM " . CCMES . " m LEFT JOIN " . FORMS . " ON fidref=formid LEFT JOIN {$users} u ON touid=u.uid LEFT JOIN {$users} f ON m.uid=f.uid WHERE msgid={$msgid}"); $data = $xoopsDB->fetchArray($res); $data['stat'] = $msg_status[$data['status']]; $data['cdate'] = formatTimestamp($data['ctime'], 'm'); $data['mdate'] = myTimestamp($data['mtime'], 'm', _AM_TIME_UNIT); $labs = array('title' => _AM_FORM_TITLE, 'uid' => _AM_MSG_FROM, 'stat' => _AM_MSG_STATUS, 'cdate' => _AM_MSG_CTIME, 'mdate' => _AM_MSG_MTIME, 'uname' => _AM_MSG_CHARGE, 'value' => _AM_MSG_VALUE, 'comment' => _AM_MSG_COMMS); $touid = false; echo "<h2>" . _AM_MSG_ADMIN . "</h2>\n"; echo "<form method='post'>\n"; echo "<input type='hidden' name='msgid' value='{$msgid}'/>\n"; echo "<table class='ccinfo' cellspacing='1' width='100%'>\n"; $n = 0; $upage = "../message.php?id={$msgid}"; foreach ($labs as $k => $lab) { $bg = $n++ % 2 ? 'even' : 'odd'; $val = htmlspecialchars($data[$k], ENT_QUOTES); switch ($k) { case 'title': $val = "<a href='{$upage}'>{$val}</a>\n"; break; case 'uid': if ($val > 0) { $val = "<a href='" . XOOPS_URL . "/userinfo.php?uid={$val}'>" . htmlspecialchars($data['cfrom'], ENT_QUOTES) . "</a>"; } else { if ($data['email']) { $val = htmlspecialchars($data['email'], ENT_QUOTES); $val = "<a href='mailto:{$val}'>{$val}</a>"; } else { $val = _CC_USER_NONE; } } break; case 'stat': $val = select_widget('status', $msg_status, $data['status']); break; case 'uname': $touid = new MyFormSelect(_AM_FORM_PRIM_CONTACT, 'touid', $data['touid']); $gid = $data['priuid'] < 0 ? -$data['priuid'] : $data['cgroup']; $touid->addOption('0', _AM_FORM_PRIM_NONE); $touid->addOptionUsers($gid); $val = $touid->render() . "\n<input type='hidden' name='cgroup' id='cgroup' value='{$gid}'/>\n"; break; case 'value': $val = "<input name='{$k}' size='4' value='{$val}'/>"; break; case 'comment': $val = "<textarea name='{$k}' cols='50' rows='4'>{$val}</textarea>"; break; default: } echo "<tr><th>{$lab}</th><td>{$val}</td></tr>\n"; } echo "<tr><th></th><td><input type='submit' name='store' value='" . _AM_SUBMIT . "'/></td></tr>\n"; echo "</table>\n"; echo "</from><br/>\n"; if (!empty($touid)) { echo $touid->renderSupportJS(); } echo "<table class='outer' cellspacing='1'>\n"; $n = 0; foreach (unserialize_text($data['body']) as $k => $v) { $bg = $n++ % 2 ? 'even' : 'odd'; $k = htmlspecialchars($k, ENT_QUOTES); $v = nl2br(htmlspecialchars($v, ENT_QUOTES)); echo "<tr><td class='head'>{$k}</td><td class='{$bg}'>{$v}</td></tr>\n"; } echo "</table>\n"; $res = $xoopsDB->query("SELECT l.*,uname FROM " . CCLOG . " l LEFT JOIN " . $xoopsDB->prefix('users') . " ON euid=uid WHERE midref={$msgid} ORDER BY logid DESC"); $log = array(); echo '<a id="logging"></a><h3>' . _AM_LOGGING . "</h3>\n"; if ($xoopsDB->getRowsNum($res)) { $anon = $GLOBALS['xoopsConfig']['anonymous']; echo "<table>\n"; $reg = array('/\\(comid=(\\d+)\\)/'); $rep = array('(<a href="' . $upage . '#comment\\1">comid=\\1</a>)'); while ($data = $xoopsDB->fetchArray($res)) { $uname = htmlspecialchars(empty($data['uname']) ? $anon : $data['uname'], ENT_QUOTES); $comment = preg_replace($reg, $rep, $myts->displayTarea($data['comment'])); echo "<tr><td nowrap>" . formatTimestamp($data['ltime']) . "</td><td nowrap>" . "[{$uname}]</td><td width='100%'>{$comment}</td></tr>\n"; } echo "</table>\n"; } else { echo _AM_NODATA; } }