Menü

  Login

  Shoutbox

  Forum » Fragen zu Ilch » Module von dieser Seite » mehrere News neben einander


mehrere News neben einander
finke
Grünschnabel

User Pic

Posts: 6
# 02.06.2010 - 07:29:11
    zitieren



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"), 00));
        
$tn_koms = @db_result($news_opts01);
        
$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(2abs($_SESSION['authright'])) | $tn_r->news_recht) != $tn_r->news_recht) {
                
$dontShow true;
            }
            if (
$dontShow) {
                foreach(
$_SESSION['authgrp'] as $id => $bool) {
                    if (
$bool and (pow(2abs($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(2abs($_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(2abs($_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) == and !empty($news_kat)) {
            echo 
'Keine News in dieser Kategorie gefunden.<br />
                <a href="index.php?news">News&uuml;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($ar0);
        
$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($k0m0);

            
$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&auml;ndert am ' date('d.m.Y - H:i'strtotime($row['edit_time'])) . '&nbsp;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($row1);            
            
$i++;
        }
        
$tpl->set_out('SITELINK'$MPL2);
        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

User Pic

# 02.06.2010 - 09:59:25
    zitieren



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

User Pic

Posts: 33
# 02.06.2010 - 13:37:37
    zitieren



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

User Pic

Posts: 6
# 02.06.2010 - 14:45:13
    zitieren



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

User Pic

Posts: 2
# 15.06.2010 - 11:56:33
    zitieren



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

User Pic

Posts: 110
# 16.06.2010 - 09:53:57
    zitieren



deine News.htm würde ich gerne mal sehen Smilie
Danke
finke
Grünschnabel

User Pic

Posts: 6
# 17.06.2010 - 16:25:30
    zitieren



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

User Pic

Posts: 110
# 18.06.2010 - 09:50:15
    zitieren



 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 Smilie
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 Smilie


Zuletzt modifiziert von mobi am 18.06.2010 - 10:13:58
L.W | Mike
Grünschnabel

User Pic

Posts: 2
# 18.06.2010 - 16:21:47
    zitieren



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>&laquo;</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}" /> &nbsp; {ANTISPAM} &nbsp; <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>&laquo;</b> {_lang_back}</a>

    </td>
  </tr>
</table>



Zuletzt modifiziert von Mairu am 19.06.2010 - 16:57:29
finke
Grünschnabel

User Pic

Posts: 6
# 20.06.2010 - 10:38:16
    zitieren



 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>&laquo;</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}" /> &nbsp; {ANTISPAM} &nbsp; <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>&laquo;</b> {_lang_back}</a>

    </td>
  </tr>
</table>
mobi
Eroberer

User Pic

Posts: 110
# 20.06.2010 - 14:55:02
    zitieren



ah so hast du dsa gemacht Smilie
okay danke dir
orsnipe
Gast

User Pic

# 01.08.2010 - 09:52:02
    zitieren



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

User Pic

Posts: 6
# 01.08.2010 - 10:57:16
    zitieren



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

User Pic

Posts: 6
# 01.08.2010 - 17:14:12
    zitieren



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.