Bild wird im Teaser nicht angezeigt?!

sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Bild wird im Teaser nicht angezeigt?!

Beitrag von sebel »

Contenido-Version: 4.8.4

Ich verwende das Standard-Modul für die News, habe allerdings das Modul-Template ein wenig modifiziert:

Code: Alles auswählen

<div class="artikellliste">
<!-- BEGIN:BLOCK -->
<div class="news">
   <h2><a href="{HREF}">{HEADLINE}</a></h2>
   <h3>{SUBHEAD}</h3>
   <p>{IMG}{TEXT} <a href="{HREF}" title="{MORE}">{MORE} &rsaquo;</a></p>
</div>
<!-- END:BLOCK -->
</div>
Problem ist nun: Bilder, die ich in die News-Artikel einbaue werden nicht als Bild-Teaser auf der Artikellisten-Seite dargestellt....(auch in meinem Beispielmandanten nicht)

Normal für dieses Modul? Muss ich ein anderes verwenden? Oder mache ich was falsch?

Danke für die Antworten
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Beitrag von sebel »

niemand? :?
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Hi sebel,

ich hab das Modul leider nicht vor mir.
Kannst du mal den Output Posten.

Wenn das {IMG} überhaupt nicht ersetzt wird könnte ich mir vorstellen das der Replacer falsch ist. Sinn gemäß würde ich als Programmierer ja "{IMAGE}" schreiben aber die wege des Herrn sind ...

mfg OliverL
sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Beitrag von sebel »

hey oliver, ich dachte das standard-modul dafür wäre bekannt ;)

hier der code:

Code: Alles auswählen

<?php
/**
* $RCSfile$
*
* Description: Newslist / ArticleList. Module "Output".
*
* @version 1.0.0
* @author Andreas Lindner
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2005-08-12
* }}
*
* $Id$
*/

cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');

if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

$tpl->reset();

$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";

$db->query($sql);

if ($db->next_record()) {
    $htmlpath = $db->f('htmlpath');
    $frontendpath = $db->f('frontendpath');
}

// selected category
$selcat = "CMS_VALUE[1]";
$template = "teaser-standard.html";
// anzahl der zeichen text
$mxtext = 9999;

$limit = "CMS_VALUE[15]";

$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
    $cms_sort_direction = 'desc';
}

if ("CMS_VALUE[3]" == "sortdate") {
    $order = 'lastmodified';
} else {
    $order = 'artsort';
}

if ("CMS_VALUE[17]" != '') {
    $with_start = true;
} else {
    $with_start = false;
}

$newsheadline = "CMS_VALUE[4]";

$tpl->set('s', 'TITLE', $newsheadline);

if (strlen($selcat) > 0 && $selcat != '0') {
    $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);

    $list = new ArticleCollection($options);

    $count = $list->count;

    if ($count > 0) {
        if (is_numeric($limit) AND strlen($limit) > 0) {
            if ($limit < $list->count) {
                $limit_art = $limit;
            } else {
                $limit_art = $list->count;
            }
        } else {
            $limit_art = $list->count;
        }

        for ($i = 0; $i < $limit_art; $i ++) {

            $article = $list->nextArticle();

            $article_id = $article->getField('idart');

            $teaser_img = '';
            if ($noimg != 'true') {
                $text_html = $article->getContent('CMS_HTML', 1);

                $regEx = "/<img[^>]*?>.*?/i";
                $match = array ();
                preg_match($regEx, $text_html, $match);

                $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
                $img = array ();
                preg_match($regEx, $match[0], $img);
                $img_src = preg_split("/\//", $img[0]);

                $img_name = $img_src[count($img_src) - 1];
                $img_name = preg_replace("/\"/", "", $img_name);
                $img_split = preg_split("/\./", $img_name);
                $img_type = $img_split[count($img_split) - 1];

                $img_split2 = preg_split("/_/", $img_split[0]);

                $name = $img_name;

                if (count($img_split2) > 1) {
                    $img_x = $img_split2[count($img_split2) - 1];
                    $img_y = $img_split2[count($img_split2) - 2];

                    if (is_numeric($img_x) AND is_numeric($img_y)) {
                        $suffix = "_".$img_x."_".$img_y.".".$img_type;
                        $name = preg_replace("/$suffix/", "", $img_name);
                        $name = $name.".[a-zA-Z]{3}";
                    }
                }

                $img_teaser = '';

                if (strlen($name) > 0) {
                    $sql = "SELECT
                                                    *
                                                FROM
                                                    ".$cfg["tab"]["upl"]." 
                                                WHERE
                                                    filename REGEXP '$name' ";

                    //echo "<pre>"; print_r($sql); echo "</pre>";

                    $db->query($sql);

                    if ($db->next_record()) {
                        $filename = $db->f('filename');
                        $dirname = $db->f('dirname');
                    }

                    $img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;

                    $img_size = "CMS_VALUE[14]";

                    $img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
                } // end if strlen

                if (strlen($img_teaser) > 0) {
                    $teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
                } else {
                    $teaser_img = '';
                }

            } // end if noimg       

            $headline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
            $headline = str_replace($replace, " ", $headline);

                     $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 3));
                     $subheadline = str_replace($replace, " ", $subheadline);

            $teaserheadline = /*$subheadline."&nbsp;-&nbsp;".*/
            $headline;
            $href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
            $teasertext = $article->getField('summary');

            if (strlen(trim($teasertext)) == 0) {
                $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
                $teasertext2 = $teasertext;
                $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
                if ($teasertext!=$teasertext2) {
                    $teasertext.= '...';
                }
                
            } // end if             

            $teasertext = $teasertext."&nbsp;";

            $tpl->set('d', 'HEADLINE', $teaserheadline);
            $tpl->set('d', 'SUBHEAD', $subheadline);
            $tpl->set('d', 'TEXT', $teasertext);
            $tpl->set('d', 'HREF', $href);
            $tpl->set('d', 'IMG', $teaser_img);
            $tpl->set('d', 'MORE', mi18n("mehr"));

            $tpl->next();

        } // end for

        $tpl->generate('templates/'.$template);

    }
}
?>
Soweit ich das verstanden habe, soll das Modul ja das erste Bild aus einem News-Artikel als Teaser-Bild anzeigen...oder liege ich da falsch?
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Hi,

Ist jetzt nur so eine Vermutung aber hast du in den Bildern die als Teaser genutzt werden sollen _ (Unterstriche) drin?
z.B: mein_name_ist_hase.jpg

wenn ja versuch mal ein Bild ohne Unterstriche.

Bisschen wild die ganzen Regex und splits.

mfg OliverL
sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Beitrag von sebel »

Hallo Oliver

Nein, an den Unterstrichen liegt es nicht. Anbei mal der Link

http://www.sus-o.de/cms/cms/front_content.php?idcat=11

Wenn du nun auf "Wir gewinnen" klicktst fährt der News-Text aus und du siehst, dass er ein wenig eingerückt ist und da ein kleiner Punkt ist, wo das Bild eigentlich sein soll. Das Bild habe ich ganz normal über den Editor eingefügt als ich den Artikeltext geschrieben habe...

Wie gesagt, das Modul ist nicht von mir, sondern das vorgefertigte von Contenido. Beim Textmandanten klappt das ganze ja auch leider nicht...
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Ahhh!

Das Bild aus dem Cach wird ja benutzt und auch eingesetzt.
Also liegt es wohl an der "capiImgScale".

So!
Die Bildgröße war nicht gesetzt. Hab die mal für alle drei Listen auf 50px gesetzt 8) und siehe da es geht.

mfg Oliver
thoste87
Beiträge: 189
Registriert: Fr 27. Jun 2008, 12:57
Kontaktdaten:

Beitrag von thoste87 »

verstehe nicht warum das bild immer aus dem cache geholt wird. heutzutage hat jeder eine schnelle internetverbindung und somit keine probleme auch eine seite mit vielen grafiken darzustellen. das bild sollte immer wieder neu geholt werden - denn bei manchen projekten funktioniert dieses news modul - bei andern nicht (falsches bild wird aus dem cache geholt)....

Lg
sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Beitrag von sebel »

ok cool :)

wo kann man denn die bildgröße festlegen? damit ich das nachvollziehen und ggf. ändern kann

und vielen dank!!!! :D
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Hallo sebel,

Ich meine nicht den Browser-Cache sondern den Umrechnungs-Cache von Contenido.

Vorteilhaft ist es den Cache zunutzen wenn man Bildergalerien einsetzt.
Ansonsten würden eventuell 40 mal 800x600 auf 80x60 umgerechnet werden und das würde den Server sehr stark belasten.

(Und ich hab die 50pixel bei dir im System eingestellt unter Artikel-Konfigurationen)

mfg OliverL
thoste87
Beiträge: 189
Registriert: Fr 27. Jun 2008, 12:57
Kontaktdaten:

Beitrag von thoste87 »

dann sollte das im bildergalerie modul angewandt werden und nicht in einem news modul...

Meine meinung...
sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Beitrag von sebel »

Hehe ok danke danke :)
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

uiiiii, da hab ich nicht aufgepasst.
Wilkommen thoste87! :)

@sebel:
beim Artikel und beim Template unter dem Reiter "Konfiguration".
sebel
Beiträge: 54
Registriert: Fr 8. Feb 2008, 11:58
Kontaktdaten:

Beitrag von sebel »

yep, hab alles gefunden und kann es nachvollziehen. bin doch nicht so ganz doof wie ich dachte ;)

so kann ich das projekt endlich zum abschluss bringen und dem kunden übergeben. merci
To "Errrrr" is Human

To "Ahrrrrr" is Pirate
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

@thoste87:
mmmhhhh... in der Bildergalerie soll die Funktion rein aber bei einer Newsliste nicht?

Wenn ich die Funktion hab dann kann ich sie doch überall nutzen wo ich will.
Der vorteil der Funktion ist zum ersten das die Bilder kleiner sind und nicht immer wieder umgerechnet werden müssen. und desweiteren das die Bilder qualitativ besser aussehen wenn man die capi nutzt anstelle im HTML die size einfach keiner zumachen (ausser mein Firefox3 der rechnet dann Bilder um).

mfg OliverL
Gesperrt