Hi, Leute,

kennt jemand dieses Rezept? Sehr geniale Sache, die sich diese Leute da ausgedacht haben!

Ich teste es derzeit, weil ich demnächst ein kleines Lexikon realisieren soll, das ca 120 Begriffe aus dem musikethnologischen Bereich nach Ländern geordnet anbietet - also nicht groß.

Und nachdem meiner Erfahrung nach für Redakteure das Anlegen von Seiten und Inhalte das Einfachste ist, dachte ich mit, ich lege einen Menüpunkt "Lexikon" an, darunter die einzelnen Länder und die Inhalte auf diesen Seiten sind die einzelnen Lexikonartikel.

Bis daher klappt auch alles ganz wunderbar, die Buchstaben werden alphabetisch angezeigt, darunter alle Begriffe - und der Menübaum ist sowas wie ein Kategoriebaum.

Jetzt soll aber - in der alphabetische Liste - neben einem einzelnen Begriff auch das Land stehen (also der Menüpunkt) - und da scheitere ich jetzt ganz kläglich.

Mein Lösungsansatz war der, ein tempObj zu erstellen:

temp.GET_TITLE = CONTENT
temp.GET_TITLE {
  table = pages
  select {
    selectFields = uid,title
    where.dataWrap = uid={field:pid}
  }
  renderObj = COA
  renderObj {
    10 = TEXT
    10.field = title
  }
}

und diesen dann im etwas abgewandelten Script als "append" im Abschnitt, wo die <li>-Elemente erzeugt werden, einzulesen (im Script steht links so ein Pfeil: ---->):


temp.GET_LEXICON = COA
temp.GET_LEXICON {
  10 < temp.LEXICON

  20 = CONTENT
  20 {
    table = tt_content
    select {
      pidInList.data = register:allPages
      orderBy = header
      languageField = sys_language_uid
      andWhere = colPos=0 AND sectionIndex=1 AND header !=''
    }
    renderObj = COA
    renderObj {
      10 = TEXT
      10 {
        outerWrap.cObject = COA
        outerWrap.cObject {
          10 = TEXT
          10 {
            value = <ul class="letterBox">|
            if.isFalse.data = register:firstLetter
          }
          20 = TEXT
          20 {
            value = </ul><ul class="letterBox">|
            if.isTrue.data = register:firstLetter
          }
        }
        field = header
        case = upper
        crop = 1|
        if {
          value.data = register:firstLetter
          equals.field = header
          equals.case = upper
          equals.crop = 1|
          negate = 1
        }
      }

      20 = COA
      20 {
        5 = HTML
        5.value = <li class="linkBox">

        20 = TEXT
        20 {
          field = header
---->     append < temp.GET_TITLE
          #case = upper
          typolink.parameter.dataWrap = {field:pid}#{field:uid}
        }

        40 = HTML
        40.value = </li>
      }

      30 = LOAD_REGISTER
      30 {
        firstLetter.field = header
        firstLetter.case = upper
        firstLetter.crop = 1|
      }
    }
  }
  30 = TEXT
  30.value = </ul>
}



/* MENU */
temp.LEXICON = HMENU
temp.LEXICON {
  special = directory
  special.value = 8
  1 = TMENU
  1 {
    expAll = 1
    NO {
      #doNotShowLink = 1
      stdWrap.cObject = LOAD_REGISTER
      stdWrap.cObject {
        #allPages.field = uid
        allPages.dataWrap = {register:allPages},{field:uid}
      }
    }
  }
  2 < .1
  3 < .1
  4 < .1
  5 < .1
  6 < .1
  7 < .1
  8 < .1
  9 < .1
}


Leider liest mir das Skript so immer ALLE Menüpunkte aus und setzt diese Hinter dem Lexikonbegriff.

Wie schaffe ich es denn, dass nur jeweils der Page title ausgelesen wird, der gerade zum jeweiligen Lexikonbeitrag gehört?

Danke für die Hilfe im voraus!
Robert
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an