Zum Inhalt springen

COA Objekt und stdWrap

Erstellt am 10. Januar 2007 · 8 Antworten · letzte Antwort am 10. Januar 2007

Tags: Frage

yonthebeach ·

Hallo,

ich möchte auf meiner Homepage mit COA Content-Rendern. Meine Seite ist Mehrsprachig was auch sehr gut funktioniert. Ich möchte folgendes:

Dynamisch aus dem COA Objekt heraus DIVS mit Content generieren wobei ich das erste, die danach kommen und den letzten mit einer anderen Klasse belegen möchte. Aussehen soll das ganze ungefähr so:

<div class="first_contentheader">header</div>
<div class="first_contentbody">bodytext</div>
<div class="first_contentfooter">xxx</div>

<div class="normal_contentheader">header</div>
<div class="normal_contentbody">bodytext</div>
<div class="normal_contentfooter">xxx</div>

<div class="last_contentheader">header</div>
<div class="last_contentbody">bodytext</div>
<div class="last_contentfooter">xxx</div>

Ich weiß zwar wie ich die tt_content Tabelle Sprachabhängig auslese, weiß aber nicht wie ich einzelne Elemente wie header, bodytext etc. Sprachabhängig bekomme und diese wie oben gewünscht zusammenbringe.

Mein TS Code für tt_content sieht so aus:

      SUBCONTENT = COA
      SUBCONTENT {
        10 = CONTENT
        10 {
        table = tt_content
        select {
          where = colPos = 0
          orderBy = sorting
          languageField = sys_language_uid
          }
        }
      }

Ich denke das ich mit stdwrap arbeiten muss, aber ich habe dazu auch nach langem Suchen nichts gefunden.

gruß
yavuz

just2b ·

Hallo,

schau dir mal meine Extension rgteaser an, da ists schön abzuschauen.
Es geht sicher etwas eleganter, aber das sollte helfen

20 = CONTENT
          20 {
              table = tt_content
              select {
                  pidInList.data = register:meinRegister
                  #max = 1
              }
          
              renderObj = COA
              renderObj {
                  1 = TEXT
                  1.value = <div style ="padding:5px; margin:5px;">
                  
                  10 = TEXT
                  10.field = header
                  10.wrap = <strong>|</strong>
                  10.required = 1
                  
                  20 = TEXT   
                  20 {
                    field = bodytext
                    crop = 350 | ... | 1
                    wrap= <br />|
                    parseFunc < tt_content.text.20.parseFunc
                    stripHtml = 1
                  }
                  
                  /*
                  30 = TEXT
                  30 {
                    value = [mehr]
                    typolink.parameter.field=pid
                    typolink.parameter.dataWrap=|#{field:uid}
                    wrap = |
                  }
                  */

                  99 = TEXT
                  99.value = </div>

              }
          }

georg

yonthebeach ·

hmmm nicht ganz, aber ich habe es jetzt so gemacht:

    SUBCONTENT = COA
    SUBCONTENT {
      10 = CONTENT
      10 {
      table = tt_content
      select {
        where = colPos = 2
        orderBy = sorting
        languageField = sys_language_uid
        }
        
        renderObj < tt_content.header
        renderObj.stdWrap.wrap (
          <div class="no">|</div>
          )
        renderObj.stdWrap.required = 1

        renderObj < tt_content.bodytext
        renderObj.stdWrap.wrap (
          <div class="body">|</div><div class="footer"></div>
          )
        renderObj.stdWrap.required = 1
      }
      
      allWrap = <span class="asd">|</span>|*|&gt;|&gt;|*|&gt;|&gt;
      
    }

Das funktioniert auch fast, aber das allWrap funktioniert nicht!

gruß
yavuz

yonthebeach ·

ich habe es jetzt so gemacht mit wrap:

    SUBCONTENT = COA
    SUBCONTENT {
      10 = CONTENT
      10 {
      table = tt_content
      select {
        where = colPos = 2
        orderBy = sorting
        languageField = sys_language_uid
        }
        
        renderObj < tt_content.header
        renderObj.stdWrap.wrap (
          <div class="no">|</div>
          )

        renderObj < tt_content.bodytext
        renderObj.stdWrap.wrap (
          <div class="body">|</div><div class="footer"></div>
          )

        renderObj.stdWrap.required = 1
      }
      
    wrap = <div class="first">|</div>|*|<div class="middle">|</div>|*|<div class="last">|</div>
    }

aber er wrapped nur den gesamten inhalt einmal mit class=first mehr nicht. die middle und das last nimmt er nicht.

gruß
yavuz

yonthebeach ·

Also mittlerweile bin bei folgendem Code:

    SUBCONTENT = COA
    SUBCONTENT {
      10 = CONTENT
      10 {
      table = tt_content
      select {
        where = colPos = 2
        orderBy = sorting
        languageField = sys_language_uid
        }
      
        renderObj < tt_content
        renderObj.stdWrap.wrap (
          <div class="yavuz1">|</div>
          )
        renderObj.stdWrap.required = 1
      }
      allWrap = <div class="yavuz1">|</div>|*|<div class="yavuz222">|</div>|*|<div class="yavuzlaaaaast">|</div>
    }

Das wrap um das renderObj, also div class=yavuz1, funktioniert einwandfrei, aber das allWrap mit dem OptionSplit funktioniert nicht.

Was mache ich hier falsch??? Das mit dem 10.wrap habe ich nicht verstanden.

gruß
yavuz

steffenk ·
SUBCONTENT = COA
    SUBCONTENT {
      10 = CONTENT
      10 {
      wrap = <div class="yavuz1">|</div>|*|<div class="yavuz222">|</div>|*|<div class="yavuzlaaaaast">|</div>
      table = tt_content
      select {
        where = colPos = 2
        orderBy = sorting
        languageField = sys_language_uid
        }
      
        renderObj < tt_content
        renderObj.stdWrap.wrap (
          <div class="yavuz1">|</div>
          )
        renderObj.stdWrap.required = 1
      }
      
    }