Hallo da draussen,

vielleicht kann mir hier ja jemand weiterhelfen. Ich versuche über eine userfunc dem Body die zugewiesenen 
Kategorien (zumindest die Kategorien die Unterkategorien einer bestimmten Kategorie sind) als Klasse 
übergeben. Allerdings nicht alle Kategorien, sondern die hinterlegte Kategorie nur dann, wenn es nur eine 
Kategorie gibt, sollte "neutral" ausgegeben werden. Um es deutlicher zu formulieren möchte ich 
folgendes erreichen: Es gibt eine Kategorie "Schulzweige" unter dieser Kategorie sind vier weitere 
Kategorien eingeordnet. Sollte die Seite genau eine oder gar keine dieser vier Kategorien zugewiesen bekommen 
haben soll der Body die Klasse "neutral" bekommen. So weit bin ich aber noch gar nicht, hierbei 
benötige ich später noch Hilfe, daher erwähne ich es schon einmal.

Mein aktuelles Problem:

Ich habe anhand diverser Dokumentationen und Tutorials versucht die userfunc 
vie Taposcript aufzurufen. Nun scheint dies nicht zu funktionieren. selbst ein 
einfaches `die('test')` innerhalb der aufgerufenen funktion wird nicht 
ausgeführt. Daher vermute ich dass der Aufruf nicht funktioniert.

mein Code:


Typoscript:
```
bodyTag >
bodyTagCObject = USER
bodyTagCObject {
        userFunc = Finndrop\FdsCommon\Util\BodyTagHelper->buildBodyTag
        fallbackClass = 'neutral'
}
```

BodyTagHelper.php:
```
<?php
namespace Finndrop\FdsCommon\Util;

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\Category\Collection\CategoryCollection;

class BodyTagHelper {
   /**
    * @var \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
    */
   public $cObj;

   /**
    * Generate body tag with categories as classes
    *
    * @param $conf array Configuration parameters
    * @return string
    */
   public function buildBodyTag($conf) {

       $query = $GLOBALS['TYPO3_DB']->SELECTquery(
           '*',
           'sys_category',
           'uid IN (' . intval($GLOBALS['TSFE']->id) . ')'
       );

       $bodyClass = '';
       $rows = $this->selectThem($query);

       if (count($rows) == 1) {
           foreach ($rows as $key => $row) {
               $bodyClass .= $row . ' ';
           }
       } else {
           $bodyClass = $conf['default'];
       }

       return '<body class="' . $bodyClass . '" id="page-' . $GLOBALS['TSFE']->id . 
'">'
   }

   /**
    * Select the pages categories
    *
    * @param $query string SQL query
    * @return array Array with pages categories
    */
   protected function selectThem($query) {
       $res = $GLOBALS['TYPO3_DB']->sql_query($query);
       $output = array();
       while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
           $output[] = $row['header'];
       }
       return $output;
   }
}
```

Die Datei BodyTagHelper.php liegt in einer Extension in `Classes/Util`

Ich wäre wahnsinnig Happy wenn hier jemand weiterhelfen könnte.

Danke schonmal und liebe Grüße
Manuel Bachl
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an