Le blog de Seb

France.fr sous Drupal

A l'occasion de la fête nationale du 14 juillet, un portail international sur notre douce France rouvre ses portes. France.fr a pour but aux touristes étrangers de présenter la France, ses régions, ses caractèristiques, etc. Traduit en anglais, allemand, italien et espagnol, ce site est à la fois riche en contenu et simple de navigation, grâce à 6 rubriques essentielles (connaître, visiter, vivre, étudier, travailler, entreprendre), il va droit au but.yes

Là où est la bonne surprise, c'est que ce tout nouveau site, image de la France sur Internet, tourne sous Drupal smiley. Alors est-ce un signe que l'Elysée a bien compris l'avantage d'un outil open-source, ou bien qu'il suit comme un mouton tout ce que fait la Maison Blanche ? En tout cas ce n'est que bénéfique pour la communauté Drupal. Il est à noter que ce n'est pas le premier site représentant l'État à utiliser Drupal, le portail du gouvernement arbore déjà notre petite tête bleue.

Et là vous vous demandez : "Mais comment fait-il pour savoir ça ?!?" et moi je vous répond "Mais parce que je suis un Dieu voyons..." cool Non sans rire, c'est grâce à une petite extension Chrome bien pratique qui détecte sur quel(s) framework(s) tourne(nt) les sites que vous visitez, elle n'est pas fiable à 100% (dans le sens où elle en laissera passer) mais permet de voir rapidement avec quoi est construit un site (Wordpress, Drupal, Typo3, jQuery, Prototype, etc.), son nom est Chrome Sniffer.

Edito du 13 Juillet

Petit édito pour vous signifier le changement de serveur du blog, je me suis en effet acheté un RPS sur lequel je peux mettre un peu plus les mains dans le camboui avec un accès SSH , et donc à drush. Le problème de ce genre d'hébergement est que les accès disques sont trèèèès longs donc je ruse avec boost pour faciliter tout ça.

Si vous avez des problèmes n'hésitez pas à m'en faire part en commentaire où sur Twitter, notez que j'ai redirigé les anciennes adresses ici mais il est plus prudent de reprendre l'adresse du flux RSS.

Bonne journée à tous !

Bartik : une nouvelle tête pour drupal

Avec la sortie de l'alpha 6 de Drupal 7, non seulement on voit le bout de la liste des bugs à résoudre de celui-ci, mais aussi quelques bonnes surprises, comme l'apparition d'un nouveau thème par défaut : Bartik.

Celui-ci prendra la place du thème visible après installation à défaut du bon vieux Garland après quatre années de bons et loyaux services. Le successeur, dont on doit le nom à l'une des premières programmeuses,  travaillant sur l'ENIAC, Jean Bartik, a pour but de donner un peu de fraîcheur et une nouvelle image à la prochaine mouture de Drupal. Son style à la fois moderne, propre et flexible permet une bonne entente avec le thème d'administration de Drupal 7 : Seven.

 

Une nouveauté de ce thème par rapport à Garland est qu'il gère totalement le support de l'écriture de droite à gauche (RTL en anglais), cela signifie que les blocs aussi seront déplacés lorsque que le RTL sera activé. D'autres thèmes étaient également candidats pour rentrer dans le coeur de Drupal : Corolla (demo) et Busy (demo), mais il faut croire que l'équipe derrière Bartik a fait un meilleur boulot que ceux-ci.

Cela s'inscrit dans le processus de rafraichissement des sites de la communauté qui vont eux aussi arborer un tout nouveau look, un thème nommé Blue Cheeze. Des nouvelles versions sont d'ores et déjà visibles pour quelques sites comme localize.drupal.org et association.drupal.org et les autres, comme api.drupal.org ainsi que le site principal sont toujours en phase de test. Il est à noter que non seulement le site principal va changer de style, mais il va également améliorer l'interface utilisateur avec un nouveau dashboard, customizable et remplaçant les traditionnels liens vers les listes de bugs que l'ont suit, et autres blocs actuellement sur la droite du site.

Je ne sais pas pour vous mais j'espère que toutes ces petites nouveautés vont donner un nouvelle image de drupal et faire grossir la communauté !

Drupal Gardens

J'ai reçu il y a un mois maintenant mon invitation pour la beta de Drupal Gardens. Ce service, fourni par Acquia, offre un hébergement de site sous Drupal 7.

 

Drupal as a service

Ce service est une plateforme d'hébergement complète, avec la possibilité de créer plusieurs sites, de sauvegarder, restaurer et exporter votre site web. Chaque site aura une adresse de type monsite.drupalgardens.com, on peut rapprocher ce type de service à Wordpress qui offre également un service gratuit de blogging.
Dans ce sens on parlera de "Drupal as a service".

Le constructeur de thème

Acquia a focalisé le développement de sa distribution préinstallée sur chaque site afin qu'elle soit la plus intuitive possible. L'utilisateur pourra charger et modifier son thème "en live" puis enregistrer ou annuler ses changements. La majorité des changements sont visibles directement dans le navigateurs puisque tout est fait via AJaX.

Une petite zone d'administration vous permettra tout cela :

On nous propose 7 thèmes par défaut, avec pour chacun la possibilité de modifier la palette de couleur (couleur des liens, titres, puces, ...), le logo et la favicon, la structure (nombre et largeur des colonnes), la police, les bordures et marges, l'arrière-plan. et si ce n'est pas encore assez, vous pouvez même ajouter votre propre code CSS !

Quand tout vous plaît, vous enregistrez et/ou vous appliquez votre thème perso.

L'administration

Elle s'organise à travers une barre de menu en haut de la page, ressemblant étrangement à celle du module admin. Les préférences s'affichent et se modifient via des popup AJaX rendant toute l'administration fluide et intuitive, on doit bien sûr cela à Drupal 7.

Le bilan

Acquia nous offre ici une solution viable à l'installation manuelle de Drupal, définitivement utile pour un blog de petite envergure ou un site rapide pour la tenue d'un évènement par exemple. On devra voir apparaître à la fin de la beta des formules avec de la publicité et certaines limitations pour continuer à utiliser le service gratuitement, et d'autres payantes offrant plus d'espace disque et de ressources.
 

Pour s'inscrire, ça se passe ici.

Les fonctions cachées de Devel

Quoi de plus frustrant de ne pas savoir ce qui se passe lorsque qu'une page se charge dans Drupal ? angry On a souvent des pages de redirection qui contiennent des erreurs et qui nous empêchent de les voir.
Lorsque que l'on développe un module ou que l'on construit un thème, on aimerait parfois savoir ce qui se trouve dans certaines variables.

Alors qu'est ce qui s'offre à nous ? Un drupal_set_message('<pre>'.print_r($variable, true).'</pre>'); ? Un peu long vous ne trouvez pas ? indecision

Eh bien le module Devel, spécifiquement conçu pour faciliter le développement de modules et l'administration de Drupal apporte quelques fonctions tout simplement géniales :

1
dsm($input, $name = NULL);

alias de drupal_set_message, met la variable en forme de menu déroulant avec la librairie Krumo
$input :
votre variable ou votre texte
$name : (optionnel) préfixe a donner au message (exemple : dsm('contenu de ma variable', 'ma variable); donnera "ma variable => contenu de ma variable")

 

1
dpm($input, $name = NULL);

alias de dsm()
 

1
dvm($input, $name = NULL);

même fonctionnement que dsm() mais en utilisant var_dump() (exemple : dvm('mon contenu'); donnera "string(11) "mon contenu")
 

dpr($input, $return = FALSE, $name = NULL);

affiche le print_r() de votre argument au debut de la page ou le stocke dans une variable (très pratique si les messages ne sont affichés dans aucune région du thème)
$return : si TRUE, le print_r() de l'entrée sera renvoyé

 

kpr($input, $return = FALSE, $name = NULL);

même fonctionnement que dpr() mais affichera si possible avec la librairie Krumo
 

dvr($input, $return = FALSE, $name = NULL);

même fonctionnement que dpr() mais utilisera var_dump()
 

Mais aussi d'autres ne concernant pas forcément l'affichage des variables :

dargs($always = TRUE);

affiche les arguments passés à la fonction courante
$always : si FALSE, ne l'affichera qu'une seule fois

 

db_queryd($query);

affiche la requête SQL complète et la possible erreur générée dans le navigateur (très utile pour savoir ce que l'on passe comme argument à une requête)
 

dfb($arg, ...);

affiche les arguments dans la console Firebug si FirePHP est installé
 

Toutes ces petites fonctions ne sont pas forcément documentées (encore moins en français), donc si vous en découvrez d'autres n'hésitez pas à partager wink

Drupal 7 : l'API de la base de données

Il est à noter que je n'ai pu installer Drupal 7 pour monter ce blog car impossible avec OVH.
Cependant en cherchant d'où venait l'erreur (on obtient un méchant SQLSTATE[70100]: <>: 1317 Query execution was interrupted) j'ai pu fouiller pour la première fois dans le code de la nouvelle release. Et là Oooooooh surprise de la POO !

En effet j'ai pu découvrir (avec grand bonheur, soit dit en passant) que la couche entière 'Base de données' de Drupal a été remaniée pour être programmée en POO.

Du coup ni une ni deux j'ai tripatouillé le code pour m'afficher toutes les propriétés de l'exception lancée et trouver la requête qui mettait le souk : SELECT 1 FROM information_schema.tables WHERE (table_schema = :db_condition_placeholder_4) AND (table_name = :db_condition_placeholder_5) 
Là il suffit d'un peu de jugeote : je suis sur OVH mutualisé, je n'ai donc pas accès à information_shema, le bug est posté y'a plus qu'à attendre voir si la communauté est prête à prendre en compte ce comportement.

Voici quelques exemples, récupérer la valeur d'un champ :

1
2
3
4
5
//Drupal 6 
$value = db_result(db_query('SELECT champ FROM {table}')); 
 
//Drupal 7 
$value = db_query('SELECT champ FROM {table}')->fetchField();

Récupérer un objet :

1
2
3
4
5
6
7
8
9
10
11
//Drupal 6: 
$result = db_query('SELECT champ FROM {table} WHERE condition = %d', $variable); 
while ($row = db_fetch_object($result)) { 
    // Boucler sur les résultats pour les traiter 
} 
 
//Sous Drupal 7 il n'y a pas de db_fetch_object() ou de db_fetch_array(): 
$result = db_query('SELECT champ FROM {table} WHERE condition = :substituant', array(':substituant' => $variable)); 
foreach ($result as $row) {
    // Boucler sur les résultats pour les traiter 
}

Autres requêtes:

1
2
3
4
5
6
7
8
9
10
//Une requête de suppression dans Drupal 7: 
db_delete('table') ->condition('champ_condition', $variable) ->execute(); 
 
//Une requête de mise à jour dans Drupal 7: 
db_update('table') ->fields( 
  array( 
    'champ_1' => $variable_1, 
    'champ_2' => $variable_2, 
  ) 
) ->condition('champ_condition', $variable_condition) ->execute();

Pour plus d'infos, je vous invite à jeter un coup d'oeil à l'API de drupal 7.

Via source.

Tags: 

Installation du blog

Bonjour à tous et bienvenue sur ce blog !

Je parlerais de tout mais essentiellement de programmation et de ma vie virtuelle car oui, il y a une vie après la vie ! smiley

Vous le savez peut-être, ma spécialité c'est Drupal. Cela fait maintenant 1 an et demi que je l'utilise et je me débrouille pas mal (enfin je trouve laugh). Donc ce blog me servira bien sûr à partager mes expériences, mes astuces et mes bouts de codes.

Commençons donc par le commencement : ce blog. Et bien oui, il tourne sous Drupal cool ! Drupal 6 pour être précis, et voila la liste des modules tiers que j'ai installé :

Ou plus simplement à l'aide de drush :

drush dl ajax admin_menu addthis ckeditor comment_notify pathauto token geshifilter captcha google_analytics jgrowl fivestar votingapi

drush en ajax admin_menu addthis ckeditor comment_notify pathauto token geshifilter captcha google_analytics jgrowl fivestar votingapi

Pour le thème j'ai choisi BlogBuzz de Astin, il contient pas mal de régions et propose trois jeux de couleurs.

Il est à noter que je traduirais la plupart de mes articles en anglais, il faut bien s'internationaliser cheeky.

Pages

S'abonner à RSS - Le blog de Seb