Pods, CMS, framework, WordPress – Créer des pages sur-mesure avec WordPress
Voilà peut-être ce que tout bon développeur rêve de trouver au détour du web afin de pouvoir préconiser WordPress comme CMS plutôt que Drupal par exemple. Le développement de ce framework CMS nommé PODS relance le match Drupal
vs WordPress
, en effet WP acquiert avec l’installation de ce framework des capacités qui viennent concurrencer Drupal
sur son propre terrain.
La finalité de ce développement semble bien de hisser WP au niveau d’un CMS. On peut considérer que WP n’est déjà plus un simple d’outil de Blog alors l’installation de ce framework CMS nommé PODS à la croisée du CMS et du framework renforce encore cette tendance en introduisant l’esprit du développement MVC et cette notion de service si utile sous Drupal
.
A titre de comparaison, un petit rappel sur la philosophie de cette approche sous Drupal
. Pour accentuer le parallèle avec Drupal, nous allons réutiliser notamment le même type de contenu à savoir gérer et afficher un carnet d’adresse.
Drupal – Créer un service sur mesure dans Drupal
Un grand merci à Gaspard King pour nous avoir mis sur le piste de ce magnifique “pod… of white whales” comme pourrait dire le capitaine Achab. Pour information, social.hecube.net vient de créer un groupe consacré à WordPress et son écosystème dénommé L’univers Worpdress
Note : Les essais ont été effectués sur deux version de WP: WordPress 2.7 FR et WordPress 2.8.5 FR. Les pré-requis du serveur sont les suivants :
- PHP 5.2 et +
- MySQL 4 et +
- Le mod_rewrite Apache doit être activé et le serveur doit être en mesure de lire la configuration locale du .htaccess ( Cf configuration des permaliens )
- Le répertoire wp-content/plugins/pods doit être être autorisé à la lecture.
Source : http://pods.uproot.us/codex/server_requirements
We got the PODwer !
Le petit texte de présentation de la philosophie de PODS ne laisse aucun doute sur la finalité des PODS
.
Pods is a CMS framework for WordPress. It’s a plugin that sits on top of WordPress, allowing you to add and display your own content types. These content types, or “pods”, are totally separate from Posts, Pages, or Custom Fields. The Pods plugin uses its own database structure for maximum efficiency, and for relationships among items.
L’élément pods
s’installe comme un simple plugin sous WP
Il s’agit de mettre l’intégralité des fichiers dans un répertoire nommé pods
Les indications d’installation des pods
Voici pour information les instructions données pour installer l’élément Pods
sur votre site. Au-delà de la simple lecture, que faut-il retenir ?
- Un des pré-requis, c’est une disposition qui se fixe dans
Réglages > Permaliens
, il faut ajouter/%postname%/
Cela peut être un inconvénient sérieux si par exemple pour des raisons de SEO, vous avez travaillé sur la valeurslug
de WP, c’est la structure des permaliens afin d’avoir notamment les URL les plus explicites possibles. - Le plugin s’installe et s’active comme les autres plugins WP
- Une recommandation, il existe potentiellement des incompatibilités avec d’autres plugins activés sur votre site notamment depuis le backend.
1. Le paramètre des permaliens
2. Activation des pods
3. Conflit avec d’autres plugins
Il peut y avoir des erreurs de fonctionnement liées à des conflits avec d’autres plugins, notamment ceux de construction de formulaire ou de questionnaire de sondage. Dans notre exemple, l’erreur s’est produite avec WP-survey et les forums disponibles sur le site de pods.uproot.us en font état. Ainsi, pas de panique si cela ne fonctionne pas, c’est probablement un conflit avec d’autres plugins. C’est un handicap sérieux à l’adoption des pods dans la mesure où vous pouvez être amené(e) à désactiver un ou plusieurs plugins pour faire fonctionner les pods..
message d’erreur javascript
the form has expired
Outre les éventuels conflits, vous devez aussi résoudre potentiellement des problèmes d’affichage au sein de votre thème WP.
Pod Cassé ou les ratés d’affichage dans votre thème WP
Dans la plupart des thèmes que nous avons essayé, l’affichage des pods est loin d’être ergonomique. Le contenu des pods
va s’afficher directement dans mes balises principales qui gèrent le contenu. Dans tous les cas, une passe CSS s’impose et le “styling” peut vite devenir complexe.
Les balises du thème WP dans lesquelles s’affichent le contenu des pods
<div id="content" >...</div> |
<div id="page" >...</div> |
Dans le thème par défaut
Pour information, les recommandations d’installation du Framework Pods
Manual Install
1. Download the latest version of the plugin
2. Upload and unzip the contents of the “pods” folder to your site’s wp-content/plugins/ directory
3. Log into your site’s WordPress Admin section
4. Go to Plugins → Installed and activate the “Pods CMS” pluginAutomatic Install
1. Log into your site’s WordPress Admin section
2. Go to Plugins → Add New and enter a search for “Pods”
3. Click the “Install” link in the right-hand column of the “Pods CMS” listing
4. Click the orange “Install” button
5. Click “Activate” once WordPress has finished downloading and installing the pluginFinal Steps
1. FTP to your site’s wp-content/plugins/pods directory
2. Rename Pods’ “htaccess.txt” file to ”.htaccess”
3. If you do not already have another copy of this file, move .htaccess to the root directory of your WordPress installation
4. Log into your site’s WordPress Admin section
5. In Settings → Permalinks, set a Custom Structure of /%postname%/ or an equivalent
Gérer du contenu à l’aide des pods
Une fois, l’installation terminée, on va pouvoir créer à l’aide du pods
un type de contenu auquel sera associé une “vue”. On retrouve donc les prémices des concepts très similaires aux frameworks MVC les plus aboutis ou dans certain CMS dont nous sommes faits l’echo
dans ce blog.
Finalement, les Pods vous laissent la possibilité d’insérer un contenu spécifique dans votre site. Vous pourriez ainsi “encapsuler” dans WP : un carnet d’adresse, des fiches de films, des recettes de cuisine… Charge à vous ensuite de créer les “vues” afin d’afficher votre contenu en frontend.
Nous allons suivre pas à pas l’exemple donné dans la vidéo d’explication donnée sur le site (http://vimeo.com/6957771). On va créer les éléments de base de ce qui pourraient être un carnet d’adresses. L’installation du Framework Pods
à votre WP va vous permettre d’ajouter du code php à l’intérieur de vos pages. Le code php inséré est assez rudimentaire, on peut donc facilement se l’approprier même si on débute.
Création du pod
personne et de son contenu
On crée un pod
nommé personne
On insère du contenu que l’on affecte à ce pod
nommé personne
En cas d’erreur, vous pouvez vous séparer de votre pod
! Comme dans la vraie vie…
Création des vues pour ce pod
Dans l’exemple qui suit, une fois le contenu inséré, il faut pouvoir voir ce contenu. C’est à ce moment que vous allez créer des “vues” de ce contenu via ce que pods
nomment des pages
. Dans l’exemple, logiquement plusieurs person
ou personne
forment un people
, le nom de la page est donc tout trouvée people
*.
Tant que cette page n’existe pas, il n’y aura rien à voir
Une erreur 404 s’affichera dès vous tacherez de vous rendre à cette adresse http://mon-nom-de-domaine/mon-wordpress/people
.
Création de la page people
Code à insérer dans la page people
Ce code vous permet d’afficher le contenu déclaré comme person
à hauteur de 10 enregistrement par ordre ascendant par rapport au nom. Il ne reste plus qu’à appeler ensuite le template
(la vue) nommé person_listing
.
<?php $Record = new Pod ('person'); $Record ->findRecords ('name ASC', 10); echo $Record->showTemplate('person_listing'); ?> |
Création du template
Ce "pod template" est en fait un vue qui peut contenir du html
, du javascript
ou du pseudo code connu sous le nom de "magic tag", une sorte là encore de smarty. Il va servir à visualiser le contenu de la page people
.
Le code du template person_listing
La valeur {@detail_url}
est à placer dans le code de votre vue ou "pod template". Par ailleurs, dans l’édition du Pod person, vous allez compléter la champs Detail page
<p><a href="{@detail_url}">{@name}</a></p> |
Code à insérer dans la page people/*
Toutes les personnes accessibles depuis people
sont disponibles via la page person_detai
. Cette page a pour fonction de vous faire visualiser la fiche de chaque personne enregistrée dans le pod person
visible dans la template person_listing
.
<?php $slug = pods_url_variable ('last'); /* var_dump ($slug); */ $Record = new Pod ('person', $slug); echo $Record->showTemplate('person_detail'); ?> |
Code à insérer dans le template person_detail
Dans “Pods templates”, il vous faudra créer une vue pour les données que vous venez d’insérer c’est à dire l’ensemble des personnes contenus dans cet sorte de carnet d’adresse.
<h3>{@name}</h3> <p>Date added : {@date_added}</p> <p>Slug : {@slug}</p> |
Conclusion : Les pods étendent les possibilités de WP dans ses capacités à ingérer et à afficher du contenu qui sort des canons traditionnels du CMS: pages, articles, liens. On peut notre 3 inconvénients :
- Son adoption nécessite quelques connaissance php
- Sa mise en place peut provoquer des conflits avec d’autres plugins. Le dilemme sera parfois entre désactiver certains plugins pour adopter les pods ou conserver les plugins et bazarder les pods. Choix cornélien.
- Le pod nécessite une structure de permalien qui peut être incompatible avec des recommandations SEO. C’est un inconvénient de moindre importance car la structure de permalien retenu pour le pod reste quand même native à WP et conserve l’avantage des URL explicites.
Au-de-là des ces quelques inconvénients, ce type de framework
adossé à WP va se généraliser. Ces légers désavantages sont à mettre sur le compte de la relative jeunesse, le projet a été lancé en automne 2008, soit pas plus d’un an. Les améliorations futures apportées au code peuvent être spectaculaires et faire basculer définitivement WP dans la cour des CMS type Drupal
et alors là…
Pour aller plus loin
- Le lien vers la vidéo dont cet article est largement inspiré. Pods CMS – The Basics
http://vimeo.com/6957771 - Pods CMS
Pods is a CMS framework that lets you create, manage, and display your own content types. Don’t bother hacking blog posts into becoming something they’re not. With Pods, create entirely new data structures with only the fields you need. Like Drupal CCK, you can set up relationships, allowing for a whole new level of interconnectedness.
http://pods.uproot.us/ - La page “A propos”
http://pods.uproot.us/about - Pods UI
This plugin allows you to develop plugins that look like WP using the Pods framework – requires Pods CMS plugin. Pods is a CMS (Content Management System) framework for WordPress.
http://pods.uproot.us/about
* Dans chaque tutoriel made in USA, on retrouve soit “Hello world” soit cette référence constante à “person & people”. On peut toujours voir une référence à (“We, the people…”). We, the People sont les premiers mots du préambule de la Constitution des États-Unis d’Amérique (We, the People of the United States, en français, Nous, Peuple des États-Unis).
Source :http://fr.wikipedia.org/wiki/We_the_People