Zum Inhalt springen

css_style_content modifizieren

Erstellt am 22. Oktober 2008 · 6 Antworten · letzte Antwort am 26. Dezember 2008

Tags: Frage

Unbekannter Benutzer ·

Hallo,

ich möchte css_style_content so modifizieren, das wenn ein bestimmter Wert im BE ausgeählt ist, der img-Tag entsprechend modifiziert wird.
Konkret:
Wenn ich im Backend unter Effekte die Option "Graustufen" auswähle, dann soll die Erzeugung des img-Tags verändert werden. Dieser soll so aussehen:

<img src="2_c8c431f052.jpg" width="250" height="300" class="fade chg_fade" style="background-image:url(2_b0d5f3593e.jpg);" alt="test" title="test" />

Extra hinzukommen sollen die Attribute "class" und "style". Das ganze hat den Hintergrund, dass durch die zusätzlichen Attribute ein Script greift, welches ein hover-Effekt erzeugt und das Graustufenbild weich ausblendet und das farbige somit erscheint. Das ganze hat in der "chgallery" prima mit folgend TS funktioniert:

plugin.tx_chgallery_pi1.gallery.image {  
  file.minW = 250
  file.params = -colorspace GRAY  
  params.cObject = COA
  params.cObject {
    10 = TEXT
    10.value = class="fade chg_fade"
    
    20 = COA
    20 {
      10 = TEXT
      10.wrap = style="background-image:url(
      
      20 = IMG_RESOURCE
      20.file.import.data = TSFE:lastImageInfo|origFile
      20.file.minW = 250
      20.file.params = -colorspace RGB
      
      25 = TEXT
      25.wrap = );
      
      50 = TEXT
      50.wrap = "
    }
  }
}

So, nun mein Problem:
Wie baue ich in css_style_content eine Weiche ein, das wenn unter Effekte "Graustufen" gewählt worden ist, die Ausgabe des img-Tags mit den Attributen "class" und "style" (wie oben genannt) gerendert wird?
Muss ich hier mit "if", "override" oder beidem Arbeiten?
Bin hier dankbar für jede hilfe. Ein evtl. Code-Schnippsel wäre hierzu prima. :o

just2b ·

Hallo,

dazu würd ich mir mal den TS code von css_styled_content genau anschauen und vermutlich musst du da mit dem CASE oder einem if an der richtigen Stelle ansetzen.

magst du mir sagen was du bei chgallery damit machst? mouseover auf bunt?

Georg

Unbekannter Benutzer ·

Ich setzte diesen Effekt um:
Beschreibung: http://jqueryfordesigners.com/image-cross-fade-transition/ <- hier die Überschrift "Single Image Technique"
Beispiel:http://jqueryfordesigners.com/demo/fade-method2.html

Hierzu brauche ich eine img-Tag mit einer spez. Class zum Aufruf und ein style-Attribut für das zweite Bild. Somit habe ich im FE zuerst ein Graustufenbild, das mit dem Maushover über dem Bild farbig wird.

Und das ganze wollte ich halt auch in css_style_content umsetzten. Hier habe ich auch schon im TS-Code nachgeschaut und probiert, nur bisher leider ohne Erfolg.
Danke für den Hinweise mit "CASE", hier habe ich noch nichts probiert.

Michaelh74 ·

Alternativ könntest Du auch ne eigene Extension schreiben die per XCLASS die Klasse "tslib_cObj" mit der Methode "cImage($file,$conf)" überschreibt. Dort kannst Du sehr gute den Image Tag Aufbau manipulieren.

Gruß
Michael

Unbekannter Benutzer · · Beste Antwort

So klappt es, dass wenn unter Effekt "Graustufen" (und zwar nur dieser) gewählt ist, das img-Tag-Rendering so beeinflusst wird, wie ich es möchte:

tt_content.image.20.1 {
  params.cObject = CASE
  params.cObject {
    if.value = 10
    if.equals.field  = image_effects
    default = COA
    default {
      10 = TEXT
      10.value = class="fade chg_fade"
      
      20 = COA
      20 {
        10 = TEXT
        10.wrap = style="background-image:url(
        
        20 = IMG_RESOURCE
        20.file.import.data = TSFE:lastImageInfo|origFile
        20.file.width.field = imagewidth
        20.file.params = -colorspace RGB
        
        25 = TEXT
        25.wrap = );               
        
        50 = TEXT
        50.wrap = "
      }      
    }
  }
}

Das einzige, was ich jetzt noch nicht ganz verstehe ist, wie die Breite/Höhe im FE berechnet wird, wenn unter "Position" (die Ausrichtung der Bilder und Anzahl der Spalten) und unter "Bildmaße" Einstellungen vorgenommen werden.
Die Ausgabe klappt z. B. nur korrekt, wenn unter "Breite" ein Wert eingetragen wird. Bleibt das Feld leer, so ist die Breite des Bildes über "src" nicht gleich der Breite des Bildes über "style=background..". Trage ich dann unter "Höhe" einen Wert ein, dann sind die Breiten im FE auch unterschiedlich.

Unter Text mBild mit einer Spaltenanzahl >= 2 und einer Position z. B. "im Text rechts" werden die Breiten der Bilder(src und style) auch nicht korrekt berechnet.

Kann mir hier jemand sagen, wie ich unter

tt_content.image.20.1.params.cObject.default.20.20.file.width.field = imagewidth

die Berechnung der Bildbreite im FE "reinbekomme"?
Denn anscheinend wird der Wert des Feldes "imagewidth" ja noch irgendwelchen Berechungen zugeführt, wenn diverse Bedingungen erfüllt sind - z.B. Spaltenanhahl und Position.

Danke just2b für den Tipp mit "CASE"

ruschnet ·

Hi,

bin gerade dabei zu versuchen das umzusetzen.
JS ist eingebunden, TS ebenfalls.

Sehe jetzt auch html technisch die beiden Bilder, aber das Problem ist, das beide in Graustufen sind...

Vielleicht einen Tip?

gruss und frohe Weihnachten!
jo

Unbekannter Benutzer ·

Hier...

    20 = COA
    20 {
      10 = TEXT
      10.wrap = style="background-image:url(
     
      20 = IMG_RESOURCE
      20.file.import.data = TSFE:lastImageInfo|origFile
      20.file.minW = 250
      20.file.params = -colorspace RGB
     
      25 = TEXT
      25.wrap = );
     
      50 = TEXT
      50.wrap = "
    }

wird das farbige Bild, als css backtground-image, geladen.
Hast Du das vielleicht vergessen?