Planète

Par kgaut
Kevin Gautreau

Drupal 8 > le thème d'administration Adminimal est disponible

Je fais un petit peu joujou avec la version 8 de Drupal (la seconde version beta est sortie il y a quelques jours).

Et pour info la version 8 du superbe thème d'administration "Adminimal" est disponible. J'avais déjà rapidement présenté le thème ici. Alors même si toutes les customisations de la version 7 ne sont pas encore disponible, son utilisation améliore encore l'experience d'administration de Drupal 8.

Plus d'information sur la page du projet : https://www.drupal.org/project/adminimal_theme

 

Tags: 

Par kgaut
Kevin Gautreau

Drupal 8 > le thème d'administration Adminimal est disponible

Je fais un petit peu joujou avec la version 8 de Drupal (la seconde version beta est sortie il y a quelques jours).

Et pour info la version 8 du superbe thème d'administration "Adminimal" est disponible. J'avais déjà rapidement présenté le thème ici. Alors même si toutes les customisations de la version 7 ne sont pas encore disponible, son utilisation améliore encore l'experience d'administration de Drupal 8.

Plus d'information sur la page du projet : https://www.drupal.org/project/adminimal_theme

 

Tags: 

Créer une entité Drupal 8 en 10 secondes top chrono

Compteur vitesse voiture

Dans un précédent billet, nous avons découvert le projet Console qui permet d'automatiser la création de modules Drupal 8 et d'autres taches récurrentes. Découvrons ensemble quelques autres fonctionnalités très intéressantes, au travers notamment de la génération d'une entité Drupal 8 sur mesure.

Thème 
Drupal 8
Modules
Développement

Créer une entité Drupal 8 en 10 secondes top chrono

Dans un précédent billet, nous avons découvert le projet Console qui permet d'automatiser la création de modules Drupal 8 et d'autres taches récurrentes. Découvrons ensemble quelques autres fonctionnalités très intéressantes, au travers notamment de la génération d'une entité Drupal 8 sur mesure.

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

Drupal, tous des experts ?

Comment (bien) faire du Drupal ? Faut-il utiliser ce module ou préférer le coder ? Mon budget permet-il de réaliser ces développements ? Ne vous posez plus ces questions et venez vous former avec des experts !

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

Drupal, tous des experts ?

Comment faire du Drupal ? Faut-il utiliser ce module ou préférer le coder ? Mon budget permet-il de réaliser ces développements ? Ne vous posez plus ces questions et venez vous former avec des experts !

Par admin

Forum PHP - Montrouge 23-24 octobre 2014

Le Forum PHP 2014, l'événement majeur de l'AFUP et la communauté PHP francophone depuis plus de 10 ans, aura lieu à Montrouge les 23 et 24 octobre.

Il s'agit d'un rendez-vous incontournable autour du langage PHP, avec cette année les grandes thématiques suivantes :

  • Retours d'expérience PHP à grande vitesse
  • Gagner du temps avec l'écosystème open-source PHP
  • Agile et Devops en PHP
  • Les solutions du développeur PHP rapide

et bien sur des têtes d'affiches célèbres, que vous retrouverez sur le programme de ce grand événement : http://afup.org/pages/forumphp2014/sessions.php

On y parlera de Drupal (Live coding : construisons ensemble notre premier site Drupal 8) ou d'outils intéressant Drupal et d'autres langages (platform.sh le PAAS qui résout le casse tête dev/staging/prod)

Les membres de l'association Drupal France et Francophonie, à jour de cotisation, peuvent bénéficier d'une remise sur le prix de l'entrée. Pour cela, il suffit d'envoyer un courriel au bureau (bureau [à] listes.drupalfr.org) pour que l'on vous communique le code "coupon".

Enfin, de nombreuses surprises vous attendent comme les ateliers pratiques, les cliniques co-organisés par les sponsors, une soirée communautaire, etc...

Taxonomy upgrade extras : 
En page d'accueil : 

Créer un module Drupal 8 en 30 secondes

Chronomètre

Avec l'intégration de composants de Symfony2, l'adoption du format YAML, la refonte complète de Drupal 8 vers la programmation orientée objet, etc. l'initialisation d'un module Drupal 8 est devenue plus complexe (au  sens chronophage) que sur Drupal 7 où il suffisait de déclarer son module (fichier .info) et de créer un fichier .module pour pouvoir commencer tout de suite à développer des fonctionnalités métier.

Thème 
Développement
Modules
Drupal 8

Créer un module Drupal 8 en 30 secondes

Avec l'intégration de composants de Symfony2, l'adoption du format YAML, la refonte complète de Drupal 8 vers la programmation orientée objet, etc. l'initialisation d'un module Drupal 8 est devenue plus complexe (au  sens chronophage) que sur Drupal 7 où il suffisait de déclarer son module (fichier .info) et de créer un fichier .module pour pouvoir commencer tout de suite à développer des fonctionnalités métier.

Par admin

Coupon de réduction pour Drupagora

L'association Drupal France et Francophonie (DrupalFR) est partenaire de Drupagora 2014. Il s'agit d'un événement dédié aux Chefs de Projets et DSI.

Pour l'édition 2014, un programme de qualité est proposé avec les thématiques suivantes :

  • Un cycle dédié à l’industrialisation
  • Un cycle dédié au e-commerce
  • Des conférences dédiées aux bonnes pratiques, au cloud et à la sécurité
  • De nombreux retours d’expérience

Drupagora

Enfin, grâce à l'association, vous pouvez bénéficier d'une remise sur le prix d'entrée de 50 % jusqu'au 24 octobre et après 30 %.
Ce coupon de réduction est disponible sur simple demande à bureau [ALT] listes [POINT] drupalfr [POINT] org, si vous êtes membre de l'association et à jour de votre cotisation

Le programme de Drupagora 2014
Site de l'événement Drupagora 2014

Par vincent59
Vincent Liefooghe

Récupérer un terme de taxonomie à partir d'un champ spécifique

Depuis Drupal7, on peut ajouter des champs à un terme de taxonomie.

Ceci peut être intéressant pour ajouter une image ou d'autres informations. Mais comment dans ce cas chercher un terme de taxonomie sur la base de ce champ spécifique ?
Imaginous que nous avons une taxonomie de type "Music Categories", sur laquelle nous ajoutons un champ spécifique, "music_code", qui est utilisé dans une interface avec une autre système.

Nous avons alors 2 options :

  •     utiliser la fonction taxonomy_get_tree et filtrer les résultats sur ce champ
  •     rechercher  directement sur ce champ, via EntityFieldQuery

Dans cet article, j'explique comme retrouver un terme, en se basant sur un champ spécifique, en utilisant EntityFieldQuery.

Cet example peut être lancé en ligne de commande, sans être inclus dans un module. Voyons le code :
 

<?php
$_SERVER['REMOTE_ADDR']='localhost';
// drupal bootstrap
$drupal_directory = "/var/www/drupal";
chdir($drupal_directory);
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

// Retrieve Vocabulary ID (VID)
$vocabulary_name='categories';
$vocab = taxonomy_vocabulary_machine_name_load($vocabulary_name);

// bundle = Machine Name of the vocabulary
$query = new EntityFieldQuery();
$query
  --->entityCondition('entity_type', 'taxonomy_term')
  ->entityCondition('bundle', $vocabulary_name)
  ->propertyCondition('vid', $vocab->vid)
  ->fieldCondition('field_music_code', 'value', 'C042', '=');

$results = $query->execute();
if (!empty($results['taxonomy_term'])) {
  foreach($results['taxonomy_term'] as $tid) {
    $term = taxonomy_term_load($tid->tid);
    $name=$term->name;
    echo "Term ID = ",$term->tid," Name = ",$name,PHP_EOL;
    echo "Field Code Client Value = ",$term->field_music_code[LANGUAGE_NONE][0]['value'],PHP_EOL;
  }
}
else
{
  echo "No result for this code ! ",PHP_EOL;
}
?>

Les 7 premières lignes sont utilisées pour lancer le bootstrap Drupal puisque nous n'utilisons pas de module.
Ensuite, nous recherchons le Vocabulary ID, avec la fonction taxonomy_vocabulary_machine_name_load. Ceci nous donne le VID (vocabulary ID).
Nous construisons ensuite la requête Entity Query, avec plusieurs paramètres :

  •     Entity type : dans notre cas, c'est 'taxonomy_term' car nous travaillons sur les taxonomies
  •     Bundle : le nom machine du vocabulaire
  •     propertyCondition : l'ID du vocabulaire que nous utilisons pour la recherche des termes
  •     fieldCondition : la condition placée sur le champ spécifique.

Dans cet exemple, le code est C042, et nous cherchons tous les termes qui utilisent ce code dans leur champ spécifique.

Le résultat, dans notre cas, est  :

Term ID = 4 Name = Funk
Field Code Client Value = C042

 

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Récupérer un terme de taxonomie à partir d'un champ spécifique

Depuis Drupal7, on peut ajouter des champs à un terme de taxonomie.

Ceci peut être intéressant pour ajouter une image ou d'autres informations. Mais comment dans ce cas chercher un terme de taxonomie sur la base de ce champ spécifique ?
Imaginous que nous avons une taxonomie de type "Music Categories", sur laquelle nous ajoutons un champ spécifique, "music_code", qui est utilisé dans une interface avec une autre système.

Nous avons alors 2 options :

  •     utiliser la fonction taxonomy_get_tree et filtrer les résultats sur ce champ
  •     rechercher  directement sur ce champ, via EntityFieldQuery

Dans cet article, j'explique comme retrouver un terme, en se basant sur un champ spécifique, en utilisant EntityFieldQuery.

Cet example peut être lancé en ligne de commande, sans être inclus dans un module. Voyons le code :
 

<?php
$_SERVER['REMOTE_ADDR']='localhost';
// drupal bootstrap
$drupal_directory = "/var/www/drupal";
chdir($drupal_directory);
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

// Retrieve Vocabulary ID (VID)
$vocabulary_name='categories';
$vocab = taxonomy_vocabulary_machine_name_load($vocabulary_name);

// bundle = Machine Name of the vocabulary
$query = new EntityFieldQuery();
$query
  --->entityCondition('entity_type', 'taxonomy_term')
  ->entityCondition('bundle', $vocabulary_name)
  ->propertyCondition('vid', $vocab->vid)
  ->fieldCondition('field_music_code', 'value', 'C042', '=');

$results = $query->execute();
if (!empty($results['taxonomy_term'])) {
  foreach($results['taxonomy_term'] as $tid) {
    $term = taxonomy_term_load($tid->tid);
    $name=$term->name;
    echo "Term ID = ",$term->tid," Name = ",$name,PHP_EOL;
    echo "Field Code Client Value = ",$term->field_music_code[LANGUAGE_NONE][0]['value'],PHP_EOL;
  }
}
else
{
  echo "No result for this code ! ",PHP_EOL;
}
?>

Les 7 premières lignes sont utilisées pour lancer le bootstrap Drupal puisque nous n'utilisons pas de module.
Ensuite, nous recherchons le Vocabulary ID, avec la fonction taxonomy_vocabulary_machine_name_load. Ceci nous donne le VID (vocabulary ID).
Nous construisons ensuite la requête Entity Query, avec plusieurs paramètres :

  •     Entity type : dans notre cas, c'est 'taxonomy_term' car nous travaillons sur les taxonomies
  •     Bundle : le nom machine du vocabulaire
  •     propertyCondition : l'ID du vocabulaire que nous utilisons pour la recherche des termes
  •     fieldCondition : la condition placée sur le champ spécifique.

Dans cet exemple, le code est C042, et nous cherchons tous les termes qui utilisent ce code dans leur champ spécifique.

Le résultat, dans notre cas, est  :

Term ID = 4 Name = Funk
Field Code Client Value = C042

 

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Retrieve Taxonomy Term by a custom field

Starting with Drupal7, once can add fields to taxonomy terms.

This can be interesting to add images or other informations. But what if you want to search a taxonomy term on this custom field in a module ?

Imagine we have a list of Music Categories, and we add a custom field, "music_code", that is used to interface with one other system.

Then we have 2 options :

In this article, I explain how to retreive a term ID based on a custom field on a Drupal taxonomy.

This example can be run on the command line for testing, no need for a module.

 

<?php
$_SERVER['REMOTE_ADDR']='localhost';
// drupal bootstrap
$drupal_directory = "/var/www/drupal";
chdir($drupal_directory);
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

// Retrieve Vocabulary ID (VID)
$vocabulary_name='categories';
$vocab = taxonomy_vocabulary_machine_name_load($vocabulary_name);

// bundle = Machine Name of the vocabulary
$query = new EntityFieldQuery();
$query
  ->entityCondition('entity_type', 'taxonomy_term')
  ->entityCondition('bundle', $vocabulary_name)
  ->propertyCondition('vid', $vocab->vid)
  ->fieldCondition('field_music_code', 'value', 'C042', '=');

$results = $query->execute();
if (!empty($results['taxonomy_term'])) {
  foreach($results['taxonomy_term'] as $tid) {
    $term = taxonomy_term_load($tid->tid);
    $name=$term->name;
    echo "Term ID = ",$term->tid," Name = ",$name,PHP_EOL;
    echo "Field Code Client Value = ",$term->field_music_code[LANGUAGE_NONE][0]['value'],PHP_EOL;
  }
}
else
{
  echo "No result for this code ! ",PHP_EOL;
}
?>

The first lines are here only to bootstrap Drupal when you are not in a module.

Then we define the Vocabulary ID, with taxonomy_vocabulary_machine_name_load function. This gives us the vocabulary ID (we suppose it is created).

Then we build the Entity Query, with several parameters :

  • Entity type : in our case, it is 'taxonomy_term' because we are dealing with taxonomies
  • Bundle : the machine name of our vocabulary
  • propertyCondition : the vocabulary ID we use to identify the terms (belonging to this vocabulary)
  • fieldCondition : the condition placed on the custom field.

In this example, the code is C042, and we search all terms (well, there is only one) that is using this code.

The result in our case is :

Term ID = 4 Name = Funk
Field Code Client Value = C042

 

Catégorie: 


Tag: 

Par vincent59
Vincent Liefooghe

Retrieve Taxonomy Term by a custom field

Starting with Drupal7, once can add fields to taxonomy terms.

This can be interesting to add images or other informations. But what if you want to search a taxonomy term on this custom field in a module ?

Imagine we have a list of Music Categories, and we add a custom field, "music_code", that is used to interface with one other system.

Then we have 2 options :

In this article, I explain how to retreive a term ID based on a custom field on a Drupal taxonomy.

This example can be run on the command line for testing, no need for a module.

 

<?php
$_SERVER['REMOTE_ADDR']='localhost';
// drupal bootstrap
$drupal_directory = "/var/www/drupal";
chdir($drupal_directory);
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

// Retrieve Vocabulary ID (VID)
$vocabulary_name='categories';
$vocab = taxonomy_vocabulary_machine_name_load($vocabulary_name);

// bundle = Machine Name of the vocabulary
$query = new EntityFieldQuery();
$query
  ->entityCondition('entity_type', 'taxonomy_term')
  ->entityCondition('bundle', $vocabulary_name)
  ->propertyCondition('vid', $vocab->vid)
  ->fieldCondition('field_music_code', 'value', 'C042', '=');

$results = $query->execute();
if (!empty($results['taxonomy_term'])) {
  foreach($results['taxonomy_term'] as $tid) {
    $term = taxonomy_term_load($tid->tid);
    $name=$term->name;
    echo "Term ID = ",$term->tid," Name = ",$name,PHP_EOL;
    echo "Field Code Client Value = ",$term->field_music_code[LANGUAGE_NONE][0]['value'],PHP_EOL;
  }
}
else
{
  echo "No result for this code ! ",PHP_EOL;
}
?>

The first lines are here only to bootstrap Drupal when you are not in a module.

Then we define the Vocabulary ID, with taxonomy_vocabulary_machine_name_load function. This gives us the vocabulary ID (we suppose it is created).

Then we build the Entity Query, with several parameters :

  • Entity type : in our case, it is 'taxonomy_term' because we are dealing with taxonomies
  • Bundle : the machine name of our vocabulary
  • propertyCondition : the vocabulary ID we use to identify the terms (belonging to this vocabulary)
  • fieldCondition : the condition placed on the custom field.

In this example, the code is C042, and we search all terms (well, there is only one) that is using this code.

The result in our case is :

Term ID = 4 Name = Funk
Field Code Client Value = C042

 

Catégorie: 


Tag: 

Manipuler les menus de Drupal 8 (le retour)







Dans un précédent billet, nous avions pu voir que l'API Drupal 8 pour manipuler les menus avait assez peu changé. Mais c'était encore avec une version alpha, et les choses ont quelque peu évolué depuis...et notamment la sortie de la première version bêta de Drupal 8. Repassons en revue quelques techniques pour pouvoir intervenir sur un menu sous Drupal 8.

Thème 
Menu
Thème
Drupal 8

Manipuler les menus de Drupal 8 (le retour)

Dans un précédent billet, nous avions pu voir que l'API Drupal 8 pour manipuler les menus avait assez peu changé. Mais c'était encore avec une version alpha, et les choses ont quelque peu évolué depuis...et notamment la sortie de la première version bêta de Drupal 8. Repassons en revue quelques techniques pour pouvoir intervenir sur un menu sous Drupal 8.

Pages