Hallo Gruppe,

also die Konfiguration für die Grundfunktionalität ist ja wirklich recht einfach. Hier das Vorgehen mithilfe des Extension Builder:

1. Zu kategorisierendes Model erzeugen
2. Eine 1:n Relation "categories" hinzufügen mit "Relation to external class" = \TYPO3\CMS\Extbase\Domain\Model\Category 3. In der ext_tables.php via \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable() das "categories" Feld des Models als "kategorisierbar" konfigurieren (Im Prinzip muss das Feld "categories" vorher gar nicht angelegt werden (TCA, ext_tables.sql), denn wenn nicht vorhanden, erledigt die Methode makeCategorizable() das alles selbst) 4. Das TCA des Models anpassen und dort die vom Extension Builder erstellte "categories" Konfiguration löschen (da der Extension Builder 1:n als IRRE konfiguriert und damit die von makeCategorizable() erzeugte Ausgabe in den FE Forms überschieben wird). 5. Und schon kann aus dem Model-Objekt auf die zugewiesenen Category-Objekte zugreifen

Ohne Extension Builder muss man im Prinzip nur darauf achten, dass das Model die zu kategorisierende Property "categories" besitzt (optional in ext_tables.sql als int(11)...), das Feld in der ext_tables.php "kategorisierbar" gemacht wird (makeCategorizable(), s.o.) und die Getter und Setter richtig definiert werden:

/**
* Kategorien
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category>
*/
protected $categories;

/**
* Adds a Category
*
* @param \TYPO3\CMS\Extbase\Domain\Model\Category $category
* @return void
*/
public function addCategory(\TYPO3\CMS\Extbase\Domain\Model\Category $category) {
        $this->categories->attach($category);
}

/**
* Removes a Category
*
* @param \TYPO3\CMS\Extbase\Domain\Model\Category $categoryToRemove The Category to be removed
* @return void
*/
public function removeCategory(\TYPO3\CMS\Extbase\Domain\Model\Category $categoryToRemove) {
        $this->categories->detach($categoryToRemove);
}

/**
* Returns the categories
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category> $categories
*/
public function getCategories() {
        return $this->categories;
}

/**
* Sets the categories
*
* @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\Category> $categories
* @return void
*/
public function setCategories(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $categories) {
        $this->categories = $categories;
}

Vielleicht hilft obiges ja dem ein oder anderen... Falls logische Fehler freue ich mich über Feedback. Vielleicht kann man ja die Wiki-Seite ergänzen?

Schön, dass die sys_categories Einzug in den TYPO3 Core erhalten haben! Stehe zwar selbst noch am Anfang damit, aber man darf ja auch mal "Danke sagen" ;)

Grüße, Jan


_______________________________________________
TYPO3-german mailing list
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an