ja klar, das hätte ich tun sollen, entschuldigung.
der ganze fehler spielt sich in zeile 100 ab, zumindest laut fehler meldung
<?php
/**
* This file is part of
* pragmaMx - Web Content Management System.
* Copyright by pragmaMx Developer Team - http://www.pragmamx.org
*
* pragmaMx is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* $Revision: 1.3.2.9 $
* $Author: tora60 $
* $Date: 2008/01/29 12:54:27 $
*/
defined('mxMainFileLoaded') or die('access denied');
/**
* Themesettingsdatei includen
*/
include(dirname(__FILE__) . '/settings.php');
/**
* Dateiname des templates
*/
define('MX_THIS_THEMEFILE', 'theme.html');
/**
* Standardfarben die im System und den Modulen verwendet werden
*/
global $bgcolor1;
$bgcolor1 = "#EEEEEE";
global $bgcolor2;
$bgcolor2 = "#EAE9E9";
global $bgcolor3;
$bgcolor3 = "#F7F5F5";
global $bgcolor4;
$bgcolor4 = "#F7F5F5";
global $textcolor1;
$textcolor1 = "#808080";
global $textcolor2;
$textcolor2 = "#808080";
// Modul-Bloecke im passenden Design anzeigen
/**
* Design im pragmaMx.org Stil anzeigen
*/
$themePmxStyle = true;
/**
* Breite der Tabelle im pragmaMx.org Stil
*/
$themePmxStyleWidth = '136px';
/**
* Standardfarben der PopupFenster
*/
define("_ol_fgcolor", $bgcolor1); # Main background color (the large area). Usually a bright color (white, yellow etc)
define("_ol_textcolor", $textcolor1); # Text color. Usually a dark color
define("_ol_bgcolor", $bgcolor2); # Border color and color of caption. Usually a dark color (black, brown etc)
define("_ol_capcolor", $textcolor2); # Color of the caption text. Usually a bright color
define("_ol_closecolor", $textcolor2); # Color of "Close" when using Sticky. Usually a semi-bright color
/**
* Definition der jeweiligen Platzhalter und deren Ersetzungen
*/
function theme_define_placeholders()
{
global $themesetting;
$part[] = array("{VIEWBENCH}", mxViewBench());
$part[] = array("{FOOTMESSAGE}", footmsg(1, 0));
$part[] = array("{CURRENTPATH}", mx_theme_currentpath());
$part[] = array("{SEARCHFORM}", mx_theme_searchform());
$part[] = array("{LOGINFORM}", mx_theme_loginform());
$part[] = array("{SHOWDATE}", mx_show_date());
$part[] = array("{SHOWTIME}", mx_show_time());
$part[] = array("{SHOWTOTALUSER}", mx_total_user_online());
$part[] = array("{BLOCK_GALLERY}", mx_block_anzeigen());
// die Navigationsbuttons im header, Quelle in settings.php
foreach ($themesetting['headnav'] as $i => $link) {
$part[] = array('{MENUITEM_' . $i . '}', '<a href="' . $link['link'] . '"><span>' . strtoupper($link['title']) . '</span></a>');
}
// Banner anzeigen
$part[] = array("{BANNER1}", mx_themebanner(1) ); #HeaderBanner
// $part[] = array("{BANNER2}", mx_themebanner(2) ); #FooterBanner
// $part[] = array("{BANNER7}", mx_themebanner(7) ); # Skyscraper
// $part[] = array("{BANNER6}", mx_themebanner(6) ); # rechter Banner
// weitere Beispiele dazu
// $part[] = array("{VIEWMXCOPY}", mxViewCopyright());
// $part[] = array("{VIEW_DATE}", mxThemeShowDate());
return $part;
}
/**
* Definition der einzelnen Blockbereiche
*/
function mx_block_anzeigen()
{
include('blocks/block-Gallery-center-Random_pictures.php');
return $content;
}
function theme_define_blocks()
{
global $themesetting;
static $var;
if (isset($var)) return $var;
// linke Bloecke
$name = 'block_left';
$var[$name]['container'] = 'blocks_left_loop';
$var[$name]['function'] = 'themesidebox';
$var[$name]['position'] = 'l';
// provisorische Moeglichkeit, die linken Bloecke bei bestimmten Modulen zu entfernen
if (isset($themesetting['noleft_modules']) && in_array(MX_MODULE, $themesetting['noleft_modules'])) {
unset($var[$name]);
}
// obere Center-Bloecke
$name = 'block_center_top';
$var[$name]['container'] = 'blocks_center_top_loop';
$var[$name]['function'] = 'thememiddlebox';
$var[$name]['position'] = 'c';
// untere Center-Bloecke
$name = 'block_center_down';
$var[$name]['container'] = 'blocks_center_down_loop';
$var[$name]['function'] = 'thememiddlebox';
$var[$name]['position'] = 'd';
// rechte Bloecke
$name = 'block_right';
$var[$name]['container'] = 'blocks_right_loop';
$var[$name]['function'] = 'themesidebox';
$var[$name]['position'] = 'r';
return $var;
}
/**
* Definition des Contentbereiches inkl. der open/close-Table Funktionen
*/
function theme_define_content()
{
static $var;
if (isset($var)) return $var;
// die Funktion OpenTable()
$var['opentabs']['OpenTable']['templatevar'] = 'opentable';
$var['opentabs']['OpenTable']['innerreplace'] = '{OPENCLOSE_TABLE}'; // hier kann irgendwas stehen, es muss aber mit dem entsprechenden Text innerhalb der template-Datei uebereinstimmen...
// die Funktion OpenTable2()
$var['opentabs']['OpenTable2']['templatevar'] = 'opentable2';
$var['opentabs']['OpenTable2']['innerreplace'] = '{OPENCLOSE_TABLE_2}';
// die Funktion OpenTableAl()
$var['opentabs']['OpenTableAl']['templatevar'] = 'opentableal';
$var['opentabs']['OpenTableAl']['innerreplace'] = '{OPENCLOSE_TABLE_AL}';
// die Funktion themeindex() / News Modul
$var['themeindex'][1] = 'themeindex_1';
$var['themeindex'][2] = 'themeindex_2'; // die Funktion themearticle() beim 2ten Aufruf / News Modul
// die Funktion themearticle() / News Modul
$var['themearticle'] = 'themearticle';
// der Name (output_container) darf nicht veraendert werden !!
$var['output_container'] = 'script_output';
// der Name (index_on_container) darf nicht veraendert werden !!
$var['index_on_container'] = 'index_on';
$var['index_on_block_container'] = 'blocks_right_loop';
// der Name (more_header) darf nicht veraendert werden !!
$var['add_header'] = 'more_header';
return $var;
}
/**
* ersetzen von eigenen Theme-Elementen, kann veraendert und ergaenzt werden
* diese Teile werden gleich zu Beginn des scriptes, beim einlesen des templates, ersetzt
* Vorsicht, wenn das Theme gecached werden soll!!!
* Dann duerfen hier keine dynamischen Elemente eingesetzt werden.
*/
function theme_replace_start($template)
{
/**
* bestimmte Texte, vor allem Image-Pfade, die ersetzt werden sollen, definieren (suche/ersetze)
*/
$part[] = array('"images/', '"' . MX_BASE_URL . MX_THEME_DIR . '/images/'); // normale images im theme
$part[] = array('"style/', '"' . MX_BASE_URL . MX_THEME_DIR . '/style/');
$part[] = array('"js/', '"' . MX_BASE_URL . MX_THEME_DIR . '/js/');
$part[] = array('url(images/', 'url(' . MX_BASE_URL . MX_THEME_DIR . '/images/');
// weitere Beispiele dazu
// $part[] = array("\"http://themes.pragmamx.org/", "\"".MX_BASE_URL);
return theme_replace_parts($template, $part);
}
/**
* ersetzen von eigenen Theme-Elementen, kann veraendert und ergaenzt werden
* diese Teile werden vor der Ausgabe des headers im Headbereich ersetzt
*/
function theme_replace_header($newheader)
{
return $newheader;
// alles ersetzen und R¸ckgabe...
// return theme_replace_parts($newheader, $part);
}
/**
* ersetzen in jedem einzelnen Block
*/
function theme_replace_blocks($template, $block)
{
switch ($block['position']) {
case 'l':
$part[] = array(' bgcolor="' . $GLOBALS['bgcolor1'] . '"', ' bgcolor="' . $GLOBALS['bgcolor3'] . '"');
break;
case 'c':
break;
case 'd':
break;
case 'r':
$part[] = array(' bgcolor="' . $GLOBALS['bgcolor1'] . '"', ' bgcolor="' . $GLOBALS['bgcolor3'] . '"');
break;
}
// Teil fuer alle Bloecke
$part['preg'][] = array('#<(?:strong|b)><big>·</big></(?:strong|b)>#i', '<img src="' . MX_THEME_DIR . '/images/dot.gif" alt="" border="0" style="vertical-align: middle; height: 9px; width: 5px; border: none;">');
// alle Bilder aus dem Onlineblock holen
$part['preg'][] = array('#<img\s+([^>]+)images/maaxon/([^>]+)\.gif([^>]+)\s*/*>#i', '');
if (isset($part)) {
return theme_replace_parts($template, $part);
} else {
return $template;
}
}
/**
* ersetzen von eigenen Theme-Elementen, kann veraendert und ergaenzt werden
* diese Teile werden am Ende des scriptes, in der Funktion themefooter() ersetzt
*/
function theme_replace_end($template)
{
global $themesetting;
// je nach $index, die Tabellenspalten der rechten Bloecke extrahieren oder entfernen
if (empty($GLOBALS['index'])) {
$part[] = array('<div id="centercolumn">', '<div id="centercolumn1">');
}
// provisorische Moeglichkeit, die linken Bloecke bei bestimmten Modulen zu entfernen
if (isset($themesetting['noleft_modules']) && in_array(MX_MODULE, $themesetting['noleft_modules'])) {
theme_extract_part($template, 'left_noblocks');
$part[] = array('<div id="centercolumn1">', '<div id="centercolumnfull">');
}
// die haesslichen Rahmen um Checkboxen und Radio-Feldern entfernen, ¸ber style-sheet Klasse
$pattern = '#(<input[^>]*type\s*=\s*[\"\'](?:radio|checkbox)[\"\']*?[^>]*?)\s*/*>#iU';
preg_match_all($pattern, $template, $matches);
if (isset($matches[1])) {
foreach($matches[1] as $search) {
if (!preg_match('#class\s*=\s*["\'][^"\']*["\']#i', $search)) {
$part[] = array($search, $search . ' class="formcheckbox"');
}
}
}
// die haesslichen Rahmen um Checkboxen und Radio-Feldern entfernen, ¸ber style-sheet Klasse
$pattern = '#(<input.*[^>]type\s*=\s*[\"\'](?:submit|button|reset)[\"\']*?[^>]*?)\s*/*>#iU';
preg_match_all($pattern, $template, $matches);
if (isset($matches[1])) {
foreach($matches[1] as $search) {
if (!preg_match('#class\s*=\s*["\'][^"\']*["\']#i', $search)) {
$part[] = array($search, $search . ' class="formbutton"');
}
}
}
// falls xHTML-Tags zerstoert wurden, diese hier wieder reparieren
$part['preg'][] = array('#/[[:space:]]?class="(formcheckbox|formbutton)"\s*/*>#', ' class="$1" />');
// falls die eben hinzugef¸gten Tageigenschaften doppelt gesetzt wurden, diese wieder vereinzeln
$part['preg'][] = array('#( class="(?:formbutton|formcheckbox)"){2,}#si', '$1');
// leere Tabellen Tags entfernen, wenn kein Inhalt von Modul angezeigt wird (blank_home)
$part['preg'][] = array('#<table[^>]*>\s*<tbody>\s*<tr>\s*<td>\s*</td>\s*</tr>\s*</tbody>\s*</table>\s*<br\s*/?>#si', '');
$template = theme_replace_parts($template, $part);
return $template;
}
/**
* Beschreibung
*/
function getThemeAdminname($story)
{
global $theme_template;
if (!empty($story['url'])) {
$story['aid'] = "<a href='" . $story['url'] . "' target='new'>" . $story['aid'] . "</a>";
} else if (!empty($story['email'])) {
$story['aid'] = "<a href='mailto:" . mxPrepareToDisplay($story['email']) . "'>" . $story['aid'] . "</a>";
}
return $story['aid'];
}
/**
* Beschreibung
*/
function getThemeIndexButtons($story)
{
global $theme_template;
static $img, $isnewsadmin;
if (!isset($isnewsadmin)) {
$isnewsadmin = mxGetAdminPref('radminarticle');
}
if (empty($img)) {
// die images werden in einen statischen Variable gehalten um die Bildgroessen nicht bei jedem Artikel zu ermitteln
// xx als alttext wird weiter unten dynamisch ersetzt
$img[1] = mxCreateImage(MX_THEME_DIR . "/images/buttons/informant.gif", "xx", 0);
$img[2] = mxCreateImage(MX_THEME_DIR . "/images/buttons/print.gif", _BMXPRINTER, 0);
$img[3] = mxCreateImage(MX_THEME_DIR . "/images/buttons/friend.gif", _BMXFRIEND, 0);
$img[4] = mxCreateImage(MX_THEME_DIR . "/images/buttons/counter.gif", "xx", 0);
$img[6] = mxCreateImage(MX_THEME_DIR . "/images/buttons/bytesmore.gif", "xx", 0);
if ($GLOBALS['articlecomm']) $img[5] = mxCreateImage(MX_THEME_DIR . "/images/buttons/comments.gif", "xx", 0);
// mxdebugfuncvars($story['allmorelink']); // zum ansehen der morelink-Parameter einkommentieren
// mxdebugfuncvars($story); // zum ansehen der story-Parameter der ersten story einkommentieren
}
// mxdebugfuncvars($story); // zum ansehen der story-Parameter aller stories einkommentieren
$bmore = ($story['allmorelink']['bodycount']) ? _READMORE . " (" . $story['allmorelink']['bodycount'] . " " . _BYTESMORE . ")" : _READMORE;
$adminlink = ($isnewsadmin) ? " href='admin.php?op=EditStory&sid=" . $story['sid'] . "' " : "";
$link[] = $story['allmorelink']['storylink'] . str_replace("xx", $bmore, $img[6]) . "</a>";
if ($story['informant'] != $GLOBALS['anonymous'] && (MX_IS_USER || MX_IS_ADMIN)) {
$link[] = $story['allmorelink']['informantlink'] . str_replace("xx", _USERINFO . ": " . $story['informant'], $img[1]) . "</a>";
}
$link[] = $story['allmorelink']['printerlink'] . $img[2] . "</a>";
if (mxModuleAllowed('Recommend_Us')) {
$link[] = $story['allmorelink']['friendlink'] . $img[3] . "</a>";
}
if (empty($story['acomm']) && $GLOBALS['articlecomm']) { // Achtung!!! acomm: 0 = Ja , 1 = Nein
$link[] = $story['allmorelink']['commentslink'] . str_replace("xx", _COMMENTS . " (" . $story['comments'] . ")", $img[5]) . "</a>";
}
$link[] = "<a title='" . $story['allmorelink']['counter'] . ", " . $story['allmorelink']['score'] . "' " . $adminlink . ">" . str_replace("xx", $story['counter'] . " " . _READS, $img[4]) . "</a>";
return $link;
}
/**
* erstellt den Navigationspfad zum aktuellen Modul
*/
function mx_theme_currentpath($spacer = ' > ')
{
global $prefix;
$maxwordlen = 18;
$link[] = '<a href="./" title="' . _HOME . '">' . _HOME . '</a>';
// Module
if (isset($_REQUEST['name']) && mxModuleAllowed(MX_MODULE)) {
$result = sql_query("select custom_title from ${prefix}_modules WHERE title='" . mxAddSlashesForSQL(MX_MODULE) . "'");
list($custom_title) = sql_fetch_row($result);
$custom_title = str_replace("_", " ", ((empty($custom_title)) ? MX_MODULE : $custom_title));
$short_title = mxCutString($custom_title, $maxwordlen, "..", "");
$link[] = "<a href=\"modules.php?name=" . urlencode(MX_MODULE) . "\" title=\"" . $custom_title . "\">" . $short_title . "</a>";
}
// Administration
else if (defined('mxAdminFileLoaded')) {
$link[] = "<a href=\"admin.php\" title=\"" . _ADMINMENU . "\">" . _ADMINMENU . "</a>";
}
return implode($spacer, $link);
}
/**
* Beschreibung
*/
function mx_theme_searchform()
{
$out = '';
if (mxModuleAllowed('Search')) {
$out = '
<form action="modules.php" method="get" title="' . _SEARCH . '">
<input type="hidden" name="name" value="Search">
<input type="text" value="' . _SEARCH . '" name="query" size="20" onfocus="this.value = \'\';" onblur="if(this.value==\'\') this.value=\''. _SEARCH .'...\';">
</form>
';
}
return $out;
}
/**
* Beschreibung
*/
function mx_theme_loginform()
{
global $prefix, $user_prefix, $JPCACHE_ON;
if ($JPCACHE_ON) {
return;
}
$out = "";
if (!MX_IS_USER) {
if (!defined("mxloginblockviewed")) define("mxloginblockviewed", true);
$nickname = _NICKNAME;
$password = _PASSWORD;
$login = Anmelden;
$check = mxGetUserLoginCheckField();
$out .= <<<logform
<form action="modules.php?name=Your_Account" method="post">
$check
<fieldset style="width: 310px">
<legend><script language="JavaScript">
<!--
today = new Date()
if(today.getMinutes() < 10){
pad = "0"}
else
pad = "";
document.write ;
if((today.getHours() >=6) && (today.getHours() <=9)){
document.write("Guten morgen Besucher!")
}
if((today.getHours() >=10) && (today.getHours() <=11)){
document.write("Guten Tag Besucher! ")
}
if((today.getHours() >=12) && (today.getHours() <=16)){
document.write("Guten Mittag Besucher")
}
if((today.getHours() >=17) && (today.getHours() <=23)){
document.write("Guten Abend Besucher ")
}
if((today.getHours() >=0) && (today.getHours() <=4)){
document.write("Guten Morgen lieber Nachtschwärmer !")
}
if((today.getHours() >=4) && (today.getHours() <=6)){
document.write("Guten Morgen bist Du noch oder schon auf?")
}
// -->
</script></legend>
<strong>$nickname:</strong>
<input class="loginput" name="uname" type="text" title="$nickname" size="8" maxlength="25">
<strong>$password:</strong>
<input class="loginput" name="pass" type="password" title="$password" size="8" maxlength="20">
<br>
<input class="logbutton" name="submit" type="submit" value="$login">
</fieldset>
</form>
logform;
} else {
$hallo = _HELLO;
$logout = Abmelden;
$account = Konto;
$privatemessages = "";
$cookie = mxgetusersession();
$username = $cookie[1];
// private Nachrichten
if (mxModuleAllowed('Private_Messages')) { // falls pm-modul aktiv ist
$qry = "SELECT Count(msg_id) FROM ${prefix}_priv_msgs WHERE to_userid=" . $cookie[0] . " AND read_msg=0;";
$result = sql_query($qry);
list($countpmunread) = sql_fetch_row($result);
if ($countpmunread) { // wenn angemeldeter User
$privatemessages = "<div style=\"text-align: left;\">" . _YOUHAVE . " <a href=\"modules.php?name=Private_Messages\" title=\"" . _PRIVATEMSG . "\"><b style=\"font-weight: normal;\">" . intval($countpmunread) . "</b> Nachricht(en)</a></div>";
}
}
// Usergaestebuch
$guestbook = "";
/*
if (mxModuleAllowed("UserGuest")){ # falls gaestebuch vorhanden
$qry="SELECT Count(gid) FROM ${prefix}_userguest WHERE touserid='".$cookie[0]."' AND touser = '".$username."' AND dummy=0;";
$result = sql_query($qry);
list($gbnewentries) = sql_fetch_row($result);
if($gbnewentries){
$msg2 = ($GLOBALS['currentlang']=='english') ? 'new guestbookentries' : 'neue Gästebucheinträge';
$guestbook = "<div style=\"text-align: left; font-size: 9px;\">"._YOUHAVE." <a href=\"modules.php?name=UserGuest\" title=\""._GUESTBOOKVIEW."\"><b style=\"color: Yellow; font-weight: bold;\">".intval($gbnewentries)."</b> ".$msg2."</a></div>";
}
}
*/
//$arrowpic = mxCreateImage(MX_THEME_DIR . '/images/arrow.gif', '');
$out .= <<<logform
<fieldset style="width: 210px">
<legend><strong><script language="JavaScript">
<!--
today = new Date()
if(today.getMinutes() < 10){
pad = "0"}
else
pad = "";
document.write ;
if((today.getHours() >=6) && (today.getHours() <=9)){
document.write("Guten morgen!")
}
if((today.getHours() >=10) && (today.getHours() <=11)){
document.write("Guten Tag ")
}
if((today.getHours() >=12) && (today.getHours() <=16)){
document.write("Guten Mittag ")
}
if((today.getHours() >=17) && (today.getHours() <=23)){
document.write("Guten Abend ")
}
if((today.getHours() >=0) && (today.getHours() <=4)){
document.write("Guten Morgen Nachtschwärmer ")
}
if((today.getHours() >=4) && (today.getHours() <=6)){
document.write("Guten Morgen bist Du noch oder schon auf?")
}
// -->
</script></strong>
<span style="color: #000000; background-color: transparent;">$username </span>
</legend>
<table border="0" cellpadding="0" cellspacing="0">
<td <a href="modules.php?name=Your_Account&op=logout" title="$logout">[Abmelden]</a></td>
</tr>
</table>
<br>
</fieldset>
logform;
}
// $out .= "<input type='checkbox' value='1' name='rememberme'> "._REMEMBERLOGIN."<br>";
return $out;
}
/**
* Beschreibung
*/
function mx_show_date()
{
// mehrsprachig ;-)
$stamp = time();
// initalise String:
// Gettting the months set up...
$monate = array(1 => _JANUARY, 2 => _FEBRUARY, 3 => _MARCH, 4 => _APRIL, 5 => _MAY, 6 => _JUNE, 7 => _JULY, 8 => _AUGUST, 9 => _SEPTEMBER, 10 => _OCTOBER, 11 => _NOVEMBER, 12 => _DECEMBER);
// Getting our Month
$monat = date("n", $stamp);
// Getting the Days set up....
$tage = array(_WEEKFIRSTDAY, _WEEKSECONDDAY, _WEEKTHIRDDAY, _WEEKFOURTHDAY, _WEEKFIFTHDAY, _WEEKSIXTHDAY, _WEEKSEVENTHDAY);
// Getting Day....
$tag = date("w", $stamp);
$out = $tage[$tag] . ", " . date("d", $stamp) . ". " . $monate[$monat] . " " . date("Y", $stamp);
return $out;
}
/**
* Beschreibung
*/
function mx_show_time ()
{
$timestamp = time();
$uhrzeit = date("H:i", $timestamp);
$out = $uhrzeit;
return $out;
}
/**
* Beschreibung
*/
function mx_total_user_online ()
{
global $prefix, $user_prefix, $bgcolor1, $bgcolor2, $bgcolor3, $txtcolor1, $txtcolor2;
$past = time() - MX_SETINACTIVE_MINS ;
// Alle Gaeste ermitteln
$guest_online_num = 0;
$result = sql_query("SELECT Count(ip) FROM ${prefix}_visitors WHERE time>" . $past . " AND uid=0;");
list($guest_online_num) = sql_fetch_row($result);
// alle Online-User ermitteln
$member_online_num = 0;
$result = sql_query("SELECT COUNT(uid) FROM ${user_prefix}_users WHERE (user_lastvisit >= " . $past . " AND user_stat=1 AND user_lastmod<>'logout')");
list($member_online_num) = sql_fetch_row($result);
$out = ($guest_online_num + $member_online_num);
return $out;
}
/**
* Banner anzeigen
*/
function mx_themebanner($pos)
{
if ($GLOBALS['banners']) {
if (!function_exists('viewbanner')) {
@include_once('includes/mx_bannerfunctions.php');
}
if (function_exists('viewbanner')) {
$pos = intval($pos);
if (empty($pos)) $pos = 1;
return viewbanner($pos);
}
}
return ' ';
}
/**
* diese Funktion wird im Mx nirgends verwendet !!!
* bleibt aber drin, falls fremd-Module das Ding benoetigen
*/
function FormatStory($thetext, $notes, $aid, $informant)
{
global $theme_template;
$notes = (empty($notes)) ? "" : "<br><br><strong>" . _NOTE . "</strong> <em>" . $notes . "</em>\n";
if ($aid == $informant) {
echo "<span class='content'>" . $thetext . " " . $notes . "</span>\n";
} else {
$boxstuff = (empty($informant)) ? "" : "<i><a href='modules.php?name=Userinfo&uname=" . $informant . "'>" . $informant . "</a> " . _WRITES . ":</i><br><br>";
$boxstuff .= $thetext . " " . $notes . "\n";
echo "<span class='content'>" . $boxstuff . "</span>\n";
}
}