Popup in Menüs

Manchmal ist es gewünscht popups direkt aus dem Menü zu öffnen.
 

Dies ist mit default Menüs so nicht möglich. Es gibt zwei Varianten:

  1. Extension installieren, welche das Verhalten modifiziert. Diese Extension kommen aber meist mit einer XCLASS und somit gibts es Kompatibilitätsprobleme
  2. Ändern der Menüdefinition, dies wird hier beschrieben.

 

Menudefinition für Popups

  1. #define temporr objects for typolink to page,
  2. # depending on pagesettings
  3. temp.popupLinkTypolink {
  4.   title.field=title
  5.   parameter.cObject=CASE
  6.   parameter.cObject {
  7.       key.field=tx_pageaspopup_aspopup
  8.       default=TEXT
  9.       default.field=uid
  10.       default.target.field=target   
  11.       1=TEXT
  12.       1.value={field:uid} {field:tx_pageaspopup_popupdimension}:{field:tx_pageaspopup_popupparams}
  13.       1.insertData=1
  14.    }
  15. }
  16. temp.menuPopupLinkStdWrap {
  17.   doNotLinkIt=1
  18.   stdWrap.typolink<temp.popupLinkTypolink
  19. }
  20.  
  21. # example use:
  22. lib.main-nav = HMENU
  23. lib.main-nav.wrap = <ul id="main-nav" class="menu-h">|</ul>
  24. lib.main-nav {
  25.   entryLevel = 0
  26.   1 = TMENU
  27.   1 {
  28.     NO < temp.menuPopupLinkStdWrap
  29.   NO {
  30.     allWrap = <li>|</li>
  31.     stdWrap.htmlSpecialChars = 1
  32.   }
  33.   ACT < .NO
  34.   ACT = 1
  35.   ACT {
  36.     allWrap = <li class="active">|</li>
  37.   }
  38.   }
  39. }
  40.  

 

Erklärungen

In dem Menü wird die Linkerzeugung abgeschaltet (doNotLinkIt) und stattdessen ein eigener typolink definiert. Dabei wird mit einem CASE Object entschieden ob ein popup erzegt werden soll oder nicht.

Im Beispiel wird dazu ein Feld aus dem Pageheader ausgelesen und auch die Information für das target (=dimension des popups) kommt aus den Seiteneigenschaften.

Die neuen Felder können mit einer simplen Extension hinzugefügt werden.

 

 

Initiates file download Extension page_as_popup herunterladen.

 

blog comments powered by Disqus
  1. Peter 23.06.10 12:18

    Achtung, da ist in einer Zeile ein Tippfehler, deshalb geht es nicht. In Zeile 12 muss es heissen:

    {field:tx_pageaspopup_popupdimension}x{field:tx_pageaspopup_popupparams}
    Das x ist wichtig!

blogroll