Accueil > > > [POO] MENU XHTML HORIZONTAL EXTENSIBLE (MENUEXTENSIBLEX.PHP)
[POO] MENU XHTML HORIZONTAL EXTENSIBLE (MENUEXTENSIBLEX.PHP)
Information sur la source
Description
Bonjour, Cet objet: MenuExtensibleX, sert à créer un menu de manière horizontal, il est extensible ce manipule facilement, ainsi il s'adapte a toutes les résolutions ou touts les contenant. Vous pouvez téléchargez le zip du projet pour obtenir le fichier MenuExtensibleX.php et vous verrez comment votre projet doit ce présenter, de plus les images sont incluse. présentation du fichier de teste (index.php). Le fichier de test montre le fonctionnement de l'objet MenuExtensibleX. Cet objet retourne le menu et aussi un tableau énumérant les erreurs éventuelle et d'autres informations grâce a la méthode getMessage() que l'on affichera dans l'exemple, mais bien évidement à supprimer lors de la fin du projet. MenuExtensibleX prend en paramètre lors de la construction un tableau de chaine de caractères représentant le chemin de l'image et un autre prend les liens des pages cible. Il va sans dire que les cellules des tableaux doivent correspondre, l'image au lien, et identiquement pour le tableau $attribut que nous verrons plus bas. Vous pouvez changer la valeur de la boucle for ne dépassant bien sûr pas le nombre de vos images. Vous êtes limité dans le nombre d'entrée de votre tableau de chemin d'image à 60 cellules. J'ai placé un div parent #general avec une valeur css width dans un attribut "style" pour que vous puissiez aisément modifier la taille du menu et voir son comportement. Avec cette manière d'intégrer un menu via PHP fais que vous ne pouvez pas vraiment accéder au attribut des balise, a moins de retourner dans la class et de faire des modif dessus ce qui peut être gênant si l'on veut attribuer un target="_blank" dans la balise "a". C'est pourquoi on peut récupérer le menu soit avec getMenu() qui retourne l'élément par défaut, soit avec getMenuAvecLienAttribut($attribut) $attribut étant un tableau de chaine de caractères pour chaque balises "a". N'oublier pas d'effacer getMessage() a la fin de votre projet.
Source
- <?php
- /*
- * Ceci est le fichier que teste l'objet MenuExtensibleX
- * il faudra pour ajuster le menu a votre guise, trouver le compromis entre
- * taille et proportion des images et la taille du div id "general" ici plus bas
- * La taille des images ne ce genere pas en modifiant le width de la balise html
- * "img" mais en modifiant la taille en % du div parent de class='sousMenu_x_x',
- * ce dernier div a le css dans un attribut style, pour agire dessus avec du css
- * il sera peut nécéssaire de forcer la valeur width avec un "!important".
- * Observer la source html du menu pour bien distingué les id et class ainsi que
- * les valeurs css présente dans les balises.
- */
- //on inclut l'objet MenuExtensibleX.php
- include 'MenuExtensibleX.php';
- ?>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
- <title>MenuExtensibleX.php</title>
- </head>
- <body>
- <?php
- //NOMBRE MAXI=60
- //on fait une boucle pour
- for($i=0;$i<6;$i++) {
- //récuperer le chemin des images précédement nommer menu1, menu2...
- $images[$i]="image/menu".($i+1).".png";
- //récuperer les lien ici on choisi ce même fichier
- $liens[$i]="index.php";
- }
- //on instancie l'objet
- $menu=new MenuExtensibleX($images,$liens);
- // on écrit un div parent, tres important pour controler la taille du menu
- echo '<div id="general" style="margin:auto;width:75%;">';
- //cette méthode retourne le menu il existe aussi
- //getMenuAvecLienAttribut($attribut) qui prend un Array String
- //repésentant des attribut pour la balise a ex: target="_blank"
- echo $menu->getMenu();
- //on ferme le div
- echo '</div>';
- //cette méthode retourne un tableau d'énumération des données passé
- //en paramètre de l'objet, elle est facultative
- echo $menu->getMessage();
- ?>
- </body>
- </html>
<?php
/*
* Ceci est le fichier que teste l'objet MenuExtensibleX
* il faudra pour ajuster le menu a votre guise, trouver le compromis entre
* taille et proportion des images et la taille du div id "general" ici plus bas
* La taille des images ne ce genere pas en modifiant le width de la balise html
* "img" mais en modifiant la taille en % du div parent de class='sousMenu_x_x',
* ce dernier div a le css dans un attribut style, pour agire dessus avec du css
* il sera peut nécéssaire de forcer la valeur width avec un "!important".
* Observer la source html du menu pour bien distingué les id et class ainsi que
* les valeurs css présente dans les balises.
*/
//on inclut l'objet MenuExtensibleX.php
include 'MenuExtensibleX.php';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>MenuExtensibleX.php</title>
</head>
<body>
<?php
//NOMBRE MAXI=60
//on fait une boucle pour
for($i=0;$i<6;$i++) {
//récuperer le chemin des images précédement nommer menu1, menu2...
$images[$i]="image/menu".($i+1).".png";
//récuperer les lien ici on choisi ce même fichier
$liens[$i]="index.php";
}
//on instancie l'objet
$menu=new MenuExtensibleX($images,$liens);
// on écrit un div parent, tres important pour controler la taille du menu
echo '<div id="general" style="margin:auto;width:75%;">';
//cette méthode retourne le menu il existe aussi
//getMenuAvecLienAttribut($attribut) qui prend un Array String
//repésentant des attribut pour la balise a ex: target="_blank"
echo $menu->getMenu();
//on ferme le div
echo '</div>';
//cette méthode retourne un tableau d'énumération des données passé
//en paramètre de l'objet, elle est facultative
echo $menu->getMessage();
?>
</body>
</html>
Conclusion
Un point sur l'xhtml.
L'élément html Comporte pour chacune de ces balises composantes des "class" et des "id". Les class et les id sont généré dynamiquement a l'aide entre autre de clef crée a partir de vos fichier, on ne peut pas connaitre a l'avance les id ou class, C'est pourquoi il est vivement conseillé de visualiser la source html du menu pour les connaitre. De cette manière vous pourrez consulter le contenue des attributs "style" contenue dans les balises et connaitre les valeurs css a forcer. l'élément retourner par getMenu() est un div évoluant a 100% de la longueur de son conteneur parent, il contient un nombre variable de div représentant chaque lien du menu et c'est ces div qui sont importants. Ces div évoluent a un certain pourcentage équivalant a 100(%) divisé par le nombre de lien, avec du css, on agirai sur le width de ces div (class='sousMenu_x_x') avec un "!important" (pour réduire la taille des images il vaut mieux encore réduire la taille du div parent #general). les balises img a l'intérieur de ces div (class='sousMenu_x_x') évoluent a 100% de ceux la, il faut donc réduire leurs taille pour ajuster la taille des images. citation d'un commentaire: "Il faudra pour ajuster le menu a votre guise, trouver le compromis entre taille et proportion des images et la taille du div id "general". La taille des images ne ce change de préférence pas en modifiant le width de la balise html "img" mais en modifiant la taille en % du div parent de class='sousMenu_x_x'".
Historique
- 15 novembre 2010 21:41:11 :
- corrections.
- 15 novembre 2010 21:48:38 :
- correction.
- 15 novembre 2010 22:01:41 :
- Dernière?? corrections??
- 15 novembre 2010 22:04:18 :
- +1
- 15 novembre 2010 22:07:34 :
- +1
- 15 novembre 2010 22:12:40 :
- +1
- 15 novembre 2010 22:18:55 :
- +1
- 16 novembre 2010 01:29:18 :
- Changement sur l'objet!!!
- 16 novembre 2010 02:25:05 :
- +1
- 16 novembre 2010 13:37:22 :
- +1
- 16 novembre 2010 17:34:16 :
- j'ai éffacé les \r\n que j'ai placé en début d'apres midi par erreur. J'ai essayer de régler le problème rencontré par Cod57 en initialisant le tableau $attribut dans getMenu() avec un foreach et une valeur par défaut "target="_top";
- 17 novembre 2010 13:01:50 :
- +1
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Class POO retourné le nom de l'objet [ par MeTh ]
Bonjour,Comment retourné le nom de l'objet déclaré?exemple :$monobjet = new GridR();comment recuperé $monobjet dans ma class?Merci
php: Menu déroulant [ par manu22 ]
Bonjour à tous,Je veux modifier les données personnels d'un de mes abonnés, pour cela j'ai une page qui s'affiche avec toutes leurs données que je peu
lien php aider je débute please [ par ArC3Nik ]
Bonjour J'ai créer un page mon index.php,j'ai inclu mon menu a gauche et par defaultma page news.php au centre.Je voudrait que quand je clic sur un au
Comment faire marcher menu.php?cat=... [ par lavren ]
Bon voila, j'ai créé une page menu.pph et j'y ai testé les code d'un ancien sujet et aucun ne fonctionnent, je voudrais pouvoir intégré plusieurs page
Include, class et array [ par Hades5k ]
Bonjour! J'ai un petit problème à utiliser un array dans un fichier que j'inclus... voici un peu le code : <?php $classNames = array(); include_onc
pb de dynamisation d'un menu [ par Tchii28 ]
Bonjour,Je dois faire en sorte que certains titres du menu n'y apparaissent pas suivant la personne qui se connecte. Hors toutes les caractéristiques
recherche multicritere (menu deroulant + checkbox) [ par sonicss ]
Salut,je voudrais faire une recherche multicritere qui, à partir de plusieurs menus deroulant activés ou non par des checkbox, m'affichera le resultat
pseudo frames imbriquées [ par attentio ]
bonjour a tous, voila mon probleme, ...je m'obstine desesperement a vouloir imbriquer une pseudo frame dans une autre pseudo frame ... cad qu'une fois
porbleme avec les includes [ par alex288 ]
Je fé un site avec des include, il y a une page de base avec un menu en ho et un bas de page en bas, au milieu un cadre ou les inclu son inséré.commen
Problème de moteur de recherche !! [ par nikita2000 ]
Salut tout le monde !J'ai un soucis pour une recherche multicritère que je voudrais faire.Voila, j'ai fais les 2 menus déroulants (avec les options a
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|