University of Oregon

Conditional menu behavior in Drupal

I added some code to the page.tpl.php to change the behavior of the elearning page on ODT for logged in vs anonymous viewers.

path=="elearning"){?>
    $(document).ready(function() {
uid) {?>
				$('.expanded').each( function(){Drupal.dhtmlMenu.toggleMenu($(this));}); //Close all
				Drupal.dhtmlMenu.toggleMenu($('#skillport-login')); //Open login button section

				$('.collapsed').each( function(){Drupal.dhtmlMenu.toggleMenu($(this));}); //Open all

		});
		

(more…)

Drupal: Expand / collapse all dhtml menu items

Like dhtml menus in Drupal? Then you’ll love this.
Two jquery functions that expand or collapse all dhtml menu items in Drupal in link/bookmarklet format:

javascript:$('.collapsed').each( function(){Drupal.dhtmlMenu.toggleMenu($(this));});void("Open all");
javascript:$('.expanded').each( function(){Drupal.dhtmlMenu.toggleMenu($(this));});void("Close all");

Drag this to your bookmark tool bar and enjoy menu control like never before:
Expand all menus
Collapse all menus
(more…)

Inserting a custom menu group into a drupal suckerfish menu

We have a huge anchored document with and equally huge TOC. There’s also a traditional drupal menu on that page.
My goal was to get the inline menu into the drupal menu.

Div swapping didn’t work ie: div1.innerHTML = div2.innerHTML. The menu showed up but the open / close functionality was lost.

So moving the node was the key.


		$(document).ready(function() {
			document.getElementById('dhtml_menu-254').parentNode.className='first dhtml-menu collapsed start-collapsed';
			insertAfter(document.getElementById('toc'),document.getElementById('dhtml_menu-252'));
			node2delete=document.getElementById("dhtml_menu-269").parentNode;
			node2delete.parentNode.removeChild(node2delete);
		});

		//create function, it expects 2 values.
		function insertAfter(newElement,targetElement) {
			//target is what you want it to go after. Look for this elements parent.
			var parent = targetElement.parentNode;
			//if the parents lastchild is the targetElement...
			if(parent.lastchild == targetElement) {
				//add the newElement after the target element.
				parent.appendChild(newElement);
			} else {
				// else the target has siblings, insert the new element between the target and it's next sibling.
				parent.insertBefore(newElement, targetElement.nextSibling);
			}
		}