Inherited by tslib_tmenu_layers.
Public Member Functions | |
| generate () | |
| Calls procesItemStates() so that the common configuration for the menu items are resolved into individual configuration per item. | |
| writeMenu () | |
| Traverses the ->result array of menu items configuration (made by ->generate()) and renders each item. | |
| getBeforeAfter ($pref) | |
| Generates the before* and after* images for TMENUs. | |
|
|
Calls procesItemStates() so that the common configuration for the menu items are resolved into individual configuration per item. Sets the result for the new "normal state" in $this->result
Definition at line 1425 of file class.tslib_menu.php. References debug(), and tslib_menu::procesItemStates(). 01425 {
01426 $splitCount = count($this->menuArr);
01427 if ($splitCount) {
01428 list($NOconf) = $this->procesItemStates($splitCount);
01429 }
01430 if ($this->mconf['debugItemConf']) {echo '<h3>$NOconf:</h3>'; debug($NOconf); }
01431 $this->result = $NOconf;
01432 }
|
|
|
Generates the before* and after* images for TMENUs.
Definition at line 1582 of file class.tslib_menu.php. References spacer(). Referenced by writeMenu(). |
|
|
Traverses the ->result array of menu items configuration (made by ->generate()) and renders each item. During the execution of this function many internal methods prefixed "extProc_" from this class is called and many of these are for now dummy functions. But they can be used for processing as they are used by the TMENU_LAYERS An instance of tslib_cObj is also made and for each menu item rendered it is loaded with the record for that page so that any stdWrap properties that applies will have the current menu items record available.
Definition at line 1441 of file class.tslib_menu.php. References $out, extProc_finish(), getBeforeAfter(), tslib_menu::link(), linkWrap(), tslib_menu::setATagParts(), spacer(), stdWrap(), and tslib_menu::userProcess(). 01441 {
01442 if (is_array($this->result) && count($this->result)) {
01443 $this->WMcObj =t3lib_div::makeInstance('tslib_cObj'); // Create new tslib_cObj for our use
01444 $this->WMresult='';
01445 $this->INPfixMD5 = substr(md5(microtime().'tmenu'),0,4);
01446 $this->WMmenuItems = count($this->result);
01447 $this->extProc_init();
01448 reset($this->result);
01449 while (list($key,$val)=each($this->result)) {
01450 $GLOBALS['TSFE']->register['count_HMENU_MENUOBJ']++;
01451 $GLOBALS['TSFE']->register['count_MENUOBJ']++;
01452
01453 $this->I=array();
01454 $this->WMcObj->start($this->menuArr[$key],'pages'); // Initialize the cObj with the page record of the menu item
01455 $this->I['key'] = $key;
01456 $this->I['INPfix']= $this->imgNameNotRandom?'':'_'.$this->INPfixMD5.'_'.$key;
01457 $this->I['val'] = $val;
01458 $this->I['title'] = $this->WMcObj->stdWrap($this->getPageTitle($this->menuArr[$key]['title'],$this->menuArr[$key]['nav_title']),$this->I['val']['stdWrap.']);
01459 $this->I['uid'] = $this->menuArr[$key]['uid'];
01460 $this->I['mount_pid'] = $this->menuArr[$key]['mount_pid'];
01461 $this->I['pid'] = $this->menuArr[$key]['pid'];
01462 $this->I['spacer'] = $this->menuArr[$key]['isSpacer'];
01463
01464 // Make link tag
01465 $this->I['val']['ATagParams'] = $this->I['val']['ATagParams'] ? ' '.$this->I['val']['ATagParams'] : '';
01466 $this->I['linkHREF'] = $this->link($key,$this->I['val']['altTarget'],$this->mconf['forceTypeValue']);
01467
01468 // Title attribute of links:
01469 $titleAttrValue = $this->WMcObj->stdWrap($this->I['val']['ATagTitle'],$this->I['val']['ATagTitle.']);
01470 if (strlen($titleAttrValue)) {
01471 $this->I['linkHREF']['title'] = $titleAttrValue;
01472 }
01473
01474 // Setting "blurlink()" function:
01475 if (!$this->mconf['noBlur']) {
01476 $this->I['linkHREF']['onFocus']='blurLink(this);';
01477 }
01478
01479 // Make link:
01480 if ($this->I['val']['RO']) {
01481 $this->I['theName'] = $this->imgNamePrefix.$this->I['uid'].$this->I['INPfix'];
01482 $over='';
01483 $out ='';
01484 if ($this->I['val']['beforeROImg']) {
01485 $over.= $this->WMfreezePrefix."over('".$this->I['theName']."before');";
01486 $out.= $this->WMfreezePrefix."out('".$this->I['theName']."before');";
01487 }
01488 if ($this->I['val']['afterROImg']) {
01489 $over.= $this->WMfreezePrefix."over('".$this->I['theName']."after');";
01490 $out.= $this->WMfreezePrefix."out('".$this->I['theName']."after');";
01491 }
01492 $this->I['linkHREF']['onMouseover']=$over;
01493 $this->I['linkHREF']['onMouseout']=$out;
01494 if ($over || $out) $GLOBALS['TSFE']->setJS('mouseOver');
01495
01496 // Change background color:
01497 if ($this->I['val']['RO_chBgColor']) {
01498 $this->addJScolorShiftFunction();
01499 $chBgP = t3lib_div::trimExplode('|',$this->I['val']['RO_chBgColor']);
01500 $this->I['linkHREF']['onMouseover'].="changeBGcolor('".$chBgP[2].$this->I['uid']."','".$chBgP[0]."');";
01501 $this->I['linkHREF']['onMouseout'].="changeBGcolor('".$chBgP[2].$this->I['uid']."','".$chBgP[1]."');";
01502 }
01503
01504 $this->extProc_RO($key);
01505 }
01506
01507
01508 // Calling extra processing function
01509 $this->extProc_beforeLinking($key);
01510
01511 // Compile link tag
01512 if (!$this->I['val']['doNotLinkIt']) {$this->I['val']['doNotLinkIt']=0;}
01513 if (!$this->I['spacer'] && $this->I['val']['doNotLinkIt']!=1) {
01514 $this->setATagParts();
01515 } else {
01516 $this->I['A1'] = '';
01517 $this->I['A2'] = '';
01518 }
01519
01520 // ATAGBeforeWrap processing:
01521 if ($this->I['val']['ATagBeforeWrap']) {
01522 $wrapPartsBefore = explode('|',$this->I['val']['linkWrap']);
01523 $wrapPartsAfter = array('','');
01524 } else {
01525 $wrapPartsBefore = array('','');
01526 $wrapPartsAfter = explode('|',$this->I['val']['linkWrap']);
01527 }
01528 if ($this->I['val']['stdWrap2'] || isset($this->I['val']['stdWrap2.'])) {
01529 $wrapPartsStdWrap = explode($this->I['val']['stdWrap2']?$this->I['val']['stdWrap2']:'|',$this->WMcObj->stdWrap('|',$this->I['val']['stdWrap2.']));
01530 } else {$wrapPartsStdWrap = array('','');}
01531
01532 // Make before, middle and after parts
01533 $this->I['parts'] = array();
01534 $this->I['parts']['before']=$this->getBeforeAfter('before');
01535 $this->I['parts']['stdWrap2_begin']=$wrapPartsStdWrap[0];
01536 if (!$this->I['val']['doNotShowLink']) {
01537 $this->I['parts']['notATagBeforeWrap_begin'] = $wrapPartsAfter[0];
01538 $this->I['parts']['ATag_begin'] = $this->I['A1'];
01539 $this->I['parts']['ATagBeforeWrap_begin'] = $wrapPartsBefore[0];
01540 $this->I['parts']['title'] = $this->I['title'];
01541 $this->I['parts']['ATagBeforeWrap_end'] = $wrapPartsBefore[1];
01542 $this->I['parts']['ATag_end'] = $this->I['A2'];
01543 $this->I['parts']['notATagBeforeWrap_end'] = $wrapPartsAfter[1];
01544 }
01545 $this->I['parts']['stdWrap2_end']=$wrapPartsStdWrap[1];
01546 $this->I['parts']['after']=$this->getBeforeAfter('after');
01547
01548 // Passing I to a user function
01549 if ($this->mconf['IProcFunc']) {
01550 $this->I = $this->userProcess('IProcFunc',$this->I);
01551 }
01552
01553 // Merge parts + beforeAllWrap
01554 $this->I['theItem']= implode('',$this->I['parts']);
01555 $this->I['theItem']= $this->extProc_beforeAllWrap($this->I['theItem'],$key);
01556
01557 // allWrap:
01558 $allWrap = $this->WMcObj->stdWrap($this->I['val']['allWrap'],$this->I['val']['allWrap.']);
01559 $this->I['theItem'] = $this->tmpl->wrap($this->I['theItem'],$allWrap);
01560
01561 if ($this->I['val']['subst_elementUid']) $this->I['theItem'] = str_replace('{elementUid}',$this->I['uid'],$this->I['theItem']);
01562
01563 // allStdWrap:
01564 if (is_array($this->I['val']['allStdWrap.'])) {
01565 $this->I['theItem'] = $this->WMcObj->stdWrap($this->I['theItem'],$this->I['val']['allStdWrap.']);
01566 }
01567
01568 // Calling extra processing function
01569 $this->extProc_afterLinking($key);
01570 }
01571 return $this->extProc_finish();
01572 }
01573 }
|
1.3.8-20040913