예제 #1
0
    $data['status'] = _STATUS_ACCEPT;
}
// 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';
예제 #2
0
function order_notify($data, $email, $value)
{
    global $xoopsModuleConfig, $xoopsUser, $xoopsModule;
    $poster = new XoopsUser($data['uid']);
    $eid = $data['eid'];
    $exid = $data['exid'];
    $url = EGUIDE_URL . '/event.php?eid=' . $eid . ($exid ? "&sub={$exid}" : '');
    $xoopsMailer =& getMailer();
    $xoopsMailer->useMail();
    $tplname = $data['autoaccept'] ? "accept%s.tpl" : "order%s.tpl";
    $extra = eguide_form_options('reply_extension');
    $tplfile = sprintf($tplname, '');
    // default template name
    $tmpdir = template_dir($tplfile);
    if ($extra) {
        $vals = unserialize_text($value);
        if (isset($vals[$extra])) {
            $extpl = sprintf($tplname, $vals[$extra]);
            if (file_exists("{$tmpdir}{$extpl}")) {
                $tplfile = $extpl;
            }
        }
    } else {
        $extra = eguide_form_options('reply_tpl_suffix');
        if ($extra) {
            $extpl = sprintf($tplname, $extra);
            if (file_exists("{$tmpdir}{$extpl}")) {
                $tplfile = $extpl;
            }
        }
    }
    $xoopsMailer->setTemplateDir($tmpdir);
    $xoopsMailer->setTemplate($tplfile);
    if ($xoopsModuleConfig['member_only'] && is_object($xoopsUser)) {
        $user = $xoopsUser;
        if (isset($data['reserv_uid'])) {
            $ruid = $data['reserv_uid'];
            $user = new XoopsUser($ruid);
        } else {
            $xoopsMailer->setToUsers($user);
        }
        $uinfo = sprintf("%s: %s (%s)\n", _MD_UNAME, $user->getVar('uname'), $user->getVar('name'));
    } else {
        if (!empty($email)) {
            $xoopsMailer->setToEmails($email);
        }
        $uinfo = "";
    }
    if ($email) {
        $uinfo .= sprintf("%s: %s\n", _MD_EMAIL, $email);
    }
    $rvid = $data['rvid'];
    $conf = $data['confirm'];
    $edate = eventdate($data['edate']);
    $tags = array("EVENT_URL" => $url, "RVID" => $rvid, "CANCEL_KEY" => $conf, "CANCEL_URL" => EGUIDE_URL . "/reserv.php?op=cancel&rvid={$rvid}&key={$conf}", "INFO" => $uinfo . $value, "TITLE" => $edate . " " . $data['title'], "EVENT_DATE" => $edate, "EVENT_TITLE" => $data['title'], "SUMMARY" => strip_tags($data['summary']));
    $subj = eguide_form_options('reply_subject', _MD_SUBJECT);
    $xoopsMailer->assign($tags);
    $xoopsMailer->setSubject($subj);
    $xoopsMailer->setFromEmail($poster->getVar('email'));
    $xoopsMailer->setFromName(eguide_from_name());
    $ret = $xoopsMailer->send();
    // send to order person
    if (!$ret) {
        return $ret;
    }
    $xoopsMailer->reset();
    $xoopsMailer->useMail();
    $xoopsMailer->setTemplateDir(template_dir($tplfile));
    $xoopsMailer->setTemplate($tplfile);
    $xoopsMailer->assign($tags);
    $xoopsMailer->setSubject($subj);
    $xoopsMailer->setFromEmail($poster->getVar('email'));
    $xoopsMailer->setFromName(eguide_from_name());
    if ($data['notify']) {
        if (!in_array($xoopsModuleConfig['notify_group'], $poster->groups())) {
            $xoopsMailer->setToUsers($poster);
        }
        $member_handler =& xoops_gethandler('member');
        $notify_group = $member_handler->getGroup($xoopsModuleConfig['notify_group']);
        $xoopsMailer->setToGroups($notify_group);
        $xoopsMailer->send();
    }
    return $ret;
}
예제 #3
0
 function ListCtrl($name, $init = array(), $combo = '')
 {
     if (empty($combo)) {
         global $xoopsModuleConfig;
         $combo = $xoopsModuleConfig['status_combo'];
     }
     $this->name = $name;
     $this->combo = unserialize_text($combo);
     if (!isset($_SESSION['listctrl'])) {
         $_SESSION['listctrl'] = array();
     }
     if (!isset($_SESSION['listctrl'][$name]) || isset($_GET['reset']) && $_GET['reset'] == 'yes') {
         if (!isset($init['stat'])) {
             list($init['stat']) = array_values($this->combo);
         }
         $_SESSION['listctrl'][$name] = $init;
     }
     $this->vars =& $_SESSION['listctrl'][$name];
     $this->updateVars($_REQUEST);
 }
예제 #4
0
}
include_once XOOPS_ROOT_PATH . '/class/pagenav.php';
$cond = "fidref={$id} AND status<>" . $xoopsDB->quoteString(_STATUS_DEL);
$res = $xoopsDB->query('SELECT count(*) FROM ' . CCMES . " WHERE {$cond}");
list($count) = $xoopsDB->fetchRow($res);
$max = $xoopsModuleConfig['max_lists'];
$args = preg_replace('/start=\\d+/', '', $_SERVER['QUERY_STRING']);
$nav = new XoopsPageNav($count, $max, $start, "start", $args);
$xoopsTpl->assign('pagenav', $count > $max ? $nav->renderNav() : "");
if ($form['priuid'] < 0 && !$isadmin) {
    $cond .= " AND touid=" . $xoopsUser->getVar('uid');
    $form['description'] = str_replace('{TO_NAME}', $xoopsUser->getVar('name'), $form['description']);
}
$xoopsTpl->assign('form', $form);
$res = $xoopsDB->query('SELECT * FROM ' . CCMES . " WHERE {$cond} ORDER BY msgid DESC", $max, $start);
$xoopsTpl->assign('export_range', $export_range);
$mlist = array();
while ($data = $xoopsDB->fetchArray($res)) {
    $values = unserialize_text($data['body']);
    if ($mpos >= 0 && !isset($values[$mlab])) {
        array_splice($values, $mpos, 0, array($data['email']));
    }
    $data['values'] = array_slice($values, 0, $max_cols);
    $data['uname'] = $xoopsUser->getUnameFromId($data['uid']);
    $data['mdate'] = formatTimestamp($data['mtime']);
    $data['cdate'] = formatTimestamp($data['ctime']);
    $data['stat'] = $msg_status[$data['status']];
    $mlist[] = $data;
}
$xoopsTpl->assign('mlist', $mlist);
include XOOPS_ROOT_PATH . "/footer.php";
예제 #5
0
function make_lists($data)
{
    global $xoopsDB;
    $eid = $data['eid'];
    $exid = $data['exid'];
    $myts =& MyTextSanitizer::getInstance();
    if ($data['reservation'] && !empty($data['reserved'])) {
        $show = array();
        $item = array();
        foreach (explode("\n", trim($data['optfield'])) as $n) {
            $a = explode(",", preg_replace('/[\\n\\r]/', "", $n));
            $lab = preg_replace('/[\\*#]$/', "", array_shift($a));
            if (preg_match('/^!/', $lab)) {
                $lab = preg_replace('/^!\\s*/', '', $lab);
                $show[] = $lab;
            }
            $item[] = $lab;
        }
        $list = array();
        if (count($show)) {
            $result = $xoopsDB->query('SELECT * FROM ' . RVTBL . " WHERE eid={$eid} AND exid={$exid} AND status=" . _RVSTAT_RESERVED . ' ORDER BY rdate');
            $nc = 0;
            while ($rdata = $xoopsDB->fetchArray($result)) {
                $a = unserialize_text($rdata['info']);
                if (!empty($rdata['uid'])) {
                    $uid = $rdata['uid'];
                    $uinfo = " (<a href='" . XOOPS_URL . "/userinfo.php?uid={$uid}'>" . XoopsUser::getUnameFromId($uid) . "</a>)";
                } else {
                    $uinfo = "";
                }
                $order = array();
                foreach ($show as $v) {
                    $order[] = $myts->sanitizeForDisplay($a[$v]) . $uinfo;
                    $uinfo = "";
                }
                $list[++$nc] = $order;
            }
        }
        return array('labels' => $show, 'list' => $list);
    }
    return array();
}
예제 #6
0
             $xoopsTpl->assign('event', $data);
             if (isset($_GET['back'])) {
                 $back = $myts->stripSlashesGPC($_GET['back']);
             } else {
                 $back = isset($_SERVER['HTTP_REFERER']) ? $myts->makeTboxData4Edit($_SERVER['HTTP_REFERER']) : '';
             }
             $form = "<h3>" . _MD_RESERV_CANCEL . "</h3>\n" . "<form action='reserv.php' method='post'>\n" . "<input type='hidden' name='op' value='delete' />\n" . "<input type='hidden' name='eid' value='" . $data['eid'] . "' />\n<input type='hidden' name='key' value='{$key}' />\n" . "<input type='hidden' name='back' value='{$back}' />\n" . "<input type='hidden' name='rvid' value='{$rvid}' />\n" . "<input type='submit' value='" . _SUBMIT . "' />\n</form>\n";
             $xoopsTpl->assign('submit', $form);
             $values = array();
             if ($email) {
                 $values[_MD_EMAIL] = $email;
             }
             if ($ruid) {
                 $values[_MD_UNAME] = XoopsUser::getUnameFromId($ruid);
             }
             $values = array_merge($values, unserialize_text($info));
             $xoopsTpl->assign('values', $values);
         }
     } else {
         echo "<div class='evform'>\n";
         echo "<div class='error'>" . _MD_RESERV_NOTFOUND . "</div>";
         echo "</div>\n";
     }
     break;
 case 'register':
     $email = $xoopsUser ? $xoopsUser->getVar('email') : "";
     echo "<h2>" . _MD_NOTIFY_EVENT . "</h2>\n";
     echo "<form action='reserv.php' method='post'>\n<table class='evtbl' align='center'>\n";
     echo "<tr><th>" . _MD_EMAIL . "*</th><td><input size='40' name='email' value='{$email}'/> <input type='submit' value='" . _REGISTER . "'></td></tr>\n";
     echo "</table>\n";
     echo "<p align='center'>" . _MD_NOTIFY_REQUEST . "</p>";
예제 #7
0
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;
    }
}
예제 #8
0
 $edate = $data['edate'];
 $tab = formatTimestamp($edate, 'md');
 $n = 1;
 while (isset($sheets[$tab]) && count($sheets[$tab]['rows']) >= $max_sect) {
     $n++;
     $tab = formatTimestamp($edate, 'md') . "({$n})";
 }
 if (empty($sheets[$tab])) {
     $day = formatTimestamp($edate, 'Y-m-d');
     $sheets[$tab] = array('title' => $data['title'], 'edate' => $day, 'rows' => array());
 }
 $res = $xoopsDB->query("SELECT * FROM " . RVTBL . " WHERE eid={$eid} AND status=" . _RVSTAT_RESERVED . " AND exid=" . (empty($data['exid']) ? 0 : $data['exid']));
 $rows = array();
 $member_handler =& xoops_gethandler('member');
 while ($rvdata = $xoopsDB->fetchArray($res)) {
     $row = unserialize_text($rvdata['info']);
     $row[_MD_ORDER_DATE] = formatTimestamp($rvdata['rdate'], 'Y-m-d H:i:s');
     $row[_MD_EMAIL] = $rvdata['email'];
     $row[_MD_UNAME] = display_username($rvdata['uid']);
     $row[_MD_RVID] = $rvdata['rvid'];
     $vals = array();
     foreach ($outs as $k) {
         $v = empty($k) || empty($row[$k]) ? "" : $row[$k];
         $type = preg_match('/^-?\\d+$/', $v) ? "Number" : "String";
         $vals[] = array('value' => $v, 'type' => $type);
     }
     while (count($vals) < $nfield) {
         // padding blanks
         $vals[] = $nbsp;
     }
     $rows[] = $vals;
예제 #9
0
 $template = file_get_contents(template_dir('confirm.tpl') . "/confirm.tpl");
 $mailmsg = htmlspecialchars(str_replace($pat, $rep, $template));
 $max = $xoopsModuleConfig['max_item'];
 $xoopsTpl->assign(array('order_count' => $nrec, 'reserv_num' => sprintf(_MD_RESERV_REG, $nrsv), 'print_date' => formatTimestamp(time(), _MD_POSTED_FMT), 'labels' => array_merge(array($xoopsModuleConfig['member_only'] ? _MD_UNAME : _MD_EMAIL), array_slice($item, 0, $max)), 'reserv_msg' => $mailmsg, 'operations' => array(_RVSTAT_RESERVED => _MD_ACTIVATE, _RVSTAT_REFUSED => _MD_REFUSE)));
 $citem = $list = $nitem = array();
 $confirm = 0;
 while ($order = $xoopsDB->fetchArray($result)) {
     $order['confirm'] = $cf = $order['status'] == _RVSTAT_ORDER;
     if ($cf) {
         $confirm++;
     }
     $order['date'] = formatTimestamp($order['rdate'], _MD_TIME_FMT);
     $order['stat'] = $rv_stats[$order['status']];
     $add = array();
     $ok = $order['status'] == _RVSTAT_RESERVED;
     foreach (unserialize_text($order['info']) as $lab => $v) {
         if ($ok) {
             if (isset($nitem[$lab])) {
                 if ($nitem[$lab] !== "") {
                     if (preg_match('/^-?\\d+$/', $v)) {
                         $nitem[$lab] += $v;
                     } else {
                         $nitem[$lab] = "";
                         // include not numeric
                     }
                 }
             } else {
                 $nitem[$lab] = preg_match('/^-?\\d+$/', $v) ? $v : "";
             }
             if ($v && isset($mc[$lab])) {
                 $mv = $mc[$lab] == 'checkbox' ? explode(",", $v) : array($v);