Hallo Robert ist es ein Fehler des mappings in der setup.txt? Lass da mal den Record-Type einfach weg. Dann nimmt er normale fe_user vom Standardtyp.
Gruss Renzo ________________________________________________________________________ Renzo Bauen conPassione gmbh T +41 33 345 00 92 M +41 79 330 10 11 http://www.conpassione.ch TYPO3 Bronce Associate Am Freitag, den 12.07.2013, 12:18 +0200 schrieb Robert Wildling: > Hi, > > Ich stehe vor einem mir unverständlichen Problem: > > Eine kleine Extensions soll Termine sammeln, die in zwei von 6 Feldern > auf die Usergruppenmitglieder (einmal "Vortragende", einmal > "Zielgruppe") zugreifen soll, und zwar mit Mehrfachauswahl: > > 1. Feld: Termin (Datumsfeld) > 2. Startzeit (HH:MM) > 3. Endzeit (HH:MM) > 4. Themenbereich (Selectliste aus der Tabelle "Themenbereiche") > 5. Feld: Vortragende(r) (Selectlist aus FE-User der Gruppe 3) > 6. Feld: Zielgruppe(n) (Selectlist aus FE-User der Gruppe 1) > > Dass im TCA die Mitglieder der Gruppe 3 bzw 1 angezeigt werden, ist > derzeit hardgecoded mittels: > [...] > 'vortragsperson' => array( > 'exclude' => 0, > 'label' => > 'LLL:EXT:lsbtermine/Resources/Private/Language/locallang_db.xlf:tx_lsbtermine_domain_model_termin.vortragsperson', > 'config' => array( > 'type' => 'select', > 'foreign_table' => 'fe_users', > 'foreign_table_where' => 'AND fe_users.usergroup=3', > 'size' => 3, > 'autoMaxSize' => 10, > 'maxitems' => 9999, > 'multiple' => 0, > ), > ), > ) > [...] > ) > > Im TypoScript ist auch folgendes ergänzt: > plugin.tx_lsbtermine { > [...] > persistence { > storagePid = ... > classes { > Tx_Lsbtermine_Domain_Model_Vortragsperson { > mapping { > tableName = fe_users > recordType = Tx_Extbase_Domain_Model_FrontendUser > } > } > } > } > [...] > } > > Die Verknüpfung zur FE-User-Tabelle wurde im ExtBuilder als m:n-Relation > angelegt mit \TYPO3\CMS\Extbase\Domain\Model\FrontendUser unter "Extend > existing Model Class". > > Nachdem ich im FE die Daten als Terminliste abfrage, steht diese hierim > TerminController, wobei der SourceFolder in einer FlexForm den SysFolder > speichert, wo alle Termine angelegt wurden: > > /** > * @package lsbtermine > * @license http://www.gnu.org/licenses/gpl.html GNU General Public > License, version 3 or later > */ > class TerminController extends > \TYPO3\CMS\Extbase\Mvc\Controller\ActionController { > /** > * terminRepository > * > * @var \rowild\Lsbtermine\Domain\Repository\TerminRepository > * @inject > */ > protected $terminRepository; > > /** > * action list > * > * @return void > */ > public function listAction() { > // check flexform (just a test) > if (!isset($this->settings['sourceFolderPid'])) { > $this->view->assign('sourceFolderPid', "The > sourceFolderPid must be > set in TypoScript or Flexform"); > return; > } else { > $sourceFolderPid = > intval($this->settings['sourceFolderPid']); > $this->view->assign('sourceFolderPid', $sourceFolderPid > ); > } > > // output the data > $termine = $this->terminRepository->findAll(); > $this->view->assign('termine', $termine); > } > } > > Wenn ich nun im Fluid Template ein <f:debug>{termine}</f:debug> > eintrage, werden auch alle (derzeit 4) Einträge erkannt. Stellvertretend > für einen Termin wird folgendes ausgegeben: > > TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (4 items) > 0 => rowild\Lsbtermine\Domain\Model\Terminprototypepersistent entity > (uid=1, pid=52) > date => DateTimeprototypeobject (2013-09-10T00:00:00+02:00, > 1378764000) > anmerkung => '' (0 chars) > zielgruppe => > TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (empty) > vortragsperson => > TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (empty) > themenbereiche => > TYPO3\CMS\Extbase\Persistence\ObjectStorageprototypeobject (2 items) > 000000000c8d22020000000038fe4cfd => > rowild\Lsbtermine\Domain\Model\Themenbereichprototypepersistent entity > (uid=4, pid=52) > 000000000c8d221d0000000038fe4cfd => > rowild\Lsbtermine\Domain\Model\Themenbereichprototypepersistent entity > (uid=3, pid=52) > uid => 1 (integer) > _localizedUid => 1 (integer)modified > _languageUid => 0 (integer)modified > pid => 52 (integer) > > > "zielgruppe" und "vortragsperson" ist EMPTY, während Themenbereich die > jeweils zugeordneten Einträge findet. > > > > WICHTIGSTE FRAGE: > Was muss ich bei den FE-Usern in welchen Files machen, damit auch da > eine Ergebnisanzahl gefunden wird? (Und eventuell auch, wie ich diese > dann im fluid template anzeigen kann...) > > Muss ich im TerminController noch ein weiteres Repository anlegen? Oder > muss im VortragspersonenRepository eine andere Abfrage als findAll() > definiert werden? Falls letzteres, wie kann ich diese dann com > TerminController aus abrufen? > > > > WEITERES: > Was ich wirklich gar nicht verstehe ist, dass der Ext-Builder im > ext_tables.php file so etwas anlegt: > > t3lib_extMgm::addTCAcolumns('fe_users',$tmp_lsbtermine_columns); > > $TCA['fe_users']['columns'][$TCA['fe_users']['ctrl']['type']]['config']['items'][] > > = > array('LLL:EXT:lsbtermine/Resources/Private/Language/locallang_db.xlf:fe_users.tx_extbase_type.Tx_Lsbtermine_Vortragsperson','Tx_Lsbtermine_Vortragsperson'); > > $TCA['fe_users']['types']['Tx_Lsbtermine_Vortragsperson']['showitem'] = > $TCA['fe_users']['types']['1']['showitem']; > $TCA['fe_users']['types']['Tx_Lsbtermine_Vortragsperson']['showitem'] .= > ',--div--;LLL:EXT:lsbtermine/Resources/Private/Language/locallang_db.xlf:tx_lsbtermine_domain_model_vortragsperson,'; > $TCA['fe_users']['types']['Tx_Lsbtermine_Vortragsperson']['showitem'] .= ''; > > ...und dabei einen neuen Objekttyp für FE-User definiert, der im BE beim > Anlegen neues FE-User auch auswählbar ist, nur mit dem Effekt, dass das > Eingabeformular verschwindet, wenn nicht der reguläre Typ > "Tx_Extbase_Domain_Model_FrontendUser" gesetzt wird. > > Wozu dieser neue Typ? Wie setzt man ihn ein? > > > FAZIT: > Mir fehlt ganz offensichtlich ein grundlegendes Verständnis zum Thema > "Objekttyp", und das, obwohl ich S. Kurfürsts Buch und vieles anderes > gelesen habe. Allerdings muss man wohl auch sagen, dass die > Dokumentation zu Extbase 6 mehr als dürftig ist und vieles von früher > einfach veraltert ist (debugging zB). Also leicht wird es einem ja auch > nicht gerade gemacht... deswegen hoffe ich, dass ihr mir helfen könnt! > > Hab mir Mühe gegeben, so ausführlich wie möglich zu sein! > > Danke! > Beste Grüße, Robert > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german