modul artikelblättern adaptieren

Gesperrt
tappler
Beiträge: 14
Registriert: Sa 23. Jul 2005, 11:40
Kontaktdaten:

modul artikelblättern adaptieren

Beitrag von tappler »

danke für die zahlreiche hilfe bisher!

ich benützte jetzt für meine presseberichte das modul "Artikelblaettern" vom der Contenido-Website - funkt wunderbar.

nur würde ich gerne kleine optische anpassungen vornehmen, weiß aber mit bestem willen nicht wie:

meine wunschdarstellung wäre:

datum
uberschrift des artikels
artikel .........
mehr...


momentan sieht es so aus:
http://www.kuerbiskernoelshop.com/nebau ... p?idcat=87

kann mir jemand unter die arme greifen?

output-code von "Artikelblättern":

Code: Alles auswählen

<?php
$anzahl = "CMS_VALUE[8]";
if($anzahl<1) {$anzahl=10;}
$laenge = "CMS_VALUE[9]";
if($laenge<1) {$laenge=100;}
$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 CAT.idcat='$idcat' AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND CATART.is_start='0'
 ORDER BY ARTLANG.artsort ASC,ARTLANG.created DESC";
$db->query($sql);
if ($db->num_rows() != 0)
{
 echo "
<table border=0 cellspacing=0 cellpadding=10 id=\"font\">";

$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;
if ($j>$anzahl)
{
 echo " <tr>
  <td colspan=3 align=\"right\">Seite ".$blatt1." von ".$blattmax1."  – <b>";
 for ($i=0; $i<=$blattmax; $i++)
 {
  $k = $i+1;
  if($i==$blatt) {
   echo " ".$k." ";
  } else {
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
   echo ' <a href="'.$sess->url("$navmod_link").'" id="font">'.$k.'</a> ';
  }
 }
 echo "</b><br> </td>
 </tr>";
}

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>';
 }
 echo '<td><img border="0" src="images/2.gif" width="7" height="1"></td>
 <td><p><b><a href="'.$sess->url("$navmod_link").'" id="font">'.$artikel[$i][3].'</a> '.$artikel[$i][4].'</b> '.$artikel[$i][5].'<br> <a href="'.$sess->url("$navmod_link").'" id="font">. . . mehr</a></p></td>
</tr>';
}

if ($j>$anzahl)
{
 echo " <tr>
  <td colspan=3 align=\"right\"><br>Seite ".$blatt1." von ".$blattmax1."  – <b>";
 for ($i=0; $i<=$blattmax; $i++)
 {
  $k = $i+1;
  if($i==$blatt) {
   echo " ".$k." ";
  } else {
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
   echo ' <a href="'.$sess->url("$navmod_link").'" id="font">'.$k.'</a> ';
  }
 }
 echo "</b></td>
 </tr>";
}

 echo '</table>';
}
?>
wäre zu großen Dank verpflichtet -
schöne grüße
h.t.
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Hallo Tappler,

Deine Website ist so schön frei von Tabellen :!: (super) da würde ich versuchen das ganze Modul tabellenlos zu schreiben.

Schau mal alle echo Befehle an /table / tr /td und die jeweils schließenden Tags. Im Firefox mit kannst du im Source code alle echos hervorhereben, dann sieht man relativ schnell die Struktur.
Eigentlich kannst du jeweils die <td>xxx </td> durch ein <div class=\"x\">xxx</div> ersetzen.

reicht das schon?

Viel Erfolg
Florian
tappler
Beiträge: 14
Registriert: Sa 23. Jul 2005, 11:40
Kontaktdaten:

Beitrag von tappler »

hallo beleuchtfix,

danke für die rückmeldung.

bei den tabellen blicke ich noch halbwegs durch, für ein tabellenlosen modul reichen meine kenntnisse nicht :(

gruss h.t.
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Also, ich habe etwas gespielt, schau mal an, in wie weit es deinen Vorstellungen entspricht:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname        :     Artikelblaettern
* Author           :     agon
* modified by      :     Tappler /   Florian Behrendt
*                        Anpassung tabellenfrei / CSS
* Copyright        :     Contenido - four for business
* Created          :     22-08-2002
* Last Modified    :     06-08-2005

************************************************/
$anzahl = "CMS_VALUE[8]";
if($anzahl<1) {$anzahl=10;}
$laenge = "CMS_VALUE[9]";
if($laenge<1) {$laenge=100;}
$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 CAT.idcat='$idcat' AND ARTLANG.idlang = '$lang' AND ARTLANG.online = '1' AND CATART.is_start='0'
 ORDER BY ARTLANG.artsort ASC,ARTLANG.created DESC";
$db->query($sql);
if ($db->num_rows() != 0)
{
 echo "
<div id=\"artlist\">";

$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;
if ($j>$anzahl)
{
 echo ' <span class="art1">
  Seite '.$blatt1.' von '.$blattmax1.'  – </span><span class="artlist-link">';
 for ($i=0; $i<=$blattmax; $i++)
 {
  $k = $i+1;
  if($i==$blatt) {
   echo " ".$k." ";
  } else {
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
   echo ' <a href="'.$sess->url("$navmod_link").'" class="font">'.$k.'</a> ';
  }
 }
 echo "</span>";
}

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 '<span class="artlist_date">';
 if ( $i>0 && $artikel[$i][2] == $artikel[$k][2] )
 {
  echo '</span>';
 } else
 {
  echo '<span="artlist_content">'.$artikel[$i][2].'</span></span>';
 }
 echo '<span class="artlist_img"><img src="images/2.gif"></span>
 <span class="artlist_content"><a href="'.$sess->url("$navmod_link").'" class="font">'.$artikel[$i][3].'</a> '.$artikel[$i][4].$artikel[$i][5].'</span> <a href="'.$sess->url("$navmod_link").'" class="artlist_more">. . . mehr </span>';
}

if ($j>$anzahl)
{
 echo  '<span class="artlist_next">Seite '.$blatt1.' von '.$blattmax1.'  – ';
 for ($i=0; $i<=$blattmax; $i++)
 {
  $k = $i+1;
  if($i==$blatt) {
   echo " ".$k." ";
  } else {
   $navmod_link ="front_content.php?client=$client&lang=$lang&idcat=$idcat&blatt=".$i."";
   echo ' <a href="'.$sess->url("$navmod_link").'" class="font">'.$k.'</a> ';
  }
 }
 echo "</span>";
}


 echo '</div>';  
}  // id =artlist
?>

und der CSS Teil:

Code: Alles auswählen

/* CSS Datei zur Artikelliste blättern CSS
*/

#artlist {font-size:12px; text-align:left;}
.font {font-size:14px; color: red}
a.font:link, a.font:visited	{text-decoration: none; color: black;font-weight:bold}
.artlist_date {display: block; float: left; color: green;}
.artlist_more{}
a.artlist_more:link, a.artlist_more:visited 	{text-decoration: none; color: black;}
.artlist_content {color: black;}
.artlist_img {display:none ; height:1px; width:70px; border:1px, solid red; overflow:hidden;}
Irgendwo gefällt mir noch nicht alles so richtig, aber ich habe keine Lust mehr.

Wem noch Fehler auffallen, bitte melden.

Bei den Spans kannst du einen Zeilenumbruch erreichen durch display: block

Viel Erfolg und Spaß damit
Florian
Gesperrt