Artikelliste 4.1 von Jan Lengowski auf 4.2 umnippeln

Pulitzer
Beiträge: 34
Registriert: Mi 18. Sep 2002, 09:15
Kontaktdaten:

Beitrag von Pulitzer »

Zu Frage 1: Die Bilder liegen standardmäßig in .../front_single/img/
Aber daran musst du im Modul ja nix ändern - $cfgClient[$client]["htmlpath"]["img"] ist ja die Variable, die korrekt auf dein IMG-Verzeichnis zeigt.

Zu Frage 2: einfach ein Modul anlegen, mit dem du die Artikel erfasst, die in der Teaserliste gezeigt werden sollen. Ganz simpel z.B. so:

Code: Alles auswählen

echo "
CMS_HEAD[1]<br>
CMS_HEAD[2]<br>
<img src=\"CMS_IMG[1]\">CMS_IMGDESCR[1]
";
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

also, ich verstehs irgendwie nicht, sorry.

das is die seite
http://musicloaders.dyndns.org/home/web ... nt_single/

unter Aktuelles ( http://musicloaders.dyndns.org/home/web ... 9&idcat=19) befindet sich ein artikel

und bei dem punkt Übersicht ( http://musicloaders.dyndns.org/home/web ... =7&idcat=7) möchte ich die teaserliste haben. dort hab ich dein modul drinnen.


ich hab mir gedacht, es saugt jetzt das bild und den text von dem artikel und zeigt es dort an.
muß ich da jetzt was im template, layout ändern ?
Pulitzer
Beiträge: 34
Registriert: Mi 18. Sep 2002, 09:15
Kontaktdaten:

Beitrag von Pulitzer »

Dass der Artikel NICHT Startartikel sein darf, hast du berücksichtigt, ja?
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

kann mir vielleciht jemand helfen?

ich hätte diese teaserliste gerne so, das sich die teaserliste aus der Zusammenfassung, die man bei Seite konfigureien eingibt und aus dem bild das im artikel vorkommt zusammensetzt.
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

gibt es da draußen einen php profi der etwas ziet hat mir bei dieser geschichte zu helfen ?
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

$query = "SELECT title,summary, created FROM $cfgTab_side_lang"
holt dir den unter anderem die gewünschte Summary aus der Datenbank,
solltest du aber durch eine geeignete where-Klausel beschränken auf die jeweilige Seite.
Wie sowas eingesetzt wird, findest du in den verschiedenen News-Modulen.

Gruß
Detlev
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

sorry detlev, bin php laie, also bis ich das hinbekommen würde.....
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

also, ich würde mir das genau so vorstellen: http://musicloaders.dyndns.org/home/web ... intro.html

bild, kurzer text, und weiter link zum artikel.

und das sollte alles aus dem artikel und seiner beschreibung gezogen werden.
Eisi
Beiträge: 102
Registriert: So 3. Nov 2002, 18:50
Kontaktdaten:

Beitrag von Eisi »

Pulitzer hat geschrieben:Zu Frage 1: Die Bilder liegen standardmäßig in .../front_single/img/
Aber daran musst du im Modul ja nix ändern - $cfgClient[$client]["htmlpath"]["img"] ist ja die Variable, die korrekt auf dein IMG-Verzeichnis zeigt.
ist das nicht $cfgClient[$client]["frontendpath"]["img"] ? Oder ist das egal?
Alles über Final Fantasy 7 und 9:
www.Zeitzumspielen.de

Veranstaltungsmanagement an der FH Osnabrück:
www.VamosOnline.de
Eisi
Beiträge: 102
Registriert: So 3. Nov 2002, 18:50
Kontaktdaten:

Beitrag von Eisi »

Ich hätte da auch noch eine kleine Variante der Ursprungsmoduls anzubieten. So läuft es bei mir, und nur dafür habe ich es gemacht. Ist also recht speziell im Layout, und CSS-Klassen. Ist auch keine große Veränderung, aber vielleicht hilft es ja jemandem irgendwie. :)

Keine Garantie, keine Gewähr für irgendwas!

Das Modul holt Überschrift 1 und 2, datum, Autor (wenn gewünscht; im Code z.Zt. auskommentiert ) und Teasertext (In der Länge einstellbar). Falls auf einer Artikel-Seite mehrere Artikel sind, wird nur der Oberste auf der Seite ausgelesen.

Falls dieser kein reiner Text ist (idtype=3), sondern z.B. WYSIWYG-Text wird der Teaser-Text mit "..." belegt. Ich hab keine Ahnung, wie ich WYSIWYG-Text umformatieren soll, so dass er als reiner Text ausgegeben wird. ;) Wer gemischte Text-Arten auf seinen Seiten hat, müsste also Zuoberst ein reines Text-Modul verwenden. Oder halt ein anderes Artikel-Modul. :)

Bilder werden nicht gelesen.

Mein Projekt läuft noch lokal, ich kann also keinen Link zum Angucken anbieten.

Code: Alles auswählen

/*********************************************** 
* 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
* Modified by : M.Eisenhardt [Eisi] m.e@gmx.net 07-01-2003
*     Gibt Artikelliste aus, mit Headline1+2(Summary), Date,
*     Autor und Teaser-Text
************************************************/ 

// 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' ". 
"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>"; 
}
// Eisi:
echo" 
</tr> 
<tr> 
<td>Teaser (Anzahl Zeichen):</td>"; 
if("CMS_VALUE[4]" != 0) { 
echo"<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"></td>"; 
} 
else{ 
echo"<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"200\"></td>"; 
} 
//

echo" 
</tr> 
</table>";



/*********************************************** 
* 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
* Modified by : M.Eisenhardt [Eisi] m.e@gmx.net 07-01-2003
*     Gibt Artikelliste aus, mit Headline1+2(Summary), Date,
*     Autor und Teaser-Text
************************************************/ 

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

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

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

// Eisi: Anzahl der Zeichen Teaser
if ("CMS_VALUE[4]" !="") {
   $teasermax = "CMS_VALUE[4]";
} else { $teasermax = "200";
}


// 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=\"3\" cellspacing=\"1\" border=\"0\"> 
<tr valign=\"middle\"> 
<td align=\"left\" class=\"text_headline2\" valign=\"top\" colspan=\"2\"><b>Artikelliste:</b> </td> 
</tr>";
**/
echo "<table width=\"100%\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\" class=\"forumline\">
<tr valign=\"middle\">";

//wenn die Weiterschaltung benötigt wird 
if($newscounter>$showart){ 
$link = $PHP_SELF."?client=$client&lang=$lang&idcat=$idcat&idside=$idside"; 
if($startwert_news[$client]>0){ 
	$summe=$startwert_news[$client] - $showart; 
	if ($startwert_news[$client]<$showart) 
	$summe=0;
	echo"<td align = \"left\" width=\"50%\" class=\"\">";
	echo "<a href=\"".$link."&startwert_url=".$summe."\" class=\"link_main\"><img src=\"" . $cfgClient[$client]["frontendpath"]["img"] . "/layout_arrow_back.gif\" align=\"middle\" border=\"0\" width=\"21\" height=\"21\"> neuere Meldungen</a><br />
	</td>"; 
}

if($startwert_news[$client]<$newscounter-$showart){ 
	$summe=$startwert_news[$client]+$showart;
	echo"<td align = \"right\" width=\"50%\" class=\"\">"; 
	echo "<a href=\"$link&startwert_url=".$summe."\" class=\"link_main\">ältere Meldungen <img src=\"" . $cfgClient[$client]["frontendpath"]["img"] . "/layout_arrow_right.gif\" align=\"middle\" border=\"0\" width=\"21\" height=\"21\"></a><br />
</td>"; 
}

echo"</tr>"; 
} 


echo" <tr valign=\"middle\">
<td class=\"catHead\" colspan=\"2\" height=\28\"><span class=\"cattitle\">VamosNews:</span></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,author 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",strtotime($db->f("created"))); 
$summary = $db->f("summary");
$author = $db->f("author");

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


// Get Teaser-Text
$query = "SELECT value,idtype FROM $cfgTab_content WHERE idsidelang = '$articleID[$i]'"; 

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

// data type
$type = $db->f("idtype");
if ($teaser == "") {
	if ($type == 3) { // pure text 
	$teaser = $db->f("value");

		
		// cut Teaser if too long
		$len = strlen($teaser);
		if ($len > $teasermax) {
		$teaser = substr($teaser,0,$teasermax);
		$teaser .= "...";
		}
	}
	else {
		if ($type == 2) { // wysiwyg
		$teaser = "...";
		}

	}  // end if


} // end if

} // end inner while

} // end while 


// HTML template for one element 
echo " <tr> 
<td class=\"row1\" width=\"100%\" colspan=\"2\" style=\"padding-left: 5px; padding-top: 2px;\">
<span class=\"text_headline2\">$headline[0]</span>
<span class=\"text_main\"> ($created)<br /></span>";

// <span class=\"text_main\"> - $author<br />";
if($summary!="") echo "<span class=\"text_main\">$summary<br /></span>"; 

//Teaser
echo"<span class=\"text_main\">$teaser<br/></span>";

echo"<a href=\"$link\" class=\"link_main\"><img src=\"" . $cfgClient[$client]["frontendpath"]["img"] . "/layout_arrow_link.gif\" border=\"0\" align=\"middle\" width=\"12\" height=\"12\"> mehr</a>
<br />
</td> 
</tr>"; 

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

} // end foreach 
echo "<tr>
<td><br /></td>
</tr>
</table>"; 
} // end any news?
Alles über Final Fantasy 7 und 9:
www.Zeitzumspielen.de

Veranstaltungsmanagement an der FH Osnabrück:
www.VamosOnline.de
Sven777b
Beiträge: 503
Registriert: Mi 18. Sep 2002, 00:00
Wohnort: Sachsen
Kontaktdaten:

Beitrag von Sven777b »

Html-Tags entfernst du ganz einfach:

$teaser = strip_tags($teaser);

das macht aus
<font color=red>Text</font>
einfach nur
Text
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net

Der-Dirigent: http://der-dirigent.de
pulk
Beiträge: 217
Registriert: Sa 2. Nov 2002, 09:57
Kontaktdaten:

Beitrag von pulk »

das is genau das modul das ich brauche, danke !

wenn jetzt jemand noch da dazu basteln kann das auch das bild aus einem artikel geholt wird (wenn es eins gibt, wenn nicht könnte man ja ein "kein bild vorhanden bild") einfügen.

da wäre ich sehr glücklich ;)
Eisi
Beiträge: 102
Registriert: So 3. Nov 2002, 18:50
Kontaktdaten:

Beitrag von Eisi »

Danke Sven, aber um die Tags gins noch nicht mal, das problem wäre erst später aufgetreten. Da hab ich ja dann jetzt schon mal die Lösung. prima. *g*

Wie kriege ich denn die Steurcodes raus? Also "%20" usw. Klartext ist in der DB als Text ohne alles, aber die Wysiwyg-Texte stecken voll mit diesen Codes für Leerzeichen etc. Wenn ich mir den "value" aus der con_content hole, werden die alle als Text mit ausgegeben. Oder muss ich dann ein anderes Kommando als "echo" benutzen?

Mann, ich brauch so langsam ein gutes PHP-Buch. Diese Anfänger-Fragen werden mir langsam peinlich. Tschuldigung. :(
Alles über Final Fantasy 7 und 9:
www.Zeitzumspielen.de

Veranstaltungsmanagement an der FH Osnabrück:
www.VamosOnline.de
Gesperrt