Seite 1 von 1
Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Do 7. Jul 2011, 20:46
von hylli
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:
Wie bekomme ich das in Contenido hin?
Hylli
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Fr 8. Jul 2011, 12:39
von idea-tec
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
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Fr 8. Jul 2011, 13:31
von hylli
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:
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
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Fr 8. Jul 2011, 20:48
von idea-tec
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>
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Sa 9. Jul 2011, 13:57
von Spider IT
Oder ändere
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é
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Sa 9. Jul 2011, 18:48
von hylli
Danke für die Tipps, werde ich mal testen.
Hylli

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Mo 11. Jul 2011, 14:41
von hylli
@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
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Mo 11. Jul 2011, 15:44
von Spider IT
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é
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Mo 11. Jul 2011, 16:22
von idea-tec
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

Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Mo 11. Jul 2011, 16:49
von hylli
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
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Mo 11. Jul 2011, 17:00
von Spider IT
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.
Re: Benötige sowas wie {IMAGEURL} für Modul-Template?
Verfasst: Mo 11. Jul 2011, 17:14
von hylli
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