Така и така съм седнал да пиша, та рекох преди да изляза в отпуск, да ви подам още малко информация.
Много често из форумите се търсят или предлагат менюта за web страници. В общия случай това са статични JavaScript менюта, което не позволява динамичната им промяна. (статични = закодирани в самата страница - за другарите от наблюдаващите органи)
Често аз използвам един пакет, който наред с всички разновидности на менюта, предлага и използването на дървовидно меню с неограничено влагане, изпълнено чрез PHP и MySQL (базата не е от значение). Пакетът се нарича
phplayersmenu. Сега ще дам тривиален начин за използването му.
1. Създаваме си базата phplayersmenu
2. В така създадената база създаваме 2 таблички по следния начин:
2.1. DROP TABLE IF EXISTS `phplayersmenu`;
CREATE TABLE IF NOT EXISTS `phplayersmenu` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default '1',
`text` text,
`href` text,
`title` text,
`icon` text,
`target` text,
`orderfield` int(11) default '0',
`expanded` tinyint(4) default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=501 ;
2.2. DROP TABLE IF EXISTS `phplayersmenu_i18n`;
CREATE TABLE IF NOT EXISTS `phplayersmenu_i18n` (
`language` varchar(15) NOT NULL,
`id` int(11) NOT NULL,
`text` text,
`title` text,
PRIMARY KEY (`language`,`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Втората таблица служи за езикова поддръжка на менюто. Т.е. ако в 'language' напишем прим. 'bg', в 'id' - id-то на някой елемент от менюто и в 'text' - наименование на български, то при визуализация този елемент ще излиза на български (ако е избран такъв език).
3.Сега следва използването на пакета:
<?php
require_once 'lib/PHPLIB.php';
require_once 'PEAR.php';
require_once 'DB.php';
require_once 'lib/layersmenu-common.inc.php';
require_once 'lib/treemenu.inc.php';
?>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="20%" valign="top">
<div class="normalbox">
<div class="normal">
PHP Tree Menu
</div>
<?php
$mid = new TreeMenu();
$mid->setDBConnParms('mysql://mysql:mysql@localhost/phplayersmenu');
$mid->setTreeMenuTheme('kde_');
$mid->setIconsize(16, 16);
$mid->setImgwww('THEMES/kde/');
//$mid->scanTableForMenu('treemenu1', bg');//ако искаме да заменим някои елементи с техните български наименования
$mid->scanTableForMenu('treemenu1', 'en');
$mid->setSelectedItemById('treemenu1', 50);
print $mid->newTreeMenu('treemenu1');
?>
</div>
</td>
</tr>
</table>
Все пак не препоръчвам такова смесване на PHP и HTML. Използвайте темплейти. Тук го давам така за краткост, както са го писали създателите на пакета.
4.Какво може да се вмъкне в базата данни:
4.1. В таблицата phplayersmenu - import na този phplayersmenu17082007.sql файл.
4.2. В таблицата phplayersmenu_i18n - import на този phplayersmenu_i18n17082007.sql файл.
Ами това е. Разгледайте добре пакета. Той предлага и хоризонтални менюта, както и по-специални, но изпълнени чрез JavaScript.
Надявам се, че съм бил от полза!