Zum Inhalt springen

Unterschiedliche Bildgrösse (template selector)

Erstellt am 2. Februar 2007 · 13 Antworten · letzte Antwort am 9. Februar 2007

Tags: Bilder, Frage

mariohaehni ·

Hallo

Mittels templateSelector wähle ich innerhlab meiner Seite zwischen zwei Unterschiedlichen Designvorlagen aus. Der Unterscheid ist, dass beim ersten Template die Inhaltssplate 500px breit ist und beim zweiten Template ist sie nur noch 300px breit, dafür gibts noch eine zweite Spalte. Soweit funktioniert das auch bestens.

Wie mache ich dies aber nun mit den Bildern. Ich möchte, dass beim Inhaltselement nur Bild, das Bild die ganze Breite füllt. Also entweder 500px breit ist oder nur 300px. Ich möchte das dies automatisch funktioniert. Mittels TS kann ich ja die maximale Breite angeben. Aber wie kann ich unterschiedliche maximal Breiten angeben?

Und wi egebe ich an, dass Bilder in der Spalte "rechts" eine andere maximalbreite als in der Spalte "normal" haben?

Besten Dank und Gruss
Mario

Michaelh74 ·

Hallo Mario,

die Angabe der max. Breite könntest Du in eine Bedingung schreiben. So nach dem Motto:
wenn colPos = 2 -> Maximale Breite = 300
Analog mit Bedingung auf das Feld Layout kann man TS unterschiedlich auf die Layouts anwenden. Aber soweit ich richtig erinnere bietet sogar der Template-Selector schon an TS je nach Layout auszuwählen.

Viele Grüße
Michael

mariohaehni ·

Danke für die Antwort.

Weiss du zufällig grad, wie ich dem templateSelector TS mitgeben kann?
Hab das nicht rausgefunden.

Unbekannter Benutzer ·

Das hat nichts mit dem Templateselektor zu tun... Was er meint, ist, dass du das pro BE-Spalte einstellen kannst, und dann einfach zwei unterschiedliche Spalten je nach TEmplate nimmst.

Dazu gibts Tutorials hier:
/faq/formatierung-colpos
http://www.typo3faq.net/index.php?action=artikel&cat=10&id=108&artlang=de

Theoretisch kann ich mir auch ein TS in Abhängigkeit vom ausgewählten Template vorstellen, aber das müsste wohl erstmal testen.

Grüße

Christian

mariohaehni ·

Danke auch dir für die Antwort und die Links.

Bei mir ist das Problem, dass die Spalte «Normal» in unterschiedleichen Grössen erscheint. Je nach ausgewähltem Template. Also kann ich nicht die Bildgrösse über die Spalten regeln sondern wirklich über das gewählte Template.

skorpi ·
mariohaehni schrieb

Mittels templateSelector wähle ich innerhlab meiner Seite zwischen zwei Unterschiedlichen Designvorlagen aus. Der Unterscheid ist, dass beim ersten Template die Inhaltssplate 500px breit ist und beim zweiten Template ist sie nur noch 300px breit, dafür gibts noch eine zweite Spalte. Soweit funktioniert das auch bestens.

Wie mache ich dies aber nun mit den Bildern. Ich möchte, dass beim Inhaltselement nur Bild, das Bild die ganze Breite füllt. Also entweder 500px breit ist oder nur 300px. Ich möchte das dies automatisch funktioniert. Mittels TS kann ich ja die maximale Breite angeben. Aber wie kann ich unterschiedliche maximal Breiten angeben?

Probier einmal etwas in dieser Richtung (ich geh davon aus, dass das Seitentemplate und nicht das Inhaltstemplate des template selectors relevant ist)

tt_content.image.20.maxW.override >
tt_content.image.20.maxW = 500
tt_content.image.20.maxW {
  override = 300
  override.if.equals.data = page:tx_rlmptmplselector_main_tmpl
  override.if.value = dateiname-des-templates-mit-300px-breite
}
mariohaehni schrieb

Und wi egebe ich an, dass Bilder in der Spalte "rechts" eine andere maximalbreite als in der Spalte "normal" haben?

Das wird in den Links der Posts weiter oben erklärt.

Gruß: Irene

mariohaehni ·

Hi Skorpi

Also das hat prima geklappt mit deinem TypoScript! Danke viel mal. Jetzt stehe ich nur noch vor dem zweiten Problem. Unterschiedliche Bildgrössen in unterschiedlichen Spalten. Die Link habe ich beide durchgeschaut. Und habe es mal so versucht:

temp.right = CONTENT
temp.right{
 table = tt_content
	select {
		where = colPos = 2
                orderBy = sorting
                languageField = sys_language_uid
               }
        image {
                maxW = 190
        }
}

Aber leider wird die Bildgrösse ignoriert!

Gruss Mario

mariohaehni ·

Hi

Geht leider auch nicht! Kann es sein, dass sich das irgendwie mit den Angaben für die Normale Spalte beisst? Hier mal das TypoScript für die Bildgrösse der normalen Spalte und das der rechten Spalte.

tt_content.image.20.renderMethod = dl

tt_content.image.20.maxW.override >
tt_content.image.20.maxW = 518
tt_content.image.20.maxW {
  override = 307
  override.if.equals.data = page:tx_rlmptmplselector_main_tmpl
  override.if.value = layout_gantrisch_4col.html
} 


temp.right = CONTENT
temp.right{
 table = tt_content
	select {
		where = colPos = 2
                orderBy = sorting
                languageField = sys_language_uid   
               }
        image.20.maxW = 190
        
}
skorpi ·

Achso, pardon, ich hab nicht richtig hingeschaut. Du hast den Teil mit renderObj in der rechten Spalte vergessen. Schau dir doch bitte den ersten Link von Christian nochmal bis zu Ende an.
Die Definition der Bildgröße passiert dann innerhalb des renderObj-Bereiches, also

...renderObj.image.20.maxW = 190
mariohaehni ·
temp.right = CONTENT
temp.right{
 table = tt_content
	select {
		where = colPos = 2
                orderBy = sorting
                languageField = sys_language_uid   
               }

          renderObj.image.20.maxW = 190
    }

Auch so gehts nicht! Die Bilder bleiben alle zu gross!! Ich habe nochmals die Links durchgeschaut abe rnichts zum Thema images gefunden!! Sorry!

skorpi ·
temp.right = CONTENT
temp.right{
 table = tt_content
	select {
		where = colPos = 2
                orderBy = sorting
                languageField = sys_language_uid   
               }
  renderObj < tt_content
          renderObj.image.20.maxW = 190
    }
mariohaehni schrieb

Auch so gehts nicht! Die Bilder bleiben alle zu gross!! Ich habe nochmals die Links durchgeschaut abe rnichts zum Thema images gefunden!! Sorry!

Magst du dir vielleicht noch irgendwann einmal die Zeit nehmen, es zu verstehen, und nicht "nur" fertige Lösungen abtippen? In dem HowTo ist an sich sehr gut beschrieben, was es mit dem renderObj auf sich hat.

mariohaehni ·

Es ist nicht so, dass ich es nicht selber versucht habe. Ich habe den ganzen gestrigen nachmittag mit diesem Problem verbracht. Natürlich habe ich mir geschaut was es so mit dem renderObject auf sich hat. Und ich war auch mal bei deiner jetzigen Lösung. Leider geht es auch so nicht.

Nur darum habe ich nochmals nachgefragt.

mariohaehni ·

So, Problem gelöst. Es lag tatsächlich daran, dass sich die Angaben welche ich für die normale Spalte gemacht habe mit den Angaben für die rechte Spalte gebissen haben. Wahrscheinlich überschrieben. Hier nun mein funktionierendes TS:

temp.content = CONTENT
temp.content{
       table = tt_content
              select {
                      where = colPos = 0
                      orderBy = sorting
                      languageField = sys_language_uid   
                     }
        renderObj < tt_content
        renderObj.image.20.maxW = 190
        renderObj.image.20.renderMethod = dl
        renderObj.image.20.maxW.override >
        renderObj.image.20.maxW = 518
        renderObj.image.20.maxW {
          override = 307
          override.if.equals.data = page:tx_rlmptmplselector_main_tmpl
          override.if.value = layout_gantrisch_4col.html
            } 
          } 


temp.right = CONTENT
temp.right{
       table = tt_content
              select {
                      where = colPos = 2
                      orderBy = sorting
                      languageField = sys_language_uid   
                     }
        renderObj < tt_content
        renderObj.image.20.maxW = 190
          }         
}

Sorry nochmals für die vielen Fragen!!