Modul Artikelliste Version 1.1 von J. Rodriguez erweitert

detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Modul Artikelliste Version 1.1 von J. Rodriguez erweitert

Beitrag von detlev »

Ich habe das Modul Artikelliste Version 1.1 von J. Rodriguez erweitert.
Ursprungsversion:
Listet alle Artikel ohne Startartikel aus einem Strukturpunkt mit Titel, Summary und Datum (created) auf.
Erweiterung:
Nutzbar als News-Modul durch:
Spulfunktion für ältere und neuere News.
Session-Variable, die auch nach Client-Wechsel bzw. Anzeiger des ganzen Artikels speichert, welche Artikel-Infos gerade sichtbar waren.

Bei Interesse stelle ich das gerne zur Verfügung.

Mit freundlichen Grüßen
Detlev
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Interesse.



Jacke
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

News-Auflistungsmodul

Bitte sehr:

Dieses Modul nutze ich, um die News-Seiten aus dem Strukturpunkt "News" mit Kurzinformation ausgeben zu lassen.
Tauchen mehr als Seiten als vorgegeben auf, erscheinen automatisch Richtungspfeile "ältere News" "neuere News auf". Durch die Session-Variable kann man dieses News-Modul auf mehreren Seiten mitlaufen lassen, der jeweils "angesrollte" Bereich der Newsauswahl bleibt bestehen, auch bei einem Hin- und Her-Wechsel zu einem anderen Client.

Das Layout ist für eine News-Spalte gedacht, meine css-Klassen sind rausgenommen, Links zu den drei Pfeiltypen sind zu ersetzen:

---
Input:
---
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Artikelliste
* Author(s) : 4fb - Jan Lengowski, Jose Rodriguez
* Copyright : Contenido - four for business, Jose Rodriguez
* Created : 15-08-2002
* Modified : 21-09-2002
* Modified by : D. Wagner 01-11-2002
************************************************/


// selected category
$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr valign=\"top\">
<td>News-Verzeichnis:</td>
<td>
<select name=\"CMS_VAR[0]\">";

// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name FROM $cfgTab_cat_tree AS A, ".
"$cfgTab_cat AS B, $cfgTab_cat_lang AS C WHERE A.idcat=B.idcat ".
"AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
"AND C.visible=1 ORDER BY A.idtree desc";

// execute query
$db->query($query);

// loop result and build the options
while ($db->next_record()) {

// indent spacer
$spaces = "";

// how many levels
$levels = $db->f("level");

for ($i = 0; $i > $levels; $i ++) {
// add 2 spaces for every level
$spaces = $spaces . " ";

} // end for

if ($selected == $db->f("idcat")) {
// selected category
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

} else {
// category
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";

} // end if

} // end while

echo " </select>
</td>
</tr>
<tr>
<td>Anzahl Artikel:</td>";
if("CMS_VALUE[1]"!=0){
echo"<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>";
}
else{
echo"<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"3\"></td>";
}
echo"
</tr>
<tr>
<td>Untertitel (Anzahl Zeichen)</td>";
if("CMS_VALUE[3]"!=0){
echo"<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\"></td>";
}
else{
echo"<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"50\"></td>";
}
echo"
</tr>
</table>";


---
Output
---
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Artikelliste
* Author(s) : 4fb - Jan Lengowski, Jose Rodriguez
* Copyright : Contenido - four for business, Jose Rodriguez
* Created : 15-08-2002
* Modified : 21-09-2002
*
* Modified by : D. Wagner 01-11-2002
************************************************/

// selected category
$selcat = "CMS_VALUE[0]";

// anzahl articles
$showart= "CMS_VALUE[1]";

// anzahl der zeichen h1
$mxh = "CMS_VALUE[3]";


// select all articles in category widthout start article
$query = "SELECT ARTLANG.idside, ARTLANG.idsidelang FROM $cfgTab_cat_side AS CATART, $cfgTab_side_lang AS ARTLANG ".
"WHERE CATART.idcat = '$selcat' AND ARTLANG.idside = CATART.idside AND ARTLANG.idlang = '$lang' AND ".
"ARTLANG.online = '1' ORDER BY CATART.idside DESC ";

// execute query
$db->query($query);

unset($articleID);
unset($linkID);

// any news?
$newscounter = $db->num_rows($db);
if ($newscounter > 0){

// session register des Startwertes für den Wiederbesuch der Seite
// $startwert_news[$client] als Array,
// um dieses Tool bei mehreren clients
// innerhalb einer Site nutzen zu können

$sess->register("startwert_news");

//wenn per link ($startwert_url) ein Startwert kommt
if(isset($startwert_url))
$startwert_news[$client]=$startwert_url;
//wenn weniger Artikel da sind, als gezeigt werden sollen
if ($startwert_news[$client]<$showart)
$startwert_news[$client]=0;

// start html-output
echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">
<tr valign=\"middle\" bgcolor=\"#000099\">
<td class=\"\" align=\"right\" valign=\"top\" colspan=\"2\"> <img src=\"".$root."/pages/grafiken/leer.gif\" width=\"1\" height=\"5\" alt=\"\"></td>
</tr>
<tr valign=\"middle\">
<td align=\"left\" class=\"\" valign=\"top\" colspan=\"2\"><b>News:</b> </td>
</tr>";
//wenn die Weiterschaltung benötigt wird
if($newscounter>$showart){
$link = $PHP_SELF."?client=$client&lang=$lang&idcat=$idcat&idside=$idside";
echo"<tr><td align = \"left\" width=\"50%\" class = \"\">";
if($startwert_news[$client]>0){
$summe=$startwert_news[$client] - $showart;
if ($startwert_news[$client]<$showart)
$summe=0;
echo "<a href=\"".$link."&startwert_url=".$summe."\"><img src=\"$root/pages/grafiken/pfeil_links.gif\" border=\"0\"> neuere</a>";
}
echo" </td><td align = \"right\" width=\"50%\" class = \"\">";
if($startwert_news[$client]<$newscounter-$showart){
$summe=$startwert_news[$client]+$showart;
echo "<a href=\"$link&startwert_url=".$summe."\">ältere <img src=\"$root/pages/grafiken/pfeil_rechts.gif\" border=\"0\"></a>";
}
echo" </td></tr>";
}
//Ausgabe der Variablen
/*
echo"
<tr><td class=\"\" colspan=\"2\">
counter: ".$newscounter."<br>
limit: ".$showart."<br>
startwert_news: ".$startwert_news[$client]
."</td></tr>";
*/


echo" <tr valign=\"middle\" bgcolor=\"#000099\">
<td class=\"\" align=\"right\" valign=\"top\" colspan=\"2\"> <img src=\"".$root."/pages/grafiken/leer.gif\" width=\"1\" height=\"5\" alt=\"\"></td>
</tr>";

// get id's of sub articles
while ($db->next_record()) {
$articleID[] = $db->f("idsidelang");
$linkID[] = $db->f("idside");
} // end while


// loop through subarticles


if($newscounter >= $showart+$startwert_news[$client])$i_max=$showart+$startwert_news[$client];
if($newscounter < $showart+$startwert_news[$client])$i_max=$newscounter;
for ($i=$startwert_news[$client]; $i<$i_max;$i++){
// select all CMS variables of the article
//$query = "SELECT * FROM $cfgTab_content WHERE idsidelang = '$value' ORDER BY typeid";

$query = "SELECT title,summary, created FROM $cfgTab_side_lang WHERE idsidelang = '$articleID[$i]'";
// execute query
$db->query($query);

// link
//// $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idside=$linkID[$i]&m=$m&s=$s");
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idside=$linkID[$i]");

// loop through result and extraxt data
while ($db->next_record()) {

// data type

$headline[] = $db->f("title");
$created= date("d.m.y H:i",strtotime($db->f("created")));
$summary = $db->f("summary");

$len = strlen($summary);
// cut summary if too long
if ($len > $mxh ) {
$summary = substr($summary,0,$mxh);
$summary = $summary . " ...";
} // end if
} // end while


// HTML template for one element

echo " <tr>
<td width=\"100%\" colspan=\"2\">
<span class=\"\"><b>$headline[0]</b><br /></span>
<span class=\"\">($created) <br />";
if($summary!="") echo $summary."<br>";
echo"</span>
</td>
</tr>
<tr>
<td align=\"right\" width=\"100%\" colspan=\"2\">
<a href=\"$link\" class=\"\">lesen </a>
<a href=\"$link\"><img src=\"$root/pages/grafiken/pfeil_weiter.gif\" border=\"0\"></a>
<br />
</td>
</tr>";

unset($headline);
unset($summary);
unset($created);

} // end foreach
echo "</table>";
} // end any news?
pg
Beiträge: 5
Registriert: Mo 28. Okt 2002, 10:10
Kontaktdaten:

Beitrag von pg »

Hi detlev

habe dein modul ausprobiert und finde es echt stark. habe das ganze noch ein bisschen umgestellt. zu sehen ist das resultat unter:

http://www.dpm-web.ch

unter dem menupunkt news.

vielen dank für dein posting!
gruss
philipp
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

Das tut gut.....

Danke
Detlev
Andre
Beiträge: 8
Registriert: Di 17. Sep 2002, 22:47
Wohnort: Flörsheim a. Main
Kontaktdaten:

Beitrag von Andre »

Ist es möglich nicht den Titel der Seite sondern die Zusammenfassung anzuzeigen?

Danke, André
Wo kämen wir denn hin, wenn jeder sagen würde: "Wo kämen wir denn hin!" und keiner ginge, um zu schauen, wohin man käme, wenn man ginge.
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

Im Quelltext steht der folgende3 Part irgendwo:
Schmeiß die Zeile raus hinter der steht //die Titelausgabe


Gruß
Detlev


echo " <tr>
<td width=\"100%\" colspan=\"2\">
<span class=\"\"><b>$headline[0]</b><br /></span> //die Titel-Ausgabe
<span class=\"\">($created) <br />"; //Erstell-Datum
if($summary!="") echo $summary."<br>"; //die SummaryAusgabe
echo"</span>
</td>
</tr>
<tr>
<td align=\"right\" width=\"100%\" colspan=\"2\">
<a href=\"$link\" class=\"\">lesen </a>
<a href=\"$link\"><img src=\"$root/pages/grafiken/pfeil_weiter.gif\" border=\"0\"></a>
<br />
</td>
</tr>";
Eisi
Beiträge: 102
Registriert: So 3. Nov 2002, 18:50
Kontaktdaten:

Beitrag von Eisi »

Jau, Danke Detlev.
Ich hab zu Deiner Version auch noch eine Klitze-Kleinigkeit hinzugefügt, und zwar den Namen des Autors. Zu sehen ist das ganze unter www.vamosonline.de unter News.

Im Output:
[FIND:]

Code: Alles auswählen

$query = "SELECT title,summary,created FROM $cfgTab_side_lang WHERE idsidelang = '$articleID[$i]'";
[REPLACE WITH:]

Code: Alles auswählen

$query = "SELECT title,summary,created,author FROM $cfgTab_side_lang WHERE idsidelang = '$articleID[$i]'";
[FIND:]

Code: Alles auswählen

// data type 

$headline[] = $db->f("title"); 
$created= date("d.m.y",strtotime($db->f("created"))); 
$summary = $db->f("summary");
[ADD AFTER:]

Code: Alles auswählen

$author = $db->f("author");
[FIND:]

Code: Alles auswählen

unset($headline); 
unset($summary); 
unset($created);
[ADD AFTER:]

Code: Alles auswählen

unset($author);

An der Stelle, wo man den Autor dann im Output gerne hätte, kann man die Variable $author in eine echo-Anweisung reinpacken.

Ich hätte gerne einen direkten Link zur email des Autors. Das bastel ich mir vielleicht demnächst noch zusammen, falls nicht jemand schon eine Lösung hat.

Schön wäre es diesbezüglich, wenn in der Benutzer-Administration ein e-mail Feld wäre, da nicht alle Benutzer automatisch immer auch den Newsletter erhalten müssen (sollen). ;)

Gruß,
Eisi
Alles über Final Fantasy 7 und 9:
www.Zeitzumspielen.de

Veranstaltungsmanagement an der FH Osnabrück:
www.VamosOnline.de
subsolutions
Beiträge: 11
Registriert: Fr 14. Feb 2003, 14:46
Kontaktdaten:

Ich checks nicht!

Beitrag von subsolutions »

:roll: wie oder wo kann ich neue artikel eingeben (backend), muss ich mir so ein modul selber machen? oder gibt es da schon was fertiges?
danke
flo
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Artikel entspricht hier einer Seite. Also die Artikelliste listet alle Seiten einer Rubrik auf.

Jacke
Napalm
Beiträge: 15
Registriert: Fr 21. Feb 2003, 17:20
Kontaktdaten:

Beitrag von Napalm »

hallo @all.

habe das modul eingepflegt und ich denke es funktioniert soweit ich das als völliger newbie bezeichnen kann.

zwei fragen hierzu. gibt es eine lösung bzw. einfach möglichkeit nicht für jede Neuigkeit eine eigene Seite anzulegen, sondern das komfortabel per Formular/Modul im Backend in die Datenbank zu pflegen? Will man nämlich die News archivieren kann der Baum ziemlich unübersichtlich werden...

zweite frage. wenn das also eher eine dumme idee ist, eine frage: schaltet ihr die rubrik 'news' auf unsichtbar, damit man sie nicht in der navigation sieht oder wie handhabt ihr das hier vorgstellte modul genau (habe mir die beispielseiten angeschaut, auf denen es läuft und die gefallen mir gut)

thx in advance - np
Eppi
Beiträge: 252
Registriert: Di 17. Sep 2002, 16:33
Wohnort: Ilmenau (Thüringen)
Kontaktdaten:

Beitrag von Eppi »

das einpflegen über eine seite wird auch erst ab der nächsten version möglich sein.
Ein neues CMS-System:
www.der-dirigent.de
Björn
Beiträge: 276
Registriert: Di 17. Sep 2002, 18:25
Kontaktdaten:

Beitrag von Björn »

@Napalm
Zu Deiner ersten Frage:
In der Contenido Nachfolge wird das komplette Backendmenu dynamisch erzeugt, was bedeutet, dass Du selbst geschriebene Erweiterungen einfach ins Backend einhängen kannst.
Napalm
Beiträge: 15
Registriert: Fr 21. Feb 2003, 17:20
Kontaktdaten:

Beitrag von Napalm »

Das hört sich alles so Klasse an mit dem Nachfolger, das ich ganz schwitzige Finger bekomme!

Mir stellt sich jedoch nun die Frage, ob ich mein Projekt jetzt mit 4.2vv12 realisieren soll. Denn wie ich jetzt erfahren habe, wird der Nachfolger wieder völlig inkompatibel sein, was meine Arbeit dann wohl zum größten Teil überflüssig sein würde.

Apropos 4.3 oder 4.4: Wann plant ihr das Release im März?

Nochwas zu der Folgeversion: Werden auch alle verfügbaren Module (4.2) inkompatibel?

Ich steh gerade so ein bißchen unter Entscheidungsmangel, da ich natürlich nicht in einem Monat ein veraltetes System benutzen und meinen Redakteuren präsentieren will, aber trotzdem mit der Umsetzung anfangen sollte.

grüße
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

Napalm hat geschrieben:Ich steh gerade so ein bißchen unter Entscheidungsmangel, da ich natürlich nicht in einem Monat ein veraltetes System benutzen und meinen Redakteuren präsentieren will, aber trotzdem mit der Umsetzung anfangen sollte.
also, veraltet würde ich nicht sagen, du wirst hier immer noch support für die "alte" version finden.
aber ich versteh schon wenn du gleich die neue evrsion haben willst, also wenn dein projekt nicht eilt, wart einfach noch ein bisschen ;)
Gesperrt