====== DRUPAL 8 - Création d'un nouveau projet ======
===== Installation =====
* Préparer à l'avance l'**espace d'hébergement sur le VPS4** :
* https://hr333262390.reseller.mis.ovh.net:8443
* Nouveau serveur virtuel
* Accès FTP
* Version PHP 7.x
* Base de données
* Pour l'accès SSH, dans "Web Hosting Access", "System user", "Access to the server over SSH", sélectionner "/bin/bash"
* Télécharger **dernière version de DRUPAL 8** (https://www.drupal.fr/)
* **Transférer cette version** sur l'espace d'hébergement nouvellement crée (VPS4)
* Extraire l'archive DRUPAL et la zipper
* Transférer le fichier zip Via le File Manager de Plesk car plus rapide qu'un transfert FTP fichier par fichier
* Extraire l'archive à la racine (répertoire httpdocs)
* Ouvrir le site internet et **démarrer l'installation**
* Langue: Française
* Profil d'installation: Standard
* Configuration de la base de données
* Modifier le préfixe des tables (acronyme du site sur 2-3 caractères max + "_")
* Configurer le site
* email admin : domaine@cmantika.com
* Vérifications des mises à jour (sans les notifications)
* Fuseau horaires Paris
* Si Erreur concernant l'accès au serveur de traduction, récupérer le fichier de trad directement depuis la page https://localize.drupal.org/download et le place dans le répertoire sites/default/files/translations
* Dupliquer le **fichier robots.txt** (afin de garder une version pour la future PROD). Remplacer le contenu du nouveau fichier par les 2 lignes suivantes afin d'éviter l'indexation du site en DEV :
User-agent: *
Disallow: /
* Mettre en place à la racine le **fichier .htpasswd** contenant la ligne (afin de sécuriser l'accès)
cmantika:$apr1$nBs9xXsG$S5oVLpbaQeeOACYYsfHvA1
* Ajouter en haut du **fichier .htaccess** les lignes suivantes et remplacer le chemin (xxx) vers le fichier .htpasswd (normalement il s'agit de l'url du site, ex : site.cmantika.com)
AuthName "Ce site requiert un mot de passe"
AuthType Basic
AuthUserFile "/var/www/vhosts/xxx/httpdocs/.htpasswd"
Require valid-user
* Mettre à jour le **ficher sites/default/settings.php** en y ajoutant les lignes suivantes dans la section "Trusted host configuration". Pour cette manipulation, modifier temporairement les droits d'accès au fichier si besoin.
$settings['trusted_host_patterns'] = array(
'^domain\.cmantika.com$', // remplacer domain par le sous domaine (ex : atlantic-eau ou ensemble)
);
===== Configuration =====
* Installer **drush** via SSH (avec les accès FTP)
composer require drush/drush
* **Télécharger** les 2 modules module_filter et admin_toolbar
composer require drupal/module_filter
composer require drupal/admin_toolbar
composer require drupal/pathauto
* Activer ces modules en se rendant dans la section **Extension** du BO
* Module filter
* Admin Toolbar
* Admin Toolbar Extra Tools
* Pathauto (confirmer l'activation de modules dont dépend Pathauto)
* **Configurer les paramètres de compte** dans /admin/config/people/accounts (ou Configuration/Personnes/Paramètres de compte)
* Dans PARAMÈTRES DE CONTACT
* Décocher "Activer le formulaire de contact personnel par défaut pour les nouveaux utilisateurs"
* Dans INSCRIPTION ET ANNULATION
* Cocher Administrateurs seulement
* **Créer une nouvelle page** (Contenu / Ajouter du contenu / Basic Page)
* Titre = Accueil
* Dans les **paramètres de base du site** : /admin/config/system/site-information (Configuration/Système/Paramètres de base du site)
* Mettre à jour si besoin le nom et le slogan du site
* Dans Page d'accueil par défaut, mettre node/1
* Dans **Système de fichier** : /admin/config/media/file-system (Configuration/Médias/Système de fichier)
* Saisir /tmp dans le champs Dossiers temporaires
* **Télécharger** les modules de base
composer require drupal/mail_login
composer require drupal/twig_tweak
composer require drupal/paragraphs
composer require drupal/swiftmailer
composer require drupal/mailsystem
composer require drupal/imce
composer require drupal/field_group
composer require drupal/devel
composer require drupal/block_class
composer require drupal/link_attributes
composer require drupal/blockgroup
composer require drupal/tvi
composer require drupal/twig_field_value
composer require drupal/entity_clone
composer require drupal/webform
composer require drupal/easy_breadcrumb
* Installer manuellement le **module "Transliterate filenames for uploads"**
* [[https://www.drupal.org/project/transliterate_filenames|https://www.drupal.org/project/transliterate_filenames]]
* Activer ces modules en se rendant dans la section **Extension** du BO
* Dans **Formats de texte et éditeurs** : /admin/config/content/formats (Configuration/Rédaction de contenu/Formats de texte et éditeurs)
* Placer "Full HTML" en premier
* Configurer le format "Full HTML"
* Dans CONFIGURATION DE LA BARRE D'OUTILS, remplacer le bouton "Image" de la barre active par celui de la liste des boutons disponibles, libellé au survol: "Insert images using Imce File Manager".
* Dans **Imce File Manager** : /admin/config/media/imce, (Configuration/Média/Imce File Manager)
* Modifier le profil Admin "Admin profile"
* Dans la section DOSSIERS, ajouter le libellé "medias" après 1. /
* Dans la **configuration du type de contenu Basic page** : /admin/structure/types/manage/page (Structure/Types de contenu/Basic Page/Modifier)
* Changer le titre en "Page".
* Supprimer ou remplacer la description anglaise (idem pour le type de contenu Article)
* Dans **Performance** : /admin/config/development/performance (Configuration/Development/Performance)
* Décocher les coches dans Optimisations de la bande passante et vider les caches
* Dans **Motifs** : /admin/config/search/path/patterns (Configuration/Recherche et metadonnées/Alias d'URL/Motifs)
* Créer un motif principal pour la génération automatique des urls
* Type de motif = Contenu
* Pattern = [node:title]
* Type de contenu = Article et Page
* Étiquette = Motif général (exemple)
===== Création d'un nouveau thème =====
Source : https://www.drupal.org/docs/8/theming
* Télécharger le starter theme :
* https://www.dropbox.com/s/2vpfc2ehigrw6qi/starter_theme.zip?dl=0
* _partage (2)/_ressources/drupal/Drupal 8/starter_theme.zip
* Renommer le theme, les fichiers et les contenus du thème en remplaçant le libellé starter_theme par le nom du site (en minuscule, sans accents, sans espaces).
* Installer le theme dans le répertoire /themes/custom
* Activer le via /admin/appearance (Menu Apparence), en cliquant sur "Définir comme paramètre par défaut"
===== Gestion des caches =====
Afin de pouvoir développer sereinement sans devoir vider les caches toutes les 2 secondes, il est utile de désactiver certains caches **pendant la phase de développement**
Source : https://gai.co.in/disable-drupal-8-caching-during-development
- Copier et renommer le fichier sites/example.settings.local.php en sites/default/settings.local.php.
- Si besoin modifier temporairement les droits d'accès en écriture au répertoire sites/default
- Dans le fichier settings.local.php file, trouver la section commençant par "Disable the render cache".
- Décommenter la ligne suivante :$settings['cache']['bins']['render'] = 'cache.backend.null';
- Dans le fichier settings.local.php file, trouver la section commençant par "Disable Dynamic Page Cache".
- Décommenter la ligne suivante :$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
- Dans le fichier sites/default/settings.php, trouver la section commençant par "settings.local.php".
- Si besoin modifier temporairement les droits d'accès en écriture
- Décommenter le code suivant :
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
- Ouvrir le fichier sites/development.services.yml et modifier le contenu afin d'obtenir (désactivation du cache Twig) :
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
- Vider les caches (îcone Drupal 8 / Vider tous les caches)