[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