Home Back
     
 

 

 

Basismap Intra- Internet programmeren
Categorie Programmeren  Uitklapbaar menu

Bestanden:
-menu_class.php
-menu_vb.php


1:menu_class.php
 
Code:

<?php

//______________ 1.Contact maken met de databank____________________________________________
   $db_user = '';          //Ingave gebruikersnaam voor mysql-gastheer
   $db_pass = '';          //Ingave wachtwoord for voor mysql-gastheer
   $db_host = 'localhost';   //Ingave servernaam [gewoonlijk : localhost]
   $db_name = 'test';      //Enter your Database name

   $con= @mysql_connect("$db_host","$db_user","$db_pass")
   or die ("Kan geen contact maken met de gastheer.");

   $db = @mysql_select_db("$db_name",$con)
   or die ("Kan geen contact leggen met $db_name databank.<br>Controleer
   details aangaande de databankconnectie en probeer opnieuw");


//_____________ 2. De Klasse Menu configureren _______________________________________________
class menu {
    var $tabel;               
    var $tabeltitel;
    var $tabelnr;              // om verschillende menus kunnen weer te geven
    var $veldrang;             // het veld waarop we sorteren
    var $rangorde;             // de volgorde van sorteren     
    var $Kol = array();
    var $KolNaam  = array();
    var $limiet = 30;   
               
    var $AG_tabel;             // waarden gezet in TD
    var $AG_td;             // rij waar de lichtband niet moet oplichten;
    var $Stijl = array();


    //______________________________ Klasse-functie : Tabelnaam opgeven ________________________________
   
    function ZetTable($tabel) {
        $this->tabel = $tabel;
    }
    //______________________________ Klasse-functie : Hoofding + menu-nr opgeven _______________________

    function ZetTabelTitel($titel,$nr) {
        $this->tabeltitel = $titel;
        $this->tabelnr = $nr;
    }

    //______________________________ Klasse-functie : Rangorde bepalen __________________________________

    function ZetRangOrde($veld, $volgorde) {
        $this->veldrang = $veld;
        $this->rangorde = $volgorde;
    }

    //______________________________ Klasse-functie : Kolom en Kolomhoofding _____________________________

    function ZetKol($veld, $omschrijving) {
        $this->Kol[] = $veld;
        $this->KolNaam[] = $omschrijving;
    }
    //______________________________ Klasse-functie : stijlen ____________________________________________

    function ZetStijl($stijlen) {
        $this->Stijl[] = $stijlen;
    }       
    function ZetAG_tabel($html) {
        $this->AG_tabel = $html;
    }
    function ZetAG_td($html) {
        $this->AG_td = $html;
    }   
    //______________________________ Klasse-functie : Haal menuinfo ______________________________________

    function HaalMenu () {
        $query = "SELECT * FROM ". $this->tabel;
        $sql = mysql_query($query) or die(mysql_error());
    }

    //______________________________ Klasse-functie : Maak de html-code __________________________________

    function MaakHtml() {

      print "
      <td ".$this->Stijl[1]." onClick='expandit(this)' class= ".$this->AG_tabel."</td>
       ".$this->tabeltitel."<span style='display:none'><table width='100%' cellspacing='0' height='16' >
          <TBODY ONMOUSEOVER='lichtband(true)' ONMOUSEOUT='lichtband(false)'>";
   
        $this->HaalMenu();       
        $query = "SELECT * FROM $this->tabel WHERE 1 AND `Menu_id`=$this->tabelnr ORDER BY $this->veldrang $this->rangorde LIMIT 0, $this->limiet";
        $sql = mysql_query($query) or die(mysql_error());             // de records ophalen
        $row = mysql_fetch_object($sql);
       print "<tr><td ".$this->Stijl[2]." width='150' valign='bottom' bgcolor='#7893A0' >&nbsp;</td>";
       print "<td ".$this->Stijl[2]." width='' valign='bottom' >&nbsp;</td>";
       print "<td ".$this->Stijl[2]." width='' valign='bottom' align='center'>".$this->KolNaam[3]."</td>";
       print "<td ".$this->Stijl[2]." width='' valign='bottom' align='center'>".$this->KolNaam[4]."</td>";
       print "<td ".$this->Stijl[2]." width='' valign='bottom' align='center'>".$this->KolNaam[5]."</td>";
       print "<td ".$this->Stijl[2]." width='' valign='bottom' align='center'>".$this->KolNaam[6]."</td></tr>";

        while($row = mysql_fetch_object($sql)) {
            $subrecord = $this->Kol[0];
            print "<tr><a href=".$row->$subrecord.">";
            $subrecord = $this->Kol[1];
            print "<td class='menutitel' width='' width='100' valign='top' height='15' style='border-bottom: 1px solid #4F6B79'>".$row->$subrecord."</td>";
            $subrecord = $this->Kol[2];
            print "<td class='menutitel'  valign='top' height='15' style='border-bottom: 1px solid #4F6B79'>".$row->$subrecord."</td>";
            $subrecord = $this->Kol[3];
            print "<td ".$this->Stijl[3]." width='' valign='top' height='15'>".$row->$subrecord."</td>";
            $subrecord = $this->Kol[4];
            print "<td ".$this->Stijl[4]." width='' valign='top' height='15'>".$row->$subrecord."</td>";
            $subrecord = $this->Kol[5];
            print "<td ".$this->Stijl[5]." width='' valign='top' height='15'>".$row->$subrecord."</td>";
            $subrecord = $this->Kol[6];
            print "<td ".$this->Stijl[6]." width='' valign='top' height='15'align='center'>".$row->$subrecord."</td>";
         print "</a>";
           print "</tr>";           
           }
       print "<tr><td width='100' height='16' ".$this->AG_td.">&nbsp;</td>";
       print "<td width='' height='16' ".$this->AG_td.">&nbsp;</td>";
       print "<td width='' height='16' ".$this->AG_td."> &nbsp;</td>";
       print "<td width='' height='16' ".$this->AG_td."> &nbsp;</td>";
       print "<td width='' height='16' ".$this->AG_td."> &nbsp;</td>";
       print "<td width='' height='16' ".$this->AG_td."> &nbsp;</td></tr>";
       print "</TBODY></table></span></td></tr>";
    }
   
}
//______________ Java functies and stijlen _______________________________
?>

<script language="javascript">
/* voor het uitklappen van de contents */
var ns6=document.getElementById&&!document.all?1:0

var head="display:''"
var folder=''

function expandit(curobj){
    folder=ns6?curobj.nextSibling.nextSibling.style:document.all[curobj.sourceIndex+1].style
    if (folder.display=="none")
        folder.display=""
    else
        folder.display="none"
}

function haalelement(el) {
    var tagList = new Object
    for (var i = 1; i < arguments.length; i++)
      tagList[arguments[i]] = true
    while ((el!=null) && (tagList[el.tagName]==null))
      el = el.parentElement     
    return el
  }

function lichtband(janee) {
    var el = haalelement(event.srcElement,"TD")
    if (el==null) return
    if ((el.tagName=="TD")) {
      var rij = haalelement(el, "TR")
      if (janee)
        rij.className = "rijover"
      else
        rij.className = ""
                    }
  }
</script>
<style>
.rijover {background-color:#5B7B8B;color:#FFFFFF;cursor:hand;}
</style>
 

2:menu_vb.php
 
Code:

<html>
<title>menu voorbeeld</title>
<head>
<LINK REL=STYLESHEET TYPE="text/css" HREF="themas/default/default.css">
<style>
.menutitel{
font-family:Tahoma;
font-size:10pt;
font-weight:bold;
color:#FFFFFF;
border-bottom:1px solid #000000;
cursor:hand;
border-left-width:1px;
border-right-width:1px;
border-top-width:1px;
}
.kolhoofd{
font-family:Verdana;
font-size:8pt;
background-color:#5B7B8B;
color:#FFFFFF;
cursor:hand;
border-bottom:1px solid #000000;
border-left 1px solid #000000;
border-right 1px solid #000000;
border-top:1px solid #000000;
letter-spacing: -1px;
}

.kolgeel{
font-family:Verdana;
font-size:8pt;
color:#000000;
background-color:#FFFFEB;
border-bottom:1px solid #000000;
cursor:hand;
border-left-width:1px;
border-right-width:1px;
border-top-width:1px;
letter-spacing: -1px;
}
.kolgroen{
font-family:Verdana;
font-size:8pt;
color:#000000;
background-color:#D2ECD8;
border-bottom:1px solid #000000;
cursor:hand;
border-left-width:1px;
border-right-width:1px;
border-top-width:1px;
letter-spacing: -1px;
}

.kolrood{
font-family:Verdana;
font-size:8pt;
color:#000000;
background-color:#FFECD1;
border-bottom:1px solid #000000;
cursor:hand;
border-left-width:1px;
border-right-width:1px;
border-top-width:1px;
letter-spacing: -1px;
}
.kolblauw{
font-family:Verdana;
font-size:8pt;
color:#000000;
background-color:#BCCCD4;
border-bottom:1px solid #000000;
cursor:hand;
border-left-width:1px;
border-right-width:1px;
border-top-width:1px;
letter-spacing: -1px;
}
.mini{
font-family: Verdana;
border-right:1px solid #000000;
border-bottom:1px solid #000000;
font-size: 10px;
letter-spacing: -1px;
}
         
</style>
<?php
include ("menu_class.php");
?>
</head>

<body topmargin="10" leftmargin="0" bgcolor="#5B7B8B">

<div align="center">

<table border="0" hight = "16" width = "90%" cellspacing="4" cellpadding="0" >
<tr>
   <td bgcolor="#4F6B79" style="border-left: 1px solid #000000; border-right-width: 1px; border-top: 1px solid #000000; border-bottom: 1px solid #000000" colspan="2">
   <p align="left"><b><font face="Webdings" size="2" color="#FFFFFF">&nbsp;2</font><font color="#FFFFFF" size="2" face="Verdana">
   Tribuun</font></b></td>
</tr>
<tr>
   <td width="87" valign="top">&nbsp;</td>
   <td class="subtitel" align="left" valign="top" width="667">
   &nbsp;</td>
</tr>




<tr><td width='85' bgcolor='#7893A0' style='border-left:1px solid #FFFFFF; border-top:1px solid #FFFFFF; border-right-style:solid; border-right-width:1px; border-bottom-style:solid; border-bottom-width:1px' valign='top'>
   <p align="center">
   <b><font face="Webdings" size="2" color="#FFFFFF">8</font></b></td>    
<?
$Menu_1 = new menu;                          // initiatie
$Menu_1->ZetTable("menu");                 // tabelnaam in sqldatabank
$Menu_1->ZetTabelTitel("Administratie","1");// titel van het menu + menuID voor ophaling uit databank
$Menu_1->ZetRangOrde("ID", "ASC");         // veldnaam + rangorde

$Menu_1->ZetKol("Schakel", "");            // zet de kol[0] + kolomtitel
$Menu_1->ZetKol("Item","");             // zet de kol[1] + kolomtitel
$Menu_1->ZetKol("Beschrijving", "");         // zet de kol[2] + kolomtitel
$Menu_1->ZetKol("Laatste_raad", "LRP");      // zet de kol[3] + kolomtitel
$Menu_1->ZetKol("Aant_rec", "Aant.rec");    // zet de kol[4] + kolomtitel
$Menu_1->ZetKol("Nieuw_bericht", "NB");    // zet de kol[5] + kolomtitel
$Menu_1->ZetKol("Toegang", "?");          // zet de kol[6] + kolomtitel

$Menu_1->ZetStijl("");                  //[0] niet gebruikt (schakel)
$Menu_1->ZetStijl("class='menutitel'");    //[1]
$Menu_1->ZetStijl("class='kolhoofd'");      //[2]
$Menu_1->ZetStijl("class='kolgeel'");      //[3]
$Menu_1->ZetStijl("class='kolgroen'");      //[4]
$Menu_1->ZetStijl("class='kolrood'");      //[5]
$Menu_1->ZetStijl("class='kolblauw'");      //[6]
$Menu_1->ZetAG_tabel("align='left' valign='top' width='580' bgcolor='#638697'");
$Menu_1->ZetAG_td("bgcolor='#638697'");

$Menu_1->MaakHtml();                      // geef de records weer
?>





<tr>
   <td width="87">&nbsp;</td>
   <td class="subtitel"  align="left" valign="top" width="667">
   &nbsp;</td>
</tr>

<tr><td width="85" bgcolor="#7893A0" style="border: 1px solid #FFFFFF" valign="top">
   <p align="center"><b><font face="Webdings" size="2" color="#FFFFFF">8</font></b></td>    
<?
$Menu_2 = new menu;                          // initiatie
$Menu_2->ZetTable("menu");                 // tabelnaam in sqldatabank
$Menu_2->ZetTabelTitel("Afdeling Verkopen","2");// titel van het menu + menuID voor ophaling uit databank
$Menu_2->ZetRangOrde("ID", "ASC");         // veldnaam + rangorde

$Menu_2->ZetKol("Schakel", "");           // zet de kol[0] + kolomtitel
$Menu_2->ZetKol("Item","");               // zet de kol[1] + kolomtitel
$Menu_2->ZetKol("Beschrijving", "");         // zet de kol[2] + kolomtitel
$Menu_2->ZetKol("Laatste_raad", "LRP");      // zet de kol[3] + kolomtitel
$Menu_2->ZetKol("Aant_rec", "AR");          // zet de kol[4] + kolomtitel
$Menu_2->ZetKol("Nieuw_bericht", "NB");    // zet de kol[5] + kolomtitel
$Menu_2->ZetKol("Toegang", "?");          // zet de kol[6] + kolomtitel


$Menu_2->ZetStijl("");                  //[0] niet gebruikt (schakel)
$Menu_2->ZetStijl("class='menutitel'");    //[1]
$Menu_2->ZetStijl("class='kolhoofd'");      //[2]
$Menu_2->ZetStijl("class='mini'");         //[3]
$Menu_2->ZetStijl("class='mini'");         //[4]
$Menu_2->ZetStijl("class='mini'");         //[5]
$Menu_2->ZetStijl("class='kolblauw'");      //[6]
$Menu_2->ZetAG_tabel("align='left' valign='top' width='580' bgcolor='#638697'");
$Menu_2->ZetAG_td("bgcolor='#638697'");

$Menu_2->MaakHtml();                      // geef de records weer
?>

<tr>
   <td width="87">&nbsp;</td>
   <td class="subtitel" align="left" valign="top" width="667">
   &nbsp;</td>
</tr>

</table>
</div>
&nbsp;<blockquote>
   <p><u><font color="#FFFFFF" face="Verdana" size="1">OntwerpInfo</font></u></p>
   <p></dt><font size="1" face="Verdana" color="#FFFFFF">Algemeen:</font></p>
   <menu>
      <li><font face="Verdana" size="1" color="#FFFFFF">Basisblad werd
      aangemaakt als htm</font></li>
      <li><font face="Verdana" size="1" color="#FFFFFF">opgeslagen als php</font></li>
      <li><font face="Verdana" size="1" color="#FFFFFF">de php class [bestand
      : menu_class php] werd ingelast [ include...]</font></li>
      <li><font face="Verdana" size="1" color="#FFFFFF">De php-class aanroep
      werd toegepast op de voorziene cellen [td onclick expand]</font></li>
      <li><font color="#FFFFFF" face="Verdana" size="1">Het basisblad blijft
      in ontwerpmodus steeds toegankelijk voor dessign of andere modificaties.</font></li>
   </menu>
   <p><font color="#FFFFFF" face="Verdana" size="1">Kolombreedte eerste item :
   </font></p>
   <blockquote>
      <dl>
         <dt><font face="Verdana" size="1" color="#FFFFFF">Schakellocatie
         wordt bepaald in MySql tabel [menu item:schakel]</font></dt>
         <dt><font color="#FFFFFF" face="Verdana" size="1">width=150 [Zie
         bestand : menu_class.php] Voor langere items : vergroten.[Dit om te
         vermijden dat de rest van de kolommen mee gaat verspringen bij muis-over].</font></dt>
      </dl>
   </blockquote>
</blockquote>

</html>
 

Demo
http://www.tribuun.com/Kantoren/projectdemo/mod_menu/menu_vb.php
Tabelstructuur van het voorbeeld
 
Code:

# phpMyAdmin MySQL-Dump
# version 2.3.0
# http://phpwizard.net/phpMyAdmin/
# http://www.phpmyadmin.net/ (download page)
#
# Host: localhost
# Generatie Tijd:   Jul 2004 om 17:33
# Server versie: 4.00.15
# PHP Versie: 4.3.7
# Database : `test`
# --------------------------------------------------------

#
# Tabel structuur voor tabel `menu`
#

CREATE TABLE menu (
  ID int(11) NOT NULL auto_increment,
  Item varchar(100) NOT NULL default '',
  Schakel varchar(150) NOT NULL default '',
  Beschrijving tinytext NOT NULL,
  Laatste_raad date NOT NULL default '0000-00-00',
  Aant_rec int(11) NOT NULL default '0',
  Nieuw_bericht char(1) NOT NULL default '',
  Toegang char(1) NOT NULL default '',
  Menu_id int(11) NOT NULL default '0',
  PRIMARY KEY  (ID)
) TYPE=MyISAM;

#
# Gegevens worden uitgevoerd voor tabel `menu`
#

INSERT INTO menu VALUES (1, 'Administratie', '', '', '0000-00-00', 0, '', '', 1);
INSERT INTO menu VALUES (2, 'Personeel', 'adm_pers.php', 'Adressen<br>\r\nInformatiekaart', '2004-07-15', 12, '0', '1', 1);
INSERT INTO menu VALUES (3, 'Adm.Diensten', 'adm_diensten.php', 'Adressenlijst<br>\r\nMap correspondentie\r\n', '2004-07-12', 10, '1', '1', 1);
INSERT INTO menu VALUES (4, 'Lonen en wedden', 'adm_LonenWedden.php', 'Detail<br>\r\nTotalen<br>\r\nVacantiegeld', '2004-07-12', 15, '0', '1', 1);
INSERT INTO menu VALUES (5, 'Verkopen', '', '', '0000-00-00', 0, '', '', 2);
INSERT INTO menu VALUES (6, 'Klanten', 'klanten.php', 'Klantenbestand\r\nBestellingen\r\nBriefwisseling', '2004-07-12', 10, '0', '1', 2);
INSERT INTO menu VALUES (7, 'Bestellingen', 'leveringen.php', 'Leveringsagenda\r\nTransportinfo', '2004-07-12', 16, '0', '1', 2);
 
 

Copyright (c) 2005 :: willems piet