[TYPO3-UG Dutch] wrappen van content element

Eef Wesselink eef.wesselink at home.nl
Wed May 19 17:08:02 CEST 2010


Uiteindelijk blijkt het allemaal vrij simpel te zijn, hier mijn oplossing in
de hoop dat iemand anders er misschien ook iets aan heeft:

In Page TSconfig het volgende opnemen:

RTE.default.userElements {
10 = classes
10 {
  1 = test
  1.description = test om te proberen of 't werkt
  1.mode = wrap
  1.content = <div class="test"> | </div>

In het TSconf field van de gebruiker die hierover moet kunnen beschikken
moet user elements enabled zijn:

options.RTEkeyList = user (+ alle andere die zichtbaar moeten zijn)

Het is nu een kwestie van (in de RTE) een stuk tekst selecteren waarop deze
class betrekking heeft, op "Insert custom element" klikken en dan in de
pop-up op classes: test.

Vervolgens de verandering opslaan.

Wel doet zich iets ogenschijnlijk merkwaardigs voor:

de geselecteerde tekst komt alsvolgt in de RTE te staan (in code view):

<div class="test"><p> geselecteerde tekst </p></div>

Op de website verschijnt vervolgens:

<p class="test"> geselecteerde tekst </p>

Op zich geen probleem vind ik; mijn doel is bereikt, ik kan een class
meegeven aan een heel specifiek stukje content.

De oorzaak van dit fenomeen ligt vermoed ik aan de vertaling bij de
transformatie van de RTE naar de db en vice versa.

Ik heb nog geprobeerd:
1.content = <p class="test"> | </p>
en ook:
1.content = <span class="test"> | </span>

Het probleem is dan echter dat door bovengenoemde transformaties na opslaan
alleen een kale p-tag zonder class overblijft...

Als iemand nog een 100% oplossing weet houd ik me aanbevolen, maar zelf ben
ik voorlopig content met de oplossing die ik gevonden heb

met vriendelijke groet,

Eef Wesselink
mictoss



Eef Wesselink wrote:

> Ik zat dus te suffen, je oplossing werkt prima.
> 
> Zou het echter nog mooier vinden als het binnen de RTE kon (lijkt me
> makkelijker voor redacteuren).
> 
> met vriendelijke groet,
> 
> Eef Wesselink
> mictoss
> 
> 
> Eef Wesselink wrote:
> 
>> Hallo Felippe,
>> 
>> Bedankt voor je antwoord, ik zag nu voor het eerst iets zinnigs
>> verschijnen in de TypoScript Object Browser.
>> Ik werk echter met TemplaVoila en heb dus niet de keus voor kolommen
>> en/of frames...
>> Ik heb getracht zelf jouw code aan te passen zodat het zou werken met de
>> content in de RTE, echter zonder succes.
>> 
>> @Patrick:
>> 
>> Ik bedoel de content die middels de RTE wordt aangemaakt
>> 
>> 
>> Met vriendelijke groet,
>> 
>> Eef Wesselink
>> mictoss
>> 
>> 
>> Felippe van Eekhout wrote:
>> 
>>> Hi Eef,
>>> 
>>> Volgend my kan dit alsvolgt:
>>> 
>>> # Dit in je Page TypoScript configuratie
>>> TCEFORM.tt_content.section_frame {
>>> addItems.100 = je_eigen_class_1
>>> addItems.101 = je_eigen_class_2
>>> addItems.102 = je_eigen_class_3
>>> }
>>> 
>>> 
>>> # Dit in je setup
>>> tt_content.stdWrap.innerWrap.cObject {
>>> 100 = TEXT
>>> 100.value = <div class="je_eigen_class_1">|</div>
>>> 101 = TEXT
>>> 101.value = <div class="je_eigen_class_2">|</div>
>>> 102 = TEXT
>>> 102.value = <div class="je_eigen_class_3">|</div>
>>> }
>>> 
>>> En dan kan je in je content bij  Frame (wel even Show secondary options
>>> (palettes) aanzetten anders zie je deze optie niet) de keuze maken voor
>>> je wrap om je content wilt.
>>> 
>>> Gr Felippe
>>> 
>>> 
>>> 
>>> 
>>> Op 18 mei 2010, om 13:12 heeft Eef Wesselink het volgende geschreven:
>>> 
>>>> Beste mensen,
>>>> 
>>>> Ik ben bezig met een site met TemplaVoila.
>>>> Op een van de pagina's heb ik een content element dat ik wil wrappen in
>>>> een div of in een span met een bepaalde class.
>>>> Ik wil dat doen middels de page TS.
>>>> Ik zou zeggen, moet makkelijk zat te doen zijn, maar ik kom er toch
>>>> niet uit. Ik heb bijvoorbeeld al geprobeerd:
>>>> 
>>>> "lib.parseFunc_RTE.nonTypoTagStdWrap.addAttributes.P.class = test"
>>>> 
>>>> "lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.innerStdWrap_all =
>>>> <div class="test"> | </div>"
>>>> 
>>>> en ook:
>>>> 
>>>> "tt_content.encapslines.innerStdWrap_all = <div class="test"> | </div>"
>>>> 
>>>> "tt_content.stdWrap.outerWrap = <div class="test"> | </div>"
>>>> 
>>>> alsmede:
>>>> 
>>>> "RTE.classes.mainBodyText.innerStdWrap_all = <div class="test"> |
>>>> </div>"
>>>> 
>>>> En tig variaties hierop, maar ik zie in de broncode van mijn pagina
>>>> helemaal niets veranderen en ook niet in de TypoScript Object Browser.
>>>> Heb me al helemaal suf gegoogled en tig keer de documentatie
>>>> doorgeploeterd, maar kan niets vinden (althans niet iets dat ik
>>>> begrijp...).
>>>> 
>>>> Wat doe ik verkeerd?
>>>> Of kan dit alleen in de SetUp? En kan ik het dan alleen voor die ene
>>>> pagina, of liever nog alleen voor dat ene stukje content laten werken?
>>>> (ik wil eigenlijk alleen maar in m'n root page TS SetUp hebben staan)
>>>> 
>>>> De beste oplossing lijkt me eigenlijk om aan de RTE een div of een span
>>>> met een class toe te voegen zodat de redacteur daarvoor kan kiezen,
>>>> maar dat lijkt me nogal moeilijke stof (heb net het configureren van de
>>>> RTE voor mijn gevoel enigszins onder de knie...)
>>>> Het zou toch mooi zijn als je in de RTE net als bijvoorbeeld bij
>>>> Powermail een class kon toevoegen aan een specifiek stuk content...
>>>> 
>>>> Voor het moment heb ik het maar even handmatig in de code toegevoegd in
>>>> de RTE, vwb de FrontEnd is de rendering dan uiteraard OK, maar voor een
>>>> redacteur totaal niet inzichtelijk, niet zelf toe te passen en
>>>> makkelijk "stuk" te maken.
>>>> 
>>>> BTW: uiteraard zou ik een FCE aan kunnen maken voor deze pagina, maar 1
>>>> regeltje code in de page SetUp lijkt me toch wat eleganter in dit geval
>>>> en daarnaast ook eenvoudiger voor een redacteur (minder "lastige"
>>>> keuzes).
>>>> 
>>>> 
>>>> Met vriendelijke groet,
>>>> 
>>>> Eef Wesselink
>>>> mictoss
>>>> _______________________________________________
>>>> TYPO3-UG-Dutch mailing list
>>>> TYPO3-UG-Dutch at lists.typo3.org
>>>> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-ug-dutch



More information about the TYPO3-UG-Dutch mailing list