Zum Inhalt springen

plugin css-datei in abhängigkeit der spalte zuweisen

Erstellt am 9. Januar 2011 · 8 Antworten · letzte Antwort am 15. Januar 2011

Tags: Frage

wini2 ·

hallo,

ich verwende jfmulticontent mit tabs auf einer seite in der spalte 0 und 2. die ausgabe des plugins soll für spalte 0 anders formatiert sein als für 2.

ich dachte, es lasse sich über eine condition lösen. irgendwas wie

[globalVar = GPvar:tx_jfmulticontent_pi1] && [globalVar = colPos = 0]
plugin.tx_jfmulticontent_pi1.tabWrap.wrap = <span class="test">|</span>
[global]

oder

[globalVar = GPvar:tx_jfmulticontent_pi1|colPos = 0]
plugin.tx_jfmulticontent_pi1.tabWrap.wrap = <span class="test">|</span>
[global]

leider ohne erfolg. ich bin dankbar für einen tipp.

gruß
wini

ISS ·

hallo wini
Am einfachsten geht es, wenn du in deinem HTML-Template die gewünschten Spalten als Container definierst. Dann must du im TS sagen, welcher Inhalt in welche Spalte kommt. Und zu guter letzt definierst du ganz einfach per CSS die zwei verschiedenen Container anders.

Gruss,
ISS

wini2 ·

hallo iss,

danke für die schnelle antwort. die beiden spalten liegen im html-template in verschiedenen div-containern. den span habe ich nur hingeschrieben, um anzudeuten, was ich vorhabe. da soll letztendlich ne klasse stehen, die auch im stylesheet ergänzt wird. das problem ist, dass ich nicht weiß, wie ich die ext. dazu bringen kann, eine alternative/zusätzliche klasse auszugeben, wenn das plugin in einer bestimmten spalte verwendet wird.

dein tipp, das ich per ts nur noch sagen muss, welcher inhalt in welche spalte kommt, verstehe ich leidern nicht. was meinst du damint?

gruß und dank
wini

ISS ·

Frage1

wini2 schrieb

das problem ist, dass ich nicht weiß, wie ich die ext. dazu bringen kann, eine alternative/zusätzliche klasse auszugeben, wenn das plugin in einer bestimmten spalte verwendet wird.

Frage2

wini2 schrieb

dein tipp, das ich per ts nur noch sagen muss, welcher inhalt in welche spalte kommt, verstehe ich leidern nicht. was meinst du damint?

Antwort1
Ich verstehe die Frage nicht ganz, wieso soll es einene alternative klasse ausgeben, wenn es schon verwendet wird?
Antwort2
Wenn du via Page einen Content (in deinem Fall "insert Plugin") anlegst, kannst du ja wählen ob du LEFT, NORMAL, RIGHT oder BORDER willst.
Jetzt kannst du z.B. im TS angeben

CONTENT_LEFT = CONTENT
    CONTENT_LEFT {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 0 <--Der Content aus der Spalte NORMAL
      select.languageField = sys_language_uid  
      renderObj.stdWrap.wrap=<div class="box_left">|</div>
          10 = IMAGE
          10.file.import = uploads/media/
          10.file.import.data = levelmedia:-1, slide
          10.file.import.listNum = 0
      
  }

    CONTENT_RIGHT = CONTENT
    CONTENT_RIGHT {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 2 <--Den Content aus der spalte RIGHT
      select.languageField = sys_language_uid  
      renderObj.stdWrap.wrap=<div class="box_right">|<br></div>  
  }

Ich habe HTML Template CONTENT_LEFT als div-container und CONTENT_RIGHT als div-container angegeben und via CSS formatiert.

wini2 ·

wow, die antwort kam aber zügig! danke.

zur erklärung: die redakteure legen auf der spalte 'normal' ein plugin an, das bilder anzeigt; auswahl über die tabs, die die ext anbietet. in der spalte 'rand' verwenden die redakteure ebenfalls das plugin, auch hier erfolgt die auswahl der inhaltsanzeige im fe über tabs. die formatierung der tabs funktioniert auch prächtig. allerdings sollen die tabs in der normal-spalte anders formatiert sein als in der rand-spalte. damit dies klappt, muss ich für eine der beiden spalten eine klasse setzen können. man kann bei der ext sogar via ts eine klasse angeben (s. o.) - aber die gilt logischerweise auch für beide spalten.

die db-abrage hilf hier (wenn ich es richtig verstanden habe) nicht wirklich weiter.

gruß
wini

ISS ·

ah jetzt verstehe ich...
Du musst im HTML File die zwei Spalten definieren und mit Marks ansprechen like this:

<div id="content_left">###CONTENT_LEFT###</div>
<div id="content_right">###CONTENT_RIGHT###</div>

Jetzt kannst du im CSS die beiden ID's anders aussehen lassen like this:

#content_left{
	background-image: url(../images/sonstige/bk_gradient1.png);
	margin-top: 30px;
	width: 360px;
	float:left;
}

#content_right{
	background-image: url(../images/sonstige/bk_gradient2.png);
	margin-top: 30px;
	width: 360px;
	float:right;
}

Und zum schluss wie oben beschrieben mit TS die verschiedenen Spalten(von Typo3 Backend) in den gewünschten Spalten im Frontend ausgeben.
Wenn ich dich richtig verstanden habe, ist das die ganze Zauberei schon gewesen 😉

Gruss,
ISS

wini2 ·

danke, der tipp ist prima! für das bisher geschilderte problem würde es auch klappen. was ich bisher noch nicht geschrieben habe: ich möchte die tabs (nicht deren inhalt), wie unten angedeutet rechtsbündig ausrichten. im moment klappt das noch nicht, weil ich nicht weiß, wie ich die liste/-einträge nicht formatiert kriege.

ist-aussehen:

| Tab 1 | Tab 2 |Tab 3 |____________________________________________

soll-aussehen:

____________________________________________| Tab 1 | Tab 2 |Tab 3 |

über eine condition das plugin-template auszutauschen, wenn es in der randspalte verwendet wird, schien mir einfacher.

gruß und dank

ISS ·

hallo wini

das was du machen willst ist so weit wie ich das sehe ziemlich einfach...
Du kannst in deinem HTML Template die div-container verschachteln.. also z.B.

<div id="container" >
<div id="content_left">###CONTENT_LEFT###</div>
<div id="content_right">###CONTENT_RIGHT##</div>
</div>

So sollte es möglich sein via css nun zu definieren

#container{
	float:right;
}
#content_left{
	background-image: url(../images/sonstige/bk_gradient1.png);
	margin-top: 30px;
	width: 360px;
	float:left;
}
 
#content_right{
	background-image: url(../images/sonstige/bk_gradient2.png);
	margin-top: 30px;
	width: 360px;
	float:left;
}

Gruss
ISS

wini2 ·

danke für den vorschlag. hat leider nicht das gewünschte ergebnis gebracht. ich werde doch beide tabnabigationen linksbündig lassen.

gruß
wini