Seite 2 von 2

Verfasst: Fr 15. Nov 2002, 11:55
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]
";

Verfasst: Fr 15. Nov 2002, 13:25
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 ?

Verfasst: Di 19. Nov 2002, 15:06
von Pulitzer
Dass der Artikel NICHT Startartikel sein darf, hast du berücksichtigt, ja?

Verfasst: Do 21. Nov 2002, 17:48
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.

Verfasst: Sa 21. Dez 2002, 13:06
von pulk
gibt es da draußen einen php profi der etwas ziet hat mir bei dieser geschichte zu helfen ?

Verfasst: Sa 21. Dez 2002, 14:00
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

Verfasst: So 22. Dez 2002, 14:54
von pulk
sorry detlev, bin php laie, also bis ich das hinbekommen würde.....

Verfasst: So 22. Dez 2002, 15:12
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.

Verfasst: Di 7. Jan 2003, 18:25
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?

Verfasst: Di 7. Jan 2003, 21:44
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?

Verfasst: Di 7. Jan 2003, 21:54
von Sven777b
Html-Tags entfernst du ganz einfach:

$teaser = strip_tags($teaser);

das macht aus
<font color=red>Text</font>
einfach nur
Text

Verfasst: Sa 11. Jan 2003, 14:53
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 ;)

Verfasst: So 12. Jan 2003, 13:49
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. :(