Zum Inhalt springen

extbase flexform wert eines feldes in einem anderen verwenden

Erstellt am 13. Juni 2014 · 3 Antworten · letzte Antwort am 15. Juni 2014

Tags: FlexForms, Frage

eh1988 ·

Hallo alle miteinander,

hab ein kleines Problem viell. kann mir da jemand einen Tipp geben.
Situation ist folgende:

In meiner Extension sollen Contentelemente (Text, Bild-Text usw) über einen Viewhelper ausgegeben werden.
Der Viewhelper ist so weit erledigt. Jedoch braucht er noch die ID's der Contentelemente, damit er weiß was er ausgeben soll.
Diese soll man im Flexform des Plugins auswählen können.

Dazu hab ich mir mal diesen Schnippsel ausgesucht:

<config>
  <type>select</type>
  <items type="array">
    <numIndex index="0" type="array">
      <numIndex index="0"></numIndex>
      <numIndex index="1"></numIndex>
    </numIndex>
  </items>
  <foreign_table>tt_content</foreign_table>
  <foreign_table_where>
     AND tt_content.pid = 22
  </foreign_table_where>
</config>

Soweit so gut. Das Problem ist jetzt nur die PID der Seite von der die Contentdatensätze zur Auswahl gestellt werden. Nun habe ich meiner Meinung nach zwei Möglichkeiten.

1. Ich hole mir die PID der Storage-Page aus dem Reiter "Behavior".
Die Frage hierzu: wie komme ich im Flexform an diese ran?

2. Ich benutze den Schnippsel hier um eine Seiten ID auszuwählen:

<config>
  <type>group</type>
  <internal_type>db</internal_type>
  <allowed>pages</allowed>
  <size>1</size>
  <maxitems>1</maxitems>
  <minitems>0</minitems>
  <show_thumbs>1</show_thumbs>
</config>

Die Frage hierzu: Wie bekomme ich die PID dann in das select für die Datenbankabfrage der Datensätze?

Hoffe das war verständlich.
Wär nett, wenn mir jemand zu einer der beiden Möglichkeiten einen Tipp geben könnte.
Bin auch für andere Vorschläge offen, falls es einfacheres geben sollte.

Gruß
Eduard

aemka ·

Das Problem ist jetzt nur die PID der Seite von der die Contentdatensätze zur Auswahl gestellt werden.

Du verschweigst leider die Art des Problems. Was willst du genau erreichen?

eh1988 ·

Hallo aemka,

hm...dachte das wär verständlich.
Ums einfacher zu machen hab ich mich schon mal für eine meiner zwei Ideen entschieden.
Ich möchte einfach nur die PID die im Contentelemt unter dem Reiter "behavior" als storage page eingetragen ist, in die Abfrage des <foreign_table></foreign_table> bringen.

Ich dachte da an sowas:

    <config>
      <type>select</type>
      <items type="array">
        <numIndex index="0" type="array">
          <numIndex index="0"></numIndex>
          <numIndex index="1"></numIndex>
        </numIndex>
      </items>
      <foreign_table>tt_content</foreign_table>
      <foreign_table_where>
         AND tt_content.pid = tt_content.pages
      </foreign_table_where>
    </config>

funktioniert aber nicht.

Gruß
Eduard

eh1988 ·

Hallo noch einmal.
Hat sich erledigt. Ging einfacher:

<settings.theItems>
            <TCEforms>
              <label>Datensätze auswählen</label>
                <config>
					<type>group</type>
				  <internal_type>db</internal_type>
				  <allowed>tt_content</allowed>
				  <size>20</size>
				  <maxitems>100</maxitems>
				  <minitems>1</minitems>
				  <show_thumbs>1</show_thumbs>
				</config> 
            </TCEforms>
</settings.theItems>

So kann man die Seiten browsen, und dann die tt_content Datensätze auswählen die darauf sind.
Damit hat sich das mit der Storage Pid und so erledigt.
Trotzdem Danke

Gruß
Eduard