Benötige sowas wie {IMAGEURL} für Modul-Template?

Gesperrt
hylli
Beiträge: 8
Registriert: Fr 16. Mai 2003, 16:50
Kontaktdaten:

Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von hylli » Do 7. Jul 2011, 20:46

Würde gerne ContentFlow in meine Contenido-Seite als weitere Möglichkeit der Teaser-Darstellung verwenden.

Die Einbindung an sich scheint auch gar nicht so schwer zu sein, jedoch kriege ich es trotzdem nicht wirklich zum laufen.

Das Problem scheint daran zu liegen, dass bei Verwendung von {IMAGE} im Modul-Template automatisch die Klasse "teaser_image" verwendet wird. Diese kann ich aber an der Stelle nicht gebrauchen.

Wenn ich die Bilder fest ins Modul-Template einbinde, dann funktioniert ContentFlow tadellos.

Daher bräuchte ich sowas:

Code: Alles auswählen

<img class="eigenklasse" src="{IMAGEURL}">
Wie bekomme ich das in Contenido hin?

Hylli

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von idea-tec » Fr 8. Jul 2011, 12:39

Poste hier mal modul-output und modul-template

denn das mit der Klasse kann dann nur in einem der beiden bereiche versteckt sein. findest du das dort, kannst du die class selbst anpassen
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

hylli
Beiträge: 8
Registriert: Fr 16. Mai 2003, 16:50
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von hylli » Fr 8. Jul 2011, 13:31

Hi,

anbei die gewünschten Infos, wobei die Klasse "teaser_image" denke ich aus dem Artikelmanagement gezogen wird?!?

Moduloutput zu Contentflow:

Code: Alles auswählen

<?php
/* Gibt den Teaser Block aus - die Konfiguration was Ausgegeben wird erfolgt im Artikel*/
echo "CMS_TEASER[1]";
?>
Modul-Template zu Contentflow:

Code: Alles auswählen

<div id="contentFlow" class="ContentFlow">
    <!-- should be place before flow so that contained images will be loaded first -->
    <div class="loadIndicator"><div class="indicator"></div></div>
    <div class="flow">
    <!-- BEGIN:BLOCK -->
            <div class="item">
            <a href="ART_URL">{IMAGE}</a>
            <h3>{TITLE}</h3><p>{TEXT2}</p>
        </div>
    <!-- END:BLOCK -->
    </div>
    <div class="globalCaption"></div>

    <div class="scrollbar"><div class="slider">
        <div class="position"></div>
    </div></div>
</div>
Das {IMAGE} wird dann ersetzt durch:

Code: Alles auswählen

<img alt="sds" src="bild.jpg" class="teaser_image"/>
Das Bild soll jedoch entweder ohne Klasse oder mit einer anderen Klasse von Contentflow versehen werden, daher bräuchte ich so eine Variable wie {IMAGEURL}, d.h. statt {IMAGE} würde ich ungefähr folgenden Code verwenden:

Code: Alles auswählen

<img alt="{TITLE}" src="{IMAGEURL}" class="content"/>
oder ohne Klasse
<img alt="{TITLE}" src="{IMAGEURL}"/>
Hylli

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von idea-tec » Fr 8. Jul 2011, 20:48

OK ... Hast du jQuery in dem Projekt eingebunden?

Wenn ja, bau mal das hier in dein Modul-Template am Ende ein:

Code: Alles auswählen

<script>$(".item img").removeClass("teaser_image");</script>
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von Spider IT » Sa 9. Jul 2011, 13:57

Oder ändere

Code: Alles auswählen

echo "CMS_TEASER[1]";
zu

Code: Alles auswählen

echo str_replace('class="teaser_image"', '', "CMS_TEASER[1]");
oder

Code: Alles auswählen

echo str_replace('class="teaser_image"', 'class="content"', "CMS_TEASER[1]");
Das sollte sogar etwas schneller gehen und benötigt kein aktiviertes JavaScript bei den Besuchern.

Gruß
René

hylli
Beiträge: 8
Registriert: Fr 16. Mai 2003, 16:50
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von hylli » Sa 9. Jul 2011, 18:48

Danke für die Tipps, werde ich mal testen.

Hylli :)

hylli
Beiträge: 8
Registriert: Fr 16. Mai 2003, 16:50
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von hylli » Mo 11. Jul 2011, 14:41

@Spider IT
Bekomme leider einr Parse error, wenn ich Deine Vorschläge nutzen möchte:

Code: Alles auswählen

Parse error: syntax error, unexpected ';' in /homepages/.../front_content.php(926) : eval()'d code on line 332
@idea-tec
Funktioniert leider auch nicht. Die Klasse "teaser_image" wird durch den Befehl nicht gelöscht.

So sähe aktuell das Modul-Template aus:

Code: Alles auswählen

<div id="contentFlow" class="ContentFlow">
    <!-- should be place before flow so that contained images will be loaded first -->
    <div class="loadIndicator"><div class="indicator"></div></div>

    <div class="flow">

    <!-- BEGIN:BLOCK -->
            <div class="item" href="{ART_URL}">{IMAGE}
            <div class="caption">{TITLE}</div>
            </div>
    <!-- END:BLOCK -->

    </div>
</div>
<script>$(".item img").removeClass("teaser_image");</script>
Hylli

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von Spider IT » Mo 11. Jul 2011, 15:44

hylli hat geschrieben:@Spider IT
Bekomme leider einr Parse error, wenn ich Deine Vorschläge nutzen möchte:

Code: Alles auswählen

Parse error: syntax error, unexpected ';' in /homepages/.../front_content.php(926) : eval()'d code on line 332
Okay, habs grad getestet. Anscheinend braucht Contenido eine feste Reihenfolge:

Code: Alles auswählen

<?php
/* Gibt den Teaser Block aus - die Konfiguration was Ausgegeben wird erfolgt im Artikel*/
$teaser = "CMS_TEASER[1]";
echo str_replace('class="teaser_image"', 'class="content"', $teaser);
?>
Jetzt wird zuerst im Zwischenschritt die Ausgabe von "CMS_TEASER[1]" geholt und erst danach die Zeichenfolge ersetzt.

Gruß
René

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von idea-tec » Mo 11. Jul 2011, 16:22

Das von René ist im Grunde schon die bessere Variante.

zu meiner kann ich dir nur mit dem Quellcode was sagen, meine Glaskugel ist verkratzt ;-)
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

hylli
Beiträge: 8
Registriert: Fr 16. Mai 2003, 16:50
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von hylli » Mo 11. Jul 2011, 16:49

Hi,

@idea-tec:
Deine Variante hat doch "bedingt" funktioniert, musste nur noch jQuery ins Layout einbinden, das hatte ich übersehen.

Komischerweise war im Quelltext aber auch weiterhin class="teaser_image" zu lesen, trotzdem funktionierte ContentFLow wie es sollte?!?

@René
Bringt zwar keinen Fehler, die Klasse wird aber trotzdem nicht ersetzt. Es erscheint weiterhin class="teaser_image" und Contentflow funktioniert so leider nicht. Das Script lädt sozusagen in einer Endlosschleife.

Deine Variante würde ich aber auch bevorzugen, wenn Sie denn funktionieren würde. ;)

Warum das aber bei der Variante von idea-tec funktioniert, ist mir schleierhaft.

Hylli

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von Spider IT » Mo 11. Jul 2011, 17:00

Nun gut, jetzt habe ich mir auch nochmal den Typ CMS_TEASER in der DB angesehen:

Code: Alles auswählen

cInclude("classes", "class.cms_teaser.php");
$tmp = $a_content["CMS_TEASER"][$val];
$oCmsTeaser = new Cms_Teaser($tmp, $val, $idartlang, $editLink, $cfg, $db, $belang, $client, $lang, $cfgClient, $sess);
if($edit){
  $tmp = $oCmsTeaser->getAllWidgetEdit();
}else{
  $tmp = $oCmsTeaser->getAllWidgetView();
}
So wie es aussieht, liefert dieser Typ gar nichts zurück, also ist auch im ursprünglichen Modul das echo überflüssig.
Die gesamte Ausgabe wird in der Klasse Cms_Teaser in der Datei class.cms_teaser.php gemacht.
Also musst du die Datei ändern um die Ausgabe zu beeinflussen.
Suche darin mal nach class="teaser_image" und ändere das ab.

Gruß
René

PS: Diese Vorgehensweise ist nicht empfehlenswert, da dadurch die Updatefähigkeit verloren geht.

hylli
Beiträge: 8
Registriert: Fr 16. Mai 2003, 16:50
Kontaktdaten:

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?

Beitrag von hylli » Mo 11. Jul 2011, 17:14

Hi,
Die gesamte Ausgabe wird in der Klasse Cms_Teaser in der Datei class.cms_teaser.php gemacht.
Also musst du die Datei ändern um die Ausgabe zu beeinflussen.
Suche darin mal nach class="teaser_image" und ändere das ab.
diese Lösung hatte ich zwischenzeitlich auch schon gefunden (Zeile 802 glaube ich, hätte aber auch gerne aufgrund...
Diese Vorgehensweise ist nicht empfehlenswert, da dadurch die Updatefähigkeit verloren geht.
...eine andere Lösung bevorzugt.

Evtl. nutze ich dann doch die Variante von idea-tec. Damit bleibt zumindest die Update-Fähigkeit gewahrt.

Hylli

Gesperrt