OK, I’m stumped again.
I’m trying to adapt a menu generator called anylink menu from Dynamic Drive to work with CMSB, and I can’t get the $output variables to work correctly.
I’ve set up a multi-record editor called navigation_menu_entries with fields for ‘entry’ (the nav menu main category), a check box that indicates whether to use sub menus or not, and 6 Sub Menu URL and Sub Menu Link text field combinations.
The required code for the menu generator to work is pretty simple ( a 3 entry example):
var about={divclass:'anylinkmenu', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''}
about.items=[
["Resume", "http://www.artculturegroup.com/resume.php"],
["Biography", "http://www.artculturegroup.com/biography.php"] //no comma following last entry!
]
var studio_art={divclass:'anylinkmenu', inlinestyle:'width:150px background:#DAD2D0', linktarget:''}
studio_art.items=[
["Clay", "http://www.artculturegroup.com/studio-art.php?discipline=clay"],
["Glass", "http://www.artculturegroup.com/studio-art.php?discipline=glass"],
["Photography", "http://www.artculturegroup.com/studio-art.php?discipline=photograpy"],
["Mixed Media", "http://www.artculturegroup.com/studio-art.php?discipline=mixed-media"] //no comma following last entry!
]
// A menu entry with no sub menus (divclass and items empty)
var public_art={divclass:'', inlinestyle:'width:150px background:#DAD2D0', linktarget:''}
public_art.items=[
]
So far, my code to generate the above, with up to six submenu entries, is:
<?php $output = ''; ?>
<?php foreach ($navigation_menu_entriesRecords as $record): ?>
<?php if($record['use_submenu'] == '1'):?> <?php $divclass = "anylinkmenu" ?><?php else:?><?php $divclass = "" ?><?php endif?>
<?php $entry = strtolower($record['entry']) ?>
<?php $sub1 = "" ?><?php $sub2 = "" ?><?php $sub3 = "" ?><?php $sub4 = "" ?><?php $sub5 = "" ?><?php $sub6 = "" ?>
<?php if($record['submenu_link_1_url']):?>
<?php $sub1 = "[" . "\"" . $record['submenu_link_1_text']. "\"" ."," . "\"" . $record['submenu_link_1_url'] ."\"" ." ]" . ",";?>
<?php endif?>
<?php if($record['submenu_link_2_url']):?>
<?php $sub2 = "[" . "\"" . $record['submenu_link_2_text']. "\"" ."," . "\"" . $record['submenu_link_2_url'] ."\"" ." ]" . ",";?>
<?php endif?>
<?php if($record['submenu_link_3_url']):?>
<?php $sub1 = "" ?><?php $sub3 = "[" . "\"" . $record['submenu_link_3_text']. "\"" ."," . "\"" . $record['submenu_link_3_url'] ."\"" ." ]" . ",";?>
<?php endif?>
<?php if($record['submenu_link_4_url']):?>
<?php $sub4 = "[" . "\"" . $record['submenu_link_4_text']. "\"" ."," . "\"" . $record['submenu_link_4_url'] ."\"" ." ]" . ",";?>
<?php endif?>
<?php if($record['submenu_link_5_url']):?>
<?php $sub5 = "[" . "\"" . $record['submenu_link_5_text']. "\"" ."," . "\"" . $record['submenu_link_5_url'] ."\"" ." ]" . ",";?>
<?php endif?>
<?php if($record['submenu_link_6_url']):?>
<?php $sub6 = "[" . "\"" . $record['submenu_link_6_text']. "\"" ."," . "\"" . $record['submenu_link_6_url'] ."\"" ." ]" . ",";?>
<?php endif?>
<?php if($record['submenu_link_1_url']):?>
<?php $output .= "$sub1" . "$sub2" . "$sub3" . "$sub4" . "$sub5" . "$sub6" ;
$output= rtrim($output,","); // remove trailing comma
?>
<?php endif?>
var <?= $entry ?>={divclass:'<?= $divclass ?>', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''}
<?= $entry ?>.items=[
<?= $output?>
]
<?php endforeach ?>
]
The result however, cumulatively puts the same $output into each var (once a $subn variable is defined it’s used in all subsequent vars) and I don’t know how to remedy this situation:
var about={divclass:'anylinkmenu', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''} about.items=[ ["Resume","http://www.artculturegroup.com/resume.com" ],["Biography","http://www.artculturegroup.com/biography.com" ] ]
var eco_art={divclass:'', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''} eco_art.items=[ ["Resume","http://www.artculturegroup.com/resume.com" ],["Biography","http://www.artculturegroup.com/biography.com" ] ]
var public_art={divclass:'', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''} public_art.items=[ ["Resume","http://www.artculturegroup.com/resume.com" ],["Biography","http://www.artculturegroup.com/biography.com" ] ]
var studio_art={divclass:'', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''} studio_art.items=[ ["Resume","http://www.artculturegroup.com/resume.com" ],["Biography","http://www.artculturegroup.com/biography.com" ] ]
var consulting={divclass:'', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''} consulting.items=[ ["Resume","http://www.artculturegroup.com/resume.com" ],["Biography","http://www.artculturegroup.com/biography.com" ] ]
var contact={divclass:'', inlinestyle:'width:150px; background:#DAD2D0', linktarget:''} contact.items=[ ["Resume","http://www.artculturegroup.com/resume.com" ],["Biography","http://www.artculturegroup.com/biography.com" ] ] ]
Thanks for any assistance from the many coding gurus,
Jerry Kornbluth
The first CMS Builder reference book is now available on-line!
Take advantage of a free 3 month trial subscription, only for CMSB users, at: http://www.thecmsbcookbook.com/trial.php