Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASSE GÉRANT L'AFFICHAGE DES PAGES D'UN SITE INTERNET, L'ADMINISTRATION DE CES PAGES, ET L'AFFICHAGE EN PLUSIEURS LANGUES + URL-REWRITING.


Information sur la source

Catégorie :Class et Objet ( POO ) Classé sous : php5, gestion, affichage, index, navigation Niveau : Initié Date de création : 21/02/2007 Date de mise à jour : 06/10/2007 06:25:52 Vu : 4 647

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

Description

Bonjour,

C'est la première fois que je poste une source sur ce site, donc merci d'être indulgent. Je vous propose cette classe dans le but de partager mon travail avec cette communauté, mais aussi d'en profiter pour l'améliorer en fonction de vos remarques.

Cette classe sert à gérer l'affichage du contenu d'un site internet, quelle que soit la page demandée. (ex : http://www.mon-site.com/accueil.html affichera les parties communes du site comme le header, les menus, et le footer, et incluera le fichier "/accueil/index.php"). Jusque là, rien de bien extraordinaire. Mais cette dernière gère aussi le choix de la langue, et l'accès aux pages d'administration (avec login/mdp).

Bien que cela ne soit pas franchement compliqué à mettre en place, cette classe vous permet de vous faire gagner du temps, et éviter au maximum des erreurs (dues à des copier-coller ou à des fautes de frappe par exemple). En effet, presque tous les sites nécessitent des pages d'administration, et l'affichage de multiples pages. Avec cette classe, tout celà est déjà en place. Vous n'avez plus qu'à créer vos pages dans les bon répertoires, et le tour est joué!

J'espère que mon code vous servira, et que vous m'indiquerez quoi changer pour l'améliorer ;)
 

Conclusion

Je le répète une fois de plus : je n'ai pas la science-infuse , le code peut peut être être amélioré, et je compte justement sur vous pour me dire ce qui ne va pas. Ce n'est pas non plus un code qui va révolutionner le monde informatique : il permet juste de gagner du temps, et d'éviter d'avoir à retapper tout le temps les mêmes bouts de code d'un site à l'autre.

Biensûr, il aurait été possible de faire tout cela en procédural avec des fonctions, mais bon... un objet, c'est beau, c'est doux, c'est gentil... heuu je m'égare :p Pour faire simple, je pense que le langage objet permet d'utiliser plus simplement ce module, grâce aux attributs de classes (moins de paramètres à passer dans les fonctions) par exemple.

N'hésitez pas à laisser un petit commentaires d'encouragement, ou avec des remarques si vous avez des questions, ou si vous avez trouvé des erreurs dans mon code. Ca fait toujours plaisir!

En bonus, je vous ai mis mon .htaccess gérant l'url-rewriting de mon site, et même les fichiers m'ayant permis de créer un design extensible. Je sais, ça n'a rien à voir avec ma classe, mais ça pourra vous permettre de la tester rapidement ;)
 

Historique

21 février 2007 17:42:12 :
Correction d'une faute de frappe :p
24 février 2007 01:33:37 :
- Test de la connection MySQL et de la sélection de la DB; - Amélioration de la sécurité par l'ajout de $_SERVER['DOCUMENT_ROOT'] avant l'inclusion des fichiers; - Divers petites modifications (remplacement de certains guillemets par des apostrophes, ajout de variables de classe etc)
25 février 2007 18:04:00 :
- Modification des textes - Ajout de la gestion de différentes langues - Ajout de la page de login (pour administrer les pages)
06 octobre 2007 06:25:52 :
Code supprimé suite au peu de retour par rapport au nombre de dl

Commentaires et avis

signaler à un administrateur
Commentaire de coockiesch le 21/02/2007 21:16:35

Salut!
Quelques petites remarques de base:
- il serait pas mal de tester la connection et la sélection de la bdd, pcq si ca foire, personne n'en sait rien et ton script va continuer...

- c'est mieux d'utiliser ' ' que " ", même pour des trucs genre:
"$op/$sop/$ssop.php5" --> $op . '/' . $sop . '/' . $ssop . '.php5'

Pour le reste, je ne suis pas très convaincu: c'est à la fois trop compliqué et trop simple ; trop compliqué dans le sens ou je ne sais pas si une classe pour faire des trucs dans le genre, c'est pas un peu de la grosse artilerie ; trop simple dans le sens ou tant qu'à faire une classe, autant faire plus de fonctionnalités... Mais ca, ce n'est que mon avis! :)

@++

R@f

signaler à un administrateur
Commentaire de gwendal84 le 22/02/2007 11:18:51

hum

tes variables $op, $sop et $ssop viennent directement du navigateur (du moins si on contourne ton url rewriting, ou qu'on utilise les codages spéciaux pour les url (style %20 pour les espaces))

bref, en cherchant un peu un pirate peu inclure un fichier php exterieur dans ton script et donc faire ce qu'il veux sur ton site.


je serais toi j'ajouterais un $_SERVER['DOCUMENT_ROOT'].'/' au début de mes fonction require et file_xists pour m'assurer que les fichiers qu'on demande à inclure sont effectivement sur le serveur et non ailleurs

signaler à un administrateur
Commentaire de Epoc22 le 22/02/2007 16:37:41

J'ai fait le même genre de truc mais en procédural.

signaler à un administrateur
Commentaire de Helldream le 24/02/2007 01:50:15

Merci beaucoup pour vos remarques. Je viens de remettre le code à jour en en tenant compte et j'en ai profité pour compléter un peu mon code pour corriger d'autres petits défauts que j'avais aussi trouvé de mon coté.

@Epoc22 :
En effet, je me doute qu'il doit exister des codes plus ou moins similaires en procédural, mais je n'en ai trouvé aucun en langage objet. Or, justement c'est ce que je cherchais (je suis entrain de réécrire un de mes sites en langage objet afin de gagner du temps dans le futur grâce à leur réutilisation et à une maintenance plus facile). Je me suis dit que je ne devais pas être le seul dans ce cas, donc j'en ai profité pour en faire partager la communauté. Cela dit, il est clair que mon code ne relève pas du génie, et que je n'ai pas inventé grand chose sur la théorie. Je l'ai surtout mis en forme (en en créant une classe), et adapté à mes besoins. Il m'arrive de plus en plus souvent de m'inspirer de modules de ce site pour créer les miens, donc je me suis dit qu'il était normal d'essayer d'en proposer moi aussi ;)

@coockiesch :
Je ne trouve pas mon code compliqué : si tu avais créé des fonction équivalentes, ou même si tu avais directement inscrit ce code dans le fichier 'index.php', je ne pense pas qu'il aurait été moins compliqué. Par contre, tu aurais du à chaque fois que tu crées un site le réécrire, ou réutiliser tes fonctions (avec des paramètres en plus), ce qui est dommage si tu fais un site en programmation objet... De plus, au lieu d'avoir 3 ou 4 fonctions qui sont indépendantes, là tu as une classe les regroupant, ce qui me semble plus pratique. Je ne considère pas le langage objet comme une "grosse artillerie", c'est juste une autre façon de programmer, qui a des avantages que la programmation procédurale n'a pas forcément ;)

Concernant le manque de fonctionnalité, je suis preneur si tu as des idées. Comme dit dans l'Explication Finale, ce code est aussi là pour évoluer en termes de fonctionnalités, et gagner en fiabilité ;)


Si vous avez d'autres remarques, si vous voyez d'autres soucis (de sécurité ou autres) etc, n'hésitez pas à me le dire, je modifierais mon code en concéquence dans la limite de mes compétences biensûr :)

signaler à un administrateur
Commentaire de Epoc22 le 24/02/2007 14:06:49

Perso, je ne m'y connais pas du tout en POO. J'y capte rien !

signaler à un administrateur
Commentaire de Helldream le 24/02/2007 15:06:45

Sur le principe, ce n'est pas compliqué, mais en pratique, c'est une autre façon de programmer, qui peut boulverser tes habitudes. Pour faire simple, à ce que j'ai compris, une classe représente un objet (par exemple une chaise), sur lequel tu as des attributs (par exemple sa hauteur, son poids etc), et des méthodes (les actions que tu peux faire avec, par exemple la déplacer). En gros une fois que tu as bien compris ça, tu sais programmer en objet. Le reste, c'est d'apprendre un peu la syntaxe, mais ce n'est pas très très compliqué.

Par exemple dans mon cas, j'ai ma classe "page" qui contient les attributs "admin" et "racine". Ces éléments sont utilisables par toutes les "fonctions" (appelées méthodes en POO, il me semble) que cette classe comprend. C'est un des avantages de la POO. En procédural, sans l'utilisation de variables globales, tu es obligé de passer toutes tes variables en paramètres, même si tu as 5 fonctions utilisant exactement les mêmes données. Là non. Ensuite tu as ces méthodes. Dans mon cas, tu as "affichage", le constructeur (en gros c'est une fonction appelée automatiquement lorsque tu crées l'objet) servant à initialiser ton objet (par exemple définir les valeurs de tes variables, se connecter à la base de données etc), et le destructeur (qui lui est appelé automatiquement à la fin de ton script php) qui sert à finir proprement l'éxécution de ton scipt (par exemple fermer ta base de données).

En gros, une fois que tu as compris tout cela, tu sais presque 75% de ce que je connais de la POO. ;)

Après il reste les détails, par exemple comment appeler une méthode, à quoi sert "$this", à quoi sert "__autoload()", à quoi servent les attributs "private" "public" et "protected" etc, mais bon, c'est simple à comprendre, et il n'y a pas 50 trucs indispensables pour commencer. Plus tard, quand tu commenceras à être à l'aise avec la POO, tu pourras faire des trucs sympas, par exemple avec les héritages, les classes abstraites etc, mais là même si je connais à peu près la théorie, ce n'est pas encore de mon niveau.

Je n'ai pas pour objectif de faire un cours complet sur la POO, je n'ai de toutes façons pas les connaissances suffisantes pour le faire, mais j'espère que tu comprends un peu mieux le principe ;)

signaler à un administrateur
Commentaire de Helldream le 25/02/2007 01:33:57

Je continue petit à petit à faire progresser ma classe, et je pense ajouter ce week end le support multilingue (ça peut toujours être utile) ainsi que l'identification des admins (ça c'est déjà fait, mais pas encore posté ici, je mettrais le tout une fois terminé).

Si vous avez des commentaires, remarques etc, n'hésitez pas !!! Et puis un commentaire (et une note), ça montre que vous vous intéressez ;) Ne me mettez pas 1, sinon je fais la gueule :D

signaler à un administrateur
Commentaire de Helldream le 25/02/2007 19:09:48

Voila encore une petite mise à jour de ma classe. Je pense qu'elle commence vraiment à être utile. Quand je vois par exemple le nombre de ligne de ma classe, et que je dis que je n'aurais plus besoin de retapper tout ça la prochaine fois que je ferais un site, il faut bien dire que ça me fait plaisir :p

(C'est bizarre, j'ai l'impression de parler tout seul... ^^ )

signaler à un administrateur
Commentaire de pierregau le 02/03/2007 10:35:58

Bonjour,
je débute avec PHP, j'avais fait des test avec les "class" et les "css".
J'ai téléchargé votre code, quand je veux ouvrir la page "config.php5" j'ai le message:
Fatal error: Using $this when not in object context in E:\serveur\xampp\htdocs\site2\sources\test\config.php5 on line 2
($this->racine=$_SERVER['DOCUMENT_ROOT'].'/test';)
Pouvez-vous m'aider.
Merci
Cordialement.
Pierre

signaler à un administrateur
Commentaire de Helldream le 02/03/2007 17:04:09

oui c'est normal : en fait config.php5 n'est qu'un fichier texte où tu peux régler les paramètres généraux (connection à la BDD, et répertoire racine). Tu peux l'éditer simplement avec un éditeur de textes. Pour tester le code, tu peux par contre ouvrir dans ton navigateur la page "admin.html" ;)

signaler à un administrateur
Commentaire de lordbdp le 15/05/2007 01:02:50

Trop pratique !

Juste 2 fonctions que j'aurais ajouter :
- Codage en MD5 pour l'accès coté admin.
- Gestion des colonnes (Left et Right) en plus de header, les menus, et le footer quand il y a.

Sinon c'est niquel pour ceux qui veulent du simplifié à fond...

signaler à un administrateur
Commentaire de Helldream le 06/10/2007 06:23:14

Plus de 2500 visites sur la page; plus de 250 téléchargement des sources, et... 5 personnes qui on eu la gentillesse de laisse un commentaire. Franchement, pour le coup je suis déçu.

J'ai voulu partager un outil que j'utilise souvent, afin de l'améliorer et d'en faire profiter la communauté, et au final, les gens se servent et repartent sans même laisser un petit commentaire, et/ou une note. Ca fait plaisir.

En tous cas, une chose est sûre, je ne me ferais pas avoir 2 fois. J'ai depuis créé pas mal de modules de ce type (celui-ci a biensûr été améliorer avec le temps, j'en ai créé d'autres s'appuyant sur celui-ci pour créer/administrer rapidement des livres d'or, des newsletters, des pages de news, ...), mais vu le retour de cet essai, je crois que je vais m'abstenir de partager tout ça.

Pour moi, il y a une différence entre "partager", et "pomper"... Visiblement tout le monde ne la voit pas. En tous cas merci encore pour ceux qui ont pris la peine d'écrire un petit mot, et désolé pour ceux qui auraient peut être aimé voir mes autres sources.

signaler à un administrateur
Commentaire de guill76 le 16/10/2007 20:57:59

Je trouve complétement stupide ta réaction, si tu postes une source sur ce site tu dois le faire en connaissance de cause et tu dois accepter tout type de reaction de la part des visiteurs et même l'absence de réactions.
Tu fais peut-être preuve d'ultra-sensibilité compréhensible mais  saches qu'il faut être philosophe dans la vie.
Une récompense c'est bien. Pour moi les notes ne veulent absolument rien dire. Ce qui compte, c'est de faire avancer les choses : la participation.
Avoir une telle réaction, c'est nous montrer que t'es une victime passive  du système de compétition (peut être d'ailleurs que le système scolaire actuel en est la cause avec le système de notation consensuelle pour ne pas dire élitiste qui perdure) si tu visitais certains philosophes comme Albert Jacquard(également généticien) tu aurais une vision plus juste de la compétition.            

signaler à un administrateur
Commentaire de Helldream le 17/10/2007 09:05:18

Désolé, mais je ne vois pas ça comme ça.

Pour moi, ce site est formée d'une COMMUNAUTE pas un self-service, et le but c'est de PARTAGER. Or ici, j'ai l'impression de servir de bonne poire. Les gens viennent, prennent et repartent sans même se fendre d'un remerciement.
Dans la réalité, quand quelqu'un te donne quelque chose qu'il a fait lui même et qu'en plus il a passé du temps à faire, j'ose espérer que tu le remercie. J'aurais apprécié que les personnes aient le même comportement ici. Biensûr, tout le monde ne laisse pas de message, je le comprends bien. Mais là, il n'y a même pas 1 personne de 50 qui en laisse un. Je trouve cela clairement impoli. Pour moi, c'est un manque de respect caractérisé envers mon boulot, et plus généralement le boulot des personnes qui se cassent le *** à partager leur code.

Je ne fais pas ça pour la gloire, ou encore la reconnaissance. Mais à la base, comme précisé dans la description, je tablais sur un système d'échange : je te file mon code, et tu m'aides à l'optimiser/le compléter en me disant ce qui n'a pas été.

D'ailleur une phrase est assez claire dans la charte de bonne conduite :
- "On est poli : «bonjour» et «merci» sont des mots plus qu'appréciés."
- "N'oubliez pas que vous vous adressez à des membres bénévoles qui vont partager de leur temps et leurs connaissances afin de vous aider Vous vous devez de garder cet esprit communautaire en tête ;-)"

Je suis un professionnel indépendant, et le temps que je passe à développer ces modules représente un investissement de temps, (et donc indirectement d'argent). Je voulais en faire profiter la communauté, afin de leur en faire gagner aussi (du temps ;) ), tout en sachant que d'un autre coté, je partageais avec TOUS (concurents inclus) le fruit de mon travail.

Ici, je ne considère pas qu'il y aie eu un partage mais une appropriation de mon temps et de mes connaissances. Et ça, je ne l'accepte pas

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Navigation [ par FhX ] Voila, je me suis fait un bout de script pour avoir sur chaque page une navigation du style : Acceuil > Administration > Gestion membres > e pb avec header location [ par richarddum ] Bonjour,après enregistrement en base des données saisie sur une formulaire, je souhaite revenir au formulaire.J'utilise le code suivant affichage d'une video [ par joebuz ] bonjour,je souhaiterais afficher une video sur une page HTML (ou autre).Pour l'instant j'utilise ce script :<embed src="film.wmv" width="320" heigh affichage d'un evenement du jour [ par arambasic ] Bonsoir,Dans ma table je dispose d'un champ nommé date_rdv (format varchar) est-il possible par une requete et si oui laquelle de sortir juste le Affichage du code source de ma page [ par superbaloo78 ] Pour diverses raisons (principalement debuggage) j'ai besoin de faire l'affichage du code php de ma page. Donc voila j'ai programmer cela comme ca : f Besoin d'aide pour gestion des image [ par cladx ] Bonjour, Je cherche soit de la documentation soir une aide direct a propos des image, j'aimerai savoir si il existe des fonctions ou des moyens perme Gestion des image [ par cladx ] Bonjour, Je cherche soit de la documentation soir une aide direct a propos des image, j'aimerai savoir si il existe des fonctions ou des moyens per jeu de gestion de tennis [ par probordelais ] Bonjour,Je fais un jeu de gestion d'un club de tennis en php. Le plus difficile est la gestion des matchs en temps réel. En fait, il me faudrai u pb Undefined index avec ouverture de fichier [ par Dyr3e ] bonjour a tous, j'ai une erreur lors de la compilation de mon code, j'ouvre un fichier ( un .csv) et je souhaite recueillir les informations de ce fi affichage de la source d'une page php [ par marcorel85 ] Voilà mon problème,j'ai cherché en vain d'afficher le code source d'une page php, le code source original bien entendu... Mais impossib


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,265 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.