Zum Inhalt springen

Media-Bild gecroppt als background-image Typo3 6.x

Erstellt am 20. März 2013 · 4 Antworten · letzte Antwort am 26. März 2013

Tags: Bilder, TYPO3 6, Frage

cardshark ·

hallo leute,
leider bin ich in typoscript nicht besonders fit, da ich nur selten dazu komme es einzusetzen.
folgenden html-code möchte ich genierieren:

<li class="[alias oder titel]" 
style="background-image:url([medienbild der jeweilgen seite])">
<a href="[typolink]"><strong>[title]</strong>[subtitle]</a>
</li>

ich hab schon sehr viele einträge angesehen - aber igendwie läuft es einfach nicht.

sazu kommt die schwierigkeit, dass das bild aus dem Meidenfeld auf 175x129px gecroppt werden soll - und das ganze in Typo 3 6.x

folgendes script funktioniert zumindest schon mal

    1{
      noBlur =1
      ACT = 1
      wrap= <ul>|</ul>      
      NO{  
        before.dataWrap = <li class="{field:title}">
        after.dataWrap = </li>
        ##in link hinein
        ATagBeforeWrap = 1
        stdWrap.dataWrap = <strong>|</strong>{field:subtitle}
        ####in link hinein ende
        ATagTitle.field = abstract // description // title
      }

alles andere hat aber leider nichts gebracht..

DANKE IM VORAUS!
LG
hannes

Norman2k ·
cardshark schrieb

... folgendes script funktioniert zumindest schon mal
alles andere hat aber leider nichts gebracht...

Was genau funktioniert jetzt schon mit diesem Script und was genau nicht?

cardshark ·

hallo Norman2k,
also das mit den gecroppten Bildern aus den Medienupload als style="background-image...) funktioniert nicht (siehe original html).
in der zwischenzeit habe ich noch herausgefunden, dass in typo3 v6 statt alias wohl nav_title benutzt werden muss.
dieser code wird bis jetzt erzeugt:

<li class="almnachrichten">
<a title="Lorem Ipsum" href="index.php?id=2">
<strong>Almnachrichten</strong>
Hier findest du Almnachrichten. Lorem Ipsum und so weiter
</a>
</li>

lg

cardshark ·

Hier mal ein TypoScript das aus verschiedenen Snippets zusammengepfuscht ist, bei dem das auslesen des Bildes aus dem Media-feld leider überhaupt nicht klappt. Natürlich habe ich auch viele andere Sachen probiert, die aber genauso wenig zum Erfolg geführt haben.

  subparts.Nav1=HMENU

  subparts.Nav1.entryLevel = 0
  subparts.Nav1{
    1 = TMENU
    1{
      NO{ 
	    before.dataWrap = <li class="{field:nav_title}"
	    before.stdWrap.cObject = COA
	    before.stdWrap.cObject.10 = TEXT
	    before.stdWrap.cObject.10.value = style="background-image: url(
	    before.stdWrap.cObject.20 = IMG_RESOURCE
	    before.stdWrap.cObject.20{
			
			#stdWrap.wrap =  style="background-image:url(|)">
			 file { 
				import =  uploads/media/
				import.data = levelmedia:-1, slide
				treatIdAsReference = 1
				import.listNum = 0
                //Bildgrösse festlegen und croppen
				width=4175c
				height=129c
			}
		}
		 before.stdWrap.cObject.30=TEXT
		 before.stdWrap.cObject.30=);">
		
        after.dataWrap = </li>
        ##in link hinein
        ATagBeforeWrap = 1
        stdWrap.dataWrap = <strong>|</strong>{field:subtitle}
        ####in link hinein ende
        ATagTitle.field = abstract // description // title
      } 
    }
  }

Vielleicht gibts hier ja eine einfache Lösung.
Wie gesagt: der HTML-Code aus dem ersten Posting soll erzeugt werden:

<li class="[alias oder titel]" 
style="background-image:url([medienbild der jeweilgen seite])">
<a href="[typolink]"><strong>[title]</strong>[subtitle]</a>
</li>

Danke.

cardshark ·

Habs nun geschafft.

subparts.Nav1=HMENU
  subparts.Nav1.entryLevel = 0
  subparts.Nav1{
    1 = TMENU
    1{
      noBlur =1
      NO{  
      before.dataWrap = <li class="{field:alias}"
    before.cObject=COA
    before.cObject {
    20 = IMG_RESOURCE
    20.file.import = uploads/media/
    20.file.import.field = media
    20.file.import.listNum = 0
    20.stdWrap.noTrimWrap = | style="background-image: url(/hube/timthumb.php?src=../|&w=175&h=129)">|
    20.stdWrap.if.isTrue.field = media
    }  
    after.dataWrap = </li>
        ATagBeforeWrap = 1
        stdWrap.dataWrap = <strong>|</strong>{field:subtitle}
        #ATagTitle.field = abstract // description // title
      }   
    }
  }

wie im code zu lesen, verwende ich das php script timthumb.php.
Zur Verwendung muss es nur auf den Server kopiert werden. Es erstellt sogar einen eigenen Bildcache. Auf der angegebenen Webiste wird die Funktionsweise auch besten erklärt.
Beste Grüße
Hannes

Ps.: Obwohl alles perfekt funktioniert bin ich für andere Lösungsvorschläge offen 😉