Utiliser les tunnels d'achat de Drupal Commerce 2
Le rôle d'un Reverse Proxy Cache Varnish dans une architecture Web (type Drupal).
Voici comment créer un Menu item (élément de menu) avec des paramètres GET.
Pour cela on utilise le fichier MON_MODULE.links.menu.yml (à noter que cela marchera aussi dans les fichiers MON_MODULE.links.action.yml et MON_MODULE.links.task.yml)
formations.element: title: 'Mon titre de menu' weight : 2 route_name: view.front_formations.page menu_name: menu-formation options: query: label: 'prise-de-vue' cat: 2
Ici l'url aura comme « query string » : ?label=prise-de-vue&cat=2
Pour rappel la clé menu_name attend le nom du menu dans lequel on veut placer l'élément de menu que l'on vient de définir.
Le type nombre décimal peut-être pratique pour stocker tout nombre à virgule (un prix par exemple).
Voici comment attacher une propriété « nombre décimal » à un type d'entité personnalisé.
$fields['prix'] = BaseFieldDefinition::create('decimal') ->setLabel(t('Prix')) ->setSetting('unsigned', TRUE) ->setSetting('scale', 2) ->setSetting('min', 0) ->setSetting('suffix', '€ TTC') ->setRequired(TRUE) 'type' => 'number', 'weight' => 5, )) ->setDisplayConfigurable('form', TRUE) ->setDisplayConfigurable('view', TRUE);
Voici comment générer un lien pour « flaguer » une entité avec drupal 8 et le module flag :
$type_entite_a_flaguer = 'user'; $id_entitee_a_flaguer = $user->id(); $id_du_flag = 'follow_user'; $f = \Drupal::service('flag.link_builder'); $link = $f->build($type_entite_a_flaguer, $id_entitee_a_flaguer, $id_du_flag);
vous pourrez alors utiliser le lien dans un template en faisant par exemple :
{{- link -}}
Comment récupérer une liste d'entité custom dans une select box :
Ici je vais récupérer les informations via la méthode getentity
Quand on fait de l'intégration de thème sur Drupal 8, il est indispensable d'activer de debug Twig, le souci, c'est que parfois, on voudrait désactiver les suggestions pour par exemple, tester une condition.
exemple:
Il peut être intéressant d'afficher des champs supplémentaires si une checkbox est coché dans un formulaire.
Pour ce faire nous allons créer un type checkbox, un type container et en exemple un type url ainsi qu'un textfield :
Il peut être intéréssant de pouvoir créer à la voler des sites Drupal sur sa machine de dev.
Cet article n'a pas pour vocation de vous faire un cours sur Ansible mais de vous montrer un example de ce que j'ai fait pour me faciliter la vie.
https://gitlab.famillewallon.com/ansible-playbook/drupal-site-install
Tout d'abord voici l'arborescence de mon playbook
Entity Staging est un module qui permet exporter des types d'entités (contenus, commentaires, users, blocks...).
Ce module est encore en développement, mais je lui promet un avenir prométeur
Après avoir passé 3 jours génial au DrupalCamp de Lannion, j'ai décidé de passer mon site en "full Composer".
Fini l'utilisation de la commande drush dl, Fini les modules contrib dans gitlab.
Il peut être parfois intéréssant de relancer un hook, surtout quand on à ce genre d'erreur
Prérequis à mettre en place sur votre serveur
1) Avoir drush d'installé sur le serveur de production
2) Créer une clef ssh pour l'utilisateur apache et la rajouter sur votre serveur gitlab
3) Editer le virtualhost de drupal
Utilisation de Drupal comme outil centralisateur de flux.
Pour récupérer et retourner un webform où l'on veut via le code (que ce soit dans un bloc, un controller...) on peut utiliser les lignes suivantes :
// Ici, « contact » est le nom machine de mon webform $webform = \Drupal::entityTypeManager()->getStorage('webform')->load('contact'); return $webform->getSubmissionForm();
Voici comment récupérer le domaine actif quand on utilise le module Domain Access pour Drupal 8 :
$current_domain = \Drupal::service('domain.negotiator')->getActiveDomain();
Pour récupérer le domaine par défaut :
$default_domain = \Drupal::service('domain.negotiator')->loadDefaultDomain();
Pour créer un champ de base de type lien, dans la définition de votre entité :
$fields['mon_lien'] = BaseFieldDefinition::create('link') ->setLabel(t('Path')) // valeurs possible : LinkItemInterface::LINK_EXTERNAL ou LinkItemInterface::LINK_GENERIC ->setSetting('link_type', LinkItemInterface::LINK_GENERIC) //Activer ou non le titre ->setSetting('title', DRUPAL_DISABLED) ->setDisplayOptions('form', [ 'type' => 'link_default', 'weight' => 0, ]) ->setDisplayConfigurable('form', TRUE);
Comme tous les ans, le moment de l'AG est venu.
Nous vous donnons rendez-vous le jeudi 8 février prochain à 19h, à la maison des associations, Paris III (comme les années précédentes).
Après la présentation du rapport moral et du rapport financier de l'année, nous passerons à l'élection du nouveau bureau.
Vous souhaitez participer d'avantage ? Contactez nous avant l'AG.
N'oubliez pas que vous devez être à jour de votre cotisation pour prendre part au vote.
A jeudi !
https://www.meetup.com/fr-FR/drupal-france-francophonie/events/247382647/