begin process at 2010 02 10 16:57:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

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

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

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :5 733

Auteur : Helldream

Ecrire un message privé
Site perso
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

 Sources de la même categorie

Source avec Zip POO - LOGGING PACKAGE par Waredan
POO - OBJECT CLASS par Waredan
Source avec Zip POO - FACTORY CLASS par Waredan
POO - SINGLETON CLASS par Waredan
POO - PARAMETERHOLDER CLASS par Waredan

 Sources en rapport avec celle ci

CLASS RECHERCHE PHP5 POO par mtrix000
CLASS AUTHENTIFICATION PHP5 POO par mtrix000
CLASS PAGINATION PHP5 POO par mtrix000
Source avec Zip CLASSE UTILISATEUR POUR GESTION SIMPLE DE LOGIN ET DROITS par Archima
Source avec Zip API LDAP POO PHP5 (ENCAPSULATION DE L'API LDAP DE PHP) par emericv

Commentaires et avis

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

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

Commentaire de Epoc22 le 22/02/2007 16:37:41

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

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 :)

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 !

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 ;)

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

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... ^^ )

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

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" ;)

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...

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.

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.            

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 ouvrir page .php autre que index.php depuis .html [ par alexmel ] Bonjour, Voilà, je pense que mon souci n'est pas bien méchant, mais comme je débute en php, je ne connais pas encore les subtilité du langage. Je vo Menu et Navigation avec PHP [ par salutbonjour ] Bonjour à tous! Ça fait quelque temps que je m'acharne à me monter un site perso. J'ai codé un menu PHP de cette façon: Les liens du menu qui se tro Probleme d'affichage: php5 - Webdev11 - Apache2-2 [ par nerone21 ] Bonjour les NetCréateur.Alors j'ai un petit problème (et je suis débutant).j'ai un serveur ou d'origine était installé un apache 2-2 et webdev11. (tou introduire une page de navigation dans une page web [ par emmanuelf49 ] j'ai créer un site très basique il y a maitenant 2ans et je cherche à integrer dans une page web de ce site un forum que j'ai créé sur phpBB.J'ai deux Affichage d'un site pendant un temps limité [ par BigBiB ] Bonjour tout le monde,voila mon problème: j'ai un annuaire gratuit et je voudrais ajouter (comme le booster sur les freeglobe) un système avec lequel Redirection depuis index.php [ par Elisa23 ] Bonjour, J'ai fait un site en Anglais et en Français. Les deux site sont hébergés au même endroit. Je vous ai fait une petite arborescence pour essay Pb affichage d'une recherche mysql [ par Eyeron ] [i]Bonjour, j'ai une table avec les champs suivants: id prenom nom discipline perfs commentaire J'ai une page de recherche avec un formulaire classi affichage du date [ par medhamdi12 ] bonjour, le code php ci dessous concerne l'affichage de la date système mais l'affichage de l'année et en deux chiffre es qu'il est possible d'affic A l'aide : Warning: Cannot modify header information [ par FXPHANTOM ] Bonjour, J'appelle tous les webmasters expérimentés pour résoudre mon problème . J'ai un hébergement mutualisé chez OVH , j'ai installé mon site sur


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,874 sec (3)

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