Ejemplo n.º 1
0
function thread_to_xml($thread, $link)
{
    global $state_chatting, $threadstate_to_string, $threadstate_key, $mibew_encoding, $operator, $settings, $can_viewthreads, $can_takeover, $mysqlprefix;
    $state = $threadstate_to_string[$thread['istate']];
    $result = "<thread id=\"" . safe_htmlspecialchars(safe_htmlspecialchars($thread['threadid'])) . "\" stateid=\"{$state}\"";
    if ($state == "closed") {
        return $result . "/>";
    }
    $state = getstring($threadstate_key[$thread['istate']]);
    $nextagent = $thread['nextagent'] != 0 ? operator_by_id_($thread['nextagent'], $link) : null;
    $threadoperator = $nextagent ? get_operator_name($nextagent) : ($thread['agentName'] ? $thread['agentName'] : "-");
    if ($threadoperator == "-" && $thread['groupname']) {
        $threadoperator = "- " . $thread['groupname'] . " -";
    }
    if (!($thread['istate'] == $state_chatting && $thread['agentId'] != $operator['operatorid'] && !is_capable($can_takeover, $operator))) {
        $result .= " canopen=\"true\"";
    }
    if ($thread['agentId'] != $operator['operatorid'] && $thread['nextagent'] != $operator['operatorid'] && is_capable($can_viewthreads, $operator)) {
        $result .= " canview=\"true\"";
    }
    if ($settings['enableban'] == "1") {
        $result .= " canban=\"true\"";
    }
    $banForThread = $settings['enableban'] == "1" ? ban_for_addr_($thread['remote'], $link) : false;
    if ($banForThread) {
        $result .= " ban=\"blocked\" banid=\"" . safe_htmlspecialchars(safe_htmlspecialchars($banForThread['banid'])) . "\"";
    }
    $result .= " state=\"{$state}\" typing=\"" . safe_htmlspecialchars(safe_htmlspecialchars($thread['userTyping'])) . "\">";
    $result .= "<name>";
    if ($banForThread) {
        $result .= safe_htmlspecialchars(getstring('chat.client.spam.prefix'));
    }
    $result .= safe_htmlspecialchars(safe_htmlspecialchars(get_user_name($thread['userName'], $thread['remote'], $thread['userid']))) . "</name>";
    $result .= "<addr>" . safe_htmlspecialchars(get_user_addr($thread['remote'])) . "</addr>";
    $result .= "<agent>" . safe_htmlspecialchars(safe_htmlspecialchars($threadoperator)) . "</agent>";
    $result .= "<time>" . safe_htmlspecialchars(safe_htmlspecialchars($thread['unix_timestamp(dtmcreated)'])) . "000</time>";
    $result .= "<modified>" . safe_htmlspecialchars(safe_htmlspecialchars($thread['unix_timestamp(dtmmodified)'])) . "000</modified>";
    if ($banForThread) {
        $result .= "<reason>" . safe_htmlspecialchars(safe_htmlspecialchars($banForThread['comment'])) . "</reason>";
    }
    $userAgent = get_useragent_version($thread['userAgent']);
    $result .= "<useragent>" . safe_htmlspecialchars($userAgent) . "</useragent>";
    if ($thread["shownmessageid"] != 0) {
        $query = "select tmessage from {$mysqlprefix}chatmessage where messageid = " . intval($thread["shownmessageid"]);
        $line = select_one_row($query, $link);
        if ($line) {
            $message = preg_replace("/[\r\n\t]+/", " ", $line["tmessage"]);
            $result .= "<message>" . safe_htmlspecialchars(safe_htmlspecialchars($message)) . "</message>";
        }
    }
    $result .= "</thread>";
    return $result;
}
Ejemplo n.º 2
0
function tpl_content()
{
    global $page, $webimroot, $errors;
    $chatthread = $page['thread'];
    ?>

<?php 
    echo getlocal("thread.intro");
    ?>

<br/><br/>

<div class="logpane">
<div class="header">

		<div class="wlabel">
			<?php 
    echo getlocal("page.analysis.search.head_name");
    ?>
:
		</div> 
		<div class="wvalue">
			<?php 
    echo topage(htmlspecialchars($chatthread['userName']));
    ?>
		</div>
		<br clear="all"/>
		
		<div class="wlabel">
			<?php 
    echo getlocal("page.analysis.search.head_host");
    ?>
:
		</div>
		<div class="wvalue">
			<?php 
    echo get_user_addr(topage($chatthread['remote']));
    ?>
		</div>
		<br clear="all"/>

		<div class="wlabel">
			<?php 
    echo getlocal("page.analysis.search.head_browser");
    ?>
:
		</div>
		<div class="wvalue">
			<?php 
    echo get_useragent_version(topage($chatthread['userAgent']));
    ?>
		</div>
		<br clear="all"/>

		<?php 
    if ($chatthread['groupName']) {
        ?>
			<div class="wlabel">
				<?php 
        echo getlocal("page.analysis.search.head_group");
        ?>
:
			</div>
			<div class="wvalue">
				<?php 
        echo topage(htmlspecialchars($chatthread['groupName']));
        ?>
			</div>
			<br clear="all"/>
		<?php 
    }
    ?>

		<?php 
    if ($chatthread['agentName']) {
        ?>
			<div class="wlabel">
				<?php 
        echo getlocal("page.analysis.search.head_operator");
        ?>
:
			</div>
			<div class="wvalue">
				<?php 
        echo topage(htmlspecialchars($chatthread['agentName']));
        ?>
			</div>
			<br clear="all"/>
		<?php 
    }
    ?>

		<div class="wlabel">
			<?php 
    echo getlocal("page.analysis.search.head_time");
    ?>
:
		</div>
		<div class="wvalue">
			<?php 
    echo date_diff_to_text($chatthread['modified'] - $chatthread['created']);
    ?>
 
				(<?php 
    echo date_to_text($chatthread['created']);
    ?>
)
		</div>
		<br clear="all"/>
</div>

<div class="message">
<?php 
    foreach ($page['threadMessages'] as $message) {
        echo $message;
    }
    ?>
</div>
</div>

<br />
<a href="<?php 
    echo $webimroot;
    ?>
/operator/history.php">
	<?php 
    echo getlocal("thread.back_to_search");
    ?>
</a>
<br />


<?php 
}