Hallo, geschätzte HelferInnen,

Meine Ext "Courses" fügt der Tabelle fe_users drei Felder hinzu namens "bureau_short, bureau_abbr, stationary". Während die ersten 2 einfach Inputfelder sind, ist "stationary" eine m:m-Relation auf die fe_users-Tabelle selbst. Der User hat hier also die Möglichkeit, eine Relation zu einem anderen User (nämglich zu einem "Büro") festzulegen. (ext-tables.php-Auszug unten.) Das funktioniert soweit.

Im Fluid-Template lasse ich via f:debug alles ausgeben, was der Datensatz so findet. Beim verschachtelten Array "stationary" allerdings wird folgender der Vermerk ausgegeben:

stationary => TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (1 items) [...] => TYPO3\CMS\Extbase\Domain\Model\FrontendUser prototype persistent entity see above (uid=2, pid=30)


1. Frage: Was bedeutet das?

Es gibt keinen Datensatz "darüber" (davor, auch nicht danach) mit der angegebenen uid/pid. Zwar kann in diesem verschachtelten Array auf einige keys zugegriffen werden, aber nicht auf alle - im Konkreten müsste man auf das Feld "bureauAbbr" auslesen.

2. Frage: Kann es sein, dass die vom meiner Ext aus hinzugefügen Felder in der oben beschriebenen Konstellation nicht mehr erkannt werden, wenn sie innerhalb einer fe-users:fe-users-Abfrage passieren?


Könnte mir vorstellen, dass das ganze etwas sehr abstrakt ist, aber vielleicht versteht mich doch jemand...

Danke jedenfalls fürs Lesen!
Grüße und einen schönen Tag, Robert

---------

Hier die hinzugefügte Tabelle, wie sie in der ext_tables definiert wird:

$tmp_courses_columns = array(
 'stationary' => array(
  'exclude' => 0,
  'label' => 'Station',
  'config' => array(
   'type' => 'select',
   'foreign_table' => 'fe_users',
   'foreign_table_where' => 'AND fe_users.usergroup=1',
   'MM' => 'tx_courses_course_frontenduser_speaker_mm',
    'size' => 2,
    'minitems' => 0,
    'maxitems' => 1,
    'multiple' => 0,
   ),
  ),
 'bureau_short' => array(
  'exclude' => 0,
  'label' => 'Kurzer Büroname',
  'config' => array(
   'type' => 'input',
   'size' => 20,
   'eval' => 'trim'
  ),
 ),
 'bureau_abbr' => array(
  'exclude' => 0,
  'label' => 'Kürzel',
  'config' => array(
   'type' => 'input',
   'size' => 4,
   'eval' => 'trim'
  ),
 ),
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('fe_users',$tmp_courses_columns);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCATypes('fe_users','stationary', '', 'after:name');

$TCA['fe_users']['ctrl']['label'] = 'name';
$TCA['fe_users']['ctrl']['label_alt'] = 'last_name, first_name';
$TCA['fe_users']['ctrl']['label_alt_force'] = TRUE;

$TCA['fe_users']['columns']['first_name']['config']['size'] = 10;
$TCA['fe_users']['columns']['middle_name']['config']['size'] = 4;
$TCA['fe_users']['columns']['last_name']['config']['size'] = 10;
$TCA['fe_users']['columns']['zip']['config']['size'] = 5;
$TCA['fe_users']['columns']['city']['config']['size'] = 10;
$TCA['fe_users']['columns']['country']['config']['size'] = 10;
$TCA['fe_users']['columns']['telephone']['config']['size'] = 10;
$TCA['fe_users']['columns']['fax']['config']['size'] = 10;
$TCA['fe_users']['columns']['email']['config']['size'] = 12;

$TCA['fe_users']['palettes']['2']['showitem'] = 'bureau_short,bureau_abbr,--linebreak--,first_name,middle_name,last_name';

---------------

Das FLUID Tempalte - bitte die "stationary"-Schleife beachten:

<f:section name="main">
<f:debug>{courses}</f:debug>

<div class="tx_courses">
 <f:for each="{courses}" as="course">
  <div class="tx_courses_title">
<f:if condition="course.title">{course.title} – </f:if>{course.date -> f:format.date()}
  </div>
  <div class="tx_courses_location">
  <f:for each="{course.location}" as="ort">{ort.name}</f:for>
<f:if condition="course.timestart">{course.timestart}<f:if condition="{course.timeend}">–{course.timeend}</f:if> Uhr</f:if>
  </div>
  <f:for each="{course.speaker}" as="referee" key="last_name">
   <div class="tx_courses_referee">
    <f:if condition="referee.title">{referee.title} </f:if>
    {referee.firstName} <strong>{referee.lastName}</strong>
    <f:if condition="{referee.middle_name}">{referee.middleName}</f:if>
    <f:for each="{referee.stationary}" as="stat">
     ({stat.name}) // HIER SOLLTE stat.bureauAbbr AUSGELESEN WERDEN
    </f:for>
   </div>
  </f:for>

  <div class="tx_courses_targetGroups">
<f:for each="{course.targetGroups}" as="targetGroup" key="name" iteration="i">
    <f:if condition="{i.isLast}">
     <f:then>{targetGroup.name}</f:then>
     <f:else>{targetGroup.name}, </f:else>
    </f:if>
   </f:for>
  </div>

  <div class="tx_courses_scope">
   <f:for each="{course.scope}" as="sc" iteration="i">
    <f:if condition="{i.isLast}">
     <f:then>{sc.abbreviation}</f:then>
     <f:else>{sc.abbreviation} / </f:else>
    </f:if>
   </f:for>
  </div>

  <hr />

 </f:for>

</div>

</f:section>
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an