Beispiel #1
0
    protected function _view_home()
    {
        global $core, $user;
        $v = $this->__(array('code', 'a' => 0, 'print' => 0, 'offset' => 0));
        if (f($v['code'])) {
            $sql = 'SELECT ticket_id
				FROM _tickets
				WHERE ticket_code = ?';
            $v['a'] = _field(sql_filter($sql, $v['code']), 'ticket_id');
        }
        $d = $this->init_ticket($v['a']);
        $d['ticket_owner'] = $d['ticket_contact'] == $user->v('user_id') ? true : false;
        $d['ticket_access'] = false;
        if ($user->v('is_founder') || $d['ticket_owner']) {
            $d['ticket_access'] = true;
        } else {
            $sql = 'SELECT g.group_id
				FROM _groups g, _groups_members m
				WHERE g.group_id = m.member_group
					AND m.member_uid = ?';
            if ($s_group_id = _rowset(sql_filter($sql, $user->v('user_id')), false, 'group_id')) {
                $sql = 'SELECT *
					FROM _groups g, _groups_members m, _tickets t
					WHERE t.ticket_id = ?
						AND g.group_id = m.member_group
						AND g.group_id = t.ticket_group
						AND t.ticket_group IN (??)';
                if (_fieldrow(sql_filter($sql, $d['ticket_id'], _implode(',', $s_group_id)))) {
                    $d['ticket_access'] = true;
                }
            }
        }
        if (!$d['ticket_access']) {
            $sql = 'SELECT *
				FROM _tickets t, _tickets_assign a
				WHERE t.ticket_id = ?
					AND t.ticket_id = a.assign_ticket
					AND a.user_id = ?';
            if (_fieldrow(sql_filter($sql, $d['ticket_id'], $user->v('user_id')))) {
                $d['ticket_access'] = true;
            }
        }
        if (!$d['ticket_access']) {
            _fatal();
        }
        $d['ticket_control'] = !$d['ticket_owner'] || $user->v('is_founder') ? true : false;
        $this->navigation('TICKET_VIEW', array('x1' => 'view', 'a' => $v['a'], 'offset' => $v['offset']));
        //
        $sql = 'SELECT cat_name
			FROM _tickets_cat
			WHERE cat_id = ?';
        $cat_name = _field(sql_filter($sql, $d['ticket_cat']), 'cat_name');
        $sql = 'SELECT user_firstname, user_lastname, user_username
			FROM _members
			WHERE user_id = ?';
        $ticket_author = _fieldrow(sql_filter($sql, $d['ticket_contact']));
        //
        $status_list = $this->init_status_list();
        $sql_show_public = $d['ticket_owner'] || $d['ticket_owner'] && $user->v('is_founder') ? true : false;
        //
        $sql = 'SELECT a.assign_id, a.assign_status, a.assign_end, m.user_id, m.user_username, m.user_firstname, m.user_lastname
			FROM _members m, _tickets_assign a
			WHERE m.user_id = a.user_id
				AND a.assign_ticket = ?
			ORDER BY m.user_firstname, m.user_lastname';
        $ticket_assign = _rowset(sql_filter($sql, $v['a']));
        foreach ($ticket_assign as $i => $row) {
            if (!$i) {
                _style('assigned');
            }
            if (!isset($status_list[$row['assign_status']])) {
                $row['assign_status'] = $d['ticket_status'];
            }
            _style('assigned.row', array('V_AID' => $row['assign_id'], 'V_ALIAS' => $row['user_username'], 'V_UID' => $row['user_id'], 'V_FULLNAME' => _fullname($row), 'U_PROFILE' => _link('contacts', array('m' => $row['user_username'])), 'V_STATUS' => $status_list[$row['assign_status']]['status_alias'], 'V_END' => $row['assign_end'] ? _format_date($row['assign_end']) : ''));
        }
        $sql = 'SELECT *
			FROM _groups
			ORDER BY group_name';
        $groups = _rowset($sql, 'group_id', 'group_name');
        _rowset_foreach(string_to_array_assoc($groups, w('group_id group_name')), 'groups');
        //
        if (!($category = $core->cache_load('tickets_cat'))) {
            $sql = 'SELECT *
				FROM _tickets_cat
				ORDER BY cat_name';
            $category = $core->cache_store(_rowset($sql));
        }
        $ticket_groups = explode(',', $user->auth_groups());
        foreach ($category as $i2 => $catrow) {
            if (!$catrow['cat_group'] || in_array($catrow['cat_group'], $ticket_groups)) {
                continue;
            }
            unset($category[$i2]);
        }
        _rowset_foreach($category, 'category');
        // Ticket notes
        $sql = 'SELECT n.*, m.user_id, m.user_username, m.user_firstname, m.user_lastname
			FROM _tickets_notes n, _members m
			WHERE n.ticket_id = ?
				??
				AND n.user_id = m.user_id
			ORDER BY n.note_time';
        $notes = _rowset(sql_filter($sql, $d['ticket_id'], $sql_show_public ? 'AND n.note_cc = 1 ' : ''));
        foreach ($notes as $i => $row) {
            if (!$i) {
                _style('notes');
            }
            $access = $row['note_cc'] ? 'public' : 'private';
            _style('notes.row', array('U_NOTE_EDIT' => _link($this->m(), array('x1' => 'note', 'x2' => 'modify', 'note' => $row['note_id'])), 'U_NOTE_REMOVE' => _link($this->m(), array('x1' => 'note', 'x2' => 'remove', 'note' => $row['note_id'])), 'V_NOTE_ID' => $row['note_id'], 'V_USERNAME' => _fullname($row), 'V_USERLINK' => _link('contacts', array('m' => $row['user_username'])), 'V_TIME' => _format_date($row['note_time']), 'V_TEXT' => _message($row['note_text']), 'V_ACCESS' => _lang($access), 'V_ACCESS_CLASS' => $row['note_cc'] ? 'green' : 'red'));
        }
        $sql = 'SELECT attach_id, attach_name, attach_extension, attach_size, attach_time
			FROM _tickets_attach
			WHERE attach_ticket = ?
			ORDER BY attach_name';
        $attachments = _rowset(sql_filter($sql, $d['ticket_id']));
        foreach ($attachments as $i => $row) {
            if (!$i) {
                _style('attachments');
            }
            switch ($row['attach_extension']) {
                case 'jpeg':
                case 'jpg':
                case 'gif':
                case 'png':
                    _style('attachments.image', array('ATTACH_LINK' => _link('space/f/' . $row['attach_name'], false, false), 'ATTACH_NAME' => $row['attach_name'], 'ATTACH_SIZE' => _filesize($row['attach_size'])));
                    break;
                default:
                    _style('attachments.normal', array('ATTACH_LINK' => _link('space/f/' . $row['attach_name'], false, false), 'ATTACH_NAME' => $row['attach_name'], 'ATTACH_SIZE' => _filesize($row['attach_size'])));
                    break;
            }
        }
        $author_fullname = _fullname($ticket_author);
        $sql = 'SELECT assign_status
			FROM _tickets_assign
			WHERE assign_ticket = ?
				AND user_id = ?';
        if ($assign_status = _field(sql_filter($sql, $d['ticket_id'], $user->v('user_id')), 'assign_status', 0)) {
            $d['ticket_status'] = $assign_status;
        }
        v_style(array('U_STATUS' => _link($this->m(), array('x1' => 'ticket', 'x2' => 'status', 'ticket' => $v['a'])), 'U_GROUP' => _link($this->m(), array('x1' => 'ticket', 'x2' => 'groups', 'a' => $v['a'])), 'U_ADD_NOTE' => _link($this->m(), array('x1' => 'note', 'x2' => 'create', 'ticket' => $v['a'])), 'U_CATEGORY' => _link($this->m(), array('x1' => 'ticket', 'x2' => 'cat', 'ticket' => $v['a'])), 'U_TECH_ADD' => _link($this->m(), array('x1' => 'tech', 'x2' => 'add', 'ticket' => $v['a'])), 'U_TECH_QUERY' => _link($this->m(), array('x1' => 'tech', 'x2' => 'query', 'ticket' => $v['a'])), 'U_TECH_REMOVE' => _link($this->m(), array('x1' => 'tech', 'x2' => 'remove', 'ticket' => $v['a'])), 'U_REMOVE' => _link($this->m(), array('x1' => 'ticket', 'x2' => 'remove', 'ticket' => $v['a'])), 'U_PRINT' => _link($this->m(), array('x1' => 'view', 'a' => $v['a'], 'print' => 1)), 'V_ID' => $v['a'], 'V_DELETED' => $d['ticket_deleted'], 'V_STATUS' => $this->init_status($d['ticket_status']), 'V_STATUS_ID' => $d['ticket_status'], 'V_STATUS_NAME' => $status_list[$d['ticket_status']]['status_name'], 'V_GROUP_NAME' => $groups[$d['ticket_group']], 'V_CATEGORY' => $cat_name, 'V_TITLE' => $d['ticket_title'] != '' ? $d['ticket_title'] : _lang('TICKET_NO_SUBJECT'), 'V_TEXT' => _message($d['ticket_text']), 'V_START' => $d['ticket_start'] ? _format_date($d['ticket_start']) : '', 'V_END' => $d['ticket_end'] ? _format_date($d['ticket_end']) : '', 'V_IP' => $d['ticket_ip'], 'V_AUTHOR_NAME' => $author_fullname ? $author_fullname : _lang('USER_UNKNOWN'), 'V_AUTHOR_URL' => _link('contacts', array('m' => $ticket_author['user_username'])), 'V_SHOW_PUBLIC' => !$sql_show_public));
        $this->__home_common($v['offset']);
        if ($v['print']) {
            $this->_template('ticket.print');
        }
        return;
    }
Beispiel #2
0
    exit;
}
if (isset($_GET["GetTotalMemMB"])) {
    GetTotalMemMB();
    exit;
}
if (isset($_GET["process-ttl"])) {
    process_timeexec();
    exit;
}
if (isset($_GET["myisamchk"])) {
    myisamchk();
    exit;
}
if (isset($_GET["filesize"])) {
    _filesize();
    exit;
}
if (isset($_GET["chmod"])) {
    _chmod();
    exit;
}
if (isset($_GET["readfile"])) {
    _readfile();
    exit;
}
if (isset($_GET["TCP_NICS_STATUS_ARRAY"])) {
    TCP_NICS_STATUS_ARRAY();
    exit;
}
if (isset($_GET["LaunchRemoteInstall"])) {
Beispiel #3
0
        echo '-&gt;<a href="index.php?' . $_GET['path'] . '">取消选择</a>&nbsp;&nbsp;<a href="index.php?' . $_SERVER['QUERY_STRING'] . '&amp;all=yes">全部选择</a>';
        echo '<form action="system.php?path=' . _encode($f['.']) . '" method="post">';
        if (count($f['dir']) >= 1) {
            echo <<<HTML
<div class="big_board"><div class="board_title">目录列表</div></div>
HTML;
            foreach ($f['dir'] as $dir) {
                echo "<input type=\"checkbox\" name=\"selected[]\" value=\"" . _encode($dir) . "\" {$select}/><a href=\"dirinfo.php?path=" . _encode($dir) . "\">[dir]</a><a href=\"{$_SERVER['PHP_SELF']}?path=" . _encode($dir) . "\">" . path2name($dir) . "</a><br/>";
            }
        }
        if (count($f['file']) >= 1) {
            echo <<<HTML
<div class="big_board"><div class="board_title">文件列表</div></div>
HTML;
            foreach ($f['file'] as $file) {
                echo "<input type=\"checkbox\" name=\"selected[]\" value=\"" . _encode($file) . "\" {$select}/><a href=\"fileinfo.php?path=" . _encode($file) . "\">[file]</a>" . path2name($file) . '<br/><a href="download.php?path=' . _encode($file) . '">下载</a>.<a href="editor.php?path=' . _encode($file) . '">编辑</a>.<a href="view.php?path=' . _encode($file) . '">查看</a>.<a href="rename.php?path=' . _encode($file) . '">命名</a><br/>大小:' . _filesize($file) . ' 权限:' . substr(sprintf('%o', fileperms(_decode($file))), -4) . '<br/>';
            }
        }
        echo <<<HTML
<select name="type">
<option value="delete">删除文件(多选)</option>
<option value="pkzip">压缩文件(多选)</option>
<option value="move">移动文件(多选)</option>
<option value="copy">复制文件(多选)</option>
<option value="chmod">权限变更(多选)</option>
</select>
<input type="submit" value="[Go]"/>
</form>
HTML;
    } else {
        echo "Hello,貌似目录是空目录耶!";
Beispiel #4
0
.board_title{margin-bottom:1px;border:1px solid #09F;}
</style>
</head>
<body>
<div class="big_board"><div class="board_title">爱特文管-路径信息</div></div>
HTML;
echo '<a href="index.php?path=' . _encode(dirname(_decode($_GET['path']))) . '">' . dirname(_decode($_GET['path'])) . '</a>/' . path2name(_decode($_GET['path']));
echo <<<HTML
<div class="big_board"><div class="board_title">爱特文管-文件信息</div></div>
HTML;
if (is_file(_decode($_GET['path'])) == false) {
    echo 'Hello,文件信息查询出错!';
} else {
    echo '文件名称:<br/>' . basename(_decode($_GET['path']));
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '文件大小:<br/>' . _filesize(_decode($_GET['path']));
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '文件类型:<br/>' . _filemime(_decode($_GET['path']));
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '文件权限:<br/>' . substr(sprintf('%o', fileperms(_decode($_GET['path']))), -4);
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '最后访问:<br/>' . gmdate("Y-m-d H:i:s", fileatime(_decode($_GET['path'])) + 8 * 3600);
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '最后修改:<br/>' . gmdate("Y-m-d H:i:s", filemtime(_decode($_GET['path'])) + 8 * 3600);
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '文件校验(MD5):<br/>' . md5_file(_decode($_GET['path']));
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo '文件校验(SHA1):<br/>' . sha1_file(_decode($_GET['path']));
    echo '<div class="big_board"><div class="board_title"></div></div>';
    echo <<<HTML
<form action="unpk.php?path={$_GET['path']}" method="post">