Artikelliste zweispaltig ??

Gesperrt
GoofyUlm
Beiträge: 50
Registriert: So 15. Feb 2004, 18:49
Kontaktdaten:

Artikelliste zweispaltig ??

Beitrag von GoofyUlm »

Hallo Contenidos,

ich habe die Artikelliste von Kummer angefangen zu modifizieren.
Ich möchte wie im Anhängenden Bild die Liste zweispaltig darstellen lassen.
Leider klappt es nicht so ganz wer hat einen Tip, oder lösungsvorschläge


INPUT ----------

Code: Alles auswählen


$selected = "CMS_VALUE[0]"; 

echo "<table class='text_medium' cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[0]\">"; 

if($selected!="0" && $selected!=""){ 
    echo"<option value=\"0\">--- kein ---</option>"; 
} else { 
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
} 

$sql = " 
    SELECT a.idcat, a.level, c.name 
    FROM {$cfg['tab']['cat_tree']} AS a, 
         {$cfg['tab']['cat']} AS b, 
         {$cfg['tab']['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 
    "; 

$db->query($sql); 

while ($db->next_record()) { 
    $spaces = "|"; 
    $levels = $db->f("level"); 
    for ($i = 0; $i < $levels; $i ++) { 
        $spaces = $spaces . "--"; 
    } 
    $spaces .= ">"; 

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

echo "</select></td></tr>"; 

echo "<tr><td>Anzahl Artikel je Seite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"3\" /></td>"; 

echo "<tr><td>Startartikel anzeigen?</td>"; 
$startartikel = "CMS_VALUE[2]"; 
if ($startartikel != '') { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\" checked=\"checked\"/></td>"; 
} else { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\"/></td>"; 
} 

echo "<tr><td>Anzahl angezeigte Zeichen der Subheadline:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>"; 

echo "<tr><td>Text für Previous-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>"; 

echo "<tr><td>Text für Next-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"15\" /></td>"; 

echo "<tr><td>Thumbnail-Breite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\" size=\"5\" /></td>"; 

echo "<tr><td>Artikel anzeigen bis:</td>"; 
echo "<td><select name=\"CMS_VAR[6]\">"; 
$ebene = "CMS_VALUE[6]"; 
for ($i=0;$i>-3;$i--) { 
    if ($i == $ebene) { 
        echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>"; 
    } else { 
        echo"<option value=\"$i\">Ebene $i</option>"; 
    } 
} 
// Mod: Sortieren der Artikel (30-07-2004 US) --->StArt 

$strSort = "CMS_VALUE[8]"; 
echo "<tr><td>Artikel sortieren nach:</td>"; 
echo "<td><select name=\"CMS_VAR[8]\">"; 
if ($strSort == "e.created"){ 
   echo "<option value=\"e.created\" selected>Datum</option>"; 
}else{ 
   echo "<option value=\"e.created\">Datum</option>"; 
} 
if ($strSort == "e.artsort"){ 
   echo "<option value=\"e.artsort\" selected>Sortierschlüssel</option>"; 
}else{ 
   echo "<option value=\"e.artsort\">Sortierschlüssel</option>"; 
} 
if ($strSort == "e.title"){ 
   echo "<option value=\"e.title\" selected>Alphabetisch</option>"; 
}else{ 
   echo "<option value=\"e.title\">Alphabetisch</option>"; 
} 
echo "</select>"; 

$strRichtung= "CMS_VALUE[9]"; 

echo "<tr><td>Sortierrichtung umkehren</td>"; 
if ($strRichtung!= '') { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[9]\" value=\"true\" size=\"3\" checked=\"checked\"/> (Aktuell: Absteigend)</td>"; 
} else { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[9]\" value=\"true\" size=\"3\"/> (Aktuell: Aufsteigend)</td>"; 
} 
// Mod: Sortieren der Artikel (30-07-2004 US) <---EnDe 

echo "</table>"; 


OUTPUT -----

Code: Alles auswählen


<?php


   // manuelle konfiguration des moduls
$uploadpfad = "/dplus/upload/"; // relativ zum root-verzeichnis (mit slash am anfang und am ende)
$thumbnailpfad = "/dplus/upload/auto_thumbnails/"; //relativ zum root-verzeichnis (mit slash am anfang und am ende)
$hauptpfad = "/srv/www/htdocs/web14/html/cmsys";
$contentpfad = "/cmsys";


    // konfiguration

    $categorie = "CMS_VALUE[0]";

    $angezeigte_anzahl = "CMS_VALUE[1]";
    if ($angezeigte_anzahl == '') $angezeigte_anzahl = 10;

    $startartikel = "CMS_VALUE[2]";
    if ($startartikel == '') $startartikel = true;

    $subheadline = "CMS_VALUE[3]";
    if ($subheadline == '') $subheadline = 200;

    $navigationslink['previous'] = "CMS_VALUE[4]";
    if ($navigationslink['previous'] == '') $navigationslink['previous'] = '[:: rückwärts ]';

    $navigationslink['next'] = "CMS_VALUE[5]";
    if ($navigationslink['next'] == '') $navigationslink['next'] = '[ vorwärts ::]';

    $ebene = "CMS_VALUE[6]";

    $bildbreite = "CMS_VALUE[7]";

    $limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0) + 1;

    // Mod: Sortieren der Artikel (30-07-2004 US) --->StArt
    // Sorieren
    $strSort = "CMS_VALUE[8]";
    if ($strSort =="") {
        $strSort ="e.created";
    }

    // Sortierrichtung
    $strRichtung= "CMS_VALUE[9]";
    if ($strRichtung == '') {
      $strRichtung = " DESC";
    }else{
      $strRichtung = " ASC";
    }
    // Mod: Sortieren der Artikel (30-07-2004 US) <---EnDe


    $db = new DB_Contenido;
    $db2 = new DB_Contenido;

    // wenn startartikel true ist, werden die startartikel dargestellt, sonst nicht
    $nurstartartikel = ($startartikel)?(''):('AND d.is_start = 0');

    // liest die anzahl betroffener artikel aus der datenbank
    switch ($ebene) {
        case -2:
            $sql_1 = "
                SELECT count(*) AS anzahl
                FROM {$cfg['tab']['cat']} AS a,
                     {$cfg['tab']['cat']} AS b,
                     {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.parentid = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
                FROM {$cfg['tab']['cat']} AS a,
                {$cfg['tab']['cat']} AS b,
                {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.parentid = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY $strSort $strRichtung
                LIMIT $limit, $angezeigte_anzahl
                ";
            break;
        case -1:
            $sql_1 = "
                SELECT count(*) AS anzahl
                FROM {$cfg['tab']['cat']} AS a,
                     {$cfg['tab']['cat']} AS b,
                     {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
                FROM {$cfg['tab']['cat']} AS a,
                {$cfg['tab']['cat']} AS b,
                {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.idcat = b.idcat
                            AND b.parentid = a.idcat
                        )
                        OR
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY $strSort $strRichtung
                LIMIT $limit, $angezeigte_anzahl
                    ";
            break;
        case 0:
            $sql_1 = "
                SELECT count(*) AS anzahl
                FROM {$cfg['tab']['cat']} AS a,
                     {$cfg['tab']['cat']} AS b,
                     {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ";
            $sql_2 = "
                SELECT c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
                FROM {$cfg['tab']['cat']} AS a,
                {$cfg['tab']['cat']} AS b,
                {$cfg['tab']['cat']} AS c
                LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat
                LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart
                WHERE
                    (
                        (
                            c.idcat = b.idcat
                            AND b.idcat = a.idcat
                        )
                    )
                    AND a.idcat = $categorie
                    AND e.online = 1
                    AND e.redirect = 0
                    AND e.external_redirect = 0
                    AND e.idlang = $lang
                    $nurstartartikel
                ORDER BY $strSort $strRichtung
                LIMIT $limit, $angezeigte_anzahl
                    ";
            break;
    }

    $db->query($sql_1);
    $db->next_record();
    //Gesamtsumme der Onlineartikel
    $anzahl_artikel = $db->f("anzahl");

    $db->query($sql_2);
    
    
    
    //dl 2005-03-25 NEUENTWICKLUNG DER ANZEIGE************************************************************************************
    
    //Definieren einer Zählvariablen
    $anzahl_azellen = ((round($limit / $angezeigte_anzahl)) * $angezeigte_anzahl);
    $Old_anzahl_azellen=$anzahl_azellen;
    
    
    //dl 2005-03-25
    //Anfang der eigentlichen HTML Ausgabe
    echo '<table border="0" cellpadding="0" cellspacing="0" width=650>';
    echo '	<tr>';
    echo '		<td>';
    echo '			<table border="0" cellpadding="0" cellspacing="0">';

	//dl 2005-03-25
	//Schleife zum anlegen der Artikelzeilen
	for($anzahl_azeilen = 0; $anzahl_azeilen < round($angezeigte_anzahl / 2); $anzahl_azeilen++) {
		echo '				<tr>';
		if(($anzahl_artikel - $anzahl_azellen) > 2) {
			$max_azellen = 2;
		}else{
			$max_azellen = 1;
		};
		$first_azellen = 1;
		$Old_anzahl_azellen = $anzahl_azellen;

		
		
		//Schleife zum Anlegen der Artikelzellen    	
		for($anzahl_azellen = $anzahl_azellen; ($anzahl_azellen < ($Old_anzahl_azellen+$max_azellen)); $anzahl_azellen++) {
			echo 'Bisherige Artikel:'.$anzahl_azellen;
			if($anzahl_azellen < $anzahl_artikel){
			
				if($first_azellen == 1) {
					$db->next_record();
				}
			
				$sql = "SELECT a.value, a.typeid, b.type, c.filename, c.dirname FROM {$cfg['tab']['content']} AS a
						LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype
						LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl
						WHERE a.idartlang = ".$db->f("idartlang")."
						AND (b.type = 'CMS_HTMLHEAD' OR b.type = 'CMS_IMG')
						ORDER BY b.type, a.typeid ASC";
				$db2->query($sql);
				$db2->next_record();
			
				$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=".$db->f("idcat")."&idart=".$db->f("idart"));
				$newsubheadline = urldecode($db2->f("value"));
        		
        		$db2->next_record();
				if (strlen($db2->f("value")) > $subheadline) {
					$kurztext = '';
					$worte = explode (" ",strip_tags(urldecode($db2->f("value"))));
					$zulang = false;
					foreach ($worte as $wort) {
						if (strlen($kurztext." ".$wort) >= $subheadline) $zulang = true;
						$kurztext = (!$zulang)?($kurztext." ".$wort):($kurztext);
					}
					$kurztext .= "...";
				} else {
					$kurztext = strip_tags(urldecode($db2->f("value")));
        		}        		
        		
        		
				echo '					<td>';
				echo '						<table border="0" cellpadding="0" cellspacing="0">';
				echo '							<tr height=106>';
				echo '								<td width=158 height=106 valign="top" bgcolor="#e1efea">';
				echo '									BILD';
				echo '								</td>';
				echo '								<td width=3 bgcolor="#e1efea">';
				echo '								</td>';    			
				echo '								<td width=152 valign="top" bgcolor="#e1efea">';
				echo '									<img src="images/clear.gif" width=152 height=5>';
				echo 									'<b>'.$newsubheadline.'</b><br>'.$kurztext;
				echo '								</td>';
				echo '								<td width=10 bgcolor="#0da59a">';
				echo '								</td>';
				echo '							</tr>';
				echo '							<tr>';
				echo '								<td height= 20 align="right" colspan=3 valign="middle" bgcolor="#e1efea">';
				echo '									<a href="'.$link.'"><b>mehr &nbsp;<b></a>';
				echo '								</td>';
				echo '								<td width=10 bgcolor="#0da59a">';
				echo '								</td>';    		
				echo '							</tr>';
				echo '						</table>';
				echo '					</td>';
				if($first_azellen == 1) {
					echo '					<td>';
					echo '						<table border="0" cellpadding="0" cellspacing="0">';
					echo '							<tr>';
					echo '								<td width =2>';
					echo '								</td>';
					echo '							</tr>';
					echo '						</table>';
					echo '					</td>';
				}
				$first_azellen=0;
				$db->next_record();
			}

		};
		echo '				</tr>';
		echo '				<tr height = 2>';
		echo '					<td>';
		echo '					</td>';
		echo '				</tr>';
	}
	echo '			</table>';
	echo '		</td>';
	echo '	</tr>';
	if($anzahl_artikel > $angezeigte_anzahl) {
		echo '	<tr>';
		echo '		<td height=10>';
		echo '		</td>';
		echo '	</tr>';
		echo '	<tr>';
		echo '		<td align=center>';
		for($i2 = 0; $i2 < ($anzahl_artikel / $angezeigte_anzahl); $i2++) {
			$temp_linkid = $angezeigte_anzahl * $i2; 
			echo "		<a href=\"".$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$temp_linkid")."\">".($i2+1)." ";
		};

		echo '		</td>';
		echo '	</tr>';
		echo '	<tr>';
		echo '		<td align=right>';
		echo 'Seite '.(round(($limit / $angezeigte_anzahl)+1)).'  von  '.(round($anzahl_artikel / $angezeigte_anzahl));
		echo '		</td>';
		echo '	</tr>';
	}
    echo '</table>';

?>

Bild
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

Was genau klappt denn nicht?
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Übrigens, wenn du nicht alles mit Tabellen, sondern CSS DIVs nimmst, dann kannst du alterrnierend mit float:left auch eine Zweispaltigkeit erreichen.

Viel Spaß beim Knobeln
Florian
GoofyUlm
Beiträge: 50
Registriert: So 15. Feb 2004, 18:49
Kontaktdaten:

Beitrag von GoofyUlm »

Hast Du mir mit dem float:left ein Beispiel ?

Grüße
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

schau mal unter
http://css.fractatulum.net/csseditor/
bzw auf den anderen Seiten der Site. Dort wird sehr viel mit Beispielen dazu erklärt.

Viel Erfolg
Florian
Gesperrt