ich bin gerade dabei, unsere Clanpage etwas aufzumöbeln. Bislang ist es so, dass in der Einzelansicht der News nie ein Author steht, deswegen hab ich die news.htm soweit angepasst, jedoch wird mir immer nur {username} anstelle des richtigen Namens angezeigt. Ich gehe mal davon aus, dass mir in der news.php eine Abfrage fehlt?
Mind
news.htm:
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="newsbg"><tr><td>
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td class="smalfont">{datum} - <strong><a href="index.php?newsextended-{id}">{title}</a></strong></td>
</tr>
<tr>
<td><hr style="height: 0px; border: dotted #000000 0px; border-top-width: 1px; " /></td>
</tr>
</table>
<table width="100%" border="0" align="center" cellpadding="1" cellspacing="0" class="cbg1">
<tr>
<td align="center">{kate}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td>{text}</td>
</tr>
<tr>
<td><hr style="height: 0px; border: dotted #000000 0px; border-top-width: 1px; " /></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tr>
<td align="left" width="60%" class="smalfont">Geschrieben von <strong>{username}</strong>{edit}</td>
<td align="right" width="40%">
<a href="index.php?user-details-{uid}" alt="Benutzerinfo: {username}" title="Benutzerinfo: {username}"><img src="include/images/icons/news/informant.gif" alt="Benutzerinfo: {username}" border="0">
<a href="index.php?newsextended-{id}" alt="Kommentare ({kom})" title="Kommentare ({kom})"><img src="include/images/icons/news/comments.gif" alt="Kommentare ({kom})" border="0"></a>
<a href="index.php?newsextended-send-{id}" alt="Diese News einen Freund senden" title="Diese News einen Freund senden"><img src="include/images/icons/news/send.gif" alt="Diese News einen Freund senden" border="0"></a>
<a href="index.php?newsextended-print-{id}" alt="Druckoptimierte Version" title="Druckoptimierte Version"><img src="include/images/icons/news/print.gif" alt="Druckoptimierte Version" border="0"></a>
{klicks}
{readwholenews}
</td>
</tr>
</table>
</td></tr></table>
<br />
<br />
{EXPLODE}
<br />
<br /><center>{SITELINK}</center>
{EXPLODE}
<script language="JavaScript" type="text/javascript">
function delkom (NID, ID) {
var Check = confirm("Kommentar wirklich löschen?")
if (Check == true) window.open("index.php?newsextended-"+NID+"-d"+ID,"_self");
}</script>
<!-- News Kommentare und Mehr lesen -->
<table width="100%" cellpadding="5" cellspacing="1" border="0">
<tr class="Chead">
<th height="25"><b>{NAME}</b></th>
</tr>
<tr>
<td height="25">{_lang_message}</td>
</tr>
<tr>
<td align="center">{KATE}</td>
</tr>
<tr>
<td >
<div style="float:left; padding-left:10px; ">{TEXT}</div><br style="clear:both; " />
<p></p>
<div style="float:left; padding-left:10px; ">Geschrieben von {username} </div><br style="clear:both; " />
<p></p>
<a href="javascript:history.back(1)"><b>«</b>{_lang_back}</a> </td>
</tr>
<tr>
<td height="25">{_lang_commentsfor} {NAME}</td>
</tr>
<tr>
<td>
{EXPLODE}
<form action="index.php?newsextended-{NID}" method="POST">
<fieldset>
<legend>{_lang_writecomment}</legend>
<input type="text" name="name" value="{uname}" /> {ANTISPAM} <input type="submit" value="{_lang_enter}"><br />
<textarea style="width: 98%" cols="50" rows="2" name="txt"></textarea><br />
</fieldset>
</form>
<br />
{EXPLODE}
<span class="Cmite"># <b>{ZAHL}</b> von {NAME}</span>
<br />{TEXT}<br /><br />
{EXPLODE}
<br />
<a href="javascript:history.back(1)"><b>«</b> {_lang_back}</a>
</td>
</tr>
</table>
{EXPLODE}
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="rand">
<tr class="mite">
<td width="65%"><b>{NAME}</b></td>
<td width="15%">{FUER}</td>
<td width="20%" align="right">{DATE}</td>
</tr><tr class="norm">
<td valign="top" colspan="2">{TEXT}{MEHR}</td>
<td valign="top" rowspan="2" align="center">{KATE}</td>
</tr><tr class="norm">
<td valign="bottom" height="20" colspan="2" align="center">
<b>{_lang_by} {UNAME}</b> [ {KOM} <a href="index.php?newsextended-1&nid={ID}">{_lang_comments}</a> ]
</td>
</tr>
</table>
news.php:
<?php
# Copyright by: Manuel Staechele
# Support: www.ilch.de
# Modded by Mairu für News Extended
defined ('main') or die ( 'no direct access' );
$title = $allgAr['title'].' :: News';
$hmenu = 'News';
$design = new design ( $title , $hmenu );
$design->addheader('<link rel="alternate" type="application/atom+xml" title="News (Atom)" href="index.php?news-atom" />
<link rel="alternate" type="application/rss+xml" title="News (RSS)" href="index.php?news-rss" />');
function news_find_kat ($kat) {
$katpfad = 'include/images/news/';
$katjpg = $katpfad.$kat.'.jpg';
$katgif = $katpfad.$kat.'.gif';
$katpng = $katpfad.$kat.'.png';
if ( file_exists( $katjpg ) ) {
$pfadzumBild = $katjpg;
} elseif ( file_exists ( $katgif ) ) {
$pfadzumBild = $katgif;
} elseif ( file_exists ( $katpng ) ) {
$pfadzumBild = $katpng;
}
if ( !empty( $pfadzumBild ) ) {
$kategorie = '<img style="" src="'.$pfadzumBild.'" alt="'.$kat.'">';
} else {
$kategorie = '<b>'.$kat.'</b><br /><br />';
}
return ( $kategorie );
}
//Schaut ob ein Name so oder ähnlich in der Datenbank vorhanden ist
//gibt true zurück falls der Name noch nicht verwendet ist
function checkName($name) {
if (db_count_query("SELECT COUNT(name) FROM prefix_user WHERE name LIKE '$name'")) {
return false;
} else {
return true;
}
}
function checkKomName($name) {
$resp = new xajaxResponse();
if (checkName($name) OR loggedin()) {
$name = utf8_decode($name);
$resp->script('document.forms["komform"].submit();');
} else {
$resp->assign('komname','value' ,'' );
$resp->alert('Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.');
$resp->script("document.getElementById('komname').focus();");
}
return $resp;
}
//xajax für namencheck
$xajax = new xajax('index.php?newsextended-ajax');
$xajax->registerFunction('checkKomName');
$xajax->processRequest();
if ($menu->get(1) == 'ajax') {
exit();
}
if ( !is_numeric($menu->get(1)) ) {
if($menu->get(1) == 'rss' || $menu->get(1) == 'atom')
{
#ob_clean();
$feed_type = $menu->get(1);
$abf = "SELECT MAX(news_time) AS last_update FROM prefix_news";
$erg = db_query($abf);
$row = db_fetch_assoc($erg);
$last_update = str_replace(' ', 'T', $row['last_update']) . 'Z';
$tn_id = intval(@db_result($news_opts = db_query("SELECT v1 FROM prefix_allg WHERE k = 'news' LIMIT 1"),0));
$abf = "SELECT
a.news_title as title,
a.news_id as id,";
$abf .= ($feed_type == 'atom') ? 'a.news_time as datum,' : "DATE_FORMAT(a.news_time,'%a, %e %b %y %H:%i:%s') as datum,";
$abf .=
"a.news_kat as kate,
a.news_text as text,
b.name as username,
a.html
FROM prefix_news as a
LEFT JOIN prefix_user as b ON a.user_id = b.id
WHERE a.news_recht = 0 AND a.`show` > 0 AND a.`show` <= UNIX_TIMESTAMP() AND a.news_id != $tn_id AND a.`archiv` != 1 AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP())
ORDER BY news_time DESC LIMIT 15";
$erg = db_query($abf);
$tpl = new tpl( 'news_'.$menu->get(1).'.htm' );
header('Content-type: application/' . $menu->get(1) . '+xml');
$tpl->set_ar_out(array('FEEDTITLE' => $allgAr['title'],
'UPDATED' => $last_update,
'SITEURL' => 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF'])), 0);
while ($row = db_fetch_assoc($erg))
{
if($feed_type == 'atom')
{
$row['datum'] = str_replace(' ', 'T', $row['datum']) . 'Z';
}
$a = explode('[PREVIEWENDE]', $row['text']);
$tpl->set_ar_out(array('TITLE' => $row['title'],
'TXT' => $row['html'] ? $a[0] : bbcode($a[0]),
'LINK' => 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']). '/index.php?news-' . $row['id'],
'AUTHOR' => $row['username'],
'DATE' => $row['datum']
), 1);
}
$tpl->out(2);
exit;
}
else
{
$design->header();
$limit = $allgAr['Nlimit'];
$page = ( $menu->getA(1) == 'p' ? $menu->getE(1) : 1 );
$anfang = ($page - 1) * $limit;
//Topnews ausgeben
$tn_id = intval(@db_result($news_opts = db_query("SELECT v1, v2 FROM prefix_allg WHERE k = 'news' LIMIT 1"),0,0));
$tn_koms = @db_result($news_opts,0,1);
$tn_sql = db_query("SELECT news_title, news_text, html FROM prefix_news WHERE news_id = $tn_id AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())");
if (db_num_rows($tn_sql) > 0) {
$tn_r = db_fetch_object($tn_sql);
$tn_tpl = new tpl ( 'news/top');
$tn_tpl->set('title',$tn_r->news_title);
$tn_tpl->set('koms', $tn_koms == '1' ? '<br /><a href="index.php?newsextended-'.$tn_id.'">'.db_count_query("SELECT COUNT(id) FROM prefix_koms WHERE uid = $tn_id AND cat = 'NEWS'").' '.$lang['comments'].' </a>' : '' );
$tn_tpl->set_out('txt', $tn_r->html ? $tn_r->news_text : bbcode($tn_r->news_text), 0 );
unset($tn_tpl);
}
$MPL = db_make_sites ($page , "WHERE news_recht >= {$_SESSION['authright']} AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?newsextended' , 'news' );
//Normale News
$tpl = new tpl ( 'news/news.htm' );
$abf = "SELECT
a.news_title as title,
a.news_id as id,
DATE_FORMAT(a.news_time,'%d. %m. %Y - %H:%i Uhr') as datum,
DATE_FORMAT(a.news_time,'%W') as dayofweek,
a.news_kat as kate,
a.news_text as text,
b.name as username,
c.name as editorname,
a.html,
a.edit_time,
a.klicks,
b.id as uid
FROM prefix_news as a
LEFT JOIN prefix_user as b ON a.user_id = b.id
LEFT JOIN prefix_user as c ON a.editor_id = c.id
WHERE (".$_SESSION['authright']." <= a.news_recht
OR a.news_recht = 0) AND a.`show` > 0 AND a.`show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND a.`archiv` != 1 AND (a.endtime IS NULL OR a.endtime > UNIX_TIMESTAMP())
ORDER BY a.news_time DESC
LIMIT ".$anfang.",".$limit;
#echo '<pre>'.$abf.'</pre>';
$erg = db_query($abf);
while ($row = db_fetch_assoc($erg)) {
$k0m = db_query("SELECT COUNT(ID) FROM `prefix_koms` WHERE uid = ".$row['id']." AND cat = 'NEWS'");
$row['kom'] = db_result($k0m,0);
$row['kate'] = news_find_kat($row['kate']);
$row['datum'] = $lang[$row['dayofweek']].' '.$row['datum'];
if ( strpos ( $row['text'] , '[PREVIEWENDE]' ) !== FALSE ) {
$a = explode('[PREVIEWENDE]' , $row['text']);
$row['text'] = $a[0];
$row['readwholenews'] = '<a href="index.php?newsextended-'.$row['id'].'" alt="mehr lesen" title="mehr lesen"><img src="include/images/icons/news/more.gif" alt="mehr lesen" border="0"></a>';
} else {
$row['readwholenews'] = '';
}
$row['klicks'] = '<img src="include/images/icons/news/counter.gif" alt="'.$row['klicks'].' mal gelesen" title="'.$row['klicks'].' mal gelesen" border="0">';
if (!$row['html']) {
$row['text'] = bbcode($row['text']);
}
$row['edit'] = is_null($row['edit_time']) ? '' : '<br /><i>zuletzt geändert am '.date('d.m.Y - H:i',strtotime($row['edit_time'])).' Uhr';
if (!empty($row['edit']) and $row['editorname'] != $row['username']) {
$row['edit'] .= ' von '.$row['editorname'].'</i>';
} elseif (!empty($row['edit'])) {
$row['edit'] .= '</i>';
}
$tpl->set_ar_out($row,0);
}
$tpl->set_out('SITELINK', $MPL,1);
unset($tpl);
}
} else {
$design->header();
$xajax->printJavascript();
$nid = escape($menu->get(1), 'integer');
$erg = db_query("SELECT * FROM `prefix_news` WHERE `news_recht` >= {$_SESSION['authright']} AND `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id = '".$nid."'");
if (db_num_rows($erg) == 0) {
echo 'Keine Rechte';
$design->footer(1);
}
$row = db_fetch_object($erg);
if ( has_right(array($row->news_recht)) ) {
$komsOK = true;
if ( $allgAr['Ngkoms'] == 0 ) {
if ( loggedin() ) {
$komsOK = true;
} else {
$komsOK = false;
}
}
if ( $allgAr['Nukoms'] == 0 ) {
$komsOK = false;
}
$kom_info = '';
# kommentar add
if ( (loggedin() OR chk_antispam ('newskom')) AND $komsOK AND !empty($_POST['name']) AND !empty($_POST['txt']) ) {
$_POST['txt'] = escape($_POST['txt'],'string');
$_POST['name'] = escape($_POST['name'],'string');
if (checkName($_POST['name']) or loggedin()) {
if (loggedin()) {
$_POST['name'] = $_SESSION['authname'];
}
db_query("INSERT INTO `prefix_koms` (`uid`,`cat`,`name`,`text`) VALUES (".$nid.",'NEWS','".$_POST['name']."','".$_POST['txt']."')");
} else {
$kom_info = '<span style="color:red;">Dieser Name ist bereits an einen User vergeben, benutze bitte einen anderen.</span><br />';
}
}
# kommentar add
# kommentar loeschen
if ($menu->getA(2) == 'd' AND is_numeric($menu->getE(2)) AND has_right(-7, 'news')) {
$kommentar_id = escape($menu->getE(2),'integer');
db_query("DELETE FROM prefix_koms WHERE uid = ".$nid." AND cat = 'NEWS' AND id = ".$kommentar_id);
}
# kommentar loeschen
$kategorie = news_find_kat($row->news_kat);
$textToShow = $row->html ? $row->news_text : bbcode($row->news_text);
$textToShow = str_replace('[PREVIEWENDE]','',$textToShow);
if ( !empty($such) ) {
$textToShow = markword($textToShow,$such);
}
# klicks zaehlen
db_query("UPDATE prefix_news SET klicks = klicks + 1 WHERE news_id = ".$nid);
$tpl = new tpl ( 'news/news.htm' );
$ar = array (
'TEXT' => $textToShow,
'KATE' => $kategorie,
'NID' => $nid,
'uname' => $_SESSION['authname'],
'ANTISPAM' => (loggedin()?'':get_antispam ('newskom', 0)),
'NAME' => $row->news_title,
'info' => $kom_info
);
$tpl->set_ar_out($ar, 2 );
if ($komsOK) {
$tpl->set_ar_out ( array ( 'NAME' => $row->news_title , 'NID' => $nid, 'style' => loggedin() ? 'style="display:none;"' : ''), 3 );
}
$erg1 = db_query("SELECT text, name, id FROM `prefix_koms` WHERE uid = ".$nid." AND cat = 'NEWS' ORDER BY id DESC");
$ergAnz1 = db_num_rows($erg1);
if ( $ergAnz1 == 0 ) {
echo '<b>'.$lang['nocomments'].'</b>';
} else {
$zahl = $ergAnz1;
while ($row1 = db_fetch_assoc($erg1)) {
$row1['text'] = bbcode(trim($row1['text']));
if (has_right(-7, 'news')) {
$row1['text'] .= '<a href="javascript:delkom('.$nid.','.$row1['id'].')"><img src="include/images/icons/del.gif" alt="löschen" border="0" title="löschen" /></a>';
}
$tpl->set_ar_out( array('NAME' => $row1['name'], 'TEXT' => $row1['text'], 'ZAHL' => $zahl ) , 4 );
$zahl--;
}
}
}
$tpl->out(5);
}
$design->footer();
?>
verwendete ilch Version: 1.1 O
betroffene Homepage: sfw-testpage.de/


Das Hauptproblem ist für mich, rauszufinden wo in der news.php die Einzelansicht für die News anfängt. Ich denke auch, dass ich die Variable mit einer Abfrage noch deklarieren muss? Aber an welcher Stelle im Quellcode?

Mein Fehler probiere es nochmal mit den oben geänderten?
