[TYPO3-UG Oesterreich] tt_news catmenu als select

Peter Loeffler plo at sailing-online.info
Wed Sep 17 11:25:40 CEST 2008


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
>   



More information about the TYPO3-at mailing list