nodes
#
Nodes#
Partage d'un article#
Share sur Facebook#
Share sur Twitter#
Share sur Linkedin#
Share sur Whatsapp#
Share sur Messenger (Ă tester uniquement sur mobile)- Necessite d'avoir une app_id valide
#
Traduire les textes d'un thÚmeLorsque le code a été livré pour pouvoir le saisir en BO, il faut :
Vider le cache
Aller sur la page oĂč la traduction est prĂ©sente
Vider le cache Ă nouveau
Pour saisir les traduction, il faut se rendre sur le BO :
Configuration => Regional and language => User interface translation
Rechercher le texte à traduire (Go to next page dans l'exemple) et la langue souhaitée et saisir la valeur attendue.
#
Obtenir l'URL / URI d'un reference field en twigThe url is not an entity field, so you can't access it directly. Also the entity methods to generate url/links are not accessible in Twig because of the sandbox policies. You can build a path though, if you have the id of the referenced node:
#
Champ de type listeTo get the value of a list element :
To get the label :
If the field has multiple values :
#
Champ de type lien#
Afficher le titre d'un champ de type lien#
Tester si un champ de type lien est externe#
Mettre l'url d'un champ de type lien (link)#
Formater une date dans TwigPour personnaliser une date
Pour prendre en compte une timezone
#
Connaitre les jours de différence entre 2 dates#
Affiché la date en Françaisie: 17 novembre 2021
#
Pour afficher les jours :#
Pour afficher les heures:#
Récupérer et formater la date de création et modification d'un node#
Afficher l'url d'un node#
Truncate un champ pour afficher un résuméIl suffit de choisir l'option "coupé" dans le format au niveau du format d'affichage du node.
On utilisera alors {{content.field_name}}
pour l'afficher
#
Afficher l'url d'une vue(page_1 correspond à l'id de la page de la vue). Utiliser un tel chemain est trÚs important pour les traductions puisque le chemin proposé sera automatiquement dans celui de la langue.
#
Afficher un node suivant un display modeA l'aide de Twig tweak :
#
Deux affichages diffĂ©rents pour un mĂȘme nodePour pouvoir avoir 2 urls diffĂ©rentes pour un mĂȘme node, utiliser le module https://www.drupal.org/project/view_mode_page
#
Ajouter une classe sur un field- Pour ajouter une classe "cp-box__btn" sur le lien des field_tags, montheme.theme doit ĂȘtre modifiĂ©:
#
Retrouver le nombre d'éléments d'un field{{ kint(row.content['#flagging'].getIterator().field_liens) }}
#
Import de texte dans un ckeditorDrupal 8 propose des filtres pour modifier du contenu de l'admin vers le front : On met par exemple un tag <fn>
dans son texte en admin et cela devient un
<span class="footnote">
sur le front.
Pour créer des filtres, cf. le module customization
Pour exécuter ces filtres sur un texte avant de le sauvegarder lors d'un import par exemple :
check_markup($article['content'], 'html_complet')
#
Lister les entités référencéesPour les paragraphes:
#
Créer un node par programmation- aller chercher une image via URL et la sauvegarder
- rechercher un terme dans une taxonomie
#
upload de fichier de puis le frontPour permettre l'upload de fichier depuis le front et associer ces fichiers à un node, voici comment procéder (nous utilisons dropzone et axios dans cet exemple, mais il est possible d'utiliser une autre librairie ou un input de type file):
- Créer un champ de type File dans le node souhaité (on peut autoriser plusieurs valeurs
Allowed number of values
) - Activer le module JSON:API et activer
Accept all JSON:API create, read, update, and delete operations.
- Dans le fichier du theme
mytheme.libraries.yml
ajouter les dépendances dropzone :
- Dans votre twig node, voici un exemple pour un champ de node de type file appelé ici
field_presentation
. Noter le premier appel pour récupérer un csrf-token puis les headers etaxios.defaults.withCredentials = true
(essentiels) pour que Drupal autorise l'upload.
#
Récupérer l'ID de l'auteur d'un node#
Appeler un node (ou une autre URL) en popinDrupal8 le gÚre de base. Il faut faire ça :
La librairie jqueryUI est utilisée dans ce cas.
Et pour resizer automatiquement la modale, utiliser ce script js :
#
Variables globales par environnement- Séparer les environnement dans settings.php (cf. clef GA dans le projet energyObs) :
- Dans le fichier .theme :
- ajouter la librairie Settings =>
use Drupal\Core\Site\Settings;
- récupérer la variable instanciée dans settings.php =>
$gaKey = Settings::get('gaKey', '');
- créer/modifier une variable afin de récupérer sa valeur en twig =>
$vars['gaKey'] = $gaKey;
- dans le twig =>
{{ gaKey }}
#
Preview type de contenu- cocher "facultatif" dans la section "Apercu avant soumission" dans : structure > type de contenu > (exp: 'article') > modifier
#
Acces spécifique à la modification d'un node.On va utiliser le module nodeaccess dont la config se trouve ici :admin/config/people/nodeaccess
Ce module va nous permettre de donner des droits spécifiques par type de contenu et/ou par node. Bref sécuriser un node.
On peut mĂȘme aller jusqu'Ă donner accĂšs Ă 1 user Ă 1 node.
- Création d'un role.
/admin/people/roles/add
Dans la config du module nodeaccess admin/config/people/nodeaccess
on va dire Ă quel type de contenu ce role Ă AccĂšs.
- Allowed Grants - Quel type de droit modifiable dans l'onglet Grants
- View
- Edit
- Delete
- Allowed Roles - Quel Type de role peuvent ĂȘtre customisables
- Authenticated user
- Administrator
- Utilisateur invité
- Administrateur région
- Maison Krug Market All Admin
- Maison Krug Market De Contributor ...
Ensuite par type de contenu choisir les roles.
Pensez à cocher dans le type de contenu souhaité Show grant tab for this node type
Cela permet dans un contenu/node de spécifier les droits.
Dans le contenu de votre choix il y a un onglet Grants
.
Vous pouvez mĂȘme aller jusqu'Ă accorder l'accĂšs ou la modification Ă un seul user sur un contenu !.
#
Creation du role contributor- Ajouter un rĂŽle - ie Maison Moet Marche DE Contributor
- Ajouter permission nécessaire - dépend du projet
Dans le config du module nodeaccess il faut autoriser le nouveau rĂŽle
- Dans
admin/config/people/nodeaccess
dansAllowed Roles
et cocher le nouveau role Ensuite il pourra ĂȘtre affectĂ© Ă un node.
#
Autorisation pour accéder au site- Créer un contenu de type Brand Plan
- l'apeller
Moet DE - My Brand Plan
- Dans l'onglet
Grants
Cocher :
View
etEdit
pour Maison Moet Marche DE ContributorView
pour Maison Moet Marche DE Reader