$uid = is_object($xoopsUser) ? $xoopsUser->getVar('uid') : 0; if (!is_object($xoopsUser)) { redirect_header(XOOPS_URL . '/user.php', 3, _NOPERM); exit; } include XOOPS_ROOT_PATH . "/header.php"; // query from login user if ($xoopsUser->isAdmin($xoopsModule->getVar('mid'))) { if (isset($_GET['touid'])) { $uid = intval($_GET['touid']); } } $labels = array('mtime' => _MD_MODDATE, 'formid' => _MD_CONTACT_FORM, 'uid' => _MD_CONTACT_FROM, 'status' => _CC_STATUS); $orders = array('mtime' => 'ASC', 'formid' => 'ASC', 'uid' => 'ASC', 'status' => 'ASC', 'stat' => '- a', 'orders' => array('status', 'mtime')); $listctrl = new ListCtrl('charge', $orders); $cond = " AND " . $listctrl->sqlcondition(); if (isset($_GET['form'])) { $cond .= " AND formid=" . intval($_GET['form']); } $sqlx = "FROM " . CCMES . " m," . FORMS . " WHERE touid={$uid} {$cond} AND fidref=formid"; $res = $xoopsDB->query("SELECT count(msgid) {$sqlx}"); list($total) = $xoopsDB->fetchRow($res); $max = $xoopsModuleConfig['max_lists']; $start = isset($_GET['start']) ? intval($_GET['start']) : 0; $nav = new XoopsPageNav($total, $max, $start, "start"); $xoopsTpl->assign('pagenav', $nav->renderNav()); $xoopsTpl->assign('statctrl', $listctrl->renderStat()); $xoopsTpl->assign('total', $total); $xoopsTpl->assign('xoops_pagetitle', htmlspecialchars($xoopsModule->getVar('name') . " - " . _MD_CCENTER_CHARGE)); $xoopsTpl->assign('labels', $listctrl->getLabels($labels)); $res = $xoopsDB->query("SELECT m.*, title {$sqlx} " . $listctrl->sqlorder(), $max, $start);
function msg_list() { global $msg_status, $xoopsDB, $xoopsUser, $xoopsModuleConfig, $xoopsModule, $myts; $labels = array('mtime' => _AM_FORM_MTIME, 'status' => _AM_MSG_STATUS, 'fidref' => _AM_FORM_TITLE, 'cfrom' => _AM_MSG_FROM, 'uname' => _AM_MSG_CHARGE, 'comms' => _AM_MSG_COMMS, 'ope' => _AM_OPERATION); $orders = array('mtime' => 'DESC', 'fidref' => 'ASC', 'uname' => 'ASC', 'status' => 'ASC', 'uid' => 'ASC', 'orders' => array('mtime')); $listctrl = new ListCtrl('msgadm', $orders); $start = isset($_GET['start']) ? intval($_GET['start']) : 0; $search = isset($_GET['q']) ? $myts->stripSlashesGPC($_GET['q']) : ''; $max = $xoopsModuleConfig['max_lists']; $users = $xoopsDB->prefix('users'); $comms = $xoopsDB->prefix('xoopscomments'); $mid = $xoopsModule->getVar('mid'); $sql0 = "FROM " . CCMES . " m LEFT JOIN " . FORMS . " ON fidref=formid \nLEFT JOIN {$users} u ON touid=u.uid LEFT JOIN {$users} f ON m.uid=f.uid"; $sql1 = "LEFT JOIN {$comms} ON com_modid={$mid} AND com_itemid=msgid"; $sql2 = "WHERE " . $listctrl->sqlcondition(); $formid = isset($_REQUEST['formid']) ? intval($_REQUEST['formid']) : 0; if ($formid) { $sql2 .= " AND fidref={$formid}"; } if ($search) { $sql2 .= " AND CONCAT(body,' ',m.email) like " . $xoopsDB->quoteString("%{$search}%"); } $res = $xoopsDB->query("SELECT count(msgid) {$sql0} {$sql2}"); list($total) = $xoopsDB->fetchRow($res); $args = preg_replace('/\\b&?start=\\d+/', '', $_SERVER['QUERY_STRING']); $nav = new XoopsPageNav($total, $max, $start, "start", $args); $res = $xoopsDB->query("SELECT m.*,title,u.uname, f.uname cfrom, count(com_id) comms {$sql0} {$sql1} {$sql2} GROUP BY msgid" . $listctrl->sqlorder(), $max, $start); echo "<style>td.num { text-align: right; }</style>\n"; echo "<h2>" . _AM_MSG_ADMIN . "</h2>\n"; echo "<table class='ccinfo' width='100%'>\n<tr><td width='30%'>" . _AM_MSG_COUNT . " {$total}</td>\n"; echo "<td align='center'>" . $nav->renderNav() . "</td>\n"; echo "<td align='right' width='30%' nowrap='nowrap'>\n <form method='get'>" . _SEARCH . "\n <input name='q' value=\"" . htmlspecialchars($search, ENT_QUOTES) . '" size="8" /> ' . _CC_STATUS . " " . $listctrl->renderStat() . "\n <noscript> <input type='submit' type='submit' value='" . _AM_SUBMIT_VIEW . "'></noscript>\n </form>\n</td></tr>\n"; echo "</table>\n"; if ($res && $xoopsDB->getRowsNum($res)) { $sorts = array('mtime', 'status', 'fidref', 'touid', 'comms'); echo "<form method='post' name='msglist'>\n"; echo "<table class='outer' border='0' cellspacing='1'>\n"; echo "<tr><th><input type='checkbox' id='checkall' name='checkall' onClick='xoopsCheckAll(\"msglist\", \"checkall\");'/>"; $args = preg_replace('/\\b&?\\w{3,}=(asc|desc)/', '', $args); foreach ($listctrl->getLabels($labels) as $lab) { if (isset($lab['value'])) { $extra = empty($lab['extra']) ? '' : $lab['extra']; $sargs = ($args ? "{$args}&" : '') . $lab['name'] . "=" . $lab['next']; $anc = " <a href='?{$sargs}' title='" . _CC_SORT_ORDER . "'{$extra}><img src='../images/" . $lab['value'] . ".gif'></a>"; } else { $anc = ''; } echo "<th>" . $lab['text'] . "{$anc}</th>\n"; } echo "</tr>\n"; $n = 0; $dirname = basename(dirname(dirname(__FILE__))); $mbase = XOOPS_URL . "/modules/{$dirname}"; $strcut = XOOPS_USE_MULTIBYTES && function_exists('mb_strcut') ? 'mb_strcut' : 'substr'; if (!function_exists('easiestml')) { /* XXX: support multi lang site */ function easiestml($text) { return $text; } } else { $GLOBALS['easiestml_lang'] = substr($GLOBALS['xoopsConfig']['language'], 0, 2); } while ($data = $xoopsDB->fetchArray($res)) { $id = $data['msgid']; $title = easiestml(htmlspecialchars($data['title'], ENT_QUOTES)); $stat = $data['status']; $url = "{$mbase}/message.php?id={$id}"; $msg = $url . ($data['touid'] < 0 ? "&uid=" . $xoopsUser->getVar('uid') : ""); $bg = $n++ % 2 ? 'even' : 'odd'; $date = myTimestamp($data['mtime'], "m", _AM_TIME_UNIT); $priuname = empty($data['uname']) ? _AM_FORM_PRIM_NONE : htmlspecialchars($data['uname'], ENT_QUOTES); $from = empty($data['uid']) ? $data['email'] : htmlspecialchars($data['cfrom'], ENT_QUOTES); $box = "<input type='checkbox' name='ids[]' value='{$id}'/>"; $ope = "<a href='{$msg}'>" . _AM_DETAIL . "</a>"; $ope .= " | <a href='?msgid={$id}'>" . _EDIT . "</a>"; $vals = unserialize_text($data['body']); $fval = preg_replace('/[\\n\\r].*$/', '...', array_shift($vals)); $slen = 30; if (strlen($fval) > $slen) { $fval = preg_replace('/\\.\\.\\.$/', '', $fval); $fval = $strcut($fval, 0, $slen) . "..."; } $fval = htmlspecialchars($fval, ENT_QUOTES); $readit = $data['mtime'] < $data['atime'] ? _CC_MARK_READIT : ''; echo "<tr class='{$bg} stat{$stat}'><td align='center'>{$box}</td><td>{$date}</td><td>" . $msg_status[$stat] . $readit . "</td><td>{$title}: {$fval}</td><td>{$from}</td><td>{$priuname}</td><td class='num'>" . $data['comms'] . "</td><td>{$ope}</td></tr>\n"; } echo "</table>\n"; echo "<div>" . _AM_MSG_CHANGESTATUS . " <select name='op'><option></option>\n"; foreach ($msg_status as $k => $v) { echo "<option value='{$k}'>{$v}</option>\n"; } echo "</select>\n"; echo "<input type='submit' value='" . _AM_SUBMIT . "'/>"; echo "</div>\n"; echo "</form>\n"; } else { echo _AM_NODATA; } }