download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Дървовидно меню чрез PHP и MySQL

Автор
Съобщение
anonymous
Пет, 17.08.07, 13:23
Така и така съм седнал да пиша, та рекох преди да изляза в отпуск, да ви подам още малко информация.
Много често из форумите се търсят или предлагат менюта за 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.
Надявам се, че съм бил от полза!

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.