magnify

Register Browser

Armin Bartsch, Donnerstag, 21. Mai 2009

Ein einfacher Register-Browser mittels TypoScript

Ohne viel Aufwand einen Register-Browser mit der Option split erstellen. Miit Hilfe von if können die Zustände der Links bestimmt werden.

Beispiel

Die Anzeige der Navigation in diesem Beispiel begrent  sich auf die Beiträge im Breich Lesezeichen der mit die EXT tt_news gepflegt wird. Das unten aufgeführte TypoScript ist entsprechend diesem Beispiel angepasst.

A C B D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9

TypoScript

  1. lib.tt_news_content.10 = TEXT
  2. lib.tt_news_content.10 {
  3.   value = a,c,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9
  4.   split {
  5.     token = ,
  6.     cObjNum = 1
  7.     1 {
  8.       10 = TEXT
  9.       10.current = 1
  10.       10.noTrimWrap = | | |
  11.       10.case = upper
  12.       10.typolink {
  13.         parameter = 537
  14.         parameter.if.isFalse.cObject = TEXT
  15.         parameter.if.isFalse.cObject {
  16.           value = 1
  17.           if.equals.data = GPvar:tx_ttnews|alpha
  18.           if.value.current = 1
  19.         }
  20.         parameter.if.isTrue.numRows {
  21.           table = tt_news
  22.           select {
  23.             pidInList = 532
  24.             andWhere.current = 1
  25.             andWhere.wrap = title LIKE '|%'
  26.           }
  27.         }
  28.         useCacheHash = 1
  29.         additionalParams.current = 1
  30.         additionalParams.wrap = &tx_ttnews[alpha]=|
  31.       }
  32.     }
  33.   }
  34. }

Ergebnis Ansicht

Die Ansicht der Ergebnis-Seite ist eine LIST-Ansicht. Der Array $selectConf der die Query-Bildung bestimmt wird über einen HOOK ergänzt um die Abfrage entsprechend meinen Anforderungen anzupassen.

Als HOOK habe ich selectConfHook gewählt. Die Methode processSelectConfHook habe ich kurz gehalten, es erfolgt eine feste Abfrage auf die Page-uid wo der Register-Browser eingebunden ist.

  1.   /**
  2.    * Abpassen $selectConf
  3.    *
  4.    * @param object  this
  5.    * @param array    $selectConf : quety parameters in an array
  6.    * @return  array  $selectConf
  7.    */
  8.   function processSelectConfHook($pObj, $selectConf) {
  9.     if ($GLOBALS['TSFE']->id == 537) {
  10.       if ($pObj->piVars['alpha'] && t3lib_div::inList('a,c,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,1,2,3,4,5,6,7,8,9', $pObj->piVars['alpha'])) {
  11.         $selectConf['where'] = $selectConf['where'].' AND tt_news.title LIKE \''.$GLOBALS['TYPO3_DB']->quoteStr($pObj->piVars['alpha'], 'tt_news').'%\'';
  12.       }
  13.     }
  14.     return $selectConf;
  15.   }

Dann nur noch der HOOK aufgerufen werden

  1. /**
  2. * $selectConf erweitern für LIST Ansicht Merkzettel
  3. */
  4. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['tt_news']['selectConfHook'][] = t3lib_extMgm::extPath('anpassungen_t3').'tt_news/class.tx_hooks.php:tx_hooks';
  5.  

Die Ansicht der Ergebnisseite kann man auch auf anderen Wegen erreichen, z.B. mit TypoScript über CONTENT und select.

Neben einen gut strukturierten TypoScript in einem Template ist es hilfreich mit "vernüftigen" Kommentaren die Lesbarkeit zu erhöhen.

TypoScript bietet die Möglichkeit von ein- und mehrzeiligen Kommentaren.

Einzeiliger Kommentar

Kurze Kommentare können mit den Zeichen # und // eingeleitet werden, ein schließendes Zeichen ist nicht nötig.
Der Kommentar muss immer in einer extra Zeile beginnen.

Richtige Schreibweise

  1. // Kommentar beginnt in einer extra Zeile
  2.  
  3. # Kommentar beginnt in einer Zeile

Falsche Schreibweise

  1. // Kommentar geht über
  2. zwei Zeilen
  3.  
  4. # Kommentar geht über
  5. zwei Zeilen
  6.  
  7. TS # Kommentar beginnt nicht in einer extra Zeile
  8.  
  9. TS // Kommentar beginnt nicht in einer extra Zeile
  10.  
  11. # Nach dem Kommentar folgt eine TS-Anweisung 10 = COA
  12.  
  13.  
  14. // Nach dem Kommentar folgt eine TS-Anweisung 10 = COA
  15.  

Mehrzeiliger Kommentar

Ein mehrzeiliger Kommentar wird mit /* geöffnet und mit */ wieder geschlossen. Es ist unbedingt darauf zu achten, die öffnenden und schließenden Zeichen in einer extra Zeile stehen. Auch darf weder vor dem öffnenden oder nach dem schließenden Zeichen TypoScript stehen.

Richtige Schreibweise

  1. /*
  2. Schließende Zeichen in einer extra Zeile
  3. */
  4.  
  5. /* Schließende Zeichen in einer extra Zeile
  6. */

Falsche Schreibweise

  1. /* Schließende Zeichen müssen in einer extra Zeile stehen */
  2.  
  3. /*
  4. Schließende Zeichen müssen in einer extra Zeile stehen */
  5.  
  6. TS /* Öffnene Zeichen müssen in einer extra Zeile stehen
  7. */
  8.  
  9.  
magnify

Kommentare

Ins Gästebuch eintragen
Kein Kommentar vorhanden

MERKLISTE

Login

Anmelden

Sponsored by:

ideenwerft webhosting

Wunschzettel