Page 1 of 2

Bildunterschrift (caption) anschneiden...

Posted: Fri 15. May 2009, 19:25
by spielplan
Hallo zusammen,

ich würde gerne die Bildunterschrift nur angeschnitten (z. B. nur
das erste Wort) anzeigen lassen. Wenn man nun auf das Bild
klickt, um es zu vergrößern, sollte die Bildunterschrift komplett
dargestellt werden.

Gibt es dafür eine bestehende Lösung, oder muss ich in diesem
Fall selber was stricken?

Re: Bildunterschrift (caption) anschneiden...

Posted: Fri 15. May 2009, 20:34
by flip-flop
Hallo Detlef,

ich wüste im Moment keine fertige Lösung. DA wirst du selbst tätig werden müssen.
Tip: Ein Script im frontend_init (trigger CP) wenn es um Bilder aus irgendwelchen CPs geht.

Knut

Re: Bildunterschrift (caption) anschneiden...

Posted: Sat 16. May 2009, 11:52
by update
falls die Bildunterschrift eine eigene Class mitbringt oder per CSS sonstwie getriggert werden kann - dann spiel doch mal mit so was wie overflow:hidden rum.... das schneidet Dir dann (im Prinzip) den - ja genau - den Overflow ab.

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 10:40
by spielplan
Also der Hinweis mit overflow hidden war sehr gut.
Neues Template angelegt, overflow: hidden einge-
fügt und geht.
Ein Script im frontend_init (trigger CP) wenn es um Bilder aus irgendwelchen CPs geht.
Danach habe ich auch ein wenig recherchiert.
ist aber viel zu kompliziert, wenn man nicht über
fundierte Kenntnisse über phpwcms besitzt.

Aber vielleicht bekomme ich ja demnächt
eine phpwcms-Schulung...

Besten Dank für Eure Hilfe!

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 12:17
by flip-flop
Hier findest du die Basis zu cp_trigger

Die Aufgabe ist eigentlich recht einfach.

- Im Template der Bildunterschrift eine eindeutige identifizierbare Kennung geben, z.B. <class="ich_bin_caption">{CAPTION}</div>
- Einen trigger erstellen der nur die verwendeten CPs annimmt.
- Der Trigger sucht nach '<class="ich_bin_caption">(.*?)</div>' und bearbeitet in "$1" den Caption-text und gibt ihn zurück.

Knut

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 18:36
by spielplan
Ok, vom Prinzip her eigentlich klar.

Nur, wie kann ich den caption-text zurückgeben?

in $g[0] ist der gesamt String abgelegt. In $g[1]
nur die caption, welche ich nun z. B. substr() kürzen
kann.

Ich habe es mit Wikihilfe mal so gemacht:

Code: Select all

function CP_IMGDIV_img_class($text, & $data) {
    if($data['acontent_type'] == 29) { // 0 is CP plain text
        $text = preg_match('/\<p class=\"caption_cut\" style=\"margin:3px 0 0 0; width:90px; height:15px; border: 0px solid #000000; overflow: hidden;\">(.*?)</p>/si', $text, $g) ? substr($g[1], 0, 7) $text;
    }
    return $text;
}
register_cp_trigger('CP_IMGDIV_img_class');
Abgesehen davon, daß ich eine Fehlermeldung von php erhalte, weil was mit der Syntax nicht stimmt,
stellt sich die Frage, wie man die original-caption mit der bearbeitetn „substr($g[1], 0, 7)“ ersetzen kann.

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 21:15
by flip-flop
Ich würde das so machen, V1.0 Kürzen des CAPTION-Textes.

Knut

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 21:27
by update
GROSSartig :D

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 22:34
by spielplan
Besten Dank für die unermüdliche Hilfe!

Leider geht es bei mir nicht.

Die caption wird nicht abgeschnitten.
Es passiert nichts.

Woher weis preg_replace eigentlich, welcher
Teil mit dem Ersetzer ersetzt werden soll?
Die Doku von php.org find ich doof, weil ich
nichts finde, oder zu müde , oder zu... bin.

Hast Du das Beispiel mal ausprobiert?

Grüße, Detlef

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 22:41
by pepe
Du solltest den Bilder-CPs das entsprechend modifizierte Template zuweisen... dann filtert das script beim Rendern die span-Klasse und den kompletten Inhalt heraus und schreibt in um... d.h. kürzt in auf die angegebene Zahl an Zeichen ein...

Je nach zugewiesenem Template hast du also deine speziellen Möglichkeiten 7 Zeichen... 20 Zeichen...

So versteh ich das script zumindest :wink:

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 22:48
by spielplan
Genau, so verstehe ich das auch.

Mein zugewiesenes Template:

Code: Select all

<!--IMAGES_HEADER_START//-->

[TITLE]<h1>{TITLE}</h1>[/TITLE]
[SUBTITLE]<h3>{SUBTITLE}</h3>[/SUBTITLE]
[TEXT]{TEXT}[/TEXT]

<div class="images" id="images{ID}">
<!--IMAGES_HEADER_END//-->


<!--IMAGES_ENTRY_START//-->
	<div class="imageEntry" style="float:left;padding:5px;border:1px solid #E3E1B5;margin:5px 5px 0 0;">
		{IMAGE}[CAPTION]
		<p style="margin:3px 0 0 0; width:90px;"><span class="cut_caption">{CAPTION}</span></p>[/CAPTION]
        [CAPTION_ELSE]<p>{IMGNAME}</p>[/CAPTION_ELSE]

	</div>
<!--IMAGES_ENTRY_END//-->


<!--IMAGES_ENTRY_SPACER_START//--><!-- space between images "{SPACE}px" --><!--IMAGES_ENTRY_SPACER_END//-->


<!--IMAGES_ROW_SPACER_START//--><br style="clear:both" /><!-- space between image rows --><!--IMAGES_ROW_SPACER_END//-->


<!--IMAGES_FOOTER_START//-->
	<br style="clear:both" />
</div>
<!--IMAGES_FOOTER_END//-->
Geht aber trotzdem nicht.
Auf den Fehler bin ich schon gespannt. Ist wahrscheinlich ein total trivialer
„ich habe tomaten auf den Augen“ Fehler.

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 23:46
by spielplan
Also, es geht.

Beim Trigger und der if-Abfrage haben die Klammern gefehlt.
Keine Ahnung, wie ich das verbrochen habe. Bin heute schon zu
lange am Rechner.

Nochmals allerbesten Dank für Eure Hilfe. Wirklich sensationell.
Kommende Woche wird gespendet. Sowas muss unterstützt
werden!
Sollte ich beim nächsten FUNOFFPUT dabei sein können, gibt es
ein paar Kisten Bier von: http: //www. bergbier. de/ frame_produkte.htm

Danke und gute Nacht

Re: Bildunterschrift (caption) anschneiden...

Posted: Sun 17. May 2009, 23:58
by spielplan
Blutleck...

Und wenn man nur das erste Wort ausgeben möchte:

Code: Select all

$text = preg_replace("/<span class=\"cut_caption\">(.*?)<\/span>/e","substr('$1', 0, strpos('$1', ' ')).' ...'" , $text);

Re: Bildunterschrift (caption) anschneiden...

Posted: Mon 18. May 2009, 17:34
by flip-flop
Update, da sinnvoll: V1.1.1 Kürzen des CAPTION-Textes

Knut

Re: Bildunterschrift (caption) anschneiden...

Posted: Mon 18. May 2009, 18:27
by pepe
Ein echter FUCHS unser flip-flop :D