Zum Inhalt springen

FCE - leeres Div einfügen

Erstellt am 17. August 2007 · 5 Antworten · letzte Antwort am 14. November 2007

Tags: Frage

Silkea ·

Hallo liebe Typo3-ler,

habe hier ein kleines Problem. Ich baue gerade unsere Webseiten auf Typo3 um, damit meine Kollegen da auch mal ein paar Texte reinstellen können ohne mir mit Dreamweaver den Code zu versauen. Ich habe da ein paar Floatboxen (als FCEs) hinter denen dann ein Clearer folgen soll (leeres Div mit class). Ich habe das leere Div also gemappt als "Root" und als Map "outer" angegeben. Leider wird das Div im FE nicht angezeigt, obwohl es im Page-Modul erscheint.

Kann man keine leeren Div-Elemente erzeugen bzw. einfügen?

Folgendes HTML hätte ich gerne angezeigt:
<div class="clearfix"></div>

daniz78 ·

Hi Silkea,

man kann leere Div-Elemente erzeugen, nur solltest Du einen anderen Ansatz wählen!

Statt über ein leeres FCE (was auch möglich ist), kannst Du auf die "Rahmenelemente" zugreifen.

Das kommt in dein Root-Template: (Web/Template/'Root-Seite')

### Rahmenelement neu formatieren ###
tt_content.stdWrap.innerWrap.cObject.1.value = |<div class="clearfix"></div>

Damit änderst Du die Linie "unsichtbar"

Weitere Werte sind:
5 - Linie davor
6 - Linie danach
10 - Einrücken
11 - Einrücken, 33/66 %
12 - Einrücken, 66/33 %
20 - Rahmen 1
21 - Rahmen 2

Dann kannst Du natürlich noch die Bezeichner ändern...

Folgendes kommt dazu in das TSconfig Feld Deiner 'Root-Seite':
(root-Seite auswählen/Seiteneigenschaften bearbeiten)

TCEFORM.tt_content.section_frame.altLabels.1 = leeres Div-Element

Gruß, Daniz

P.S.: In Deinem Ansatz sind mindestens 2 Fehler:
1. Bei einem FCE muss man neben dem ROOT noch mindestens 1 weiteres Element mappen, damit im Frontend überhaupt etwas angezeigt wird.
2. Wenn Du ein Element "outer" mappst, verschwindet es. Du müsstest es dann in der XML-Datastructure nachbauen.

Silkea ·

Hallo Daniz,

danke für die Antwort. Wenn ich das recht verstanden habe, wird das aber dann hinter den kompletten Content-Bereich gelegt, wenn ich es im Root-Template angebe, oder?

Ich brauche das Div aber nicht grundsätzlich, sondern nur, wenn ich solche Float-Boxen auf der Seite einfüge. Das FCE ist eine große Box mit mehreren kleinen gefloateten Boxen darin. Die Anzahl kann schwanken, an deren Ende (also bevor die große Box schließt) soll dann das clearer-div stehen. Ebenso unter der großen Box.

Gibt es eine Möglichkeit, das ganze per Typoscript in das FCE selbst reinzuschreiben?

Hier zur Illustration mal das HTML mit einer Box darin:

<div class="xsnazzy">
	<b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b>
	<div class="xboxcontent">
		<h1>BIAS Produktübersicht</h1>
		
<!-- kleine Boxen in Inhaltsbox -->
		<div class="display">
		<img src="img/peakPro.jpg" alt="Peak Pro" />
		<h3>Peak Pro 5.2</h3>

		<p>Die nächste Generation der ultimativen Lösung für Audio Editing / Processing / Mastering</p>
		
		<a href="#" class="info">Weitere Informationen</a>
		</div>
		
		<div class="clearfix"></div>
	</div>
	<b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"></b></b>
</div>
<div class="clearfix"></div>

und das XML zur Datastructure:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?>
<T3DataStructure>
	<meta type="array">
		<langDisable>1</langDisable>
	</meta>
	<ROOT type="array">
		<tx_templavoila type="array">
			<title>ROOT</title>
			<description>Container der großen Box</description>
		</tx_templavoila>
		<type>array</type>
		<el type="array">
			<field_bigbox_content type="array">
				<tx_templavoila type="array">
					<title>Inhalt der großen Box</title>
					<description>Inhalt der großen Box</description>
					<sample_data type="array">
						<numIndex index="0">Sed ante neque, porta at, congue 

vel, tristique gravida, dui. </numIndex>
					</sample_data>
					<eType>ce</eType>
					<tags>div</tags>
					<TypoScript>
	10= RECORDS
	10.source.current=1
	10.tables = tt_content
               			     </TypoScript>
					<oldStyleColumnNumber type="integer">0</oldStyleColumnNumber>
				</tx_templavoila>
				<TCEforms type="array">
					<config type="array">
						<type>group</type>
						<internal_type>db</internal_type>
						<allowed>tt_content</allowed>
						<size>5</size>
						<maxitems>200</maxitems>
						<minitems>0</minitems>
						<multiple>1</multiple>
						<show_thumbs>1</show_thumbs>
					</config>
					<label>Inhalt der großen Box</label>
				</TCEforms>
			</field_bigbox_content>
		</el>
		<section>0</section>
	</ROOT>
</T3DataStructure>

Wenn ich unter statt dem 10 = RECORDS ... folgendes eintrage:

<![CDATA[
	10= RECORDS
	10.source.current=1
	10.tables = tt_content
	20 = HTML
	20.value = <div class="clearfix"></div>
	]]>

wird das clearer-Div auch vor dem Ende des Containers eingebunden.

Bleiben zwei Probleme:
Wie bekomme ich ein zweites clearer-Div unter die große Box?
Wie bekomme ich ein clearer-Div unter die kleinen Boxen, wenn eine weitere Überschrift bzw. Text folgt. Zur Not werde ich einen Typ Box anlegen, der so ein clearer-Div angehängt bekommt (ist natürlich für die Redakteure nicht so schön).

Ich habe das Element "outer" gemappt, weil es mit "inner" nicht angezeigt wird. Anscheinend funktioniert das bei FCEs genau umgekehrt wie bei einem Page-Template.

Gruß,
Silkea

daniz78 ·

Hi Silkea!

Wenn ich das recht verstanden habe, wird das aber dann hinter den kompletten Content-Bereich gelegt, wenn ich es im Root-Template angebe, oder?

Nein hast Du nicht 😉

Im Root-Template überschreibst Du lediglich die Standardwerte von Typo3.
Jedem Seiteninhalt kannst Du einen Rahmen mitgeben (siehe Screenshot)

D.h. wenn Du Dir da einen Rahmen "clear div" anlegst, kannst Du ihn für jedes Inhalts-Element individuell auswählen.
--> Bei Dir also beim letzten Element in der Box und bei der Box selbst

Bild: daniz.de/…/screenshot_rahmen.jpg

Gruß, Daniz

P.S.: Leider funktioniert die img-Funktion im Forum nicht oder ich bin zu blöd dafür...folge also einfach dem link!

Silkea ·

Hallo Daniz,

OK, jetzt hab ich's kapiert, wie das gemeint war. Super! Vielen Dank! Auf die Idee wäre ich gar nicht gekommen.

Gruß,
Silkea