Zum Inhalt springen

sys_categories von Bildern an Fluid weitergeben?

Erstellt am 7. April 2018 · 1 Antwort · letzte Antwort am 13. April 2018

Tags: Fluid, Kategorien, Frage

alsodenn ·

Hallo liebe TYPO3 Communiy.

Ich habe eine Bildergalerie. Diese wird mittels sys_category in verschiedene Albums unterteilt. Dafür wird eine eigene Repository Funktion genutzt:

class CustomFileRepository extends FileRepository
{
    public function findByCategories($catArray = array())
    {
        $itemList = [];

        if (count($catArray)) {

            $from = $this->table . ' AS sf INNER JOIN sys_file_metadata AS md ON md.file = sf.uid INNER JOIN sys_category_record_mm AS mm ON md.uid = mm.uid_foreign';
            $where = 'tablenames LIKE \'sys_file_metadata\' ';
            $where .= 'AND sf.missing = 0 ';
            $where .= 'AND (';

            $i = 1;
            foreach ($catArray as $key => $cat){
                if($i > 1){
                    $where .= 'OR ';

                }
                $where .= 'mm.uid_local = '. $cat.' ';
                $i++;
            }

            $where .= ')';

            $groupBy = 'sf.uid HAVING COUNT(sf.uid)=' . count($catArray);

            $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', $from, $where, $groupBy, 'name');

            while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {

                $itemList[] = $this->createDomainObject($row);
            }
            $GLOBALS['TYPO3_DB']->sql_free_result($res);

        }
        return $itemList;
    }
}

Das funktioniert soweit.
Nun möchte ich zusätzlich Icons auf dem Bild darstellen anhand von diversen Kategorien. Es wird zum Beispiel eine "Favoriten"-Kategorie geben. Wenn so eine Kategorie auf dem Bild gesetzt ist, dann soll ein Herzsymbol auf dem Bild erscheinen. Dafür muss ich aber im Fluid wissen, welche Kategorien auf dem Bild gesetzt sind. Momentan weiss ich das nicht oder ich sehe es im Debug nicht ;-):

Kann mir jemand helfen wie ich diese "findByCategories" Funktion anpassen kann damit ich im Fluid auch alle dazugehörigen Kategorien pro Bild auslesen kann?

Bin dankbar über jede Hilfe oder Hinweisen :-).

pstranghoener ·

Hey alsodenn,
wenn die Kategorien im Controller schon mit ausgelesen werden, dann sollten sie dementsprechend auch verfügbar sein. Über die listAction kannst du die Werte übergeben. Mit <f:debug>{_all}</f:debug> kannst du dann alle verfügbaren Objekte einsehen.

Grüße
Philipp