[ Index ]
 

Code source de Typo3 4.1.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/t3lib/ -> jsfunc.menu.js (source)

   1  /***************************************************************
   2  *
   3  *  JavaScript menu
   4  *
   5  * $Id: jsfunc.menu.js 2393 2007-07-07 12:50:01Z ohader $
   6  *
   7  *
   8  *
   9  *  Copyright notice
  10  *
  11  *  (c) 1998-2003 Kasper Skaarhoj
  12  *  All rights reserved
  13  *
  14  *  This script is part of the TYPO3 t3lib/ library provided by
  15  *  Kasper Skaarhoj <kasper@typo3.com> together with TYPO3
  16  *
  17  *  Released under GNU/GPL (see license file in tslib/)
  18  *
  19  *  This script is distributed in the hope that it will be useful,
  20  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  21  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  22  *
  23  *  This copyright notice MUST APPEAR in all copies of this script
  24  ***************************************************************/
  25  
  26  
  27  function JSmenuItem (owner, id, nextItem, parent, openID, title, url, target) {
  28      this.owner = owner;
  29      this.id = id;
  30      this.nextItem = nextItem;
  31      this.child = 0;
  32      this.openID = openID;
  33      this.parent = parent;
  34      this.title = title;
  35      this.url = url;
  36      this.target = target;
  37  }
  38  function JSmenu (levels,formname) {
  39      this.name = name,
  40      this.levels = levels;
  41      this.formname = formname;
  42  
  43      this.openID = 0;
  44  
  45      this.entry = new JSmenuItem (this);
  46      this.count = 0;
  47      this.defTopTitle = new Array();
  48      this.add = JSmenuAddItem;            // Tilføjer Item
  49      this.writeOut = JSmenuWrite;
  50      this.act = JSactivate;
  51  }
  52  function JSmenuAddItem (parent,prevItem,openID,title,url,target) {
  53      this.count++;
  54      var entryID = this.count;
  55      this.entry[entryID] = new JSmenuItem (this, entryID, 0, parent, openID, title, url, target);
  56      if (prevItem) {
  57          this.entry[prevItem].nextItem = entryID;
  58      } else if(parent) {
  59          this.entry[parent].child = entryID;
  60      }
  61      return entryID;
  62  }
  63  function JSmenuWrite(theEntryID,openID,theLevel) {
  64      var level=theLevel;
  65      if (level<=this.levels)    {
  66          var entryID = theEntryID;
  67          var firstEntryID = theEntryID;
  68          var selectorBox = document[this.formname]["selector"+level];
  69          var index=0;
  70          selectorBox.length=0;
  71          selectorBox.length++;
  72          selectorBox.options[index].text = this.defTopTitle[theLevel] ? this.defTopTitle[theLevel] : "                   ";
  73          selectorBox.options[index].value = 0;
  74          index++;
  75          var indexSet=0;
  76          if (entryID && this.entry[entryID])    {
  77              var ids = "";
  78              while(entryID)    {
  79              ids+="-"+entryID;
  80                  selectorBox.length++;
  81                  selectorBox.options[index].text = this.entry[entryID].title;
  82                  selectorBox.options[index].value = entryID;
  83                  if (openID==entryID)    {
  84                      var indexSet = 1;
  85                      selectorBox.selectedIndex = index;
  86                      if (level<this.levels)    {
  87                          this.writeOut(this.entry[entryID].child, this.entry[entryID].openID,level+1);
  88                      }
  89                  }
  90                  index++;
  91                  entryID=this.entry[entryID].nextItem;
  92              }
  93              if (!indexSet) {
  94                  selectorBox.selectedIndex=0;
  95                  this.writeOut(this.entry[firstEntryID].child, this.entry[firstEntryID].openID,level+1);
  96              }
  97          } else if (level<this.levels)    {
  98              this.writeOut(0, 0,level+1);
  99          }
 100      }
 101  }
 102  function JSactivate(level) {
 103      var selectorBox = document[this.formname]["selector"+level];
 104      var entryID = selectorBox.options[selectorBox.selectedIndex].value;
 105      if (this.entry[entryID])    {
 106          this.writeOut(this.entry[entryID].child,this.entry[entryID].openID,level+1);
 107          if (this.entry[this.entry[entryID].parent])    {
 108              this.entry[this.entry[entryID].parent].openID = entryID;
 109          }
 110          if (this.entry[entryID].url)    {
 111              var baseURLs = document.getElementsByTagName('base');
 112              if (baseURLs.length && baseURLs[0].href.length > 0) {
 113                  if (this.entry[entryID].url.search(/^http[s]?:\/\//))    {
 114                      this.entry[entryID].url = baseURLs[0].href + this.entry[entryID].url;
 115                  }
 116              }
 117              if (!this.entry[entryID].target || this.entry[entryID].target=="_self")    {
 118                  window.location.href = this.entry[entryID].url;
 119              } else if (this.entry[entryID].target=="_top") {
 120                  top.location.href = this.entry[entryID].url;
 121              } else {
 122                  var test = eval ("parent."+this.entry[entryID].target);
 123                  if (!test) {
 124                      test = eval ("top."+this.entry[entryID].target);
 125                  }
 126                  if (test && test.document) {
 127                      test.location.href = this.entry[entryID].url;
 128                  } else {
 129                      window.open(this.entry[entryID].url,this.entry[entryID].target,"status=yes,menubar=yes,resizable=yes,location=yes,directories=yes,scrollbars=yes,toolbar=yes");
 130                  }
 131              }
 132          }
 133      }
 134  }


Généré le : Sun Nov 25 17:13:16 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics