jeu, 1 sep, 2011
Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings.
Si vous avez mis à jour le PHP d'une version 5.2 à 5.3, vous risquer surement de tomber sur ce Bug lors de la modification d'un noeud sur Drupal.
Afin d'éviter ces erreurs il existe deux possiblités:
1 - Dans le fichier php.ini (Bien sûre si vous avez accès) ajouter ceci:
[Date]
; Defines the default timezone used by the date functions
date.timezone = "votre fuseau horaire"
mer, 24 nov, 2010
Il existe un superbe module dans Drupal qui nous permet de structurer les nodes d'une manière hiérarchisé parent enfant sous enfant, ce module est Node Hierchy.
Par contre ce module manque un peu de développement et surtout sa version 2.x qui tarde à venir.
Dans cette exemple on va s'intéresser au poids du fieldset de ce module qui est à 10 par défaut.
J'utilise la fonction hook_content_extra_fields() de CCK qui nous permet de gérer ça.
jeu, 16 sep, 2010
Si vous avez installé SPIP en version 2.1, un bug introduit il y a 10 mois vient de faire « disparaître » l’ensemble de vos articles sur votre site. Pas de panique, ce n’est que l’affichage qui est cassé, une simple mise à jour vers la version SPIP 2.1.2 suffira à rétablir la situation.
mer, 18 aoû, 2010
Voici une petite astuce pour récuperer l'url du site sous Drupal:
mer, 18 aoû, 2010
Pour ajouter un fichier CSS ou javascript dans notre développement Drupal dispose d'une fonction pour cela:
<?php // Ajouter un fichier CSS drupal_add_css($path = NULL, $type = 'module', $media = 'all', $preprocess = TRUE); //Ajouter un fichier js drupal_add_js($data = NULL, $type = 'module', $scope = 'header', $defer = FALSE, $cache = TRUE, $preprocess = TRUE); ?>
mar, 17 aoû, 2010
Voici comment récuperer le chemin relative d'un module ou d'un thème
<?php // Pour les modules drupal_get_path('module','nom_du_module'); //Pour les themes drupal_get_path('theme','nom_du_theme'); ?>
mar, 17 aoû, 2010
mer, 11 aoû, 2010
MySQL Workbench permet aux DBA, aux développeurs ou aux architectes de bases de données de concevoir, de générer et de gérer visuellement tous les types de bases de données, y compris Web, OLTP et applications d’entrepôts de données. Il comprend tout ce dont un modélisateur de données a besoin pour créer des modèles ER complexes.
mer, 11 aoû, 2010
Afin de vérifier les e-mails laisser par les visiteurs dans un formulaire, nous utilisons les expressions régulières pour faire le test dont voici un exemple de fonction (CMS Drupal):
<?php function valid_email_address($mail) { $user = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+'; $domain = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+'; $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}'; $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}'; return preg_match("/^$user@($domain|(\[($ipv4|$ipv6)\]))$/", $mail); } ?>
lun, 9 aoû, 2010
Sur cet exemple, on va voir comment on peut configurer Drupal pour se connecter sur plusieurs bases de données.
Pour commencer je reviens sur le faite que Drupal enregistre les configurations de la BDD sur le fichier sites/default/settings.php et c'est là où on va changer un peu notre configuration.
Pour la BDD c'est stocké sous l'un de ces formats (selon notre type de BDD) :
* $db_url = 'mysql://username:password@localhost/databasename';
* $db_url = 'mysqli://username:password@localhost/databasename';
* $db_url = 'pgsql://username:password@localhost/databasename';
ven, 6 aoû, 2010
Jusqu'à maintenant, impossible de supprimer la totalité d'un dossier en PHP tant que ce dernier n'est pas vide (aucun sous dossier ou fichier)
Voici une petite fonction que j'utilise pour contourner ce manque :
<?php function supprimer_dossier($directory, $empty = false) { if(substr($directory,-1) == "/") { $directory = substr($directory,0,-1); } if(!file_exists($directory) || !is_dir($directory)) { return false; } elseif(!is_readable($directory)) { return false; } else {
ven, 6 aoû, 2010
Sous PHP il manque parfois des fonctions très utiles comme pour copier un dossier avec tout son contenu.
Voici une petite fonction que j'utilise pour contourner ce manque :
<?php function copy_dir ($dir2copy,$dir_paste) { // On vérifie si $dir2copy est un dossier if (is_dir($dir2copy)) { // Si oui, on l'ouvre if ($dh = opendir($dir2copy)) { // On liste les dossiers et fichiers de $dir2copy while (($file = readdir($dh)) !== false) { // Si le dossier dans lequel on veut coller n'existe pas, on le créé
ven, 6 aoû, 2010
Une erreur sur les dernières versions de views quand on utilise comme argument un tid (identifiant du terme)
Voici l'erreur comme elle s'affiche :'views_plugin_argument_default' not found in
\sites\all\modules\views\modules\taxonomy\views_plugin_argument_default_taxonomy_tid.inc
Pour contourner cette erreur quand on utilise les arguments de la taxonomy:
--- taxonomy.views.inc 2010-04-06 12:59:29.000000000 -0700 +++ taxonomy.views.inc 2010-04-13 15:19:03.000000000 -0700 @@ -462,6 +462,7 @@ function taxonomy_views_plugins() {
ven, 6 aoû, 2010
Voici comme on peut recuperer les valeurs d'un champ CCK pour l'utiliser dans un autre module :
<?php $fields = module_invoke('content', 'fields','nom_fileld'); $values = module_invoke('content','allowed_values',$fields); ?>
ven, 6 aoû, 2010
Un probleme dans la tabulation du module quicktabs sous IE 7.
Un patch existe sur ce lien http://drupal.org/node/487518
le patch est :
Index: quicktabs.js =================================================================== --- quicktabs.js (revision 26) +++ quicktabs.js (working copy) @@ -41,13 +41,11 @@ this.tabIndex = el.myTabIndex; this.qtid = el.qtid; var qtKey = 'qt_' + this.qtid; - var i = 0; for (var key in Drupal.settings.quicktabs[qtKey].tabs) { - if (i == this.tabIndex) {

