Example #1
0
$xoopsOption['template_main'] = "ccenter_charge.html";
$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));
Example #2
0
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" /> &nbsp; ' . _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 ? "&amp;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;
    }
}