[TYPO3-german] sys_category
Jan Kornblum
jan.kornblum at gmx.de
Tue Oct 15 23:21:50 CEST 2013
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
More information about the TYPO3-german
mailing list