background preloader

Comment construire un CMS (gestionnaire de contenu)

Comment construire un CMS (gestionnaire de contenu)
Nous allons décrire pas à pas comment construire un système de gestion de contenu, qui utilise PHP comme langage de programmation, et XML ou MySQL pour stocker les données. Ce n'est pas un simple tutoriel, mais un projet concret pour construire un outil utilisable en production. Pourquoi construire un CMS? Des centaines de CMS gratuit sont disponibles, alors pourquoi en construire un autre? Intérêts du CMS final Une fois achevé, ce CMS permettra à tout utilisateur d'ajouter du contenu au site sans aucune connaissance des technologies utilisées pour le faire fonctionner. Pré-requis L'outil requiert pour le programmeur: - un hébergement supportant PHP pour tester les démos, - un éditeur HTML, - le compilateur Scriptol pour générer les plus gros morceaux de code PHP, - et optionnellement des bibliothèques sous licence LGPL pour étendre le CMS (avec un forum par exemple). Comment construire le CMS: la conception Construction d'un Blog Détails des composants Gestion des menus Administration Sitemap Related:  Structure Dynamiques (PhP, MYSQL, AJAX...)

PHP - Upload de fichiers L'envoi de fichier (upload) grâce à un formulaire HTML peut-être géré par le langage PHP . Formulaire d'envoi de fichiers La première chose à faire consiste à créer un formulaire HTML permettant à l'utilisateur d'ouvrir une boîte de dialogue permettant de choisir le fichier à envoyer : Il est impératif de ne pas oublier l'attribut enctype="multipart/form-data" ! Par ailleurs le champ MAX_FILE_SIZE est une indication de la taille maximum du fichier à uploader pour le navigateur, mais cela n'est pas suffisant pour s'assurer que les fichiers uploadés ne dépasseront pas une certaine taille: c'est une limite fixée sur l'ordinateur client (du visiteur). Configuration de PHP pour permettre l'upload Le fichier de configuration php.ini permet la configuration du serveur PHP . Si vous n'avez pas accès à la configuration (cas d'un site hébergé sur le serveur du fournisseur d'accès ou dans le cas d'un hébergement mutualisé), vous pouvez vérifier la configuration grâce à la fonction phpinfo() :

MySQL : initiation aux bases de données XP-Infos n° 11 – mai 2010 Article Nous terminons notre passage en revue des technologies Web par le système de base de données MySQL. Développé à l’origine par trois Scandinaves, MySQL est devenue la base de données open source la plus populaire au monde. Le code MySQL L’interaction avec une base de données se passe en deux étapes : les opérations sur la base de données utilisent le langage SQL (Structured Query Language, langage structuré de requêtes) ; c’est le code PHP (ou autre langage de programmation Web) qui transmet le code SQL à la base de données. Voici à quoi ressemble le code SQL : SELECT titre, auteur, date FROM livres WHERE stock = 'oui' ORDER BY date DESC Petites explications : Notre petite base de données est constituée d’une table livres, qui contient des lignes et des colonnes : Le code PHP pour MySQL Comme indiqué plus haut, c’est le code PHP qui va communiquer avec la base et lui transmettre les requêtes SQL. Explications : Utilité des bases de données Trucs et astuces

Upload de fichier - PHP Facile! L'upload de fichier consiste à transférer un fichier de l'ordinateur de l'utilisateur vers le serveur web (il s'agit de l'opération inverse du téléchargement ou terme anglais download). Ceci peut vous permettre de proposer à un utilisateur de mettre en ligne des photos, des images. L'upload de fichier s'appuie tout simplement sur le protocole fourni par le navigateur. La première étape consiste donc à mettre en place un formulaire proposant un bouton, autorisant l'utilisateur à sélectionner un fichier sur son disque dur. Cela se fait grâce au bout de code HTML qui suit: Ce formulaire doit comporter les quelques spécificités suivantes: Mais que devient le fichier transféré sur le serveur web? Une fois, le fichier sélectionné et le bouton de validation du formulaire pressé, le navigateur va lire le contenu du fichier, le formatter et l'envoyer au serveur web (dans une requête HTTP). Le "moteur" PHP fourni alors de nouvelles informations dans un tableau $_FILE[] (depuis PHP 4.1).

Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL QBE est un langage de requêtes révolutionnaire concurrent à SQL. Il a été inventé par Moshe Zloof pour le compte de la compagnie IBM, en 1977. Paradox, contrairement aux autres SGBDR, travaille nativement en interface QBE lorsque l'on veut écrire des réquêtes. QBE signifie, Query By Exemple, c'est à dire, « requête par l?exemple »... Création : 26 août 2003 Pagination page par page Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici. Voici un petit bout de code près à l'utilisation, permettant d'effectuer une pagination et de choisir le nombre d'élément à afficher par page. La pagination peut se faire de 2 façons: Page par page (Page : 1-2-3-4-5) <<Page précédente - Page Suivante>> Cette option est à définir à la variable $navigation. Pour choisir le nombre d'élément à afficher, on attribut un nombre entier à la variable $messages_par_page. Dans ce code, je suis partit du principe que l'on affiche généralement le titre+lien et la description des éléments à paginer (comme sur les blogs). il faut donc correctement remplir les variables suivantes: $nom_de_la_table="***"; ->Nom de la table. La variable $nom_page correspond au nom de la page ou s'affiche vos articles ou autres. Pour que la pagination soit un peut plus sympa

Initiation à la conception de bases de données relationnelles avec MERISE Le modèle logique de données (MLD) est composé uniquement de ce que l'on appelle des relations. Ces relations sont à la fois issues des entités du MCD mais aussi d'associations, dans certains cas. Ces relations nous permettront par la suite de créer nos tables au niveau physique. Une relation est composée d'attributs. Une relation possède un nom qui correspond en général à celui de l'entité ou de l'association qui lui correspond. Voici un premier exemple de relation (issue de l'entité «Edition» de notre précédant MCD) : Edition (id_ed, nom_ed) Légende :x : relationx : clef primaire Remarques : Ce premier MLD est représenté de manière textuelle. Il existe un autre type de clef appelé clef étrangère. Complétons notre premier exemple avec une autre relation où apparaît une clef étrangère : Edition (id_ed, nom_ed)Exemplaire (ref_e, id_ed#) Légende :x : relationx : clef primairex# : clef étrangère III-A-2-a. Il existe toutefois quelques cas particuliers que vous pourrez voir au paragraphe .

Les balises propres au site Balises définies à la configuration Le contenu de ces balises est défini dans l’espace privé, lors de la configuration de votre site. - #NOM_SITE_SPIP affiche le nom du site. - #URL_SITE_SPIP affiche l’adresse du site. Elle ne comprend pas le / final, ainsi vous pouvez créer un lien du type #URL_SITE_SPIP/sommaire.php3 - #DESCRIPTIF_SITE_SPIP (depuis SPIP 1.9) affiche, comme son nom l’indique, le descriptif du site, que l’on renseigne dans la page de configuration générale du site. - #EMAIL_WEBMASTER (depuis SPIP 1.5) affiche l’adresse du webmestre. - #LOGO_SITE_SPIP (depuis SPIP 1.8) affiche le logo du site. - #CHARSET (depuis SPIP 1.5) affiche le jeu de caractères utilisé par le site. - #LANG (depuis SPIP 1.7, SPIP 1.7.2 ) : utilisée en dehors des boucles ARTICLES, RUBRIQUES, BREVES et AUTEURS, cette balise affiche la langue principale du site. Balises de mise en page Depuis SPIP 1.9, la balise #CHEMIN remplace et améliore #DOSSIER_SQUELETTE. Balises techniques Attention !

Pédagogie + Numérique = Apprentissages 2.0 (dossier) L’Institut Français de l’Éducation publie un dossier complet d’actualité veille et analyses (n°79, novembre 2012) intitulé Pédagogie + Numérique = Apprentissages 2.0 (21 pages, en pdf). Questions centrales de ce document : quelle est l’efficacité du numérique en terme d’impact pour les apprentissages ? Y a-t-il une motivation renouvelée chez les apprenants ? Quelles solutions technologiques peuvent soutenir efficacement les apprentissages, et quelle pédagogie doit être mise en place pour profiter pleinement des possibilités offertes par le numérique ? Le dossier a été coordonné par Rémi Thibert (chargé d’études et de recherche à l’IFé). Numérique et apprentissage : analyse Le dossier Pédagogie + Numérique = Apprentissages 2.0 met en avant une sélection de travaux sur les usages du numérique dans les établissements scolaires du secondaire pour établir une analyse distanciée du rapport des technologies de l’information et de la communication à l’apprendre. Introduction Bibliographie Licence :

Où placer les fichiers de squelettes ? Depuis SPIP 2.0 les squelettes sont rangés dans un dossier dédié, nommé squelettes-dist/. Le dossier squelettes/ accueillera vos squelettes personnalisés. Les avantages de ce rangement sont évidents : meilleure séparation du code de SPIP et de la structure du site, possibilité de changer tout un ensemble de squelettes d’un seul coup, etc. Historique : Dans les versions SPIP 1.8 et SPIP 1.9, les fichiers de squelettes fournis dans la distribution de SPIP étaient placés dans le dossier dist. Dans les versions antérieures à SPIP 1.8, les squelettes étaient à la racine. Les squelettes par défaut : squelettes-dist/ Les squelettes de la distribution — c’est-à-dire ceux fournis en standard à l’installation de SPIP — sont regroupés dans un unique répertoire. Toutefois, il ne faut pas modifier les squelettes de la distribution, sinon vous risqueriez de perdre toutes vos modifications à chaque mise à jour de SPIP ! Votre dossier squelettes/ Utiliser un autre dossier de squelettes

Cours PHP : les bases Les bases du PHP Les fichiers contenant des scripts PHP doivent posséder l'extension php. Attention la version actuelle de PHP est 4, si vous utilisez encore la version 3 vos scripts devront avoir l'extension php3. Vous devez aussi faire attention dans ce dernier cas à la configuration de votre serveur apache. Par défaut il n'accepte pas cette extension. Vous devez décommenter les lignes contenant le mot clé Addtype en rapport avec php3. Lorsque vous incluez du code PHP dans un script vous devez indiquer que cette partie à interpréter est dans ce langage comme si vous incluez du javascript par exemple. Vous pouvez utiliser l'une des trois suivantes : Dans les trois cas la première ligne correspond à l'ouverture de la partie contenant le script en php. Les commentaires très importants dans vos programmes doivent être intégrés de la manière suivante : Si votre commentaire ne se situe que sur une ligne vous pouvez le faire précéder par deux slashs // ou par un dièse #.

Mon premier squelette Si le système de squelettes peut de prime abord paraître intimidant, c’est que ce qu’on lui demande est suffisamment riche pour l’obliger à être complexe. Mais complexe ne veut pas dire compliqué. Voici un exemple minimal de squelette. Matériel requis pour ce tutoriel - Un SPIP installé quelque part. On supposera, pour commencer, que votre base SPIP contient au minimum une rubrique et deux articles publiés. 1. <BOUCLE_article(ARTICLES){id_article=1}> #TITRE </BOUCLE_article> Puis affichez la page SPIP est allé chercher le titre de l’article n°1 de votre base, et l’a inscrit à la place de #TITRE. Si ça ne fonctionne pas, vérifiez que votre article n°1 est bien « publié » (et pas « en attente » ou « en cours de rédaction »). Puis ajoutez du HTML et d’autres appels de « champs » SPIP, et vous obtenez rapidement votre article n° 1 : <BOUCLE_article(ARTICLES){id_article=1}><h1>#TITRE</h1><b>#CHAPO</b><div align="justify">#TEXTE</div></BOUCLE_article> Bien !

Coder ses squelettes avec des INCLURE La documentation officielle de SPIP : Lorsque l’on a des éléments de texte et des boucles communs à plusieurs fichiers, on peut vouloir extraire ces éléments des pages où ils se trouvent, les installer dans un fichier séparé, et les appeler depuis les autres squelettes. De cette façon, le code commun est regroupé dans un unique fichier, ce qui facilite notamment les modifications qui concernent plusieurs squelettes d’un seul coup. ... Indispensable pour prendre un bon départ, et maîtriser les bases. II.1 En pratique : Créer son premier INCLURE Nous allons créer ici un premier INCLURE ... Dans le dossier contenant vos squelettes, il vous suffit de créer deux fichiers : inc_entete.php3 et inc_entete.html Le fichier inc_entete.php3 doit contenir I et le fichier inc_entete.html lui contient (par exemple) Mon premier inclure ... Puis par exemple dans votre fichier article.html, il vous suffit de placer le code : Vous avez réalisé votre premier INCLURE. inc_css.php3 contient alors IMPORTANT :1. A. B.

Related: