Bild mit Text oder nur Bild !! bin neu!!

Gesperrt
BerBlueSea
Beiträge: 58
Registriert: Mi 26. Nov 2003, 16:56
Kontaktdaten:

Bild mit Text oder nur Bild !! bin neu!!

Beitrag von BerBlueSea »

Hallo

Mache jetzt die ersten versuche mit Contenido und bin voll begeister!
Hab da mal eine Frage und zwar brauche ich ein modul das mir so wie bei einem Newssystem also

ein bild und einen kurztext und einen mehr button ausgibt!!

Wie zb. es auch auf www.news.at oder so auch ist
wenn man auf mehr klickt kann man dann den ganzen text lesen!!

Gibt es da schon etwas ?? und wenn nein wie muss ich vorgehen damit ich soetwas einbinden kann!!

Danke schon jetzt für die hilfe! :D [/b]
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon »

Hallo,

es gibt so etwas, z.B. in den Modulen "Artikelliste", "Artikelblaettern", allerdings ohne Bild.
Angenommen, Du hättest in die Artikel i.d.R. mindestens ein Bild über CMS_IMG eingebunden (wenn in der Übersicht ein Bild erscheinen soll, das nicht im Artikel enthalten ist, wird es schwieriger).
Dann könnte beim Modul "Artikelblaettern" folgender Output funktionieren (bei anderen Modulen würde die Anpassung i.d.R. anders aussehen müssen):

Code: Alles auswählen

<?php
$db2 = new DB_Contenido; // neu eingefügt !!
$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 "<h1><br>CMS_HTMLHEAD[6]</h1>
<table border=0 cellspacing=0 cellpadding=0 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")));
  } elseif ($db->f("idtype")==4 && $db->f("typeid")==1 && $db->f("value")>0) // neu eingefügt, um Bilder anzeigen zu können
  {
   $upl = $db->f("value");
   $sql2 = "SELECT UPL.filename, UPL.dirname
    FROM ".$cfg["tab"]["upl"]." AS UPL
    WHERE UPL.idupl = '".$upl."' ";
   $db2->query($sql2);
   if ($db2->num_rows() > 0)
   {
    $db2->next_record();
    $artikel[$j][5] = "upload/".$db2->f("dirname").$db2->f("filename")."";
   }
  }
  $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].' <a href="'.$sess->url("$navmod_link").'" id="font">mehr</a></p></td>
</tr>';

// die folgende Sequenz ist zum Einfügen des Bildes; muß nach Geschmack in die Tabellenzeile eingebaut werden
if ($artikel[$i][5] != "")
{
  $info = getimagesize($artikel[$i][5]);
  if ($info[0]>120) { // 120 ist die fest vorgegebene Bildbreite; ggf. nach Wunsch anpassen oder ganz weglassen
   $width=120;
   $height=$info[1]*120/$info[0];
  } else {
   $width=$info[0];
   $height=$info[1];
  }
  echo '<img src="'.$artikel[$i][5].'" border="0" width="'.$width.'" height="'.$height.'" alt="">';
}
// Ende Bilddarstellung

}

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>';
}
?>
Ist (in der Form) ungetestet und birgt das Problem, daß u.U. recht große Bilder für die Vorschaugrafiken geladen werden. Ggf. müßte man auf Techniken zugreifen, wie sie im Zusammenhang mit dem "Bildergalerie"-Modul auch hier im Forum diskutiert wurden (damit habe ich mich allerdings noch nicht beschäftigt).

Gruß
Andreas
ttb
Beiträge: 182
Registriert: So 26. Okt 2003, 19:54
Wohnort: Schwerin
Kontaktdaten:

Beitrag von ttb »

Erstmal danke, sowas hab ich auch schon gesucht.

Wie binde ich das Bild denn an anderer Stelle ein? Wenn ich den Codeblock fürs Bild woanders hinsetze, steht bei mir als src-Attribut beim img-Tag der Artikeltext. :?
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon »

Hallo,

uups, da habe ich gepennt. Alles, was mit dem Bild zu tun hat, muß $artikel[$i][6] heißen, also oben

Code: Alles auswählen

    $artikel[$j][6] = "upload/".$db2->f("dirname").$db2->f("filename")."";
und unten

Code: Alles auswählen

// die folgende Sequenz ist zum Einfügen des Bildes; muß nach Geschmack in die Tabellenzeile eingebaut werden
if ($artikel[$i][6] != "")
{
  $info = getimagesize($artikel[$i][6]);
  if ($info[0]>120) { // 120 ist die fest vorgegebene Bildbreite; ggf. nach Wunsch anpassen oder ganz weglassen
   $width=120;
   $height=$info[1]*120/$info[0];
  } else {
   $width=$info[0];
   $height=$info[1];
  }
  echo '<img src="'.$artikel[$i][6].'" border="0" width="'.$width.'" height="'.$height.'" alt="">';
}
// Ende Bilddarstellung
Sorry (konnte es wie gesagt nicht testen, da ich keine Artikel mit Extra-Image-Modul habe)
Andreas
BerBlueSea
Beiträge: 58
Registriert: Mi 26. Nov 2003, 16:56
Kontaktdaten:

hallo

Beitrag von BerBlueSea »

also voll komisch ich kann machen was ich will aber ich bekomme das bild nie zusehen??
was mache ich da falsch wo muss ich das bild hinladen??
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon »

Hallo BerBlueSea,

ich bin (wie oben gesagt) davon ausgegangen, daß in dem Artikel (ob als eigenes Modul oder innerhalb einer komplexeren Struktur, ist egal) CMS_IMG[1] auftaucht. (D.h., das Bild muß ganz normal im Backend hochgeladen worden und dann in die Seite eingebaut worden sein; schwieriger wird es, wenn Du für die Übersichtsseite ein Bild definieren willst, daß gar nicht im zugehörigen Artikel enthalten ist.)
Dann gibt es nämlich in der Tabelle con_content zu dem Artikel einen Eintrag mit idtype=4 (d.h. es ist vom Typ CMS_IMG) und typeid=1 (d.h. es ist CMS_IMG[1]); im value-Attribut steht dann die Nummer, mit der das zugehörige Bild in der Tabelle con_upl gehalten wird.

Hilft das weiter?
Andreas
bertolo
Beiträge: 76
Registriert: Fr 5. Sep 2003, 09:07
Wohnort: Salzburg
Kontaktdaten:

Auch kein Bild

Beitrag von bertolo »

Hallo agon,

zunächst mal danke für das tolle Modul "Artikelblaettern". Es ist auch ohne Bild schon ziemlich genial. Ich bin gerade dabei Dein Modul mit Bild zu testen (wie hier gepostet). Dabei tritt der gleiche Fehler auf wie beim Kollegen, nämlich, dass kein Bild angezeigt wird. Jetzt hangel ich mich so durch das Script, überprüfe alle Variablen mit echo-Ausgaben und komme dabei darauf, dass die Variable $url, die Du wie folgt definierst

Code: Alles auswählen

$upl = $db->f("value");
kein Ergebnis (=nichts) liefert... Vielleicht liegt es ja daran? Kannst Du das nochmal checken, bitte?

Beste Grüße, bertolo
:: webdesignetc.de ::
Salzburg / Austria
agon
Beiträge: 83
Registriert: Mi 29. Okt 2003, 16:01
Kontaktdaten:

Beitrag von agon »

Hallo,

da ist in der Tat noch ein Fehler drin und zwar muß im SQL-Statement das AND CONTENT.idtype<=2 gelöscht werden (damit werden nämlich u.a. alle Einträge vom Typ CMS_IMG ausgeschlossen, da hier idtype=4 ist).
So läuft es zumindest in meiner Testumgebung.

Gruß
Andreas
BerBlueSea
Beiträge: 58
Registriert: Mi 26. Nov 2003, 16:56
Kontaktdaten:

Hallo

Beitrag von BerBlueSea »

Also leider ich bekomme noch immer kein Bild auf meiner Ausgabe gezaubert!! :(
Ich hab aber sicher nichts anders gemacht also es hier steht!

Verstehe nicht ganz was es mit der SQL Ausgabe aufsich hat!!
was wird da alles abgefragt und wie kann man den TITEL Text von Contenido verstehen da sind ja alles % .... Zeichen enthalten ??

MFG :lol:
bertolo
Beiträge: 76
Registriert: Fr 5. Sep 2003, 09:07
Wohnort: Salzburg
Kontaktdaten:

artikelliste mit bild funktioniert

Beitrag von bertolo »

servus agon!

ja, genau das war der fehler: die CONTENT.idtype<=2 hat für idtype=4 natürlich kein Ergebnis geliefert, deshalb konnte auch kein Bild ausgelesen werden, obwohl ich den Image Container CMS_IMG richtig verwendet hatte. Danke jedenfalls für die prima Hilfe. Die Aritkelliste mit Bild ist jetzt genau das, was mir zu meinem Glück noch gefehlt hat. Vielleicht solltest Du das Modul (in der korrigierten Version) mal richtig posten, hm?

Ich glaube, darauf fliegen die Leute.
Beste Grüße, bertolo
:: webdesignetc.de ::
Salzburg / Austria
BerBlueSea
Beiträge: 58
Registriert: Mi 26. Nov 2003, 16:56
Kontaktdaten:

Super !!!

Beitrag von BerBlueSea »

Also jetzt geht es bei mir auch !!
Dickes Danke!!

Noch mal danke für die Hilfe!!!
Gesperrt