Also ich habe jetzt verzweifelt eine Stunde lang gesuch und etwas umgeschrieben, probier es mal aus und sichere voerher deine org. Dateien!
<?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.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">weiterlesen ...</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.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 ), 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();
?>
<style>
.news-title {
font-family: Verdana;
font-size: 13px;
text-decoration: none;
color:#719600;
}
</style>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td width="170" align="left" valign="top">{kate}</td>
<td align="left" valign="top">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" valign="top"><span style="color:#719600; font-family:Verdana; font-size:16px; text-decoration:none; font-weight:bold;">{title}</span></td>
</tr>
<tr>
<td height="25" align="left" valign="top"><span class="smalfont">geschrieben am {datum}</span></td>
</tr>
</table>
</td>
<td align="right" valign="middle">
<img src="include/images/news/news_comm.png" width="24" height="16" />
<span style="color:#719600"> <strong>({kom})</strong>
<a href="index.php?news-{id}">Kommentare</a></span>
</td>
</tr>
<tr>
<td colspan="2" align="left" valign="top">{text}</td>
</tr>
<tr>
<td height="25" colspan="2" align="right" valign="bottom"><span style="color:#719600">{readwholenews}</span></td>
</tr>
</table>
</td>
</tr>
</table>
{EXPLODE}
<center><br/>{SITELINK}</center>
{EXPLODE}
<script language="JavaScript" type="text/javascript">
function delkom (NID, ID) {
var Check = confirm("Kommentar wirklich entfernen?")
if (Check == true) window.open("index.php?news-"+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" align="left" valign="middle"><b>{NAME}</b></th>
</tr>
<tr>
<td height="25" align="left" valign="top">
<table width="175" border="0" cellspacing="0" cellpadding="0" style="float:left;">
<tr>
<td width="160" height="190" align="left" valign="top">{KATE}</td>
<td align="left" valign="top"> </td>
</tr>
</table>
{TEXT}
</td>
</tr>
<tr>
<td><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?news-{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>