Gute Artikelliste modifizieren

Gesperrt
bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

Gute Artikelliste modifizieren

Beitrag von bruderbarnabas »

Hallo ich habe von Thorsten eine tolle Artikelliste bekommen:
INPUT:
/***********************************************

* CONTENIDO MODUL - INPUT

*

* Modulname : Artikelblaettern

* Author : agon

* Copyright : Contenido - four for business

* Created : 22-08-2002

* Modified : 22-08-2002

************************************************/



echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">

<tr>

<td>Artikel/Seite:</td>

<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\"></td>

</tr>

<tr>

<td>Länge Texteinblendung:</td>

<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\"></td>

</tr>

<tr>

<td>Kategorien (durch Komma getrennt):</td>

<td><input type=\"text\" name=\"CMS_VAR[10]\" value=\"CMS_VALUE[10]\"></td>

</tr>

</table>";
OUTPUT:

<?php



$array = explode(",","CMS_VALUE[10]");



if ($array[0] != "") {

for($x=0;$x<count($array);$x++){

$kategorien .= "CAT.idcat='" . $array[$x] . "'";

if (($x+1) < count($array)) {

$kategorien .= " OR ";

}

}

}



if (!$kategorien) {

$kategorien = "CAT.idcat='17' OR CAT.idcat='17'";

}





$anzahl = "CMS_VALUE[8]";

if($anzahl<1) {$anzahl=5;}

$laenge = "CMS_VALUE[9]";

if($laenge<1) {$laenge=200;}

$sql = "SELECT ARTLANG.idart, ARTLANG.title, CATART.idcat, ARTLANG.created, CONTENT.value, CONTENT.idtype, CONTENT.typeid

FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".$cfg["tab"]["art_lang"]." AS ARTLANG, ".$cfg["tab"]["cat"]." AS CAT, ".$cfg["tab"]["content"]." AS CONTENT

WHERE ARTLANG.idart = CATART.idart AND CATART.idcat = CAT.idcat AND ARTLANG.idartlang=CONTENT.idartlang AND CONTENT.idtype<=2 AND CONTENT.typeid<=2 AND (".$kategorien.") AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND CATART.is_start='0'

ORDER BY ARTLANG.artsort DESC,ARTLANG.created DESC";

$db->query($sql);

if ($db->num_rows() != 0)

{





$artikel = array(array());

$j=0;

$db->next_record();

$idart_last=$db->f("idart");

for ($i=0; $i<$db->num_rows(); $i++)

{

$artikel[$j][0] = $db->f("idart");

$artikel[$j][1] = $db->f("idcat");

$artikel[$j][2] = substr($db->f("created"),8,2).".".substr($db->f("created"),5,2).".";

while ( $idart_last==$db->f("idart") )

{

if ( $db->f("idtype") == 2 && $db->f("typeid") == 1 )

{

$html_text = strip_tags(urldecode($db->f("value")));

$array = array ("&auml;" => "ä", "&ouml;" => "ö", "&uuml;" => "ü", "&szlig;" => "ß", "&Auml;" => "Ä", "&Ouml;" => "Ö", "&Uuml;" => "ü", "&nbsp;" => " ", """ => "\"", "<" => "<", ">" => ">", "&" => "&");

$html_text = strtr($html_text, $array);

$artikel[$j][5] = htmlentities(substr($html_text,0,$laenge))."...";

} elseif ( $db->f("idtype") == 1 && $db->f("typeid") == 1 )

{

$artikel[$j][3] = strip_tags(urldecode($db->f("value")));

} elseif ( $db->f("idtype") == 1 && $db->f("typeid") == 2 )

{

$artikel[$j][4] = strip_tags(urldecode($db->f("value")));

}

$idart_last=$db->f("idart");

$db->next_record();

$i++;

}

$idart_last=$db->f("idart");

$j++;

$i--;

}



if($blatt=="") {$blatt=0;}

$blattmax=ceil($j/$anzahl)-1;

$blatt1 = $blatt+1;

$blattmax1 = $blattmax+1;



?>



<DIV class="text"></DIV>
<!-- Teaser start -->



<?php



for ($i=$anzahl*$blatt; $i < min($j,$anzahl*$blatt+$anzahl); $i++)

{

$k = $i-1;

$navmod_link ="front_content.php?client=$client&lang=$lang&idcat=".$artikel[$i][1]."&idart=".$artikel[$i][0]."";

//echo '<tr>';

if ( $i>0 && $artikel[$i][2] == $artikel[$k][2] )

{

//echo '<td> </td>';

} else

{

//echo '<td valign="top"><p><b>'.$artikel[$i][2].'</b></p></td>';

}



if ($z >= 1) {

echo '



<DIV class="text">

<H3><A class="headline2" href="'.$sess->url("$navmod_link").'">'.$artikel[$i][3].'</A></H3>

<P>'.$artikel[$i][5].'</P>

<DIV class="text"><A href="'.$sess->url("$navmod_link").'"><IMG height=11

alt="Zum gesamten Artikel" src="images/weiter-pfeil.gif"

width=58 border=0> </A></DIV></DIV>';



}

$z++;

}



}

?>

Funktioniert soweit gut und ist für mein Projekt genau das richtige. Nur habe ich ein Problem:

Der Startartikel wird nicht ausgelesen (das ist auch ok so), aber der neueste Artikel der eingepflegt wird wird auch nicht eingelesen. Wo liegt denn der Fehler?

Und nochwas...bin absolut untalentiert mit Php ;)

Ich würde sogerne noch die subheadline mit auslesen lassen. kann mir da jemand helfen?
Wäre es denn auch möglich die News nach der Subheadline (wird ein Datum) zu sortieren?

Ich wär euch mal wieder total dankbar!

Ciao
Basti
bruderbarnabas
Beiträge: 43
Registriert: Do 15. Jan 2004, 22:04
Wohnort: München
Kontaktdaten:

Beitrag von bruderbarnabas »

Hi leute,

also Thorsten hat mir noch geholfen mit dem Anzeige Problem, das doch der neueste Beitrag nicht angezeigt wird:

Einfach den Eintrag
if ($z >= 1) {

in

if ($z >= 0) {
ändern

Aber das Sortierproblem bleibt ;)
Gesperrt