Zum Inhalt springen

Link problem - Seiteninhaltsbeschreibung

Erstellt am 25. März 2009 · 6 Antworten · letzte Antwort am 25. März 2009

Tags: Inhaltselemente, Links, Frage

diso ·

Hallo zusammen,

wenn ich folgendes in meinem root-Template oder auch in den Ext-Templates für Unterrubriken im TypoScript stehen habe, funktionieren meine Links nicht mehr.

tt_content = CASE
tt_content {
  key.field = header_layout
  0 = COA
  0 {
    10 = TEXT
    10.field = header
    10.wrap = <h1>|<br />
    20 = TEXT
    20.field = bodytext
    20.wrap = <span>|</span></h1>
  }
}

sobald ich das entferne funktionieren auch die Links.
Ich brauche aber diese Beschreibung der einzelnen Elemente und wie diese gewrappt werden sollen, da ich sonst nicht die Vorgaben des Layouters umsetzen kann.

Kann mir bitte jemand sagen warum die Links nicht funktionieren wenn ich diesen Teil nutze und wie ich dennoch Links setzen kann und gleichzeitig die Elemente so zu wrappen wie oben beschrieben?

Vielen Dank für Eure Mühe

diso ·

also ich habe jetzt mal ein wenig rumprobiert

page = PAGE
page {
  config.doctype = xhtml_strict
  bodyTag = <body>
  stylesheet = fileadmin/template/style-default.css
  meta.AUTHOR = xxx
  10 = TEMPLATE
  10.template = FILE
  10.template.file = fileadmin/template/temp-default.htm
  10.workOnSubpart = DOKUMENT
  10.marks {
    language = TEXT
    language {
      wrap = <ul><li class="aktiv"><a href="#">DEUTSCH</a></li><li><a href="#">FRAN&Ccedil;AIS</a></li></ul>
    }
    mainnav = HMENU
    mainnav {
      special = directory
      special.value = 2,12
      1 = TMENU
      1.noBlur = 1
      1.expAll = 0
      1.wrap = <ul>|</ul>
      1.NO.wrapItemAndSub = <li>|</li>
      1.ACT = 1
      1.ACT.wrapItemAndSub = <li class="aktiv">|</li>
    }
    news = CONTENT
    news {
      table = tt_content
      select.orderBy = sorting
      select.where = colPos = 0
      tt_content < 
      tt_content = CASE
      tt_content {
        key.field = header_layout
        0 = COA
        0 {
          10 = TEXT
          10.field = header
          10.wrap = <h1>|<br />
          20 = TEXT
          20.field = bodytext
          20.wrap = <span>|</span></h1>
        }
      }
    }
  }
}

und zwar habe ich die beschreibung in das page-object mit reingenommen.
die Links funktionieren dann. meine Überschrift wird auch so angezeigt wie ich es mittels CSS beschrieben habe.Nur das Span-Element wird nicht generiert stattdessen erhalte ich folgendes MarkUp

<div class="csc-header csc-header-n1">
  <h1 class="csc-firstHeader">headline</h1>
</div>
<p class="bodytext">Headline Teil 2</p>

Wo ist mein fehler?

diso ·

OK, ich habe mittlerweile gerafft wie das mit dem Object-Browser funktioniert. So kann ich mir genau das selbe gerüst aufbauen.
Nur eine Sache finde ich komisch, und kann auch keine definition dafür erkennen.

das ausgegebene Markup schaut jetzt so aus

<h1>
  Headline1
  <br/>
  <span>
    <p class="bodytext">Headline Teil2</p>
  </span>
</h1>

wo kommt der Absatz mit der Klasse 'bodytext' her?
den würde ich gerne noch löschen, der semantik wegen.

danke

speedprogs ·

Hallo disco,

die Klasse "bodytext" in Paragraphen kannst du über folgende Zeile entfernen:

lib.parseFunc_RTE.addAttributes.P.class >
diso ·

danke für deine Antwort.
leider ändert sich nichts am Markup.

alle änderungen die ich jetzt direkt im Object-Browser vorgenommen habe schreibt er mir wie folgt ins Setup Bereich meines Templates.

lib.stdheader.3.headerClass = 
lib.stdheader.3.headerClass.noTrimWrap = 
lib.parseFunc_RTE.addAttributes.P.class >
tt_content.text.10 = TEXT
tt_content.text.10.field = header
tt_content.text.10.wrap = <h1>|<br />
tt_content.text.20.wrap = 
tt_content.text.20.wrap = <span>|</span></h1>
tt_content.text = CASE
tt_content.text.key = 
tt_content.text.key.field = header_layout
tt_content.text.key >
tt_content.text.key.field = header_layout
tt_content.text.0 = COA
tt_content.text.0.10 = TEXT
tt_content.text.0.10.field = header
tt_content.text.0.10.wrap = <h1>|<br />
tt_content.text.0.20 = TEXT
tt_content.text.0.20.field = bodytext
tt_content.text.0.20.wrap = <span>|</span></h1>
tt_content.text.0.20.parseFunc = < lib.parseFunc_RTE

da ist jetzt natürilich etwas doppelt, da ich es sofort nicht gerafft hatte das ich dort auch meine CASE Abfrage einbauen kann.

ich probiere mich gerade damit aus.

//ich habe es über den object-browser lösen können.
das generierte ts schaut so aus

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P >
speedprogs ·

Hallo,

also wenn ich es richtig verstanden habe, willst du das Rendering deiner Überschriften anpassen, oder?

Das kannst du folgendermaßen umsetzen:

## Change Default Headers
lib {
    stdheader >
    stdheader = CASE
    stdheader {
        key.field = header_layout

        ## Default Header
        default = TEXT
        default.field = header
        default.wrap = <h1>|</h1>

        ## Header h1
        1 < .default
        1.wrap = <h1>|</h1>

        ## Header h2
        2 < .default
        2.wrap = <h2>|</h2>

        ## Header h3
        3 < .default
        3.wrap = <h3>|</h3>
        
        ## add more headers here ...

        ## Hidden Header
        100 < .default
        100.wrap = <span class="hidden">|</span>
    }
}

Wenn du im eigentlichen Text die Klasse "bodytext" aus den Paragraphen raus nehmen willst, dann machst du das hiermit:

## Remove "bodytext"
lib.parseFunc_RTE.addAttributes.P.class >

Wie genau alles zusammenhängt, kannst du herausfinden, indem du nicht in den Typo3 Object Browser, sondern im gleichen DropDown auf "Template Analyzer" gehst. Anschließend ein gewagter Click auf "EXT:css_styled_content/static/ " und ein Runterscrollen bis zum "Setup" und schon hast du das statische TS-Setup der Extension "CSS Styled Content" vor dir.
Hier werden alle Formatierungen der Ausgabe gemacht. Änderungen kannst du machen, indem du einfach die Werte in deinem Setup-Feld im Root-TS-Template überschreibst.

diso ·

vielen vielen dank.das hat mir sehr geholfen.

evtl tauchen später noch Fragen auf, aber ich steig so langsam in das Konzept von T3 ein.