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
[email protected]
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german