Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 27.03.07, 15:45
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

p class="bodytext" nur für bestimmte Spalten


Hallo,

ist es möglich, das Wrapping von Absätzen nicht global für alle Spalten, sondern nur für eine bestimmte Spalte zu ändern?

Hintergrund:
Auf einer Webseite steht in einer Spalte immer ein Inhalt eines bestimmten Typs. Jede Zeile wird dabei mit
HTML-Code:
<p class="bodytext>|</p>
gewrapt.

Nun befindet sich ein Shorthand der Extension CustomTags in diesem Content-Element. Dieses Wrapt einen Teil des Textes in ein DIV. Das Ergebnis sieht dann etwa so aus:
HTML-Code:
<p class="bodytext">
Blahblah
<div>Laberlaber</div>
Blahblah
</p>
Und das ist natürlich nicht valide.

Das DIV lässt sich nicht durch ein anderes Element (wie SPAN oder dergleichen) ersetzen. Das ganze Konstrukt ist auch etwas komplizierter als hier dargestellt, aber das Prinzip ist das selbe.

Viele Grüße
dasNom

Geändert von DasNom (12.04.07 um 07:58 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 28.03.07, 14:30
Forum Newbie
 
Registriert seit: 28.03.07
Ort: Dresden
Beiträge: 19

Grüß GOTT dasNOM,

so einfach deine Frage auf den ersten Blick erscheint geht sie doch ziemlich tief in das Typo3 Verständnis hinein.

Die CSS Klasse ".bodytext" wird zentral am Anfang des CSS-Styled-Content Setups im Bereich "lib.parseFunc_RTE" definiert. Dort heißt es .. weiter unten

addAttributes.P.class = bodytext

Dort liegt also dein Ansatz.
Dröselt man den ganzen Pfad auf kommt man zu einer direkten Adressierung: die Wie folgt lautet.

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class = bodytext

Vorausgesetzt Du hast nichts davon überschrieben heißt das, dass eben alle nicht anderweitig ausgewiesenen Eingaben im RTE soweit sie mit einem P Tag umschlossen wurden (nonWrappedTag = P) die CSS Classe "bodytext" zugewiesen bekommen.

Weiter unten im CSS-Styled-content werden diese Einstellungen dann auf die folgenden Inhaltselemente z.b. text.20 übertragen.

Diese Inhaltselemente werden ja nun sowohl über styles.content.get sowie styles.content.getRight in deinem Setup auf die Marker geschrieben.

Wenn du also davor etwas an die ParsFunctions ändert gilt das immer für beide Spalten.

Du musst es also versuchen danach zu ändern.

Das scheint aber nicht einfach So vorgesehen zu sein, da das styles.content.get Objekt aus dem dann das styles.content.getright Objekt abgeleitet wird keine eigenen ParsFunctions mehr unterstützt. Du bis also in einer Sackgasse.

Das ist extrem Selten bei Typo3 - hier aber vielleicht mal der Fall.
Man möge mich an dieser stelle gerne verbessern.

Vielleicht gibt es aber einen Anderen Ansatz – z.B. kannst Du
mit der Extension „sb_akronymmanager“ die Inhalte eines Markers
über eine Userfunktion erneut parsen. (siehe Standart_config der Extension )

Hier kannst Du in der Extension (oder einer eigenen Variante davon)
mittels

ereg_replace(‚’<p class=“bodytext>’, ‚<div class=“bodytext“>’, $string);

Deine Tags im nachhinein beliebig ändern.

Das ist vielleicht nicht die hochperformanteste Lösung – hilft aber vielleicht weiter.


Viele Grüße aus Dresden....
__________________
Viele Grüße - Florian Wentzel
move:elevator GmbH - Abteilung Neue Medien
www.typo3me.de
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 29.03.07, 08:23
Forum Newbie
 
Registriert seit: 28.03.07
Ort: Dresden
Beiträge: 19
Ausrufezeichen

Lösung für Spaltenabhängige ParseFuctions


Grüß GOTT miteinander,

gestern auf dem Heimweg fiel mir noch ein Lösungsansatz ein - und siehe da er funktioniert.

Hintergrund:
In Jedem Contentelement ist ja die colPos = Spaltenpostition gespeichert.
Wenn ich also vor dem Rednering aber nach der Definition der Parsfunctions Einfluss auf die Inhaltselemente nehmen will, geht das über die Unterscheidung an genau diesem Merkmal.

Und so geht´s:

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
# Man erzeuge eine Kopie der anzupassenden Pars-Functions
parseFunc_RIGHT < lib.parseFunc_RTE

# Man ändere das class Attribut für den Text nach belieben
parseFunc_RIGHT.nonTypoTagStdWrap.encapsLines.addAttributes.P.class = bodytextright

# Man erstelle sich eine Kopie des Contentelementes für das man die
# Pars-Func spaltenabhängig verändern möchte
tt_content.specialtext < tt_content.text.20

# Man Lösche das Original Element
tt_content.text.20 >

# Man lege es neu und Leer an - aber diesmal vom Typ CASE (Fallunterscheidung)
tt_content.text.20 = CASE
tt_content.text.20 {

# Man Definiere als schlüsselfeld eben die colPos = In welcher Spalte befinde ich mich
key.field=colPos

# Für den default wert = 0 Also mittlere Spalte kopiere man die oben erstellte Kopie des
# originals wieder in das Element hinein
default < tt_content.specialtext

  # Für den Fall "2" Also hier die rechte Spalte kopiere man ebenfaslls die Kopie
  # wieder hinein...
2 < tt_content.specialtext

  # Und hier Weise man die die oben erstellte Variation der Pars-Func dem Objekt zu
  #  und hat zum ergebnis <p class="bodytextright">... Oder was immer  man möchte.
2.parseFunc < parseFunc_RIGHT
}

Fazit:
Zugegeben vielleicht nicht die eleganteste Methode - aber es beweist dass man mit Typo3 Niemals in der Sackgasse steckt sondern immer eine Lösung findet. Wenn man auch manchmal um die Ecke denken muss.

Viel Spaß bei Variieren - und wenn jemand eine Elegantere Lösung kennt... her damit.
__________________
Viele Grüße - Florian Wentzel
move:elevator GmbH - Abteilung Neue Medien
www.typo3me.de
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 30.03.07, 07:49
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo move-elevator,

wow, da hast Du Dich aber reingekniet

Super-kreativer Lösungsvorschlag - kompliment!

Vielen Dank und viele Grüße
das Nom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 12.04.07, 07:56
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo,

eine letzte Anmerkung habe ich zu diesem Thema noch:

Da ich ja die Extension CustomTags verwende, musste ich das TS von move-elevator ein wenig abändern.

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
temp.tt_content.text.20 < tt_content.text.20
tt_content.text.20 >

tt_content.text.20 = CASE
tt_content.text.20 {
key.field = colPos
default < temp.tt_content.text.20
default.parseFunc < tt_content.text.20.parseFunc
6 < temp.tt_content.text.20
6.parseFunc < tt_content.text.20.parseFunc
6.parseFunc.nonTypoTagStdWrap.encapsLines {
nonWrappedTag =
remapTag.DIV =
addAttributes >
}
}

Grund hierfür ist, dass CustomTags seine Tags und Shorthands in tt_content.text.20.parseFunc schreibt. Da wir aber den Element-Typ auf CASE geändert haben, funktionieren die CustomTags somit nicht mehr. Also muss man die parseFunc jeweils in die einzelnen Fälle kopieren und dann entsprechend ändern. Dann klappts

Viele Grüße
dasNom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 20.07.07, 00:26
Forum Stammgast
 
Registriert seit: 12.07.07
Beiträge: 338

Moin Moin,

ich suche die Möglichkeit an dieser Stelle dem RTE htmlarea beizubringen das in dem
HTML-Code:
<ul></ul>
noch ein
HTML-Code:
<p></p>
einzuschliessen ist. Aber ich stehe wirklich auf dem Schlauch und weiss nicht an welcher Stelle ich den innerWrap anwende.

Für sachdienliche Hinweise wäre ich SEHR dankbar.

Guts Nächtle
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
<p class="bodytext"> ... </p> Ummantelung entfernen kingpin TYPO3 4.x Rich Text Editor 2 24.07.08 14:38
<p class="bodytext"> für Subheader in LIST abschalten... mstuebner News (tt_news, mininews und Co) 0 16.03.08 11:30
in FCE wird "<p class='bodytext'>" mit ausgegeben mhapke TemplaVoila 7 18.01.07 11:51
Kein <p class="bodytext"> für jede Zeile sleeper TYPO3 4.x Fragen und Probleme 6 07.09.06 14:56
<p class="bodytext"></p> entfernen hans-martin TYPO3 3.x Fragen und Probleme 3 11.04.06 17:51


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0