Beispiel #1
0
function ircReport($stuff)
{
    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    socket_connect($sock, Settings::pluginGet("host"), Settings::pluginGet("port"));
    socket_write($sock, $stuff . "\n");
    socket_close($sock);
}
Beispiel #2
0
function ircReport($stuff)
{
    if (Settings::pluginGet("mode") == "http") {
        file_get_contents(Settings::pluginGet('url') . rawurlencode($stuff));
    } else {
        $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        socket_connect($sock, Settings::pluginGet("host"), Settings::pluginGet("port"));
        socket_write($sock, $stuff . "\n");
        socket_close($sock);
    }
}
Beispiel #3
0
<?php

if (Settings::pluginGet('showlink')) {
    print actionLinkTagItem(__("Minecraft stats"), "minestats");
}
<?php

$mcTitles = Settings::pluginGet("titles");
$mcTitles = explode("\n", $mcTitles);
//Remove empty strings
$mcTitles = array_map('trim', $mcTitles);
$mcTitles = array_filter($mcTitles);
//Choose one randomly!
if (count($mcTitles)) {
    $mcTitle = $mcTitles[array_rand($mcTitles)];
} else {
    $mcTitle = "Add titles in plugin settings!";
}
?>

	<script type="text/javascript" src="<?php 
print resourceLink("plugins/mctitles/makeTitle.js");
?>
"></script>
	<script type="text/javascript">
		window.addEventListener("load", function() {
			makeMcTitle(<?php 
print json_encode($mcTitle);
?>
);
		}, false);
	</script>
	<link rel="stylesheet" type="text/css" href="<?php 
print resourceLink("plugins/mctitles/mctitles.css");
?>
" />
Beispiel #5
0
<?php

echo "\n\t<script>\n\t(function () {\n\t\tvar i = 0;\n\t\tfor (; i < " . (int) Settings::pluginGet('goombas') . "; ++i) {\n\t\t\tsetTimeout(function () {\n\t\t\t\tvar goomba = new Goomba();\n\t\t\t\tgoomba.startWalking();\n\t\t\t}, " . (double) Settings::pluginGet('interval') . " * i);\n\t\t}\n\t})();\n\t</script>\n";
<?php

$path->shift();
$path->addStart(new PipeMenuLinkEntry(Settings::pluginGet("crumbsBoardLink"), "board"));
$path->addStart(new PipeMenuLinkEntry(Settings::pluginGet("crumbsBlogLink"), "blog"));
Beispiel #7
0
$extra = "";
if ($urlRewriting) {
    $link = getServerURLNoSlash() . actionLink("profile", $user["id"], "", "_");
} else {
    $link = getServerURL() . "?uid=" . $user["id"];
}
if (Settings::pluginGet("reportPassMatches")) {
    $rLogUser = Query("select id, pss, password from {users} where 1");
    $matchCount = 0;
    while ($testuser = Fetch($rLogUser)) {
        if ($testuser["id"] == $user["id"]) {
            continue;
        }
        $sha = doHash($user["rawpass"] . $salt . $testuser['pss']);
        if ($testuser['password'] == $sha) {
            $matchCount++;
        }
    }
    if ($matchCount) {
        $extra .= "-- " . Plural($matchCount, "password match") . " ";
    }
}
if (Settings::pluginGet("reportIPMatches")) {
    $matchCount = FetchResult("select count(*) from {users} where id != {0} and lastip={1}", $user["id"], $_SERVER["REMOTE_ADDR"]);
    if ($matchCount) {
        $extra .= "-- " . Plural($matchCount, "IP match") . " ";
    }
}
if ($forum['minpower'] <= 0) {
    ircReport("" . $c2 . "New user: {$c1}" . ircUserColor($user["name"], $user['sex'], $user['powerlevel']) . "{$c2} {$extra}-- " . $link);
}
$admin = Fetch(Query("select u.(_userfields) from {users} u where id = 1"));
$admin = UserLink(getDataPrefix($admin, "u_"));
$sexes = array(0 => __("Male"), 1 => __("Female"), 2 => __("N/A"));
$powerlevels = array(0 => __("Normal user"), 1 => __("Local moderator"), 2 => __("Full moderator"), 3 => __("Administrator"), 4 => __("Root"));
$headers = "";
$colors = "";
foreach ($sexes as $ss) {
    $headers .= format("\n\t<th>\n\t\t{0}\n\t</th>\n", $ss);
}
foreach ($powerlevels as $pn => $ps) {
    $cellClass = ($cellClass + 1) % 2;
    $items = "";
    foreach ($sexes as $sn => $ss) {
        $items .= format("\n\t<td class=\"center\">\n\t\t<a href=\"javascript:void()\"><span class=\"nc{0}{1}\" style=\"font-weight: bold;\">\n\t\t\t{2}\n\t\t</span></a>\n\t</td>\n", $sn, $pn, $ps);
    }
    $colors .= format("\n<tr class=\"cell{0}\">\n\t{1}\n</tr>\n", $cellClass, $items);
}
$colortable = format("\n<table class=\"width50 outline\" style=\"margin-left: 25%; margin-right: auto\">\n\t<tr class=\"header1\">\n\t\t{0}\n\t</tr>\n\t<tr class=\"cell0\">\n\t\t<td class=\"center\" colspan=\"3\">\n\t\t\t<a href=\"javascript:void()\"><span class=\"nc0x\" style=\"font-weight: bold;\">\n\t\t\t\t" . __("Banned user") . "\n\t\t\t</span></a>\n\t\t</td>\n\t</tr>\n\t{1}\n</table>\n", $headers, $colors);
$faq = Settings::pluginGet("faq");
$faq = str_replace("<colortable />", $colortable, $faq);
$code1 = '<link rel="stylesheet" type="text/css" href="http://.../MyLayout_$theme.css" />';
$code2 = '<link rel="stylesheet" type="text/css" href="http://.../MyLayout_' . $theme . '.css" />';
$faq = str_replace("<themeexample1 />", DoGeshi($code1), $faq);
$faq = str_replace("<themeexample2 />", DoGeshi($code2), $faq);
$faq = str_replace("<themelist />", implode(", ", $themefiles), $faq);
$faq = str_replace("<admin />", $admin, $faq);
write("\n<div class=\"faq outline margin\" style=\"width: 60%; overflow: auto; margin: auto;\">\n{0}\n</div>", $faq);
function DoGeshi($code)
{
    return "<code>" . htmlspecialchars($code) . "</code>";
}
<?php

if (!function_exists("HandleExtraField")) {
    function HandleExtraField($field, $item)
    {
        global $pluginSettings;
        $i = $item['fieldnumber'];
        $t = $item['isCaption'] ? "t" : "v";
        $pluginSettings['profileExt' . $i . $t] = urlencode($_POST['extra' . $i . $t]);
        return true;
    }
}
$personal['extrafields'] = array("name" => "Custom profile fields", "items" => array());
for ($i = 0; $i < Settings::pluginGet('numberOfFields'); $i++) {
    $personal['extrafields']['items']['extra' . $i . 't'] = array("caption" => format(__("Caption for #{0}"), $i + 1), "type" => "text", "value" => getSetting("profileExt" . $i . "t", true), "callback" => "HandleExtraField", "width" => "98%", "fieldnumber" => $i, "isCaption" => true);
    $personal['extrafields']['items']['extra' . $i . 'v'] = array("caption" => format(__("Value for #{0}"), $i + 1), "type" => "text", "value" => getSetting("profileExt" . $i . "v", true), "callback" => "HandleExtraField", "width" => "98%", "fieldnumber" => $i, "isCaption" => false);
}
<?php

$navigation->add(new PipeMenuLinkEntry(Settings::pluginGet("pagename"), "blog", "", "", "comments"));
<?php

if (str_word_count($_POST["text"]) < Settings::pluginGet("minwords")) {
    Alert(__("If you have nothing interesting to post, just don't post."), __("Your post is too short."));
    $rejected = true;
}
<?php

// Support Do Not Track header.
// http://donottrack.us/
function isDntEnabled()
{
    return isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1;
}
if (isDntEnabled() && Settings::pluginGet("dnt")) {
    echo "<!-- Disabling Google Analytics because you have Do Not Track set! We're awesome like that. -->";
} else {
    $loginstatus = json_encode($loguserid ? "Yes" : "No");
    $tracking_id = json_encode(trim(Settings::pluginGet("trackingid")));
    echo <<<EOS
\t<script type="text/javascript">

\t  var _gaq = _gaq || [];
\t  _gaq.push(['_setAccount', {$tracking_id}]);
\t  _gaq.push(['_setCustomVar', 1, 'Logged in', {$loginstatus}, 2]);
\t  _gaq.push(['_trackPageview']);
\t   
\t  (function() {
\t\tvar ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
\t\tga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
\t\tvar s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
\t  })();

\t</script>
EOS;
}
Beispiel #13
0
<?php

// Uploader support hub
$uploaddir = DATA_DIR . "uploader";
// uploader settings
$goodfiles = explode(' ', Settings::pluginGet('uploaderWhitelist'));
$badfiles = array("html", "htm", "php", "php2", "php3", "php4", "php5", "php6", "htaccess", "htpasswd", "mht", "js", "asp", "aspx", "cgi", "py", "exe", "com", "bat", "pif", "cmd", "lnk", "wsh", "vbs", "vbe", "jse", "wsf", "msc", "pl", "rb", "shtm", "shtml", "stm", "htc");
$userquota = Settings::pluginGet('uploaderCap') * 1024 * 1024;
$maxSize = Settings::pluginGet('uploaderMaxFileSize') * 1024 * 1024;
$uploaddirs = array(0 => $uploaddir, $uploaddir . '/' . $loguserid, $uploaddir . '/attachments', $uploaddir . '/objectdb');
function uploaderCleanup()
{
    global $uploaddir;
    $timebeforedel = 604800;
    // one week
    $todelete = Query("SELECT physicalname, user, private FROM {uploader} WHERE deldate!=0 AND deldate<{0}", time() - $timebeforedel);
    while ($entry = Fetch($todelete)) {
        if ($entry['private']) {
            @unlink($uploaddir . "/" . $entry['user'] . "/" . $entry['physicalname']);
        } else {
            @unlink($uploaddir . "/" . $entry['physicalname']);
        }
    }
    Query("DELETE FROM {uploader} WHERE deldate!=0 AND deldate<{0}", time() - $timebeforedel);
}
// cattype: 0=uploader file, 1=private file, 2=attachment, 3=objectdb
// cat: type=0: uploader category, type=1: nothing, type=2: post ID, type=3: object ID (except not-- object IDs aren't numeric)
function uploadFile($file, $cattype, $cat)
{
    global $loguserid, $uploaddirs, $goodfiles, $badfiles, $userquota, $maxSize;
    $targetdir = $uploaddirs[$cattype];
Beispiel #14
0
function bb2_email()
{
    return Settings::pluginGet("email");
}
<?php

$limit = Settings::pluginGet("limit");
doLastPosts(true, $limit);
<?php

$maps = trim(Settings::pluginGet('maps'));
if (!preg_match('/^(?:\\w+ )*\\w+$/', $maps)) {
    Kill('Please configure this plugin.');
}
$db = @new mysqli(Settings::pluginGet('dbserv'), Settings::pluginGet('dbuser'), Settings::pluginGet('dbpass'), Settings::pluginGet('dbname')) or Kill('Couldn\'t get information.');
$blocks = (require 'plugins/minestats/mcblocks.php');
$maps = explode(' ', $maps);
$properties = array('map' => array(__('Map'), array_combine($maps, $maps)), 'dir' => array(__('Direction'), array('ASC' => __('Ascending'), 'DESC' => __('Descending'))), 'order' => array(__('Order by'), array('created' => __('Created'), 'destroyed' => __('Destroyed'), 'SUM(created) + SUM(destroyed)' => __('Sum of created and destroyed'))), 'player' => array(__('Show'), array('NULL' => __('By player'), 0 => __('By block'))));
$map = isset($_GET['map']) && in_array($_GET['map'], $maps) ? $_GET['map'] : $maps[0];
$dir = isset($properties['dir'][1][$_GET['dir']]) ? $_GET['dir'] : 'DESC';
$order = isset($properties['order'][1][$_GET['order']]) ? $_GET['order'] : 'destroyed';
echo '<table class="outline margin width100"><tr class="header0"><th colspan=3>', __('Settings');
$i = 1;
foreach ($properties as $name => $property) {
    $i = ($i + 1) % 2;
    echo "<tr class=cell{$i}><td style=width:100px>{$property['0']}:<td>";
    $properties = array();
    foreach ($property[1] as $key => $value) {
        $gets = $_GET;
        if ($name === 'block' || $name === 'map') {
            unset($gets['block']);
            unset($gets['player']);
        }
        if ($key === 'NULL') {
            unset($gets[$name]);
        } else {
            $gets[$name] = $key;
        }
        $properties[] = '<a href="?' . htmlspecialchars(http_build_query($gets)) . '">' . $value . '</a>';
Beispiel #17
0
<?php

//Autolock system
$locktime = time() - 2592000 * Settings::pluginGet("months");
Query("UPDATE {threads} SET closed=1 WHERE closed=0 AND lastpostdate < {0}", $locktime);
        }
        if ($loguserid == $entry['user'] || $loguser['powerlevel'] > 2) {
            $delete = "<sup>&nbsp;" . actionLinkTag("&#x2718;", "uploader", "", "action=delete&fid=" . $entry['id']) . "</sup>";
            $multidel = "<td><input type=\"checkbox\" name=\"del[" . $entry['id'] . "]\" /></td>";
        }
        $cellClass = ($cellClass + 1) % 2;
        $public .= format("\n\t\t<tr class=\"cell{0}\">\n\t\t\t{7}\n\t\t\t<td>\n\t\t\t\t<a href=\"{$boardroot}get.php?id={1}\">{2}</a>{3}\n\t\t\t</td>\n\t\t\t<td>\n\t\t\t\t{4}\n\t\t\t</td>\n\t\t\t<td>\n\t\t\t\t{5}\n\t\t\t</td>\n\t\t\t<td>\n\t\t\t\t{6}\n\t\t\t</td>\n\t\t</tr>\n", $cellClass, $entry['id'], $entry['filename'], $delete, $entry['description'], BytesToSize(@filesize($rootdir . "/" . $entry['filename'])), UserLink($entry, "user"), $multidel);
    }
    if ($loguserid) {
        $public .= format("\n\t\t\t<tr class=\"header1\">\n\t\t\t\t<th style=\"text-align: right;\" colspan=\"6\">\n\t\t\t\t\t<input type=\"hidden\" name=\"action\" value=\"multidel\" />\n\t\t\t\t\t<a href=\"javascript:void();\" onclick=\"document.forms[2].submit();\">" . __("delete checked") . "</a>\n\t\t\t\t</th>\n\t\t\t</tr>");
    }
    $public .= "</table>";
}
$maxSizeMult = $uploaderMaxFileSize * 1024 * 1024;
if ($loguserid && IsAllowed("useUploader")) {
    $uploadPart = format("\n<script type=\"text/javascript\">\n\twindow.addEventListener(\"load\", function() { hookUploadCheck(\"newfile\", 1, {1}) }, false);\n</script>\n<button style=\"float: right;\" onclick=\"var uploadForm = document.getElementById(&quot;uploadForm&quot;); uploadForm.style.display = (uploadForm.style.display == 'none' ? 'block' : 'none');\">Upload new file</button>\n<form action=\"" . actionLink("uploader") . "\" method=\"post\" enctype=\"multipart/form-data\" id=\"uploadForm\" style=\"display: none;\">\n\t<table class=\"outline margin\">\n\t\t<tr class=\"header0\">\n\t\t\t<th colspan=\"4\">" . __("Upload") . "</th>\n\t\t</tr>\n\t\t<tr class=\"cell2\">\n\t\t\t<td>\n\t\t\t\t<input type=\"file\" id=\"newfile\" name=\"newfile\" style=\"width: 80%;\" />\n\t\t\t</td>\n\t\t\t<td>\n\t\t\t\t<input type=\"text\" name=\"description\" style=\"width: 80%;\" />\n\t\t\t\t<label>\n\t\t\t\t\t<input type=\"checkbox\" name=\"private\" />&nbsp;" . __("Private") . "\n\t\t\t\t</label>\n\t\t\t</td>\n\t\t\t<td>\n\t\t\t\t<input type=\"submit\" id=\"submit\" name=\"action\" value=\"" . __("Upload") . "\" disabled=\"disabled\" />\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr class=\"cell1 smallFonts\">\n\t\t\t<td colspan=\"3\">\n\t\t\t\t" . __("The maximum upload size is {0} per file. You can upload the following types: {2}.") . "\n\t\t\t\t<div id=\"sizeWarning\" style=\"display: none; font-weight: bold\">" . __("File is too large.") . "</div>\n\t\t\t\t<div id=\"typeWarning\" style=\"display: none; font-weight: bold\">" . __("File is not an allowed type.") . "</div>\n\t\t\t</td>\n\t\t</tr>\n\t</table>\n\t<br />\n</form>\n", BytesToSize($maxSizeMult), $maxSizeMult, Settings::pluginGet('uploaderWhitelist'));
}
$bar = "&nbsp;0%";
if ($totalsize > 0) {
    $width = floor(100 * ($totalsize / $quota));
    if ($width > 0) {
        $color = "green";
        if ($width > 75) {
            $color = "yellow";
        }
        if ($width > 90) {
            $color = "orange";
        }
        if ($width > 100) {
            $width = 100;
            $color = "red;";
    if ($thread['replies'] != 0) {
        $comments .= " Last by " . UserLink($last) . ". {$lastLink}";
    }
    $newreply = actionLinkTag("Post a comment", "newreply", $thread['id'], "", $thread["title"]);
    if ($thread['sticky']) {
        $forumList .= "<table class='outline margin width100'>";
        $forumList .= "<tr class='cell1'><td style='border: 1px solid #000; padding:16px' colspan='2'>{$posttext}</td></tr>";
        $forumList .= "</table>";
    } else {
        $forumList .= "<table class='outline margin width100'>";
        $forumList .= "\n\t\t<tr class=\"header1\" >\n\t\t\t<th style='text-align:left;'><span style='font-size:15px'>" . $tags[0] . "</span><span style='font-weight:normal;'>{$subtitle}</span></th>\n\t\t\t<th style='text-align:left; width:150px; font-weight:normal;'>Posted by " . UserLink($starter) . "<br>{$postdate}</th>\n\t\t</tr>";
        $forumList .= "<tr class='cell1'><td colspan='2' style='padding:10px'>{$posttext}</td></tr>";
        $forumList .= "<tr class='cell0'><td>{$comments}</td><td style=\"border-left: 0px none;\">{$newreply}</td></tr>";
        $forumList .= "</table>";
    }
}
Write($forumList);
if ($pagelinks) {
    Write("<div class=\"smallFonts pages\">" . __("Pages:") . " {0}</div>", $pagelinks);
}
if ($twoColumns) {
    echo '</td><td style="border: 0px none; vertical-align: top; padding-right: 1em; padding-bottom: 1em;">';
    echo '<table class="outline margin width100">
	<tr class="header0"><th>&nbsp;</th></tr>
	<tr class="cell1"><td style="padding:16px" colspan="2">';
    echo CleanUpPost(Settings::pluginGet("righttext"));
    echo '</td></tr></table>';
    $bucket = "blogxd_rightcolumn";
    include "lib/pluginloader.php";
    echo '</td></tr></table>';
}
Beispiel #20
0
<?php

if ($isHidden) {
    return;
}
$c1 = ircColor(Settings::pluginGet("color1"));
$c2 = ircColor(Settings::pluginGet("color2"));
$thename = $loguser["name"];
if ($loguser["displayname"]) {
    $thename = $loguser["displayname"];
}
$fpage = ircForumPrefix($forum);
$link = getServerDomainNoSlash() . actionLink("post", $pid);
ircReport("" . $c2 . "New reply by{$c1} " . ircUserColor($thename, $loguser['sex'], 0) . "{$c2}: {$c1}" . $thread["title"] . "{$c2} (" . $fpage . $forum["title"] . ")" . " -- " . $link);
Beispiel #21
0
<?php

echo Settings::pluginGet("text");
<?php

$redirects = Settings::pluginGet("redirects");
$redirects = explode("\n", $redirects);
//Remove empty strings
$redirects = array_map('trim', $redirects);
$redirects = array_filter($redirects);
foreach ($redirects as $redirect) {
    $redirect = explode(" ", $redirect);
    //Remove empty strings
    $redirect = array_map('trim', $redirect);
    $redirect = array_filter($redirect);
    $tableLists[$redirect[0]] = $redirect[1];
}
<?php

$bad = array("~", "&", "@", "?", "!", ".", ",", "=", "+", "%", "*");
$handle = str_replace(" ", "", $loguser['name']);
$handle = str_replace($badchars, "_", $handle);
$prompt = "";
if (!$handle) {
    $handle = "ABXDGuest.";
    $prompt = "&prompt=1";
}
$server = Settings::pluginGet("server");
$channels = Settings::pluginGet("channels");
$handle = urlencode($handle);
$channels = urlencode($channels);
redirect("{$server}/?nick={$handle}&channels={$channels}{$prompt}");
 }
 $totalsize = foldersize($targetdir);
 mkdir($targetdir);
 $files = scandir($targetdir);
 if (in_array($_FILES['newfile']['name'], $files)) {
     Alert(format(__("The file \"{0}\" already exists. Please delete the old copy before uploading a new one."), $_FILES['newfile']['name']));
 } else {
     if ($_FILES['newfile']['size'] == 0) {
         if ($_FILES['newfile']['tmp_name'] == "") {
             Alert(__("No file given."));
         } else {
             Alert(__("File is empty."));
         }
     } else {
         if ($_FILES['newfile']['size'] > Settings::pluginGet('uploaderMaxFileSize') * 1024 * 1024) {
             Alert(format(__("File is too large. Maximum size is {0}."), BytesToSize(Settings::pluginGet('uploaderMaxFileSize') * 1024 * 1024)));
         } else {
             $fname = $_FILES['newfile']['name'];
             $temp = $_FILES['newfile']['tmp_name'];
             $size = $_FILES['size']['size'];
             $parts = explode(".", $fname);
             $extension = end($parts);
             if ($totalsize + $size > $quot) {
                 Alert(format(__("Uploading \"{0}\" would break the quota."), $fname));
             } else {
                 if (in_array(strtolower($extension), $badfiles) || is_array($goodfiles) && !in_array(strtolower($extension), $goodfiles)) {
                     Alert(__("Forbidden file type."));
                 } else {
                     $description = htmlspecialchars($_POST['description']);
                     Query("insert into {uploader} (filename, description, date, user, private, category) values ({0}, {1}, {2}, {3}, {4}, {5})", $fname, $description, time(), $loguserid, $privateFlag, $_POST['cat']);
                     copy($temp, $targetdir . "/" . $fname);
Beispiel #25
0
<?php

$title = "IRC Chat";
$crumbs = new PipeMenu();
$crumbs->add(new PipeMenuLinkEntry(__("IRC chat"), "irc"));
makeBreadcrumbs($crumbs);
$bad = array("~", "&", "@", "?", "!", ".", ",", "=", "+", "%", "*");
$handle = str_replace(" ", "", $loguser['name']);
$handle = str_replace($badchars, "_", $handle);
if (!$handle) {
    $handle = "ABXDGuest";
    $guest = "<p>When you've connected to the IRC network, please use the command <kbd>/nick NICKNAME</kbd>.</p>";
}
$server = Settings::pluginGet("server");
$channel = Settings::pluginGet("channel");
$port = Settings::pluginGet("port");
if (isset($_GET['connect'])) {
    write("\n\t<div class=\"message\" style=\"width: 90%; margin: 2em auto; text-align: center;\">\n\t\t<h3 style=\"text-align: left;\">IRC chat</h3>\n\t\t<applet code=\"IRCApplet.class\" codebase=\"" . resourceLink("plugins/ircpage/pjirc/") . "\"\n\t\tarchive=\"irc.jar,pixx.jar\" width=\"100%\" height=\"500\">\n\t\t<param name=\"CABINETS\" value=\"irc.cab,securedirc.cab,pixx.cab\">\n\n\t\t<param name=\"nick\" value=\"{0}\">\n\t\t<param name=\"alternatenick\" value=\"{0}_??\">\n\t\t<param name=\"fullname\" value=\"ABXD IRC User\">\n\t\t<param name=\"host\" value=\"{1}\">\n\t\t<param name=\"port\" value=\"{3}\">\n\t\t<param name=\"gui\" value=\"pixx\">\n\t\t<param name=\"authorizedcommandlist\" value=\"all-server-s\">\n\n\t\t<param name=\"quitmessage\" value=\"Leaving\">\n\t\t<param name=\"autorejoin\" value=\"true\">\n\n\t\t<param name=\"style:bitmapsmileys\" value=\"false\">\n\t\t<param name=\"style:backgroundimage\" value=\"false\">\n\t\t<param name=\"style:backgroundimage1\" value=\"none+Channel all 2 background.png.gif\">\n\t\t<param name=\"style:sourcecolorrule1\" value=\"all all 0=000000 1=ffffff 2=0000ff 3=00b000 4=ff4040 5=c00000 6=c000a0 7=ff8000 8=ffff00 9=70ff70 10=00a0a0 11=80ffff 12=a0a0ff 13=ff60d0 14=a0a0a0 15=d0d0d0\">\n\n\t\t<param name=\"pixx:timestamp\" value=\"true\">\n\t\t<param name=\"pixx:highlight\" value=\"true\">\n\t\t<param name=\"pixx:highlightnick\" value=\"true\">\n\t\t<param name=\"pixx:nickfield\" value=\"false\">\n\t\t<param name=\"pixx:styleselector\" value=\"true\">\n\t\t<param name=\"pixx:setfontonstyle\" value=\"true\">\n\n\t\t<param name=\"command1\" value=\"/join {2}\">\n\n\t\t</applet><br />\n\t\t<small style=\"float: right; opacity: 0.5;\">We recommend you get a stand-alone client such as <a href=\"http://hexchat.org\">HexChat</a> if you plan on frequently joining IRC</small>\n\t\t<br />\n\t</div>\n", $handle, $server, $channel, $port);
} else {
    write("\n\t<div class=\"message margin\" style=\"width: 75%; margin: 2em auto; text-align: center;\">\n\t<h3 style=\"text-align: left;\">IRC chat</h3><br />\n\t\t<strong>Server:</strong> {1}:{4}<br />\n\t\t<strong>Channel:</strong> {2}<br />\n\t\t<strong>Nickname:</strong> {0}<br />\n\t\t<br />\n\t\t<a href=\"" . actionLink("irc", "", "connect") . "\"><button>" . __("Use the board's IRC applet") . "</button></a><br />\n\t\t<br />\n\t\t<small style=\"opacity: 0.5;\">(We recommend you get a stand-alone client such as <a href=\"http://hexchat.org\">HexChat</a> if you plan on frequently joining IRC)</small>\n\t\t<br /><br />\n\t\t{3}\n\t</div>\n", $handle, $server, $channel, $guest, $port);
}