mehrere News neben einander
|
finke Grünschnabel

Posts: 6
|
Hi, da es im ilch-Forum einige Regungen gab bezüglich dieses Themas, hab ich mich mal entschieden die ganze Sache vorstellungstauglich darzustellen, und hier zu präsentieren.
Als erstes
Code von Datei SQL | 1: 2: 3: 4: 5:
| |
INSERT INTO `prefix_config` (`schl`, `typ`, `kat`, `frage`, `wert`, `pos`) VALUES('NpR', 'input', 'News Optionen', 'Anzahl der News die nebeneinander angezeigt werden sollen', '0', 1);
INSERT INTO `prefix_config` (`schl`, `typ`, `kat`, `frage`, `wert`, `pos`) VALUES('NRlimit', 'input', 'News Optionen', 'Anzahl der News die untereinander angezeigt werden sollen', '0', 5);
|
(bilden Multipliziert das Limit (ein bisschen Rechnen darf man den ilch admins ja wohl noch zutrauen oder?).
HTML von Datei news/news.htm | 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| |
<table style="width:100%; border: 0px none; table-layout:fixed;">
<colgroup>
{cols}
</colgroup>
<!-- NewsMod (nsbs) by finke; http://www.dragondesigns.de/ -->
<tr><td style="vertical-align:top;" {colspan}>
{EXPLODE}
{td}
...
{EXPLODE}
</td></tr></table>
<br />
<br /><center>{SITELINK}</center>
|
-> Alle $tpl->out() müssen um 1 erhöht werden
Php von Datei news/news.php | 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265:
| |
} else {
$design->header();
$limit = ($allgAr['NpR'] * ($allgAr['NRlimit'] -1)) +1;
$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
// 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, news_kat, news_recht, news_groups, 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);
$dontShow = false;
if ((pow(2, abs($_SESSION['authright'])) | $tn_r->news_recht) != $tn_r->news_recht) {
$dontShow = true;
}
if ($dontShow) {
foreach($_SESSION['authgrp'] as $id => $bool) {
if ($bool and (pow(2, abs($id)) | $tn_r->news_groups) == $tn_r->news_groups) {
$dontShow = false;
break;
}
}
}
if (!$dontShow) {
$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?news-' . $tn_id . '">' . db_count_query("SELECT COUNT(id) FROM prefix_koms WHERE uid = $tn_id AND cat = 'NEWS'") . ' ' . $lang['comments'] . ' </a>' : '');
if (strpos ($tn_r->news_text , '[PREVIEWENDE]') !== false) {
$a = explode('[PREVIEWENDE]' , $tn_r->news_text);
$tn_r->news_text = $a[0];
$tn_tpl->set('readwholenews', '<a href="index.php?news-' . $tn_id . '" alt="mehr lesen" title="mehr lesen"><img src="include/images/icons/news/more.gif" alt="mehr lesen" border="0"></a>');
} else {
$tn_tpl->set('readwholenews', '');
}
$tn_tpl->set('kate', news_find_kat($tn_r->news_kat));
$tn_tpl->set_out('txt', $tn_r->html ? $tn_r->news_text : bbcode($tn_r->news_text), 0);
unset($tn_tpl);
}
}
//Kategorie einschränken
if ($menu->get(1) != '' and ($menu->getA(1) != 'p' or $menu->getE(1) == 0)) {
$kats = $katssql = array(); #collect given kats
$i = 1;
while($kat = escape($menu->get($i), 'string')){
$kats[] = $kat;
$katssql[] = '"' . $kat . '"';
$i++;
}
$news_kat = 'news_kat IN ('.implode(',', $katssql).') AND';
$katmpl = '-'.implode('-', $kats);
$page = $menu->getE('p');
if ($page < 1) {
$page = 1;
}
$katmpl = str_replace('-p'.$page, '', $katmpl);
} else {
$news_kat = $katmpl = '';
$page = ($menu->getA(1) == 'p' ? $menu->getE(1) : 1);
}
$anfang = ($page - 1) * $limit;
//Gruppenrechte
$groups = getGroupRights();
$MPL = db_make_sites ($page , "WHERE (((" . pow(2, abs($_SESSION['authright'])) . " | news_recht) = news_recht) OR
(news_groups != 0 AND ((news_groups ^ $groups) != (news_groups | $groups)))) AND $news_kat `show` > 0 AND `show` <= UNIX_TIMESTAMP() AND news_id != $tn_id AND archiv != 1 AND (endtime IS NULL OR endtime > UNIX_TIMESTAMP())" , $limit , '?news'.$katmpl , '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 (((" . pow(2, abs($_SESSION['authright'])) . " | a.news_recht) = a.news_recht) OR
(a.news_groups != 0 AND ((a.news_groups ^ $groups) != (a.news_groups | $groups)))) AND $news_kat
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);
if (db_num_rows($erg) == 0 and !empty($news_kat)) {
echo 'Keine News in dieser Kategorie gefunden.<br />
<a href="index.php?news">Newsübersichtsseite aufrufen</a>';
$design->footer(1);
}
//NewsMod (nsbs) by finke; http://www.dragondesigns.de/
$ar = array();
$ar['cols'] = '';
for($i = 0; $i < $allgAr['NpR'];$i++){
$ar['cols'] .= "<col width=\"*\" />\n";
}
$ar['colspan'] = 'colspan="'.$allgAr['NpR'].'"';
$tpl->set_ar_out($ar, 0);
$i = 0;
while ($row = db_fetch_assoc($erg)) {
$row['td'] = '';
if($i != 0){
if(($i%$allgAr['NpR']) == 0){
$row['td'] = '</td><td style="vertical-align:top;">';
}else{
$row['td'] = "</td></tr>\n<tr><td style=\"vertical-align:top;\">";
}
}
$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?news-' . $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, 1);
$i++;
}
$tpl->set_out('SITELINK', $MPL, 2);
unset($tpl);
unset($i);
}
?> ?>
|
Das wäre mein Vorschlag zur Umsetzung.
Freundliche Grüße
finke@dragondesigns.de
edit by Mairu: Hab die Codeformatierung angepasst, damit dass mit den Zeilen stimmt.
Zuletzt modifiziert von Mairu am 01.08.2010 - 14:20:07
|
|
mickey Gast

|
Super, sowas suche ich schon lange.
Ich hoffe nur, das da jemand ein fertiges Modul raus zaubert. Denn das übersteigt meine Fähigkeiten.
gibt es eine Demo wie das aussieht?
Vorallem mit unterschiedlich langen News ?
|
|
Bum.Bum Jungspund

Posts: 33
|
das erste code finke wo und wie soll ich das einfügen?
Lg
|
|
finke Grünschnabel

Posts: 6
|
Ein besipiel sieht man auf der Seite vom Team Dragondesigns.
Der erste Code sind SQL-Statements. Musst die also in deine Datenbank einpflegen (Achtung: 'prefix' durch das ersetzten was du bei der Installation angegeben hast).
Zuletzt modifiziert von finke am 02.06.2010 - 14:50:27
|
|
L.W | Mike Grünschnabel

Posts: 2
|
kann mir da einer helfen, ich weiss nicht wie ich das machen soll habe das versucht aber es haut nicht hin.
willeich kann mir einer helfen danke
mein icq nummer: 450255069
oder xfire: ls3oo
Zuletzt modifiziert von Mairu am 16.06.2010 - 09:40:47
|
|
mobi Eroberer

Posts: 110
|
deine News.htm würde ich gerne mal sehen 
Danke
|
|
finke Grünschnabel

Posts: 6
|
Steht doch auszugsweise oben im 1. Beitrag mit drin.
Oder was meinst du?
Zuletzt modifiziert von finke am 17.06.2010 - 16:37:01
|
|
mobi Eroberer

Posts: 110
|
Zitat von finke |
Steht doch auszugsweise oben im 1. Beitrag mit drin.
Oder was meinst du?
|
|
Die gesamte news.htm würde ich gerne mal sehen. Wie du das alles angeordnet etc. hast 
Den die Idee wo du hast ist super.
Den egal wie ich es atm rum schiebe sieht es kacke aus ^^. denke mal hab da nur einen kleinen fehler irgendwo.
Drum würde ich deine gerne mal sehen als vergleichsvorlage 
Zuletzt modifiziert von mobi am 18.06.2010 - 10:13:58
|
|
L.W | Mike Grünschnabel

Posts: 2
|
Meine sieht so aus
Code | 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111:
| | <div style="float:left; width:50%;">
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="newsbg"><tr><td>
<table width="100%" border="0" align="left" cellpadding="1" cellspacing="0" class="cbg1">
<tr>
<td align="left">{kate}</td>
</tr>
</table>
<table width="100%" border="0" align="center" cellpadding="5" cellspacing="0">
<tr>
<td class="smalfont">{datum} - <strong><a href="index.php?news-{id}">{title}</a></strong></td>
</tr>
<tr>
<td><hr style="height: 0px; border: dotted #999999 0px; border-top-width: 2px; " /></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 #999999 0px; border-top-width: 2px; " /></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="1">
<tr>
<td align="left" width="50%" class="smalfont">Geschrieben von <strong>{username}</strong>{edit}</td>
<td align="right" width="50%">
<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?news-{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?news-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?news-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></div>
{EXPLODE}<br />
<br />
<br />
<br /><center>{SITELINK}</center>
{EXPLODE}
<!-- 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 height="109" >
<div style="float:left; padding-left:10px; ">{TEXT}</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?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> |
Zuletzt modifiziert von Mairu am 19.06.2010 - 16:57:29
|
|
finke Grünschnabel

Posts: 6
|
HTML | 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117:
| | <table style="width:100%; border: 0px none; table-layout:fix;">
<colgroup>
{cols}
</colgroup>
<tr><td style="vertical-align:top;" {colspan}>
{EXPLODE}
{td}
<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?news-{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" class="smalfont">Geschrieben von <strong>{username}</strong>{edit}</td>
</tr>
<tr>
<td align="right">
<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?news-{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?news-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?news-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}
</td></tr></table>
<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?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"><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>
<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> |
|
|
mobi Eroberer

Posts: 110
|
ah so hast du dsa gemacht 
okay danke dir
|
|
orsnipe Gast

|
Parse error: syntax error, unexpected '}' in /var/www/vhosts/okularrulz.com/httpdocs/include/contents/news/news.php on line 2
vieleicht wisst ihr ja weiter, warum kommt dieser fehler ?
Datenbankeinträge sind da
einstellung im adminbereich geht auch
news mod ist auch installiert.
|
|
finke Grünschnabel

Posts: 6
|
Die PHP datei die ich gepostet hab geht erst in der 115. Zeile los. die 1. 115 Zeilen darfst du nicht überschreiben
|
|
finke Grünschnabel

Posts: 6
|
Da so viele Probleme hatten, den Mod zu installieren, habe ich mal ein komplettes kleines Mod gebaut.
zu finden bei http://www.dragondesigns.de/
Supportanfragen hinsichtlich des Mods bitte in Zukunft dahin stellen.
|
|
|