Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 04.09.07, 16:30
Forum Zuschauer
 
Registriert seit: 03.09.07
Alter: 36
Beiträge: 4

Dropdown für tt_news Categories


Hallo zusammen,

Ich habe lange gesucht, aber keine Lösung gefunden. Ich wollte eine Dropdownbox zur Kategorieauswahl statt der Links im catmenu.

Einige Anfragen in Foren hatte ich gefunden, aber noch keine Lösung.

Folgendes habe ich getan (es geht vielleicht auch eleganter über den Hook in der tt_news Extension). Ich habe den "mode=nestedWraps" kopiert und in einen zusätzlichen "mode=dropdown" verwandelt.

viel Spaß
Tim


JavaScript in die Page :

--- schnipp ---

Code:
function Go (select) {
  var wert = select.options[select.options.selectedIndex].value;
  if (wert == "leer") {
    select.form.reset();
    return;
    } 
  else 
         {
       location.href = wert;
       }
}
--- schnipp ---

In die Datei pi/class.tx_ttnews.php

In displayCatMenu eingefügt :

PHP-Code:
           case 'dropdown'
               
$fields '*'
               
$lConf $this->conf['displayCatMenu.']; 
               if (
$dontStartFromRootRecord) { 
                   
$addCatlistWhere 'tt_news_cat.uid IN  ('.implode(',',$cleanedCategoryMounts).')'
               } 
               
$res $GLOBALS['TYPO3_DB']->exec_SELECTquery
                   
$fields
                   
'tt_news_cat'
                    (
$dontStartFromRootRecord?$addCatlistWhere:'tt_news_cat.parent_category=0').$this->SPaddWhere.  $this->enableCatFields.$catlistWhere
                   
''
                   
'tt_news_cat.'.$this->config['catOrderBy']); 


               
$cArr = array(); 
               
$cArr[] =  $this->local_cObj->stdWrap($this->pi_getLL('catmenuHeader','Select a  category:'),$lConf['catmenuHeader_stdWrap.']); 
               while (
$row $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { 
                   
$cArr[] = $row
                   
$subcats =  $this->getSubCategoriesForMenu($row['uid'],$fields,$catlistWhere); 
                   if (
count($subcats))    { 
                       
$cArr[] = $subcats
                   } 
               } 
               
$content $this->getCatMenuContentDrop($cArr,$lConf); 
           break; 
Methode Hinzugefügt :

PHP-Code:
   /** 
    * This function calls itself recursively to convert the nested  category array to HTML 
    * 
    * @param    array        $array_in: the nested categories 
    * @param    array        $lConf: TS configuration 
    * @param    integer        $l: level counter 
    * @return    string        HTML for the category menu 
    */ 
   
function getCatMenuContentDrop($array_in,$lConf$l=0) { 
       
$titlefield 'title'
                            if (
is_array($array_in))    { 
           
$result ''
           while (list(
$key,$val)=each($array_in))    { 
               if (
$key == $titlefield||is_array($array_in[$key])) { 
                   if (
$l) { 
                       
$catmenuLevel_stdWrap =  explode('|||',$this->local_cObj->stdWrap('|||',$lConf['catmenuLevel'.$l.'_stdWrap.'])); 
                       
$result.= $catmenuLevel_stdWrap[0]; 
                   } 
                   if (
is_array($array_in[$key]))    { 
                        
$result.=$this->getCatMenuContentDrop($array_in[$key],$lConf,$l+1); 
                   } elseif (
$key == $titlefield) { 
                       if (
$GLOBALS['TSFE']->sys_language_content &&  $array_in['uid']) { 
                           
// get translations of category titles 
                           
$catTitleArr t3lib_div::trimExplode('|',  $array_in['title_lang_ol']); 
                           
$syslang =  $GLOBALS['TSFE']->sys_language_content-1
                           
$val =  $catTitleArr[$syslang]?$catTitleArr[$syslang]:$val
                       } 
                       
// if (!$title) $title = $val; 
                       
$catSelLinkParams =  ($this->conf['catSelectorTargetPid']?($this->config['itemLinkTarget']?$this->conf['catSelectorTargetPid'].'  '.$this->config['itemLinkTarget']:$this->conf['catSelectorTargetPid']:sad:$GLOBALS['TSFE']->id); 
                       
$pTmp $GLOBALS['TSFE']->ATagParams
                       if  (
$this->conf['displayCatMenu.']['insertDescrAsTitle']) { 
                           
$GLOBALS['TSFE']->ATagParams =  ($pTmp?$pTmp.' ':'').'title="'.$array_in['description'].'"'
                       } 
                       if (
$array_in['uid']) { 
                           if (
$this->piVars['cat']==$array_in['uid']) { 
                               
$result.=  $this->local_cObj->stdWrap('<option  value="/'.$this->pi_linkTP_keepPIvars_url( array('cat' =>  $array_in['uid']), $this->allowCaching1$catSelLinkParams).'"  selected="selected" >'.$val.'</option>',$lConf['catmenuItem_ACT_stdWrap.']); 
                           } else { 
                               
$result.=  $this->local_cObj->stdWrap('<option  value="/'.$this->pi_linkTP_keepPIvars_url(array('cat' =>  $array_in['uid']), $this->allowCaching1,  $catSelLinkParams).'">'.$val.'</option>',$lConf['catmenuItem_NO_stdWrap.']); 
                           } 
                       } else { 
                            
// $result.= '<option  value="'.$this->pi_linkTP_keepPIvars_url(array(), $this->allowCaching,  1, $catSelLinkParams).'">'.$val.'</option>'; 
                     

                       
$GLOBALS['TSFE']->ATagParams $pTmp
                   } 
                   if (
$l) { $result.= $catmenuLevel_stdWrap[1]; } 
               } 
           } 
       } 
       return 
$result
   } 
Dann kann man den neuen Modus mit folgendem TS einschalten :

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
plugin.tt_news {

displayCatMenu {

mode = dropdown

    # wrap for the complete "catmenu"

catmenu_stdWrap.wrap = <div class="news-catmenu"><select size="1" name="Auswahl" onchange="Go(this)" > | </select> </div>

    # wraps for active or inactive category links in the tree

catmenuItem_ACT_stdWrap.wrap = |

catmenuItem_NO_stdWrap.wrap = |

    # wrap for level "n"

catmenuLevel1_stdWrap.wrap = |

catmenuLevel2_stdWrap.wrap = |

catmenuLevel3_stdWrap.wrap = |

catmenuLevel4_stdWrap.wrap = |

}

}


//Edit von MistaD
Code in den dazugehörigen Container geschubst

Geändert von TimS (05.09.07 um 14:27 Uhr). Grund: Debugoutput entfernt
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 12.12.07, 16:59
Forum Zuschauer
 
Registriert seit: 17.04.07
Beiträge: 5

Kleiner Fehler, der sich durch das automatische Umwandeln von Folgen in Smileys eingeschlichen hat:

PHP-Code:
                       $catSelLinkParams =  ($this->conf['catSelectorTargetPid']?($this->config['itemLinkTarget']?$this->conf['catSelectorTargetPid'].'  '.$this->config['itemLinkTarget']:$this->conf['catSelectorTargetPid']:sad:$GLOBALS['TSFE']->id); 
muss lauten

PHP-Code:
                       $catSelLinkParams =  ($this->conf['catSelectorTargetPid']?($this->config['itemLinkTarget']?$this->conf['catSelectorTargetPid'].'  '.$this->config['itemLinkTarget']:$this->conf['catSelectorTargetPid']:sad:$GLOBALS['TSFE']->id); 
EDIT: Ok, klappt nicht... dann manuell nach :sad: suchen und durch ") :" (ohne Anfuehrungs- und Leerzeichen ersetzen...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 12.12.07, 17:02
Forum Zuschauer
 
Registriert seit: 17.04.07
Beiträge: 5

Dein Workaround funktioniert uebrigens super! Aber wie kann ich in das Menue einen Link einbauen, so dass ALLE Eintraege wieder gezeigt werden?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 20.08.08, 15:03
Forum Crack
 
Registriert seit: 28.06.05
Ort: Großenseebach nähe Erlangen
Beiträge: 1.016

Hi,

wie bekomme ich denn hin, dass dann die einzelnen Einträge voneinander abgesetzt werden? Sprich dieÜbergeordnete Kategorie ist bündig, die untergeordneten eingerückt.
__________________
Grüße Basti

TYPO3 Handbuch für Redakteure | sb_* Extensions
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 18.09.08, 17:10
Forum Newbie
 
Registriert seit: 12.08.08
Beiträge: 23

hallo,

vielen dank für deine mühe, ich brauche nämlich auch eine dropdownliste für meine news-auswahl.

ich habe nur ein problem (bin noch nicht soo fit in typo3:sad: ich verwende templavoila und habe den bereich auch gemappt, wo die liste stehen soll. wie kann ich da das typoscript (oder den code an anderer stelle) so konfigurieren, dass er mir auch wirklich die dropdownliste anzeigt?

ich habe die änderungen in der class.tx_news.php vorgenommen und auch den javascript-schnipsel in die hauptvorlage gepackt.


über hilfe würd ich mich freuen ...
vielen dank & grüße.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 07.10.08, 15:32
Forum Newbie
 
Registriert seit: 12.08.08
Beiträge: 23

kann mir denn keiner weiterhelfen? ich finde selbst keine lösung für das problem.

dankeschön.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
sr_feuser_register und DropDown burner TYPO3 4.x Fragen und Probleme 2 26.06.08 21:16
tt_news latest aus categories Toccamonium News (tt_news, mininews und Co) 2 20.11.07 22:25
Keine Categories robger News (tt_news, mininews und Co) 4 04.09.07 16:39
Dropdown Menü Josh GMENU, HMENU, TMENU und Co. 2 06.07.07 11:27
Nur einige Timtab categories mountain Alle anderen Extensions 0 26.03.06 01:05


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0