Portrait de Alex

Ecrire un hook_update

Voici un exemple de hook_update qui ajoute un champ dans une table d'un module existant.

/**
 * Add "papervote" field to {election_vote} table.
 */
function MYMODULE_update_7100() {
    $spec = array(
        'type' => 'int',
        'description' => "Is a paper vote",
        'not null' => FALSE,
        'default' => 0,
    );
    db_add_field( 'election_vote', 'papervote', $spec);
}
Tags: 
Portrait de Alex

Envoyer des e-mails efficacement depuis Drupal

Cet article (en anglais) donne de très bons conseils pour configurer votre installation Drupal afin qu'elle envoie ses e-mails de façon efficace, en évitant au maximum de tomber dans le dossier SPAM.

https://www.drupalaid.com/blog/sending-email-drupal-more-reliably

Tags: 
Portrait de Alex

Compatibilité W3C sur les images

Cette fonction à coller dans votre template.php permet de générer les tags IMG à la façon recommandée du W3C.

Tags: 
Portrait de Alex

Finie la guerre avec les <p> !

Il arrive, selon votre configuration, que CKeditor crée des <p>&nbsp;</p> quand on colle du texte depuis Word par exemple.

Avant, il fallait patcher CKeditor, mais maintenant il y a le module CKeditor Paragraph Paste Fix

Ce module va simplement éviter ces paragraphes vides.

Disponible pour Drupal 7 seulement.

Tags: 
Portrait de Alex

Une administration au poil

Menu minimaliste mais beaucoup plus riche !

L'interface d'administration de Drupal par défaut, avec son thème Seven et son Overlayer, fait le boulot mais il est possible d'avoir beaucoup mieux.

Avec le thème Adminimal et le module Adminimal Administration Menu, vous aurez une administration beaucoup plus pratique et surtout responsive !

Portrait de Alex

eBook Acquia - Putting the Design in Responsive Design

Acquia a publié cet eBook concis à propos du Responsive Design dans Drupal.

Portrait de Alex

VirtualHost avec Apache > 2.4

Si vous mettez à jour votre serveur Web avec un Apache version 2.4 ou supérieure, la syntaxe des VirtualHost a changé pour certains points, ce qui pourrait les rendre inactifs et vous donner une belle erreur 500.

Pour ouvrir l'accès à tout le monde:

version 2.2 :

Order allow,deny
Allow from all

Portrait de Alex

Installer le plugin CkEditor 4.x avec le module Wysiwyg

CkEditor est disponible en version 4, qui améliore des tas de choses et qui est bien plus agréable à utiliser. 
Cependant avec la version 2.2 du module Wysiwyg, le plugin n'est pas reconnu, parce que des guillemets simples ont été remplacés par des doubles dans le fichier ckeditor.js du plugin. 
 
Pour résoudre ce problème, il faut patcher le module Wysiwyg comme suit: 
Fichier: wysiwyg/editors/ckeditor.inc Ligne 81 
Remplacer la ligne par: 
 
Portrait de Alex

Installer la Crontab sous Drupal 7

Sur tous les sites Drupal, il est nécessaire de lancer le cron pour indexer les données (Recherche classique, Apache Solr), envoyer les mails si vous passez par queue_mail, ... Le faire à la mano n'étant pas vraiment réalisable sur un site de forte affluence, voici comment le faire de façon automatique.
Pour ce faire, vous devez ajouter la ligne suivante dans la crontab :
Version wget

* 1 * * * /usr/bin/wget -O -q -t 1 http://www.example.com/cron.php?cron_key=[KEY]

Version lynx

Portrait de Alex

You're token to me?

Cette page sur Drupalons.fr propose un outil pour générer vos propres Token:

http://drupalons.fr/node/3588

Portrait de Alex

Utiliser une Google Font dans un template

En Drupal 7, pour intégrer une Google Font de la manière recommandée par Google (c'est à dire un chargement de la fonte via http, ce qui permet d'utiliser le cache navigateur des utilisateurs), ajoutez ce code dans template.php:

Portrait de Alex

Vidéo incorporée au contenu dans un champ Wysiwyg

Si vous avez besoin d'incorporer des vidéos dans votre contenu, c'est à dire incorporée au texte du Body par exemple, le module Video Filter permet de faire ça en rajoutant un bouton dans l'éditeur Wysiwyg:

 

 

Portrait de Alex

Media Queries dans vos thèmes

Il est possible de définir quel fichier .css utiliser en fonction de la résolution du navigateur ainsi, dans votre fichier MYTHEME.info:

stylesheets[(min-width: 480px)][] = css/480.css
stylesheets[(min-width: 768px)][] = css/768.css
stylesheets[(min-width: 1024px)][] = css/1024.css
stylesheets[(min-width: 1280px)][] = css/1280.css
Portrait de Alex

[Hidden CAPTCHA] Antispam: méthode du champ caché

Le module Hidden CAPTCHA propose une alternative pour protéger les formulaires des spambots: un champ antispam est ajouté, mais caché en CSS.

En effet il ne doit PAS être rempli par les utilisateurs afin de passer les validations.

Or 99% des spambots vont fournir du texte dans ce champ pour essayer de passer la validation... et donc échouer.

 

URL du module: http://drupal.org/project/hidden_captcha

Portrait de Alex

Se débarrasser des CSS par défaut (system) de Drupal

Rien de plus déplaisant lorsque l'ont crée un thème Drupal, que de devoir faire des règles pour "contrer" les règles css par défaut des modules Drupal.

Cette fonction permet de ne pas tenir compte des fichiers CSS system qui sont listés dans le tableau $exclude:

Tags: 
Portrait de Alex

[D6] Obtenir le Menu Item parent de la page actuelle

$active_trail = menu_get_active_trail();
end($active_trail);
$parent = prev($active_trail);
Tags: 
Portrait de Alex

Obtenir le chemin Drupal vers le thème

??>

Portrait de Alex

Ouvrir un fichier dans une nouvelle fenêtre (Drupal 6)

For Drupal 6 file fields
// Views may call this function with a NULL value, return an empty string.
if (empty($file['fid'])) {
return '';
}

$path = $file['filepath'];
$url = file_create_url($path);
$icon = theme('filefield_icon', $file);

// Set options as per anchor format described at
$options = array(
'attributes' =?> array(
'type' => $file['filemime'] . '; length=' . $file['filesize'],
),
);

Portrait de Alex

Ouvrir un fichier dans une nouvelle fenêtre

$file = $variables['file'];
$icon_directory = $variables['icon_directory'];

$url = file_create_url($file-?>uri);
$icon = theme('file_icon', array('file' => $file, 'icon_directory' => $icon_directory));

Tags: 
Portrait de Alex

Wysiwyg + CKEditor rajoute <p>&nbsp;</p> au début de mon body...

Ceci corrige ce bug.

A implémenter dans un module custom.

 

Pages

Subscribe to Drupal Cookbook RSS