Zum Inhalt springen

ein Problem mit split und select

Erstellt am 8. August 2011 · 3 Antworten · letzte Antwort am 10. August 2011

Tags: Frage

wurzelzwerg ·

Ich habe folgendes Problem.

Ich habe in der tt_content eine neue Spalte hinzugefügt. Diese heißt tx_irgendwas_linkliste.
Es handelt sich dabei um ein Feld mit einer Datenbank-Relation.
Der Redakteur kann dort zu seinem Contentelement Beziehungen hinterlegen.
Diese Beziehungen sollen im Frontend als Link dargestellt werden.

Im Feld steht jetzt als Beispiel: 103,106,108.

Mit dem nachstehenden Skript habe ich es geschafft den Inhalts des Feldes zu zerlegen und als einzelne Links zu rendern.

20 = COA
      20 {
        wrap = <ul class="links">|</ul>
        10 = TEXT
        10 {
          field = tx_irgendwas_linkliste
          split {
            token = ,
            cObjNum = 1
            1 {
              current = 1
              typolink.ATagParams = class="internal-link"
              typolink.parameter.current = 1
              typolink.parameter.dataWrap = #c|
              typolink.wrap = <li>|</li>
              stdWrap.cObject = CONTENT
              stdWrap.cObject {
                table = tt_content
                select {
                  where.current = uid
                }
                renderObj = TEXT
                renderObj {
                  
                  #nur für Tests
                  field = uid
                  
                  # später soll das Feld header verwendet werden
                  #field = header
                  
                  wrap = <span>|</span>
                }
              }
            }
          }
        }
      }

Das Skript macht bis zu dem Punkt, wo es den Werte in current mit der uid in der tt_content vergleicht alles richtig.

Wenn ich das Skript laufen lasse werden folgende Links erzeugt:

<ul class="links">
  <li>
    <a href="#c103" class="internal-link">
      <span>103</span>
      <span>106</span>
    </a>
  </li>
  <li>
    <a href="#c106" class="internal-link">
      <span>103</span>
      <span>106</span>
    </a>
  </li>
  <li>
    <a href="#c108" class="internal-link">
      <span>103</span>
      <span>106</span>
    </a>
  </li>
</ul>

Es werden nur die ersten beiden Einträge verarbeitet und auch noch falsch.

Es soll aber so aussehen:

<ul class="links">
  <li>
    <a href="#c103" class="internal-link">
      <span>103</span>
    </a>
  </li>
  <li>
    <a href="#c106" class="internal-link">
      <span>106</span>
    </a>
  </li>
  <li>
    <a href="#c108" class="internal-link">
      <span>108</span>
    </a>
  </li>
</ul>

Ich glaube mein Fehler liegt in der Abfrage
Hier:

select {
  where.current = uid
}

Wer weiss dazu eine Lösung?
Die Abfrage in Worten so lauten:

Suche Datensätze in tt_content, wo die uid mit dem aktuellen Wert in current übereinstimmt.

hwt ·

Hi,

ich glaube auch. Dem Wortlaut nach müssten 'current' und 'uid' getauscht sein und ein Gleichheitszeichen statt des Punktes eingefügt werden:

select {
  where = uid=current
}

Grüße!

wurzelzwerg ·
hwt schrieb

Hi,

ich glaube auch. Dem Wortlaut nach müssten 'current' und 'uid' getauscht sein und ein Gleichheitszeichen statt des Punktes eingefügt werden:

select {
  where = uid=current
}

Grüße!

Wenn ich das so mache steht in den <li>'s der Titel der aktuellen Seite obwohl in der Abfrage nach der uid gefragt ist.

Das scheint auch nicht zu funktionieren. Interessant ist jedoch das Ergebnis !!!??? Obwohl ich den Wert der Abfrage mit renderObj zurückgebe wird etwas völlig anderes gerendert ... mmmhhh ????

wurzelzwerg ·
wurzelzwerg schrieb
hwt schrieb

Hi,

ich glaube auch. Dem Wortlaut nach müssten 'current' und 'uid' getauscht sein und ein Gleichheitszeichen statt des Punktes eingefügt werden:

select {
  where = uid=current
}

Grüße!

Wenn ich das so mache steht in den <li>'s der Titel der aktuellen Seite obwohl in der Abfrage nach der uid gefragt ist.

Das scheint auch nicht zu funktionieren. Interessant ist jedoch das Ergebnis !!!??? Obwohl ich den Wert der Abfrage mit renderObj zurückgebe wird etwas völlig anderes gerendert ... mmmhhh ????

Ich habe die Lösung :

select {
                pidInList.data = {page:uid}
                andWhere.current = 1
                andWhere.wrap = uid=|
              }