begin process at 2012 05 27 18:05:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > [POO] MENU XHTML HORIZONTAL EXTENSIBLE (MENUEXTENSIBLEX.PHP)

[POO] MENU XHTML HORIZONTAL EXTENSIBLE (MENUEXTENSIBLEX.PHP)


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :menu, objet, class, extensible, résolution Niveau :Débutant Date de création :15/11/2010 Date de mise à jour :17/11/2010 13:01:50 Vu / téléchargé :4 734 / 449

Auteur : Dariumis

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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'".

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

Source avec Zip Source avec une capture VOIR QUI VISITE VOTRE SITE
ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET
Source avec Zip Source avec une capture MYPHPCOM 2.1: SYSTÈME DE COMMENTAIRE PHP/MYSQL
Source avec Zip Source avec une capture [POO] FENÊTRE D'ALERTE AVEC DES DIV.
Source avec Zip Source avec une capture [POO] OBJET CONVERTISSANT UN NOMBRE DE SECONDES EN DIFFÉRENT...

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [POO] OBJET CONVERTISSANT UN NOMBRE DE SECONDES EN DIFFÉRENT... par Dariumis
Source avec Zip CLASSE SQL par benjycorp
Source avec Zip CATAPULT FRAMEWORK, VERSION 0.1 : "ORIGIN" par codefalse
Source avec Zip GERER UN ENTREPOT VIA PHP 5 MYSQL VERSION OBJET ( PDO) par fabienenvac
Source avec Zip Source avec une capture CLASS DE MENU DÉROULANT PHP5 par cedriclomb

Commentaires et avis

Commentaire de cod57 le 16/11/2010 10:27:36

Bonjour

J'ai testé ton script sous wamp il fonctionne mais il y a un message d'alerte

Notice: Uninitialized string offset: 0 in C:\wamp\www\menuext\MenuExtensibleX.php on line 273

Notice: Uninitialized string offset: 1 in C:\wamp\www\menuext\MenuExtensibleX.php on line 273

Notice: Uninitialized string offset: 2 in C:\wamp\www\menuext\MenuExtensibleX.php on line 273

Notice: Uninitialized string offset: 3 in C:\wamp\www\menuext\MenuExtensibleX.php on line 273

Notice: Uninitialized string offset: 4 in C:\wamp\www\menuext\MenuExtensibleX.php on line 273

Notice: Uninitialized string offset: 5 in C:\wamp\www\menuext\MenuExtensibleX.php on line 273

a++

Commentaire de Dariumis le 16/11/2010 12:07:36

Salut, merci de me le dire, j'ai paramètré mon serveur de maniere trop souple ce qui fait que j'ai pas ces erreurs, je vais regler ça merci beaucoup.

Commentaire de Dariumis le 16/11/2010 13:49:57

J'arrive pas a obtenir ces erreurs, et ça m'ennuie beaucoup, j'arrive pas a mettre toutes les erreur dans php.ini de mon wamp. J'ai changé quelque chose, mais je ne pense pas que ce soit ça. Dés que j'ai plus de temps je m'y plonge plus sérieusement. a++.

Commentaire de cod57 le 16/11/2010 14:45:19

bonjour

$str.="        <a ".$attribut[$cpt-1]." class=\"lien_$idMenu1\" id=\"lien_".$idMenu."_$cpt\" href=\"".$this->lesLiens[$cpt-1]."\">\r\n";

Quand je devalide la ligne l'erreur disparait tu me diras c'est normal ... je regarde de mon coté si je trouve ...

Commentaire de Dariumis le 16/11/2010 15:02:53

Salut en fait je pense que ça vient de $attribut et la maniere dont je l'ai initialiser comme une simple chaine de caracteres dans la méthode getMenu() j'suis presque sur que c'est ça, J'arrange ça en fin d'aprés midi, je pense que l'erreur ne ce produira pas en utilisant getMenuAvecLienAttribut($attribut) en passant un array d'attribut pour les balise a. En tous cas merci de ta sollicitude^^.

Commentaire de cod57 le 16/11/2010 15:04:56

$str.=" <a ";
//$str.=" ".$attribut[$cpt-1]." ";
$str.=" class=\"lien_$idMenu1\" id=\"lien_".$idMenu."_$cpt\" ";
$str.=" href=\"".$this->lesLiens[$cpt-1]."\" >\r\n";

en faisant ça l'erreur disparait

il semble que le tableau $attribut est manquant

Commentaire de Dariumis le 16/11/2010 16:41:27

oui c'est ce que je pense, dans getMenu() je l'ai mal initialiser $attribut, il faut que fasse un foreach de la taille du tableau $this->lesImages, dans getMenu()  et que je lui donne des valeurs par défaut ex: $attribut[$i]='target="_top"'; il faut que je mette des attribut par défaut dans le menu via la méthode getMenu().

Commentaire de Dariumis le 16/11/2010 17:39:41

Je pense que ça doit être bon maintenant, mais comme je vois pas l'erreur j'en suis pas sûr, maintenant faut que j'arrive paramétrer mon fichier php.ini pour voir toutes les erreurs merci de me l'avoir signaler.

Commentaire de DiGhan le 19/11/2010 08:50:31

Fixer son environnement de développement est une chose primordiale :

error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);

Les erreurs s'afficheront.

Commentaire de Dariumis le 19/11/2010 14:38:18

Je m'en suis aperçu quant j'ai changé de serveur pour easyPhp, merci beaucoup j'éssayerai de regler ça.

 Ajouter un commentaire


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 : &lt;?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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales