Drupal

De OpenWikiBSD
Aller à : navigation, rechercher

Installation

Installez MySQL


/usr/sbin/pkg_add php-5.3.27
/bin/ln -sf /var/www/conf/modules.sample/php-5.3.conf /var/www/conf/modules/php.conf
/bin/ln -s /usr/local/bin/php-5.3 /usr/local/bin/php
/usr/sbin/pkg_add php-gd-5.3.27
/bin/ln -sf /etc/php-5.3.sample/gd.ini /etc/php-5.3/gd.ini
/usr/sbin/pkg_add php-mysql-5.3.27
/bin/ln -sf /etc/php-5.3.sample/mysql.ini /etc/php-5.3/mysql.ini
/usr/sbin/pkg_add php-pdo_mysql-5.3.27
/bin/ln -sf /etc/php-5.3.sample/pdo_mysql.ini /etc/php-5.3/pdo_mysql.ini


INstallez drush (voir +loin)

drush dl drupal
mv drupal-7.26 /var/www

DL la traduction : http://ftp.drupal.org/files/translations/7.x/drupal/drupal-7.26.fr.po et la coller dans /profiles/standard/translations/ puis reloader l'installer web

 cp sites/default/default.settings.php sites/default/settings.php
mkdir sites/default/files
chown www.www sites/default/files/
chown www.www sites/default/settings.php

[error] ALERT - configured POST variable limit exceeded - dropped variable

dans les logs d'Apache quand vous ne pouvez pas faire des modifs sur des pages avec beaucoup de paramètres...


Il faut modifier les valeurs des patches Suhosin PHP:

perl -pi -e 's/;suhosin.post.max_array_depth = 50/suhosin.post.max_array_depth = 100/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.post.max_array_index_length = 64/suhosin.post.max_array_index_length = 128/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.post.max_name_length = 64/suhosin.post.max_name_length = 128/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.post.max_totalname_length = 256/suhosin.post.max_totalname_length = 512/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.post.max_vars = 200/suhosin.post.max_vars = 400/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.post.max_value_length = 65000/suhosin.post.max_value_length = 100000/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.request.max_array_index_length = 64/suhosin.request.max_array_index_length = 128/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.request.max_array_depth = 50/suhosin.request.max_array_depth = 100/' /var/www/conf/php.ini 
perl -pi -e 's/;suhosin.request.max_vars = 200/suhosin.request.max_vars = 400/' /var/www/conf/php.ini 

apachectl stop
apachectl startssl

Modules

Gestion des droits

  • node_access & content_access

Galerie de photos

Plusieurs existent, j'ai choisi celle-là :album photos.

Il faut également télécharger dfGallery

  • dfgallery doit être copié dans sites/all/modules
  • Penser à activer les modules (admin/build/modules/list)
mv sites/all/modules/dfgallery/dfgallery/resources/locale/dfgallery_en.eden.txt sites/all/modules/dfgallery/dfgallery/resources/locale/dfgallery_en.eden
  • Penser à augmenter la taille des uploads PhP : dans php.ini

et dans un .htaccess à la racine du site drupal :[1]

  • Modifier /modules/photos/thickbox/thickbox-compressed.js et mettre le bon lien pour var tb_pathToImage = '/drupal6/modules/photos/thickbox/loadingAnimation.gif';

  • Penser à augmenter la taille des Uploads Drupal : admin/settings/uploads catégorie par catégorie d'utilisateurs.
  • Penser à mettre une musique : Slide default Music :

Monitoring

  • Munin

IPv6

Affiche un bloc dépendant de l'ip du client v4 ou v6 : [2]

Drupal en ligne de commande : Drush

doc de base [3]

Installer php par puppet, puis ajouter le manifest drush qui va bien.

une fois installé, la liste des commandes est la suivante :

drush dl XXX

Télécharge et installe le module XXX

drush en XXX
Active le module XXX


  • Installer Drupal
drush dl drupal
Continuer la config à partir de l'interface web.
  • Mettre/supprimer le mode maintenance
drush vset maintenance_mode 1;
drush vset maintenance_mode 0; 
  • Supprimer les clean-URL
drush vset clean_url 0 --yes

Config

Ajouter un lien permanent dans le bloc principal de gauche

-> admin/build/menu-customize/navigation

././.drupal/modules/index.html

  • Blocs/Entête/

Lancer des jobs à intervalle de temps régulier

crontab -e
45      *       *       *       *       /usr/bin/lynx -source http://www.monsite.fr/drupal6/cron.php

Indispensable pour plusieurs taches, dont les flux rss

Suivre les flux RSS d'un autre site

Suivre ça et ne pas oublier de lancer les cronjobs et de faire une première synchro à la main!

Modifier un morceau fixe de page

  • Exemple les coordonnées du lycée :

../sites/all/themes/newsflash/page.tpl.php

Authentification LDAP/AD

  • installer drupal6-ldap_integration

Pour AD

  • Configurer un user avec droits RO sur l’arborescence des utilisateurs; il devra lire les mdp
  • Mettre un server par OU que devra parcourir votre processus d'authentification; le champ texte proposé devrait,à priori permettre de parcourir plusieurs OU; en pratique ça ne marche pas.
  • TRES important : Dans Base DN's, vous devez utiliser le plain text editor, pas le rich text editor; des balises HTML dans un BaseDN, ça marche moyen moyen..


Processus de publication

  • Pour avoir un workflow de publication cad:
    • Création de contenu
    • Validation/Modération du contenu
    • Publication du contenu

Il vous faut le module Rulesainsi que modr8

  • Modr8 devra voir son bloc activé pour le groupe modérateurs
  • Appliquez une triggered rule pour lancer une action en fonction d'une condition; très simple d'usage.
  • Les actions possibles :admin/settings/actions/manage


  • Ne pas oublier de modifier le fonctionnement par défaut relatif aux différents contenus, cad: publié par défaut décoché (admin/content/types)
  • Attention, si vous n'ajoutez pas les droits d'accès au rôle de modérateur, ça ne fonctionnera pas.. En particulier, ils doivent avoir :
  • module modr8
    • bypass moderation queue
    • moderate content
  • module node
    • accéder au contenu
    • administrer les types de contenu
    • administrer les nœuds

Faire envoyer les mails par Drupal en HTML

D'abord le html dans les mails, c'est mal! Oui, mais l'utilisateur lambda l'exige, alors... C'est là :admin/messaging/settings/method/overview


Menu déroulants

Ces solutions demandent javascript...

  • Il faut le module nice menus
  • Il faut également la librairie JQuery UI plutôt pénible à installer quand on est habitué aux modules :
  • Installer le module JQuery
  • Télécharger la librairie chez Google
  • Créez un répertoire drupal/site/all/libraries
  • Désarchivez jquery.ui-1.6.zip dedans
  • Renommez le répertoire jquery.ui-1.6 en jquery.ui

http://blog.houen.net/drupal-jquery-ui-complete-guide/


Celle , ne demande que de retoucher les css et marche parfaitement

Transformer la page d'accueil

En autre chose que le flux de news par défaut : [4].

Cette page est accessible par /admin/settings/site-information (Page de garde par défaut :)

Sinon, utilisez le module Panels (qui dépend de ctools) qui permet, sans une ligne de PHP ou de CSS, de mettre en forme son site.

Une doc

Mais c'est très lourd pour le serveur de générer des pages en panels..


Ajouter un lien de menu dans les menus principaux

/Construction du site/Menus/Liens primaires

ou directement :

admin/build/menu-customize/primary-links

Afficher une image aléatoire

http://blog.thetys-retz.net/post/2011/08/24/Ajouter-un-bloc-avec-une-image-al%C3%A9atoire-sous-Drupal-6-avec-CCK

Les vues

C'est tout à fait fondamental dans Drupal, les vues.

/admin/build/views/edit/

Attribuer une URL à une vue

  • Add display Page
  • Page settings / Chemin

Twitter

  • Téléchargez le module Twitter et le module OAuth, sans oublier autoload
  • Copiez dans modules & Activez
  • Activez Autoload, Twitter, TWitter actions, Twitter post, Oauth, OAuth Provider UI
  • admin/settings/twitter
  • Enregistrez vous avec votre compte TWitter de publication ici
  • Copiez la clé et le secret du site Twitter vers votre module Twitter.
  • Onglet Contribution :
  • Sur le site Twitter, modifiez les réglages de publication de read-only à Read-Write

et configurez l'URL de Callback (comme http://www.CHezvous/twitter/oauth )

  • admin/settings/oauth/add, Ajoutez un contexte.
  • admin/user/permissions Autorisez vos utilisateurs à tweeter.

Mise à jour

Du moteur de Drupal

  • Mettez le site hors-ligne /admin/settings/site-maintenance
  • Sur le serveur
tar zxvf drupal...tar.gz
tar zcvf drupal.backup.tar.gz /var/www///drupal
mysqldump drupal > drupal.sql
cp -R drupalNew /var/www
  • lancez /update.php
  • Vérifiez les logs : /?q=admin/reports/dblog
  • Remettez en ligne /admin/settings/site-maintenance

Des modules

  • Mettez le site hors-ligne /admin/settings/site-maintenance
  • Sur le serveur

tar zxvf drupal...tar.gz tar zcvf drupal.backup.tar.gz /var/www///drupal mysqldump drupal > drupal.sql cp -R modume /var/www//drupal/modules

  • lancez /update.php
  • Vérifiez les logs : /?q=admin/reports/dblog
  • Remettez en ligne /admin/settings/site-maintenance


Migration Complète Drupal 6 en Drupal 7

  • Installer le nouveau site en D7
  • Créer une db drupal vide !
  • Importer le dump SQL faite depuis le D6

Attention ce dump sql doit être fait :

En mode maintenance

En ayant désactivé TOUS les modules sauf core

En Thème Garland

  • Sur le D7, lancer un /update.php

Si vous êtes bloqué en mode maintenance, remplacez la fin du fichier index.php par

variable_set('maintenance_mode', 0);
menu_execute_active_handler();
  • Si aucun noeud ne s'affiche après login, virez les clean_urls
drush vset clean_url 0 --yes
  • On n'oublie pas de sauvegarder /restaure les fichiers ../sites/default/files
  • PLus aucun mdp ne fonctionne...la sel a été changé
drush user-password someuser --password="PASS"


Migration 6 à 8

[5]

Debug

Les fichiers en PJ ne s'afficent pas pour les anonymes

Cocher voir les fichiers transférés du module upload; ben oui, c'est béta!