Hallo Dieter, 

ich will mich in die Handhabung der sys_categorys besser einarbeiten. Es gibt 
hier ja einen schönen API-Eintrag: 
https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Categories/Index.html
und speziell den Abschnitt über die category collections meine ich: 
https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Categories/Index.html#category-collections

Der obere Bereich von dem Beispiel: 
$collection = \TYPO3\CMS\Frontend\Category\Collection\CategoryCollection::load(
 $aCategory,
 TRUE,
 $table,
 $relationField
);
wenn man für $aCategory eine Kategorie-ID einsetzt und für $table sowie 
$relationField seine Tabelle + das Referenzfeld für die Kategorien, dann werden 
alle Datensätze mit der Kategorie als Objekt zurückgeliefert. (Ich spreche von 
einem Repository in Extbase). Ich habe mir auch die Klasse schon angesehen, 
aber ich werde nicht wirklich schlau daraus, wie man hier mehrere Kategorien 
ansprechen kann … und vor allem sicherstellen, dass sie sortiert sind und kein 
Datensatz doppelt. irgendwie muss es gehen, weil diese API-Klasse 
offensichtlich Basis der Typoscript-Ausgabe ist: 
https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Records/Index.html#cobj-records-properties-categories.
 
Die nimmt mehrere Kategorien … 
Ich schätze, ich werde mir diese Typoscript-Funktion im PHP anschauen, dann 
werde ich es schon begreifen. 

Der Vorteil: man könnte die Klasse auch ausserhalb von Extbase verwenden, z. B. 
in einer Userfunc.  

Gruß
Peter



> Am 14.07.2016 um 22:00 schrieb Dr. Dieter Porth <ty...@mobger.de>:
> 
> Hallo Peter,
> 
> Einen System-Record "category-collection" wie bei den Files gibt es nicht.
> 
> Was möchtest du erreichen?
> 
> Was ist denn eine Categorie-Collection? ist das eine Kategorie, die anderen 
> Kategorien übergeordnet ist?  dann sollte dein query, die UID der 
> übergeordneten Kategorie in dem Feld Parent wiederfinden?  Du könntest also 
> ein entsprechende Query schreiben.
> 
> 
> Mit besten Grüßen
> 
>  Dieter
> 
> Am 13.07.2016 um 19:45 schrieb Peter Linzenkirchner:
> 
>> OK, ich habe es jetzt so gemacht, ohne die CategoryCollection, da komme ich 
>> nicht weiter:
>> 
>> public function findByCategories($categories='') {
>>    $constraint = array();
>>    $query = $this->createQuery();
>>    if (!is_array($categories)) {
>>        $categories = GeneralUtility::intExplode(',', $categories, true);
>>    }
>>    foreach ($categories as $category) {
>>        $categoryConstraints[] = $query->contains('categories', $category);
>>    }
>>    $constraint[] = $query->logicalOr($categoryConstraints);
>>    if (!empty($constraint)) {
>>        $query->matching(
>>            $query->logicalAnd($constraint)
>>        );
>>    }
>>    $result = $query->execute();
>>    return $result;
>> }
>> 
>> habe ich mir aus der news-Extension abgekuckt - funktioniert erst mal wie 
>> gewünscht. Oder hat jemand eine elegantere Lösung?
>> 
>> Peter
>> 
>> --
>> Xing: http://www.xing.com/profile/Peter_Linzenkirchner
>> Web: http://www.typo3-lisardo.de
>> Facebook: http://tinyurl.com/lisardo-multimedia
>> 
>> _______________________________________________
>> 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

--
Xing: http://www.xing.com/profile/Peter_Linzenkirchner
Web: http://www.typo3-lisardo.de
Facebook: http://tinyurl.com/lisardo-multimedia

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

Antwort per Email an