Planète

Par bisonbleu

Uberdrupal: from distribution to profile - Part I

Uberdrupal: from distribution to profile - Part I

Druplicon with funky shades I've been experimenting with installation profiles for some time now. It all started with a Drupalcon Chicago presentation by Dmitri Gaskin (dmitrig01): From Zero to Distribution using Features, Profiler, and Drush Make. A year ago, on a bad day, setting up a fresh Drupal installation in order to test a module or try some new tricks in Views could take me as much as two hours. The possibility of installing Drupal with a custom list of contrib modules in less than a minute seemed like science-fiction at the time.

ren.admin
mer 25/01/2012 - 11:44

Par haza
Nicolas Meyer

EntityFieldQuery, prise en main

Il est souvent nécessaire de trouver toutes les entités d'un site selon certaines conditions.
Un non-initié aura surement le réflexe d'aller coder lui-même sa requête SQL, avec tout ce que cela comporte en matière de génocide chatonnesque (j'invente des mots si je veux)

Pour réaliser ce type de demande, Drupal embarque la class EntityFieldQuery (EFQ) qui permet de réaliser ceci de manière très rapide, maintenable et sécurisée.

Exemple, imaginons que l'on utilise DrupalCommerce, que l'on ne connait rien a la structure des tables crées au niveau du SGBD, mais que l'on souhaite obtenir tous les produits correspondant a une liste de SKU donnée, cela donnerait à peu près :

$sku = array('001', '002', '003', '004', '005');  
$query = new EntityFieldQuery;  
$result = $query->entityCondition('entity_type', 'commerce_product')    
                ->propertyCondition('status', 1)     
                ->propertyCondition('sku', $sku)     
                ->execute();  
 
return $result;

Voila un exemple de ce nous retournerais ce petit bout de code :

array(
  'commerce_product' => array(
    542 => (object) array(
        'product_id' => '542',
        'type' => 'product',
      ),
    543 => (object) array(
        'product_id' => '543',
        'type' => 'product',
      ),
    544 => (object) array(
        'product_id' => '544',
        'type' => 'product',
      ),
    545 => (object) array(
        'product_id' => '545',
        'type' => 'product',
      ),
    546 => (object) array(
        'product_id' => '546',
        'type' => 'product',
      ),
  ),
)

Et voila, rien de plus compliqué que ça.

Un autre exemple, avec l'utilisation de node_load_multiple()

$query = new EntityFieldQuery();
$entities = $query->entityCondition('entity_type','node')   
                  ->entityCondition('bundle','event')   
                  ->propertyCondition('status',1)   
                  ->fieldCondition('field_date','value', array('2011-03-01','2011-03-31'),'BETWEEN')   
                  ->fieldOrderBy('field_date','value','ASC')   
                  ->execute();

$nodes = entity_load('node', array_keys($entities['node']));
return node_view_multiple($nodes,'teaser');

Je pense que ca peut même se passer de commentaire tellement c'est clair et lisible.

Pour plus d'information, vous pouvez aller jeter un oeil sur la documentation

Vous n'avez maintenant plus aucune excuse pour ne pas utiliser cette class dans vos modules !

Tags: 
Par juliendubreuil
julien dubreuil
Drupal since 2009

Exporter vos views dans vos modules

Voici un petit billet pour vous montrer qu’il est simple d’exporter vos vues créées depuis l’interface d’administration directement dans vos modules. Pourquoi ? Simplement pour ne pas laisser le code dans la base de données et pour avoir une copie de celui-ci quelque part dans des fichiers bien au chaud.

Avant toute chose, sachez qu’il existe presque toujours une solution afin d’exporter ce que vous avez fait sur le site dans un module, pour cela vous pouvez utiliser l’API d’un module, un autre module dédié à l’export ou encore utiliser le module Features qui permet d’exporter pas mal de choses en quelques clics. Pour si peu, j’avoue que je préfère mettre ça dans un module et puis de toute façon je ne suis pas un grand fan de Features.

Le code ci dessous est basé sur views 3 et Drupal 7 mais il est semblable à ce que l’on pouvait trouver avec la version 6. Pour cet exemple j’ai crée un module Drupal nommé sandbox dans lequel j’ai ajouté un fichier sandbox.info et sandbox.module.

Première étape : Préparation de notre module l’api de Views

La première étape consiste à se faire connaître auprès de views en invoquant son API, dans notre cas la dernière version, la 3.

/**
* Implements hook_views_api().
*/
function sandbox_views_api() {
 return array(
   'api' => 3,
 );
}

Pour une question de lisibilité et pour mieux nous y retrouver dans nos fichiers, créez un nouveau répertoire nommé views à la racine de votre module dans lequel nous placerons par la suite toutes les vues que nous exporterons.

Créez un nouveau fichier portant par exemple le nom de votre vue et l’extension “.inc” (ex : ma_gestion_des_articles.inc), ouvrez le et placez y la balise d’ouverture PHP (

Chaque vue aura ainsi son propre fichier de configuration.

Deuxième étape : Exporter vos vues.

L’exportation d’une vue se fait directement depuis l’interface d’administration de views (admin/structure/views). Cliquez sur le lien “exportez” qui se trouve dans le petit menu d’édition à droite dans la catégorie “opérations” de chaque vue. A ce moment là, votre page se recharge vous mettant face à votre export. Copiez le code, collez le dans le fichier que nous avons crée à l’étape précédente puis sauvegardez le.

Voila, vous avez exporté une copie de sauvegarde de votre vue mais pour le moment Views ne sait pas encore qu’elle existe.

Troisième étape : Indiquer à Views où trouver les fichiers d’export de nos vues.

Dans un nouveau fichier sandbox.views_default.inc à la racine de notre module nous allons créer un petit bout de code qui va nous permettre de scanner automatiquement notre repertoire afin d’indiquer à Views où sont stockés nos fichiers d’export.

/**
* Implements hook_views_default_views().
*/
function sandbox_views_default_views() {
 static $views;

 if (isset($views)) {
   return $views;
 }

 // Remplacer le nom de mon module “sandbox” par le nom de votre module.
 $files = file_scan_directory(drupal_get_path('module', 'sandbox') . '/views', '/\.inc$/');
 foreach ($files as $filepath => $file) {
   include $filepath;
   if (isset($view)) {
     $views[$view->name] = $view;
   }
 }
 return $views;
}

A partir de maintenant, Views est capable de venir lire dans ce répertoire et de charger les vues sur votre site. Vous pouvez ainsi stocker une copie de chacune de vos vues, ce qui vous sera pratique si vous voulez installer votre module sur plusieurs sites.

La mise à jour d’une vue ?

Une vue ça vit et, même si vous l’avez exportée dans un module, vous pouvez encore effectuer des modifications sur celle-ci depuis l’interface d’administration des views, elle passera alors dans un état “surchargée”. Notez que si vous la modifiez, elle ne sera plus identique à celle que possède votre module, n’oubliez donc pas de l’exporter à nouveau dans votre module. Néanmoins pour views, la vue à utiliser est toujours la copie qu’il a créée lorsque vous avez sauvegardé vos modifications. Pour revenir à la version qui se trouve dans votre module, vous devez cliquer sur le lien “revert view”.

Cet article Exporter vos views dans vos modules est apparu en premier sur Julien Dubreuil.

Par juliendubreuil
julien dubreuil
Drupal since 2009

Exporter vos views dans vos modules

Exporter vos views dans vos modules

Voici un petit billet pour vous montrer qu’il est simple d’exporter vos vues créées depuis l’interface d’administration directement dans vos modules. Pourquoi ? Simplement pour ne pas laisser le code dans la base de données et pour avoir une copie de celui-ci quelque part dans des fichiers bien au chaud.

Avant toute chose, sachez qu’il existe presque toujours une solution afin d’exporter ce que vous avez fait sur le site dans un module, pour cela vous pouvez utiliser l’API d’un module, un autre module dédié à l’export ou encore utiliser le module Features qui permet d’exporter pas mal de choses en quelques clics. Pour si peu, j’avoue que je préfère mettre ça dans un module et puis de toute façon je ne suis pas un grand fan de Features.

Le code ci dessous est basé sur views 3 et Drupal 7 mais il est semblable à ce que l’on pouvait trouver avec la version 6. Pour cet exemple j’ai crée un module Drupal nommé sandbox dans lequel j’ai ajouté un fichier sandbox.info et sandbox.module.

Première étape : Préparation de notre module l’api de Views

La première étape consiste à se faire connaître auprès de views en invoquant son API, dans notre cas la dernière version, la 3.


1
2
3
4
5
6
7
8
<span class='line'><span class="sd">/**</span>
</span><span class='line'><span class="sd">* Implements hook_views_api().</span>
</span><span class='line'><span class="sd">*/</span>
</span><span class='line'><span class="k">function</span> <span class="nf">sandbox_views_api</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'> <span class="k">return</span> <span class="k">array</span><span class="p">(</span>
</span><span class='line'>   <span class="s1">&#39;api&#39;</span> <span class="o">=&gt;</span> <span class="mi">3</span><span class="p">,</span>
</span><span class='line'> <span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span>

Pour une question de lisibilité et pour mieux nous y retrouver dans nos fichiers, créez un nouveau répertoire nommé views à la racine de votre module dans lequel nous placerons par la suite toutes les vues que nous exporterons.

Créez un nouveau fichier portant par exemple le nom de votre vue et l’extension “.inc” (ex : ma_gestion_des_articles.inc), ouvrez le et placez y la balise d’ouverture PHP (Deuxième étape : Exporter vos vues.

L’exportation d’une vue se fait directement depuis l’interface d’administration de views (admin/structure/views). Cliquez sur le lien “exportez” qui se trouve dans le petit menu d’édition à droite dans la catégorie “opérations” de chaque vue. A ce moment là, votre page se recharge vous mettant face à votre export. Copiez le code, collez le dans le fichier que nous avons crée à l’étape précédente puis sauvegardez le.

Voila, vous avez exporté une copie de sauvegarde de votre vue mais pour le moment Views ne sait pas encore qu’elle existe.

Troisième étape : Indiquer à Views où trouver les fichiers d’export de nos vues.

Dans un nouveau fichier sandbox.views_default.inc à la racine de notre module nous allons créer un petit bout de code qui va nous permettre de scanner automatiquement notre repertoire afin d’indiquer à Views où sont stockés nos fichiers d’export.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<span class='line'><span class="sd">/**</span>
</span><span class='line'><span class="sd">* Implements hook_views_default_views().</span>
</span><span class='line'><span class="sd">*/</span>
</span><span class='line'><span class="k">function</span> <span class="nf">sandbox_views_default_views</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'>  <span class="k">static</span> <span class="nv">$views</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'>  <span class="k">if</span> <span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$views</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'>    <span class="k">return</span> <span class="nv">$views</span><span class="p">;</span>
</span><span class='line'>  <span class="p">}</span>
</span><span class='line'>
</span><span class='line'>  <span class="c1">// Remplacer le nom de mon module “sandbox” par le nom de votre module.</span>
</span><span class='line'>  <span class="nv">$files</span> <span class="o">=</span> <span class="nx">file_scan_directory</span><span class="p">(</span><span class="nx">drupal_get_path</span><span class="p">(</span><span class="s1">&#39;module&#39;</span><span class="p">,</span> <span class="s1">&#39;sandbox&#39;</span><span class="p">)</span> <span class="o">.</span> <span class="s1">&#39;/views&#39;</span><span class="p">,</span> <span class="s1">&#39;/\.inc$/&#39;</span><span class="p">);</span>
</span><span class='line'>  <span class="k">foreach</span> <span class="p">(</span><span class="nv">$files</span> <span class="k">as</span> <span class="nv">$filepath</span> <span class="o">=&gt;</span> <span class="nv">$file</span><span class="p">)</span> <span class="p">{</span>
</span><span class='line'>  <span class="k">include</span> <span class="nv">$filepath</span><span class="p">;</span>
</span><span class='line'>  <span class="k">if</span> <span class="p">(</span><span class="nb">isset</span><span class="p">(</span><span class="nv">$view</span><span class="p">))</span> <span class="p">{</span>
</span><span class='line'>    <span class="nv">$views</span><span class="p">[</span><span class="nv">$view</span><span class="o">-&gt;</span><span class="na">name</span><span class="p">]</span> <span class="o">=</span> <span class="nv">$view</span><span class="p">;</span>
</span><span class='line'>  <span class="p">}</span>
</span><span class='line'>  <span class="k">return</span> <span class="nv">$views</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span>

A partir de maintenant, Views est capable de venir lire dans ce répertoire et de charger les vues sur votre site. Vous pouvez ainsi stocker une copie de chacune de vos vues, ce qui vous sera pratique si vous voulez installer votre module sur plusieurs sites.

La mise à jour d’une vue ?

Une vue ça vit et, même si vous l’avez exportée dans un module, vous pouvez encore effectuer des modifications sur celle-ci depuis l’interface d’administration des views, elle passera alors dans un état “surchargée”. Notez que si vous la modifiez, elle ne sera plus identique à celle que possède votre module, n’oubliez donc pas de l’exporter à nouveau dans votre module. Néanmoins pour views, la vue à utiliser est toujours la copie qu’il a créée lorsque vous avez sauvegardé vos modifications. Pour revenir à la version qui se trouve dans votre module, vous devez cliquer sur le lien “revert view”.

Par fgm@drupal.org
Adhérent
Frédéric G. Marand

Drupal et le NoSQL - Drupal 8 WSCCI - DrupalCamp Toulouse

Si vous avez manqué la présentation sur les outils NoSQL dans Drupal à l'occasion de Drupagora et si vous trouvez que les slides sans les commentaires sont un peu arides, n'hésitez pas à faire le déplacement jusqu'à Toulouse pour DrupalCamp Toulouse ce weekend, où elle sera proposée une deuxième fois.

Inscrivez-vous sur http://toulouse2011.drupalcamp.fr/ et rejoignez-nous pour les talks du samedi et/ou les ateliers du dimanche: s'il y a suffisamment d'intéressés, nous tenterons de démarrer des participations sur l'initiative WSCCI de Drupal 8.

en lire plus

Par juliendubreuil
julien dubreuil
Drupal since 2009

Comment créer et appliquer des styles d’images avec Drupal 7 via le code

Cet article fait suite au précédent post : « Comment créer et appliquer des styles d’images avec Drupal 7 via l’UI » ou je vous détaillais comment, via l’interface d’administration, créer un style d’image. Aujourd’hui le sujet reste le même, mais la création sera faite par la programmation.

Si comme moi, vous êtes confrontés à maintenir à jour des sites Drupal, vous avez déjà dû vous poser tout un tas de questions sur la pérennisation des configurations et de ce fait, vous vous êtes résignés à faire vos modifications directement depuis l’interface d’administration. Du coup, pour chaque chose simple qu’il est possible de faire via le back-office de Drupal, il faut trouver comment le faire en code.

Ainsi, sur la même base que l’article précédent, voici comment créer et appliquer un style d’image par la programmation.

Créer un style d’image via le code

La solution la plus simple consiste à implémenter le hook_image_default_styles() fourni par le module image, qui permet de définir un ou plusieurs style(s) d’images à Drupal dans votre fichier .module.

function sandbox_image_default_styles() {
  // La variable $style est un tableau et chaque composant sera un nouveau style.
  $styles = array();
  // La clé du tableau sera le nom machine de votre style. Pour qu’il  n’y ait pas de soucis contentez-vous de caractères alphanumériques,  d’underscores et de tirets.
  $styles['image_style_example'] = array();
  // Pour chaque style pour pouvez ajouter plusieurs effets
  $styles['image_style_example']['effects'] = array(
  // Premier effet à appliquer à l’image
    array(
      'name' => 'image_rotate',
      'data' => array(
      'degrees' => 2,
      'random' => 0,
      'bgcolor' => '#CECECE',
      ),
     'weight' => 0,
    ),
    // Deuxième effet
    array(
      'name' => 'image_scale',
      'data' => array(
      'width' => 200,
      'height' => 200,
      'upscale' => 1,
    ),
    'weight' => 1,
    ),
  );
  return $styles;
}

On ne peut plus simple non ? Vous trouverez toutes les informations concernant les effets de base disponibles dans le fichier image.effects.inc du module image.

Voici d’autres fonctions utiles si vous souhaitez intervenir sur les différents styles d’images :

- image_styles : pour récupérer tous les styles d’images.
- image_style_load : pour charger et obtenir les informations d’un style.
- image_style_save : pour sauvegarder un style (après une mise à jour par exemple).
- image_style_delete : pour supprimer un style

Si toutefois vous n’avez pas trouvé votre bonheur dans ces fonctions, voici toutes les fonctions et méthodes implémentées par le module images

Appliquer un style d’image

Pour appliquez un style d’image à une image il suffit simplement d’utiliser la fonction de thème : theme_image_style($variables).
$variables est un tableau composé de différents éléments :
- style_name: le nom du style que vous voulez appliquer
- path: Le chemin de l’image relatif au système de fichier de Drupal. (ex : public://mon-image.jpg)
- alt: un text alternatif au cas où l’image ne pourrait pas être affichée.
- title: Le titre de votre image. Celui-ci sera affiché lorsque l’image sera survolée
- attributes: un tableau associatif bien connu des fonctions de thème permettant de passer des attributs à la baslise img, tel que des class css…

Notez que votre image doit se trouver sur votre site, car cela ne fonctionne pas avec une image externe.

// Récupération de l’adresse de l’image.

$path = "images/funny_cat.jpg"; // Qui à pour adresse sites/default/files/images/funny_cat.jpg
// Transformation de celle-ci.
$uri = (file_build_uri($path));
// Génération de notre image.
$image = theme('image_style', array( 'path' =>  $uri, 'style_name' => 'image_style_example'));

Et voila vous venez de créer et appliquer un style via la programmation !

Crédits Photo

Cet article Comment créer et appliquer des styles d’images avec Drupal 7 via le code est apparu en premier sur Julien Dubreuil.

Par juliendubreuil
julien dubreuil
Drupal since 2009

Comment créer et appliquer des styles d’images avec Drupal 7 via le code

Comment créer et appliquer des styles d’images avec Drupal 7 via le code

Cet article fait suite au précédent post : “Comment créer et appliquer des styles d’images avec Drupal 7 via l’UI” ou je vous détaillais comment, via l’interface d’administration, créer un style d’image. Aujourd’hui le sujet reste le même, mais la création sera faite par la programmation.

Si comme moi, vous êtes confrontés à maintenir à jour des sites Drupal, vous avez déjà dû vous poser tout un tas de questions sur la pérennisation des configurations et de ce fait, vous vous êtes résignés à faire vos modifications directement depuis l’interface d’administration. Du coup, pour chaque chose simple qu’il est possible de faire via le back-office de Drupal, il faut trouver comment le faire en code.

Ainsi, sur la même base que l’article précédent, voici comment créer et appliquer un style d’image par la programmation.

Créer un style d’image via le code

La solution la plus simple consiste à implémenter le hook_image_default_styles() fourni par le module image, qui permet de définir un ou plusieurs style(s) d’images à Drupal dans votre fichier .module.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<span class='line'><span class="k">function</span> <span class="nf">sandbox_image_default_styles</span><span class="p">()</span> <span class="p">{</span>
</span><span class='line'>  <span class="c1">// La variable $style est un tableau et chaque composant sera un nouveau style.</span>
</span><span class='line'>  <span class="nv">$styles</span> <span class="o">=</span> <span class="k">array</span><span class="p">();</span>
</span><span class='line'>  <span class="c1">// La clé du tableau sera le nom machine de votre style. Pour qu’il  n’y ait pas de soucis contentez-vous de caractères alphanumériques,  d’underscores et de tirets.</span>
</span><span class='line'>  <span class="nv">$styles</span><span class="p">[</span><span class="s1">&#39;image_style_example&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">array</span><span class="p">();</span>
</span><span class='line'>  <span class="c1">// Pour chaque style pour pouvez ajouter plusieurs effets</span>
</span><span class='line'>  <span class="nv">$styles</span><span class="p">[</span><span class="s1">&#39;image_style_example&#39;</span><span class="p">][</span><span class="s1">&#39;effects&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="k">array</span><span class="p">(</span>
</span><span class='line'>  <span class="c1">// Premier effet à appliquer à l’image</span>
</span><span class='line'>    <span class="k">array</span><span class="p">(</span>
</span><span class='line'>      <span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;image_rotate&#39;</span><span class="p">,</span>
</span><span class='line'>      <span class="s1">&#39;data&#39;</span> <span class="o">=&gt;</span> <span class="k">array</span><span class="p">(</span>
</span><span class='line'>        <span class="s1">&#39;degrees&#39;</span> <span class="o">=&gt;</span> <span class="mi">2</span><span class="p">,</span>
</span><span class='line'>        <span class="s1">&#39;random&#39;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span>
</span><span class='line'>        <span class="s1">&#39;bgcolor&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;#CECECE&#39;</span><span class="p">,</span>
</span><span class='line'>      <span class="p">),</span>
</span><span class='line'>      <span class="s1">&#39;weight&#39;</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">,</span>
</span><span class='line'>    <span class="p">),</span>
</span><span class='line'>    <span class="c1">// Deuxième effet</span>
</span><span class='line'>    <span class="k">array</span><span class="p">(</span>
</span><span class='line'>      <span class="s1">&#39;name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;image_scale&#39;</span><span class="p">,</span>
</span><span class='line'>      <span class="s1">&#39;data&#39;</span> <span class="o">=&gt;</span> <span class="k">array</span><span class="p">(</span>
</span><span class='line'>        <span class="s1">&#39;width&#39;</span> <span class="o">=&gt;</span> <span class="mi">200</span><span class="p">,</span>
</span><span class='line'>        <span class="s1">&#39;height&#39;</span> <span class="o">=&gt;</span> <span class="mi">200</span><span class="p">,</span>
</span><span class='line'>        <span class="s1">&#39;upscale&#39;</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span>
</span><span class='line'>      <span class="p">),</span>
</span><span class='line'>      <span class="s1">&#39;weight&#39;</span> <span class="o">=&gt;</span> <span class="mi">1</span><span class="p">,</span>
</span><span class='line'>    <span class="p">),</span>
</span><span class='line'>  <span class="p">);</span>
</span><span class='line'>  <span class="k">return</span> <span class="nv">$styles</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span>

On ne peut plus simple non ? Vous trouverez toutes les informations concernant les effets de base disponibles dans le fichier image.effects.inc du module image.

Voici d’autres fonctions utiles si vous souhaitez intervenir sur les différents styles d’images :

Si toutefois vous n’avez pas trouvé votre bonheur dans ces fonctions, voici toutes les fonctions et méthodes implémentées par le module images

Appliquer un style d’image

Pour appliquez un style d’image à une image il suffit simplement d’utiliser la fonction de thème : theme_image_style($variables).
$variables est un tableau composé de différents éléments :
– style_name: le nom du style que vous voulez appliquer
– path: Le chemin de l’image relatif au système de fichier de Drupal. (ex : public://mon-image.jpg)
– alt: un text alternatif au cas où l’image ne pourrait pas être affichée.
– title: Le titre de votre image. Celui-ci sera affiché lorsque l’image sera survolée
– attributes: un tableau associatif bien connu des fonctions de thème permettant de passer des attributs à la baslise img, tel que des class css…

Notez que votre image doit se trouver sur votre site, car cela ne fonctionne pas avec une image externe.


1
2
3
4
5
6
<span class='line'><span class="c1">// Récupération de l’adresse de l’image.  </span>
</span><span class='line'><span class="nv">$path</span> <span class="o">=</span> <span class="s2">&quot;images/funny_cat.jpg&quot;</span><span class="p">;</span> <span class="c1">// Qui à pour adresse sites/default/files/images/funny_cat.jpg</span>
</span><span class='line'><span class="c1">// Transformation de celle-ci.</span>
</span><span class='line'><span class="nv">$uri</span> <span class="o">=</span> <span class="p">(</span><span class="nx">file_build_uri</span><span class="p">(</span><span class="nv">$path</span><span class="p">));</span>
</span><span class='line'><span class="c1">// Génération de notre image.</span>
</span><span class='line'><span class="nv">$image</span> <span class="o">=</span> <span class="nx">theme</span><span class="p">(</span><span class="s1">&#39;image_style&#39;</span><span class="p">,</span> <span class="k">array</span><span class="p">(</span> <span class="s1">&#39;path&#39;</span> <span class="o">=&gt;</span>  <span class="nv">$uri</span><span class="p">,</span> <span class="s1">&#39;style_name&#39;</span> <span class="o">=&gt;</span> <span class="s1">&#39;image_style_example&#39;</span><span class="p">));</span>
</span>



Et voila vous venez de créer et appliquer un style via la programmation !

Crédits Photo

Par Simon Georges
Simon Georges
Drupal depuis plus de 10 ans, SEO depuis 3 ans

Makina Corpus à Capitole du Libre les 26 et 27 novembre !

Participez à Capitole du libre, l'évènement
du logiciel libre à Toulouse les samedi 26 et dimanche 27 novembre ! Capitole du Libre regroupera 3 thématiques : L'Ubuntu party, pour découvrir et
approfondir les logiciels libres, L'Akademy-fr, le rendez-vous de la
communauté française de KDE, Le Drup

Par fgm@drupal.org
Adhérent
Frédéric G. Marand

Drupal et le NoSQL

Présentation sur l'état de l'art en matière de technologies NoSQL en environnement Drupal, données le 2011-11-10 à l'occasion de la conférence Drupagora.

en lire plus

Par badgones

Form API Drupal : supprimer un éditeur WYSIWYG

Si vous voulez supprimer un éditeur Wysiwyg d'un textarea de vote formulaire, par exemple pour remplir des données dans une interface administrateur, il suffit de rajouter la ligne suivante :

<span style="color: #000000;"><strong><span style="color: #dd0000;">'#wysiwyg' </span><span style="color: #007700;">=&gt; </span><span style="color: #0000bb;">false<br /> <br /> <br /> </span></strong></span>Exemple :

<span style="color: #000000;"><span style="color: #0000bb;">$form</span><span style="color: #007700;">[</span><span style="color: #dd0000;">'textarea_field'</span><span style="color: #007700;">] = array(<br /> &nbsp;&nbsp;&nbsp; </span><span style="color: #dd0000;">'#type' </span><span style="color: #007700;">=&gt; </span><span style="color: #dd0000;">'textarea'</span><span style="color: #007700;">,</span></span>

en lire plus

Par juliendubreuil
julien dubreuil
Drupal since 2009

Comment créer et appliquer des styles d’images avec Drupal 7 via l’UI

Depuis Drupal 7 la gestion des images et des styles d’images est native, ainsi donc plus besoin d’installer le module imagecache pour retailler, pivoter ou encore redimensionner vos photos.
Une fois créée, vous pourrez appliquer vos styles sur n’importe quelle photo, qu’elle soit affichée dans le contenu d’un node ou encore dans le rendue d’une vue. La manip’ est vraiment simple et permet de décliner une photo en une quantité indéfinie de possibilité.

Voici donc un petit guide pour vous montrer comment ajouter de nouveaux styles d’images via l’interface de Drupal et comment vous en servir.

Créer un style d’image via l’interface d’administration

Première étape, rendez-vous sur la page d’administration des styles d’images Administration » Configuration » Media et cliquez sur Image styles. Cliquez sur le lien au dessus des trois styles d’images par défaut nommé Add style, et insérez un titre à votre style d’image. Petit conseil, soyez explicite sur les noms, car plus vous en aurez, plus cela deviendra difficile de vous y retrouver.


Deuxième étape
, l’ajout d’effets aux images et pour cela vous avez à votre disposition 6 choix :
- Crop : découpe l’image selon une certaine dimension.
- Desaturate : désature l’image.
- Resize : retaille l’image.
- Rotate : retourner l’image en fonction d’un angle.
- Scale : retaille l’image en gardant les proportions.
- Scale and crop : retaille et découpe l’image.

Choisissez l’effet désiré, entrez les dimensions voulus et sauvegardez.

Troisième étape, la visualisation des résultats. Une fois votre effet validé, vous vous retrouvez sur la page de votre nouveau style d’image. En haut de celle-ci se trouve deux images afin de voir le résultat de votre effet. A gauche l’image original et à droite l’image transformée.

Derniere étape, cliquez sur Update style pour valider les modifications effectuées et pour sauvegarder votre nouveau style que vous retrouvez pour mettre en forme chaque champ image

Appliquer un style d’image

Dans le cas d’un contenu, rendez-vous la page de gestion de l’affichage des champs : Administration » Structure » Content types et cliquez sur Manage display, pour le type de contenu de votre choix. Cliquez ensuite sur la petite icône en forme d’engrenage qui devrait se trouver à droite sur la ligne de votre champ image.

Sélectionnez le style de votre choix, cliquez sur le bouton update et votre style sera maintenant appliqué à ce champ. Pour visualiser les résultat rendez-vous sur la page de votre contenu et voila.

Cet article Comment créer et appliquer des styles d’images avec Drupal 7 via l’UI est apparu en premier sur Julien Dubreuil.

Pages