CHips L MINI SHELL

CHips L pro

Current Path : /opt/cpanel/ea-php56/root/usr/share/doc/pear/DB_NestedSet/docs/
Upload File :
Current File : //opt/cpanel/ea-php56/root/usr/share/doc/pear/DB_NestedSet/docs/TigraMenu_example.php

<?php
/**
 * $Id: TigraMenu_example.php 127127 2003-05-15 16:23:09Z jrust $
 * This example shows how to use the TigraMenu output driver
 *
 * @author Daniel Khan <dk@webcluster.at>
 */

// This example assumes that you have allready set up DB_NestedSet and allready
// inserted nodes.

// First you have to get TigraMenu
// It's available for free at http://www.softcomplex.com/products/tigra_menu/
// Please read the docs for TigraMenu - they are nice and verbose and will help
// you to understand the params passed to the driver
// No - I'll do no JavaScript support ;)


/*
Content of test.php:
------------------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>{sitename}</title>

<script language="JavaScript" src="/js/menu_items.php">
<!--
//--> 
</script>

<script language="JavaScript" src="/js/menu.js">
<!--
//--> 
</script>

</head>
<body>

<b>Just testing</b>
<script language="JavaScript">

<!--
	new menu (MENU_ITEMS1, MENU_POS1, MENU_STYLES1); 
//--> 

</script> 
</body>
</html>


/*
Content of menu_items.php:
------------------------
*/

require_once('DB/NestedSet.php');
require_once('DB/NestedSet/Output.php');

// Choose a database abstraction layer. 'DB' and 'MDB' are supported.
$nese_driver = 'DB';

// Set the DSN - see http://pear.php.net/manual/en/core.db.tut_dsn.php for details
$nese_dsn = 'mysql://user:password@localhost/test';

// Specify the database columns which will be used to specify a node
// Use an associative array. On the left side write down the name of the column.
// On the right side write down how the property will be called in a node object
// Some params are needed
$nese_params = array
(
"STRID"         =>      "id",      // "id" must exist
"ROOTID"        =>      "rootid",  // "rootid" must exist
"l"             =>      "l",       // "l" must exist
"r"             =>      "r",       // "r" must exist
"STREH"         =>      "norder",  // "order" must exist
"LEVEL"         =>      "level",   // "level" must exist
"STRNA"         =>      "name",
"STLNK"         =>      "link"     // Custom - specify as many fields you want
);

// Now create an instance of DB_NestedSet
$NeSe = & DB_NestedSet::factory($nese_driver, $nese_dsn, $nese_params);
if(PEAR::isError($NeSe)) {
	echo $NeSe->getCode().": ".$NeSe->getMessage();
}

// Fetch the tree as array
$nodes = $NeSe->getAllNodes(true);

// Set the basic params
$params = array(
'structure' => $nodes,
'options' => array(
),
'textField' => 'name', // Use the name column for the menu names
'linkField' => 'link', // Use the link column for the links
'currentLevel' => 1	   // Start the ouput with this level
);

// This array contains the options needed
// for printing out the menu.
$options = array
(
// The style properties for the top level
'rootStyles' => array(

	'onmouseout' => array(
		'color'=>'#FF0000',
		'background'=>'#000000',
		'textDecoration'=>'none',
		'border'=>"1px solid #FFFFFF",
		'fontSize' => '11px',
		'fontFamily' => 'Verdana, Arial, Helvetica, sans-serif',
		'fontWeight' => 'bold',
		'textAlign' => 'center',
		'padding' => '2px'
	// Set any JavaScript compatible style params here
	// Note that this properties also have to exist in
	// the child menu.
	// Set them to 'none' or other values there
	// to get another output
	),
	'onmouseover' => array(
		'color'=>'#FFFFFF',
		'background'=>'#000000',
		'textDecoration'=>'none'

	),
	'onmousedown' => array(
		'color'=>'#FFFFFF',
		'background'=>'#000000',
		'textDecoration'=>'none'

)
),
	'childStyles' => array(
		'onmouseout' => array(
		'color'=>'#000000',
		'background'=>'#CCCCCC',
		'textDecoration'=>'none',
		'border'=>"1px solid #FFFFFF",
		'fontSize' => '11px',
		'fontFamily' => 'Verdana, Arial, Helvetica, sans-serif',
		'fontWeight' => 'normal',
		'textAlign' => 'left',
		'padding' => '2px'
	),
		'onmouseover' => array(
			'color'=>'#FFFFFF',
			'background'=>'#EEEEEE',
			'textDecoration'=>'none'

	),
	'onmousedown' => array(
			'color'=>'#FFFFFF',
			'background'=>'#EEEEEE',
			'textDecoration'=>'none'

	)
),
	// Geometry sets the positioning and the
	// proportions of the menu
	// It can also be set for the top level and the sublevels
	// Note that this properties also have to exist in
	// the child menu.
	// Please look at the fine TigraMenu docs
	// They have nice pictures describing the properties below
	// Special settings are explained here
	'rootGeometry' => array(
		'width' => '120',
		'height' => '21',
		'left' => '119', 
		'top' => '0',
		'block_left' => '169',
		'block_top' => '121',
		'hide_delay' => '200'

	),
	'childGeometry' => array(
	
		// If you use '*' the width is considered to be x * max chars within this submenu
		// e.g. 6 * 12
		// This is useful if you want that the menu auto sizes with the menu item name's length
		// The item width will can not be smaller than the root items with.
		// You will have to try different values depending on the font/size you use
		// If you want fixed with just remove the '*' 
		// e.g. 'width' => '100'
		'width' => '*6',
		'height' => '21',
		'left' => '0',
		'top' => '20',
		
		// Sets the horizontal offset between different levels
		// In this case the first submenu level after the root will have no offset
		// After that we will have -5 offset (overlapping) between the items
		'block_left' => '0,-5', 
		
		// Sets the vertical offset between different levels
		// In this case the first submenu level after the root will have 20px offset
		// After that we will have -10px offset (overlapping) between the items		
		'block_top' => '20,10',
		'hide_delay' => '2000'
	),
'menu_id'=>1 	// This is the menu id used to call the menu from JavaScript: 
				// new menu (MENU_ITEMS1, MENU_POS1, MENU_STYLES1);
);


// Now create the menu object, set the options and do the output
$menu =& DB_NestedSet_Output::factory($params, 'TigraMenu');
$menu->setOptions('printTree', $options);
$menu->printTree();


// Have fun!
?>



Copyright 2K16 - 2K18 Indonesian Hacker Rulez