[TYPO3-UG Oesterreich] tt_news catmenu als select
Peter Loeffler
plo at sailing-online.info
Wed Sep 17 11:30:19 CEST 2008
...sondern nur eine, die eigentlich garnicht ausgewählt ist....
(man sollte mails mehrmals lesen vor dem abschicken)
Peter Loeffler schrieb:
> hi stefan
>
> erstmal: VIELEN DANK! gibt ganz neue einblicke, wie das alles so
> zusammenhängt
>
> trotzdem: irgendwo hat sich der kleine fehlerteufel eingeschlichen: hab
> 2 categorien (mit unterkat.) ausgewählt, und enau die werden NICHT
> dargestellt, sondern nur eine cat, die eigentlich garnicht dargestellt
> wird...
>
>
> (...oder war/bin ich da zu blöd?)
>
> lg
> peter
>
>
> Stephan Petzl schrieb:
>
>>> Es besteht auch die möglichkeit das menü gänzlich in php zu machen und
>>> das dann per hook einzubinden. damit hat man dann natürlich am wenigsten
>>> einschränkungen. falls du daran interessiert sein solltest kann ich dir
>>> hier weiterhelfen..
>>>
>>>
>> erstelle zuerst eine extension im kickstarter.
>> dann speichere und installiere die extension.
>> dann erstelle (wenn noch nicht vorhanden) eine ext_localconf.php im root
>> deiner extension.
>> für folgendes in der ext_localconf.php ein:
>> <?php
>> $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_news']['userDisplayCatmenuHook'][]
>> =
>> t3lib_extMgm::extPath($_EXTKEY).'hooks/class.tx_tt_news_categorymenu_hook.php:&tx_tt_news_categorymenu_hook';
>> ?>
>>
>> erstelle eine datei hooks/class.tx_tt_news_categorymenu_hook.php und
>> folgendes einfügen:
>>
>> <?php
>> /**
>> * @property t3lib_DB $db
>> * @property t3lib_tsfeBeUserAuth $tsfe;
>> */
>> class tx_tt_news_categorymenu_hook{
>>
>> public function init($conf,&$ref){
>>
>> global $TYPO3_DB,$TSFE;
>> $this->db = $TYPO3_DB;
>> $this->tsfe = $TSFE;
>> $this->ref = $ref;
>> $this->conf = $conf;
>>
>> }
>> public function userDisplayCatmenu(&$conf, &$ref){
>> $this->init($conf,$ref);
>>
>> if($ref->conf['displayCatMenu.']['mode'] == 'xyn_ext') {
>> $rows = $this->db->exec_SELECTgetRows("*",
>> "tt_news_cat",
>> "deleted=0 AND
>> hidden=0",
>> "",
>> "parent_category
>> ASC,title ASC"
>> );
>>
>> $html = $this->addSubCategoriesRec($rows,0);
>> return $html;
>> }
>> }
>> // recursively adds childs of the category record with uid "&cat_uid"
>> private function addSubCategoriesRec(&$rows, $cat_uid){
>>
>> $html = "";
>> $i=0;
>> $pid = $this->conf['displayCatMenu.']['targetPid'];
>> if(!$pid)
>> $pid = $this->tsfe->id;
>> foreach($rows as $row){
>> if($row['parent_category'] == $cat_uid){
>> $title = htmlspecialchars($row['title']);
>> $urlParams = array('tx_ttnews[cat]' => $row['uid']);
>> //$aTagParams .= ' title="'.$row['descrition'].'"';
>> $conf = array(
>> 'useCacheHash' => $this->conf['allowCaching'],
>> 'no_cache' => !$this->conf['allowCaching'],
>> 'parameter' => $pid,
>> 'additionalParams' =>
>> $this->conf['parent.']['addParams'].t3lib_div::implodeArrayForUrl('',$urlParams,'',1).$this->pi_moreParams,
>> //'ATagParams' => $aTagParams
>> );
>>
>> $link = $this->ref->cObj->typoLink($title, $conf);
>> $href =
>> $this->ref->pi_getPageLink($pid,'',array('tx_ttnews[cat]'=>$row['uid']));
>> $html .= '<li id="li_news_cat_'.$row['uid'].'">';
>> $html .= $link;//'<a href="'.$href.'"
>> alt="'.$row['title'].'">'.$row['title'].'</a>';
>> //unset($rows[$i]);
>> $html .= $this->addSubCategoriesRec($rows,$row['uid']);
>> $html .= '</li>';
>> }
>> $i++;
>> }
>> //debug(count($rows));
>> if($html)
>> $html = '<ul class="tt_news_cat_'.$cat_uid.'">'.$html.'</ul>';
>>
>> return $html;
>>
>> }
>> }
>> ?>
>>
>> anschließend in deinem typoscript template folgenden parameter setzen:
>> plugin.tt_news.displayCatMenu.mode = xyn_ext
>>
>> nun kannst du ein normales tt_news catmenu an entsprechender stelle auf
>> deiner seite einfügen, das rendering übernimmt deine
>> tx_tt_news_categorymenu_hook klasse. entsprechende php kenntnisse
>> vorausgesetzt sollte es kein problem sein den code so anzupassen dass du
>> dropdowns angezeigt bekommst...
>>
>>
>> _______________________________________________
>> TYPO3-at mailing list
>> TYPO3-at at lists.netfielders.de
>> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-at
>>
>>
>
> _______________________________________________
> TYPO3-at mailing list
> TYPO3-at at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-at
>
More information about the TYPO3-at
mailing list