|
<?php
|
|
/***************************************************************
|
|
* Copyright notice
|
|
*
|
|
* (c) 1999-2003 Kasper Sk?rh?j (kasper@typo3.com)
|
|
* All rights reserved
|
|
*
|
|
* This script is part of the Typo3 project. The Typo3 project is
|
|
* free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* The GNU General Public License can be found at
|
|
* http://www.gnu.org/copyleft/gpl.html.
|
|
* A copy is found in the textfile GPL.txt and important notices to the license
|
|
* from the author is found in LICENSE.txt distributed with these scripts.
|
|
*
|
|
*
|
|
* This script is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* This copyright notice MUST APPEAR in all copies of the script!
|
|
***************************************************************/
|
|
/**
|
|
* TMENU_LAYERS extension classs
|
|
*
|
|
* Additional TypoScript parameters:
|
|
* (See TSref document)
|
|
*
|
|
* @author Kasper Sk?rh?j <kasper@typo3.com>
|
|
*/
|
|
|
|
|
|
class tslib_tmenu_layers extends tslib_tmenu {
|
|
|
|
|
|
// FULL DUPLICATE FROM gmenu_layers BEGIN:
|
|
|
|
|
|
var $GMENU_fixKey="layers";
|
|
var $divLayers=Array();
|
|
|
|
var $WMx=0;
|
|
var $WMy=0;
|
|
var $WMxyArray=array();
|
|
var $WMextraScript="";
|
|
var $WMlastKey="";
|
|
var $WMrestoreScript="";
|
|
var $WMresetSubMenus="";
|
|
var $WMactiveHasSubMenu="";
|
|
var $WMactiveKey="";
|
|
var $WMtheSubMenu;
|
|
var $WMisSub;
|
|
var $WMhideCode;
|
|
var $WMonlyOnLoad=0;
|
|
var $WMbordersWithin=array();
|
|
var $WMsubIds=array();
|
|
var $WMtempStore=array();
|
|
var $WMlockPosition_addAccumulated=array();
|
|
var $VMmouseoverActions=array();
|
|
var $VMmouseoutActions=array();
|
|
|
|
function extProc_init() {
|
|
$this->WMid = trim($this->mconf["layer_menu_id"])?trim($this->mconf["layer_menu_id"])."x":substr(md5(microtime()),0,6); // NO "_" (underscore) in the ID!!! NN4 breaks!
|
|
|
|
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"][]=$this->WMid;
|
|
$this->WMtempStore = $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"];
|
|
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]=array();
|
|
|
|
// Save:
|
|
# $this->WMlockPosition_addAccumulated = $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"];
|
|
|
|
# $this->WMfreezePrefix = $this->mconf["freezeMouseover"] ? "GL".$this->WMid."_" : "";
|
|
$this->WMonlyOnLoad = ($this->mconf["displayActiveOnLoad"] && !$this->mconf["displayActiveOnLoad."]["onlyOnLoad"]);
|
|
$this->WMbordersWithin = t3lib_div::intExplode(",",$this->mconf["bordersWithin"].",0,0,0,0,0");
|
|
}
|
|
function extProc_RO($key) {
|
|
if ($this->mconf["freezeMouseover"]) {
|
|
$this->VMmouseoverActions[$this->WMid.$key]='case "Menu'.$this->WMid.$key.'":'.$this->I["linkHREF"]["onMouseover"].'; break;';
|
|
$this->VMmouseoutActions[$this->WMid.$key]='case "Menu'.$this->WMid.$key.'":'.$this->I["linkHREF"]["onMouseout"].'; break;';
|
|
$this->I["linkHREF"]["onMouseover"]="GL".$this->WMid."_over('Menu".$this->WMid.$key."');";
|
|
$this->I["linkHREF"]["onMouseout"]="";
|
|
|
|
}
|
|
}
|
|
|
|
function extProc_beforeLinking($key) {
|
|
if ($this->I["uid"]) {
|
|
|
|
array_push($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMparentId"],$this->WMid);
|
|
$this->WMtheSubMenu = $this->subMenu($this->I["uid"],$this->I["mount_pid"]);
|
|
array_pop($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMparentId"]);
|
|
$this->WMisSub = trim($this->WMtheSubMenu) ? 1 : 0;
|
|
|
|
# $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"]["y"]+=$this->I["val"]["output_h"];
|
|
# $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"]["x"]+=$this->I["val"]["output_w"];
|
|
#debug($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"]);
|
|
|
|
if ($this->mconf["lockPosition_addSelf"]) {
|
|
$this->WMy+=(strcmp($this->mconf["setFixedHeight"],"")?$this->mconf["setFixedHeight"]:$this->I["val"]["output_h"])+intval($this->mconf["lockPosition_adjust"]);
|
|
$this->WMx+=(strcmp($this->mconf["setFixedWidth"],"")?$this->mconf["setFixedWidth"]:$this->I["val"]["output_w"])+intval($this->mconf["lockPosition_adjust"]);
|
|
}
|
|
|
|
if ($this->isActive($this->I["uid"]) && $this->mconf["displayActiveOnLoad"]) { // orig: && $this->WMisSub, changed 210901
|
|
$this->WMactiveHasSubMenu = $this->WMisSub;
|
|
$this->WMactiveKey = "Menu".$this->WMid.$key;
|
|
|
|
|
|
$this->WMrestoreVars=trim('
|
|
GLV_restoreMenu["'.$this->WMid.'"] = "'.$this->WMactiveKey.'";
|
|
');
|
|
$this->WMrestoreScript=' GL_doTop("'.$this->WMid.'",GLV_restoreMenu["'.$this->WMid.'"]);'.($this->mconf["freezeMouseover"]?'
|
|
GL'.$this->WMid.'_over(GLV_restoreMenu["'.$this->WMid.'"]);
|
|
':'');
|
|
|
|
/* $this->WMextraScript='<script language="JavaScript" type="text/javascript">
|
|
<!--
|
|
// GL_restoreMenu("'.$this->WMid.'");
|
|
//-->
|
|
</script>';
|
|
*/
|
|
}
|
|
|
|
if ($this->WMisSub) {
|
|
$event="GL_stopMove('".$this->WMid."');";
|
|
$this->I["linkHREF"]["onMouseover"]='GL_doTop(\''.$this->WMid.'\', \'Menu'.$this->WMid.$key.'\');iframer(true,\'Menu'.$this->WMid.$key.'\')'.$this->I["linkHREF"]["onMouseover"];
|
|
// Added 120802; This means that everytime leaving a menuitem the layer should be shut down (and if the layer is hit in the meantime it is not though).
|
|
// This should happen only for items that are auto-hidden when not over and possibly only when a hide-timer is set. Problem is if the hide-timer is not set and we leave the main element, then the layer will be hidden unless we reach the layer before the timeout will happen and the menu hidden.
|
|
if (t3lib_div::intInRange($this->mconf["hideMenuWhenNotOver"],0,600) && $this->mconf["hideMenuTimer"]) {
|
|
$event.="GL_resetAll('".$this->WMid."');";
|
|
}
|
|
$this->I["linkHREF"]["onMouseout"].=$event;
|
|
} else {
|
|
$this->I["linkHREF"]["onMouseover"]="GL_hideAll('".$this->WMid."');".$this->I["linkHREF"]["onMouseover"];
|
|
$event="GL_resetAll('".$this->WMid."');";
|
|
$this->I["linkHREF"]["onMouseout"].=$event;
|
|
}
|
|
|
|
$this->WMxyArray[] = "GLV_menuXY['".$this->WMid."']['Menu".$this->WMid.$key."'] = new Array(".$this->WMx.",".$this->WMy.",'itemID".t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid)."','anchorID".t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid)."');";
|
|
}
|
|
#debug($this->I);
|
|
}
|
|
function extProc_afterLinking($key) {
|
|
if ($this->I["uid"]) {
|
|
if (!$this->I["spacer"] && $this->WMisSub) {
|
|
$exStyle=$this->mconf["layerStyle"] ? $this->mconf["layerStyle"] : 'position:absolute;visibility:hidden';
|
|
if (trim($exStyle)) {
|
|
$exStyle=" ".$exStyle;
|
|
}
|
|
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["layerCounter"]++;
|
|
$zIndex = 10000-$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["layerCounter"];
|
|
# $zIndex = (($key+2)*$this->menuNumber*100);
|
|
$divStart = '<div id="Menu'.$this->WMid.$key.'" style="z-index:'.$zIndex.';'.$exStyle.'">';
|
|
$divStop = '</div>';
|
|
$iframe = '<iframe id="Iframe" src="javascript:false;" scrolling="no" frameborder="0" style="position:absolute; top:0px; left:0px; background-color:transparent; layer-background-color:transparent; display:none;"></iframe>';
|
|
|
|
$this->divLayers[]= $divStart.$this->WMtheSubMenu.$divStop;
|
|
$this->divLayers['iframe']= $iframe;
|
|
|
|
#$this->mr = $this->mr+1;
|
|
#$this->mr_str = '';
|
|
#$this->mr_str.= '
|
|
#var DivRef'.$this->mr.' = document.getElementById(\'Menu'.$this->WMid.$key.'\');
|
|
#var IfrRef'.$this->mr.' = document.getElementById(\'Iframe'.$this->WMid.$key.'\');
|
|
#';
|
|
|
|
# $this->mr_str2.= '
|
|
# DivRef'.$this->mr.'.style.display = "block";
|
|
# IfrRef'.$this->mr.'.style.width = DivRef'.$this->mr.'.offsetWidth;
|
|
# IfrRef'.$this->mr.'.style.height = DivRef'.$this->mr.'.offsetHeight;
|
|
# IfrRef'.$this->mr.'.style.top = DivRef'.$this->mr.'.style.top;
|
|
# IfrRef'.$this->mr.'.style.left = DivRef'.$this->mr.'.style.left;
|
|
# IfrRef'.$this->mr.'.style.zIndex = DivRef'.$this->mr.'.style.zIndex - 1;
|
|
#IfrRef'.$this->mr.'.style.display = "block";
|
|
#';
|
|
|
|
#$this->mr_str3.= '
|
|
#DivRef'.$this->mr.'.style.display = "none";
|
|
#IfrRef'.$this->mr.'.style.display = "none";
|
|
#';
|
|
|
|
$this->WMhideCode.='
|
|
GL_getObjCss("Menu'.$this->WMid.$key.'").visibility = "hidden";';
|
|
$this->WMlastKey = "Menu".$this->WMid.$key;
|
|
}
|
|
|
|
if (!$this->mconf["lockPosition_addSelf"]) {
|
|
$this->WMy+=(strcmp($this->mconf["setFixedHeight"],"")?$this->mconf["setFixedHeight"]:$this->I["val"]["output_h"])+intval($this->mconf["lockPosition_adjust"]);
|
|
$this->WMx+=(strcmp($this->mconf["setFixedWidth"],"")?$this->mconf["setFixedWidth"]:$this->I["val"]["output_w"])+intval($this->mconf["lockPosition_adjust"]);
|
|
}
|
|
}
|
|
$this->WMresult.=$this->I["theItem"];
|
|
}
|
|
function extProc_beforeAllWrap($item,$key) {
|
|
if ($this->mconf["relativeToTriggerItem"]) {
|
|
$item = '<div id="anchorID'.t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid).'" style="position:absolute;visibility:hidden;"></div><div id="itemID'.t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid).'" width="100%" height="100%">'.$item.'</div>';
|
|
}
|
|
//debug(array($item));
|
|
return $item;
|
|
}
|
|
function isSetIntval($in) {
|
|
return $this->mconf["blankStrEqFalse"] ? strcmp($in,"") : intval($in); // return true if different from "" OR if intval()!=0
|
|
}
|
|
function extProc_finish () {
|
|
$dirL = $this->mconf["directionLeft"] ? '-GL_getObj(id).width' : '';
|
|
$dirU = $this->mconf["directionUp"] ? '-GL_getObj(id).height' : '';
|
|
|
|
$parentLayerId = end($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMparentId"]);
|
|
|
|
/* $offset_addAccumulated=t3lib_div::intInRange($this->mconf["offset_addAccumulated"],-1,1);
|
|
$offset_addSelf=t3lib_div::intInRange($this->mconf["offset_addSelf"],-1,1);
|
|
$accuDim = $this->WMlockPosition_addAccumulated;
|
|
$accuDim["y"]=$offset_addAccumulated * $accuDim["y"];
|
|
$accuDim["x"]=$offset_addAccumulated * $accuDim["x"];
|
|
*/
|
|
$DoTop=array();
|
|
$GLV_menuOn=array();
|
|
$relCode=array();
|
|
$relFlag=0;
|
|
if ($this->mconf["relativeToParentLayer"] && $parentLayerId) {
|
|
$relCode["X"].='GLV_curLayerX["'.$parentLayerId.'"]+';
|
|
$relCode["Y"].='GLV_curLayerY["'.$parentLayerId.'"]+';
|
|
if ($this->mconf["relativeToParentLayer."]["addWidth"]) { $relCode["X"].='GLV_curLayerWidth["'.$parentLayerId.'"]+'; }
|
|
if ($this->mconf["relativeToParentLayer."]["addHeight"]) { $relCode["Y"].='GLV_curLayerHeight["'.$parentLayerId.'"]+'; }
|
|
}
|
|
if ($this->mconf["relativeToTriggerItem"]) {
|
|
$DoTop[]='
|
|
var parentObject = GL_getObj(GLV_menuXY[WMid][id][2]);
|
|
var TI_width = parentObject.width;
|
|
var TI_halfWidth = parentObject.width/2;
|
|
var TI_height = parentObject.height;
|
|
var anchorObj = GL_getObj(GLV_menuXY[WMid][id][3]);
|
|
var TI_x = anchorObj.x;
|
|
var TI_y = anchorObj.y;
|
|
// alert(""+TI_width+" | "+TI_height+" | "+TI_x+" | "+TI_y)
|
|
';
|
|
$relCode["X"].='TI_x+';
|
|
$relCode["Y"].='TI_y+';
|
|
#$relCode["X-"].='TI_x-';
|
|
|
|
if ($this->mconf["relativeToTriggerItem."]["addWidth"]) { $relCode["X"].='TI_width+'; }
|
|
if ($this->mconf["relativeToTriggerItem."]["addHeight"]) { $relCode["Y"].='TI_height'.$this->mconf["relativeToTriggerItem."]["addHeight"].'+'; }
|
|
if ($this->mconf["relativeToTriggerItem."]["subWidth"]) { $relCode["X"]='TI_x-TI_halfWidth'.$this->mconf["relativeToTriggerItem."]["subWidth"].'+'; }
|
|
#if ($this->mconf["relativeToTriggerItem."]["addPixelX"]) { $relCode["X"].=$this->mconf["relativeToTriggerItem."]["addPixelX"].'+';}
|
|
#if ($this->mconf["relativeToTriggerItem."]["addPixelY"]) { $relCode["Y"].=$this->mconf["relativeToTriggerItem."]["addPixelY"].'+';}
|
|
$relFlag=1;
|
|
}
|
|
if ($relFlag) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].intval($this->mconf["leftOffset"]).$dirL.';';
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].intval($this->mconf["topOffset"]).$dirU.';';
|
|
} else {
|
|
// X position (y is fixed)
|
|
if (!strcmp($this->mconf["lockPosition"],"x")) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].'GLV_menuXY["'.$this->WMid.'"][id][0]-('.intval($this->mconf["xPosOffset"]).')'.$dirL.';';
|
|
if ($this->isSetIntval($this->mconf["topOffset"])) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].intval($this->mconf["topOffset"]).$dirU.';';
|
|
}
|
|
} elseif ($this->isSetIntval($this->mconf["xPosOffset"])) {
|
|
$GLV_menuOn[]=$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = GLV_x-('.intval($this->mconf["xPosOffset"]).')'.$dirL.';';
|
|
if ($this->isSetIntval($this->mconf["topOffset"])) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].intval($this->mconf["topOffset"]).$dirU.';';
|
|
}
|
|
}
|
|
// Y position (x is fixed)
|
|
if (!strcmp($this->mconf["lockPosition"],"y")) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].'GLV_menuXY["'.$this->WMid.'"][id][1]-('.intval($this->mconf["yPosOffset"]).')'.$dirU.';';
|
|
if ($this->isSetIntval($this->mconf["leftOffset"])) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].intval($this->mconf["leftOffset"]).$dirL.';';
|
|
}
|
|
} elseif ($this->isSetIntval($this->mconf["yPosOffset"])) {
|
|
$GLV_menuOn[]=$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = GLV_y-('.intval($this->mconf["yPosOffset"]).')'.$dirU.';';
|
|
if ($this->isSetIntval($this->mconf["leftOffset"])) {
|
|
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].intval($this->mconf["leftOffset"]).$dirL.';';
|
|
}
|
|
}
|
|
}
|
|
|
|
// BordersWithIn:
|
|
$DoTop[]=$this->extCalcBorderWithin('left',$this->WMbordersWithin[0]);
|
|
$DoTop[]=$this->extCalcBorderWithin('top',$this->WMbordersWithin[1]);
|
|
$DoTop[]=$this->extCalcBorderWithin('right',$this->WMbordersWithin[2]);
|
|
$DoTop[]=$this->extCalcBorderWithin('bottom',$this->WMbordersWithin[3]);
|
|
$DoTop[]=$this->extCalcBorderWithin('left',$this->WMbordersWithin[4]);
|
|
$DoTop[]=$this->extCalcBorderWithin('top',$this->WMbordersWithin[5]);
|
|
|
|
|
|
// Code for hiding nested LAYER-menus.
|
|
#debug(array($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"],$this->WMtempStore,$this->menuNumber,$this->WMid));
|
|
|
|
if ($this->mconf["freezeMouseover"] && !$this->mconf["freezeMouseover."]["alwaysKeep"]) {
|
|
$this->WMhideCode.='
|
|
GL'.$this->WMid.'_out("");';
|
|
}
|
|
|
|
$TEST="";
|
|
if (count($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"])) {
|
|
reset($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]);
|
|
while(list(,$mIdStr)=each($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"])) {
|
|
$this->WMhideCode.='
|
|
GL_hideAll("'.$mIdStr.'");';
|
|
$this->WMrestoreScript.='
|
|
GL_restoreMenu("'.$mIdStr.'");';
|
|
$this->WMresetSubMenus.='
|
|
if (!GLV_doReset["'.$mIdStr.'"] && GLV_currentLayer["'.$mIdStr.'"]!=null) resetSubMenu=0;';
|
|
|
|
/*
|
|
$TEST.='
|
|
testStr+=" | "+GLV_doReset["'.$mIdStr.'"]+","+GLV_currentLayer["'.$mIdStr.'"];
|
|
testStr2+=(!GLV_doReset["'.$mIdStr.'"] && GLV_currentLayer["'.$mIdStr.'"]!=null)?1:0;';
|
|
*/
|
|
}
|
|
}
|
|
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]=array_merge($this->WMtempStore,$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]);
|
|
|
|
// Restore:
|
|
# $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"] = $this->WMlockPosition_addAccumulated;
|
|
|
|
|
|
$GLOBALS["TSFE"]->additionalHeaderData["gmenu_layer_shared"]='<script type="text/javascript" src="'.$GLOBALS["TSFE"]->absRefPrefix.'media/scripts/jsfunc.layermenu.js" language="JavaScript"></script>';
|
|
|
|
$GLOBALS["TSFE"]->JSCode.= '
|
|
|
|
|
|
GLV_curLayerWidth["'.$this->WMid.'"]=0;
|
|
GLV_curLayerHeight["'.$this->WMid.'"]=0;
|
|
GLV_curLayerX["'.$this->WMid.'"]=0;
|
|
GLV_curLayerY["'.$this->WMid.'"]=0;
|
|
GLV_menuOn["'.$this->WMid.'"] = null;
|
|
GLV_gap["'.$this->WMid.'"]='.t3lib_div::intInRange($this->mconf["hideMenuWhenNotOver"],0,600).';
|
|
GLV_currentLayer["'.$this->WMid.'"] = null;
|
|
GLV_currentROitem["'.$this->WMid.'"] = null;
|
|
GLV_hasBeenOver["'.$this->WMid.'"]=0;
|
|
GLV_doReset["'.$this->WMid.'"]=false;
|
|
GLV_lastKey["'.$this->WMid.'"] = "'.$this->WMlastKey.'";
|
|
GLV_onlyOnLoad["'.$this->WMid.'"] = '.($this->WMonlyOnLoad?1:0).';
|
|
GLV_dontHideOnMouseUp["'.$this->WMid.'"] = '.($this->mconf["dontHideOnMouseUp"]?1:0).';
|
|
GLV_dontFollowMouse["'.$this->WMid.'"] = '.($this->mconf["dontFollowMouse"]?1:0).';
|
|
GLV_date = new Date();
|
|
GLV_timeout["'.$this->WMid.'"] = GLV_date.getTime();
|
|
GLV_timeoutRef["'.$this->WMid.'"] = '.t3lib_div::intInRange($this->mconf["hideMenuTimer"],0,20000).';
|
|
GLV_menuXY["'.$this->WMid.'"] = new Array();
|
|
'.implode(chr(10),$this->WMxyArray).'
|
|
'.$this->WMrestoreVars;
|
|
|
|
if ($this->mconf["freezeMouseover"]) {
|
|
$GLOBALS["TSFE"]->JSCode.= '
|
|
// Alternative rollover/out functions for use with GMENU_LAYER
|
|
function GL'.$this->WMid.'_over(mitm_id) {
|
|
GL'.$this->WMid.'_out(""); // removes any old roll over state of an item. Needed for alwaysKeep and Opera browsers.
|
|
switch(mitm_id) {
|
|
'.implode(chr(10),$this->VMmouseoverActions).'
|
|
}
|
|
GLV_currentROitem["'.$this->WMid.'"]=mitm_id;
|
|
}
|
|
function GL'.$this->WMid.'_out(mitm_id) {
|
|
if (!mitm_id) mitm_id=GLV_currentROitem["'.$this->WMid.'"];
|
|
switch(mitm_id) {
|
|
'.implode(chr(10),$this->VMmouseoutActions).'
|
|
}
|
|
}
|
|
';
|
|
}
|
|
$GLOBALS["TSFE"]->JSCode.= '
|
|
function GL'.$this->WMid.'_getMouse(e) {
|
|
if (GLV_menuOn["'.$this->WMid.'"]!=null && !GLV_dontFollowMouse["'.$this->WMid.'"]){
|
|
'.implode(chr(10),$GLV_menuOn).'
|
|
}
|
|
GL_mouseMoveEvaluate("'.$this->WMid.'");
|
|
}
|
|
function GL'.$this->WMid.'_hideCode() {
|
|
'.$this->WMhideCode.'
|
|
}
|
|
function GL'.$this->WMid.'_doTop(WMid,id) {
|
|
'.trim(implode(chr(10),$DoTop)).'
|
|
}
|
|
function GL'.$this->WMid.'_restoreMenu() {
|
|
'.$this->WMrestoreScript.'
|
|
}
|
|
function GL'.$this->WMid.'_resetSubMenus() {
|
|
var resetSubMenu=1;
|
|
'.$this->WMresetSubMenus.'
|
|
return resetSubMenu;
|
|
}
|
|
|
|
GLV_timeout_pointers[GLV_timeout_count] = "'.$this->WMid.'";
|
|
GLV_timeout_count++;
|
|
|
|
';
|
|
|
|
#####
|
|
$GLOBALS["TSFE"]->JSCode.= '
|
|
|
|
function iframer(state,key)
|
|
{
|
|
|
|
var DivRef = document.getElementById(key);
|
|
var IfrRef = document.getElementById(\'Iframe\');
|
|
if(state)
|
|
{
|
|
DivRef.style.display = "block";
|
|
IfrRef.style.width = DivRef.offsetWidth;
|
|
IfrRef.style.height = DivRef.offsetHeight;
|
|
IfrRef.style.top = DivRef.style.top;
|
|
IfrRef.style.left = DivRef.style.left;
|
|
IfrRef.style.zIndex = DivRef.style.zIndex - 1;
|
|
IfrRef.style.display = "block";
|
|
}
|
|
else
|
|
{
|
|
//DivRef.style.display = "none";
|
|
IfrRef.style.display = "none";
|
|
}
|
|
}
|
|
|
|
|
|
';
|
|
|
|
#####
|
|
/*
|
|
$GLOBALS["TSFE"]->JSCode.= '
|
|
function test_func(){
|
|
var testStr="";
|
|
var testStr2="";
|
|
'.$TEST.'
|
|
window.status = testStr2+" - "+testStr;
|
|
}
|
|
';
|
|
*/
|
|
/* $GLOBALS["TSFE"]->JSCode.= '
|
|
function debugObj(obj,name) {
|
|
var acc;
|
|
for (i in obj) {
|
|
if (obj[i]) {
|
|
acc+=i+": "+obj[i]+"\n";
|
|
}
|
|
}
|
|
alert("Object: "+name+"\n\n"+acc);
|
|
}
|
|
';
|
|
*/
|
|
$GLOBALS["TSFE"]->JSeventFuncCalls["onload"]["GL_initLayers()"]= 'GL_initLayers();';
|
|
$GLOBALS["TSFE"]->JSeventFuncCalls["onload"][$this->WMid]= 'GL_restoreMenu("'.$this->WMid.'");';
|
|
$GLOBALS["TSFE"]->JSeventFuncCalls["onmousemove"]["GL_getMouse(e)"]= 'GL_getMouse(e);'; // Should be called BEFORE any of the "local" getMouse functions!
|
|
$GLOBALS["TSFE"]->JSeventFuncCalls["onmousemove"][$this->WMid]= 'GL'.$this->WMid.'_getMouse(e);';
|
|
$GLOBALS["TSFE"]->JSeventFuncCalls["onmouseup"][$this->WMid]= 'GL_mouseUp(\''.$this->WMid.'\',e);';
|
|
|
|
$GLOBALS["TSFE"]->divSection.=implode($this->divLayers,chr(10)).chr(10);
|
|
|
|
return parent::extProc_finish();
|
|
}
|
|
function extCalcBorderWithin($kind,$integer) {
|
|
if ($integer) {
|
|
switch($kind) {
|
|
case "right":
|
|
case "bottom":
|
|
$add="";
|
|
if ($kind=="right") {$add='GL_getObj(id).width'; $key = "left";}
|
|
if ($kind=="bottom") {$add='GL_getObj(id).height'; $key = "top";}
|
|
$str = 'if (parseInt(GLV_menuOn["'.$this->WMid.'"].'.$key.')+'.$add.'>'.$integer.') GLV_menuOn["'.$this->WMid.'"].'.$key.'='.$integer.'-'.$add.';';
|
|
break;
|
|
default:
|
|
$str = 'if (parseInt(GLV_menuOn["'.$this->WMid.'"].'.$kind.')<'.$integer.') GLV_menuOn["'.$this->WMid.'"].'.$kind.'='.$integer.';';
|
|
break;
|
|
}
|
|
}
|
|
return $str;
|
|
}
|
|
}
|
|
|
|
|
|
// FULL DUPLICATE FROM gmenu_layers END:
|
|
|
|
|
|
$GLOBALS["TSFE"]->tmpl->menuclasses.=",tmenu_layers";
|
|
|
|
if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["media/scripts/tmenu_layers.php"]) {
|
|
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["media/scripts/tmenu_layers.php"]);
|
|
}
|
|
|
|
?>
|