Projet

Général

Profil

De Drupal6 vers Drupal7 » Historique » Version 4

Julien Enselme, 12/04/2013 18:07

1 3 Julien Enselme
--iabouljamal 19 mars 2011 à 07:08 (CET)
2 1 Julien Enselme
3 1 Julien Enselme
La communauté Drupal ne fournit pas le support des versions Drupal éternellement. Le jour de la sortie de Drupal8, la version 6 sera totalement abandonnée et le projet multi-asso ne bénéficiera plus des avantages pour lesquels Drupal a été choisi.
4 1 Julien Enselme
5 3 Julien Enselme
Il nous est donc important de bien planifier la mise à jour vers Drupal 7 et de l'effectuer avant Février 2012 si possible. EDIT du 5 avril 2013 : avant la fin de support de drupal 6.
6 1 Julien Enselme
7 1 Julien Enselme
Cet article a donc pour but de lister les problèmes qu'on rencontrera et les solutions qu'on a trouvé. En particulier les fonctionnalités des modules D6 qui ne passeront pas à D7 doivent être listées et les alternatives proposées.
8 1 Julien Enselme
9 3 Julien Enselme
Des bouts de code, scripts et astuces pour les tâches à effectuer en masse sont particulièrement les bienvenues.
10 1 Julien Enselme
11 1 Julien Enselme
{{toc}}
12 1 Julien Enselme
13 1 Julien Enselme
h1. Planification
14 1 Julien Enselme
15 4 Julien Enselme
{{warning(Ce planning peut être accéléré si les modules de drupal7 sont déja satisfaisants. Mais Le retarder serait comme prendre le risque de devoir passer à drupal8 deux mois après le passage à drupal 7 (enfin si le planning annoncé par la communauté est respecté !))}}
16 1 Julien Enselme
17 1 Julien Enselme
* Réunion de validation de cette procédure (Team Assos -CRI) : **MARS-AVRIL**
18 1 Julien Enselme
* Blinder cette procédure : **MARS-AVRIL**
19 1 Julien Enselme
* Début de l'étape Préparation : **AVRIL-MAI**
20 1 Julien Enselme
* Fin de l'étape Préparation : **FIN MAI**
21 1 Julien Enselme
* Étape Tests des MAJ : **MAI-Octobre**
22 1 Julien Enselme
23 1 Julien Enselme
Passage définitif à Drupal 7: **Novembre-Décembre**
24 1 Julien Enselme
25 1 Julien Enselme
h1. Préparation
26 1 Julien Enselme
27 1 Julien Enselme
h2. Veille sur le sujet
28 1 Julien Enselme
29 3 Julien Enselme
De le lecture des blogs/forums et retour des autres drupaliens, on dresse une TODO de ce qu'on doit checker, ce qui pourrait poser problème :
30 1 Julien Enselme
31 3 Julien Enselme
* La procédure de UPGRADE.TXT contient des conseils sur les fichiers à virer et quelques remarques sur le .htaccess. Il faut donc savoir le rapport avec ce qu'on a fait [[Utilisation_de_Drupal_multi-site#Choisir-et-implémenter-la-bonne-méthode-de-téléchargement-drupal-6|ici]]. Et meux que le upgrade.txt: la documentation sur le Upgrade process: http://drupal.org/node/570162
32 1 Julien Enselme
33 3 Julien Enselme
* Les modules qui sont désormais dans le core (Ex: CCK) ne s'auto-upgradent pas pendant la MAJ 6-7. CCK sera seul responsable de sa propre MAJ (cf smbjorklund .no/node/53) La documentation sur les modules qui ont rejoint le core : http://drupal.org/node/895314
34 1 Julien Enselme
35 3 Julien Enselme
* Un retour d'expérience d'un site .edu avec pas mal de modules : drupal.ucar.edu/docs/node/154
36 1 Julien Enselme
37 1 Julien Enselme
* des changements dans le thème Garland D7 font afficher des erreurs dont on se débarasse en rebuildant le registre du thème http://drupal.org/node/1147158
38 1 Julien Enselme
39 1 Julien Enselme
* http://rocktreesky.com/upgrading-drupal-7
40 1 Julien Enselme
41 3 Julien Enselme
h3. Un environnement de tests (sur assos)
42 1 Julien Enselme
43 3 Julien Enselme
**Cette action peut être entamée dès MAINTENANT**
44 1 Julien Enselme
45 3 Julien Enselme
Contrairement aux mises à jour D6.X D6.Y, je ne pense pas que le passage à D7 sera sans perte ; j'ai des doutes quant à l'existance d'une version D7 de certains modules utilisés par les associations ECM. Par conséquent, je ne pense par que la team doit prendre le risque de faire les MAJ directement sur les sites en ligne et je propose les étapes suivantes :
46 1 Julien Enselme
47 3 Julien Enselme
# Extraire une version de la base de données et la copier dans une nouvelle base de donnés créée spécialement pour l'occasion (la restriction sur les sites les plus importants est suffisante : le forum et les sites des associations).
48 1 Julien Enselme
# Copier intégralement le repertoire html de 'assos' dans un nouveau repertoire dans html ou dans le html d'un compte test.
49 1 Julien Enselme
# Faire en sorte que la nouveau repertoire et la nouvelle base (copie) se parlent bien (que les sites fonctionnent)
50 1 Julien Enselme
51 1 Julien Enselme
On a donc un environnement où on effectuera les tests de passage de Drupal6 à 7 sans aucune crainte !
52 1 Julien Enselme
53 3 Julien Enselme
h3. Un environnement de tests en local
54 1 Julien Enselme
55 3 Julien Enselme
h4. Test en local : étape 1
56 1 Julien Enselme
57 3 Julien Enselme
Il faut maîtriser et réaliser les points suivant sur sa machine :
58 3 Julien Enselme
# savoir installer un serveur apache et phpmyadmin (dépend de votre système)
59 3 Julien Enselme
# augmenter sa mémoire dédiée
60 3 Julien Enselme
# savoir ajouter/activer des modules pour le serveur apache (notamment le module mod rewrite pour les url-simplifiées) : <code>sudo a2enmod nom_du_module</code>
61 3 Julien Enselme
# avoir drush d'installer (peut-être présent dans les dépôts de votre distributions) et savoir où il est installé : which drush
62 3 Julien Enselme
# augmenter la taille maximale des fichiers pouvant être importés dans phpmyadmin (dans le(s) php.ini, la méthode suivante est basée sur les systèmes basés sur debian. Adapter pour votre système.). Il faut trouver et modifier les lignes suivantes dans /etc/php5/apache2/php.ini et /etc/php5/cli/php.ini
63 1 Julien Enselme
64 3 Julien Enselme
 # <code class="php">memory_limit = 512M;</code>
65 3 Julien Enselme
 # <code class="php">post_max_size = 32M;</code>
66 3 Julien Enselme
 # <code class="php">upload_max_filesize = 32M;</code>
67 3 Julien Enselme
 # <code>service apache2 restart</code>
68 1 Julien Enselme
69 3 Julien Enselme
h4. Test en local : étape 2
70 3 Julien Enselme
71 3 Julien Enselme
h5. Pouvoir créer des vhost à la pelle
72 3 Julien Enselme
73 3 Julien Enselme
* Exemple : créer deux domaines assos.fun.local et titi.local
74 3 Julien Enselme
Exemple pour titi.local :
75 3 Julien Enselme
76 3 Julien Enselme
* dans /etc/apache2/sites-available/ créer un fichier titi. Le contenu de titi est :
77 3 Julien Enselme
78 3 Julien Enselme
<pre>
79 3 Julien Enselme
<VirtualHost *:80>
80 3 Julien Enselme
       ServerAdmin webmaster@localhost
81 3 Julien Enselme
       ServerName titi.local
82 3 Julien Enselme
       ServerAlias titi.local
83 3 Julien Enselme
84 3 Julien Enselme
       DocumentRoot /chemin/dossier_site
85 3 Julien Enselme
86 3 Julien Enselme
       <Directory /chemin/dossier_site/>
87 3 Julien Enselme
               Options Indexes FollowSymLinks MultiViews
88 3 Julien Enselme
               AllowOverride All
89 3 Julien Enselme
               Order allow,deny
90 3 Julien Enselme
               allow from all
91 3 Julien Enselme
       </Directory>
92 3 Julien Enselme
93 3 Julien Enselme
       ErrorLog ${APACHE_LOG_DIR}/titi.error.log
94 3 Julien Enselme
95 3 Julien Enselme
       # Possible values include: debug, info, notice, warn, error, crit,
96 3 Julien Enselme
       # alert, emerg.
97 3 Julien Enselme
       LogLevel warn
98 3 Julien Enselme
99 3 Julien Enselme
       CustomLog ${APACHE_LOG_DIR}/titi.access.log combined
100 3 Julien Enselme
</VirtualHost>
101 3 Julien Enselme
</pre>
102 3 Julien Enselme
103 3 Julien Enselme
* créer le fichier test.html dans /chemin/dossier_site  et mettre dedans <pre><h1>TITI</h1></pre>
104 3 Julien Enselme
* ajouter un lien symbolique dans /etc/apache2/sites-enabled qui pointe sur le fichiet titi qui est dans /etc/apache2/sites-available/
105 3 Julien Enselme
106 3 Julien Enselme
 * <code>cd /etc/apache2/sites-enabled/</code>
107 3 Julien Enselme
 * <code>ln -s ../sites-available/titi .</code>
108 3 Julien Enselme
* ajouter l’entrée titi.local dans le fichier /etc/hosts
109 3 Julien Enselme
<pre>
110 3 Julien Enselme
127.0.0.1        titi.local
111 3 Julien Enselme
</pre>
112 3 Julien Enselme
113 3 Julien Enselme
* Redémarrer apache : <code>sudo service apache2 restart</code>
114 3 Julien Enselme
* Consulter  titi.local/test.html
115 3 Julien Enselme
116 3 Julien Enselme
h5. Compétence : Pouvoir utiliser un domaine public en local
117 3 Julien Enselme
118 3 Julien Enselme
* Quand je vais sur localhost.d6, c’est le site local qu'on voit : tout simplement ajouter l’entrée suivante dans /etc/hosts
119 3 Julien Enselme
<pre>127.0.0.1  assos.centrale-marseille.fr</pre>
120 3 Julien Enselme
* constater qu’en allant sur assos.centrale-marseille.fr on tombe sur la page par defaut de notre apache (la page sur laquelle on tombe dépend de si oui ou non elle a un vhost qui la concerne). On peut vérifier avec le module Firefox _show ip_ qui donne l’IP du site sur lequel on ait.
121 3 Julien Enselme
122 3 Julien Enselme
h4. Test en local : étape 3
123 3 Julien Enselme
124 3 Julien Enselme
h5. Compétence : Pouvoir reproduire en local un site en particulier
125 3 Julien Enselme
126 3 Julien Enselme
* pouvoir télécharger en local juste le minimum de fichiers. Le minimum c’est :
127 3 Julien Enselme
128 3 Julien Enselme
 * tout le htmltest sauf le dossier sites
129 3 Julien Enselme
 * dans sites/ il faut ne prendre que le dossier default et le dossier du site qui nous concerne.
130 3 Julien Enselme
 * pouvoir se démerder (script ou suite de ligne de commande ou …) pour pouvoir faire ça efficacement (une suite de commande scp ou rsync n’est pas une mauvaise idée)
131 3 Julien Enselme
132 3 Julien Enselme
  * sur sa machine : se faire un dossier d6 et un dossier d7
133 3 Julien Enselme
  * <code>cd d6</code>
134 3 Julien Enselme
  * _Exemple pour le site des annales, à apapter_ : <code>rsync -lr --exclude sites assos@sas1.centrale-marseille.fr:html/* .</code>
135 3 Julien Enselme
  * <code>mkdir sites</code>
136 3 Julien Enselme
  * <code>cd sites</code>
137 3 Julien Enselme
  * <code>rsync -lr assos@sas1.centrale-marseille.fr:html/sites/default .</code>
138 3 Julien Enselme
  * <code>rsync -lr assos@sas1.centrale-marseille.fr:html/sites/assos.centrale-marseille.fr.annales .</code> (étape longue)
139 3 Julien Enselme
140 3 Julien Enselme
h5. Compétence : pouvoir télécharger la base de donnée d’un seul site en particulier
141 3 Julien Enselme
142 3 Julien Enselme
h6. Savoir faire ça avec phpmyadmin
143 3 Julien Enselme
144 3 Julien Enselme
Dans phpmyadmin :
145 3 Julien Enselme
* exporter options personnalisées
146 3 Julien Enselme
* choisir que les tables qui vous intéressent
147 3 Julien Enselme
* laisser les autres options
148 3 Julien Enselme
* enregistrer
149 3 Julien Enselme
* ça enregistre dans votre dossier de téléchargements sur votre machine
150 3 Julien Enselme
151 3 Julien Enselme
h6. savoir le faire avec drush car parfois le fichier téléchargé par phpmyadmin est trop gros
152 3 Julien Enselme
153 3 Julien Enselme
Sur le sas :
154 3 Julien Enselme
* <code>dump_site annales</code>
155 3 Julien Enselme
* <code>cd Desktop/dump_individuels</code>
156 3 Julien Enselme
157 3 Julien Enselme
Sur sa machine :
158 3 Julien Enselme
* <code>scp assos@sas1.centrale-marseille.fr:Desktop/dump_individuels/annalesDATE .</code>
159 3 Julien Enselme
160 3 Julien Enselme
h4. Test en local : étape 4
161 3 Julien Enselme
162 3 Julien Enselme
h5. Compétence : monter un site en local
163 3 Julien Enselme
164 3 Julien Enselme
* monter un vhost pour le d6 localhost.d6 (il sera valable pour tous les sous sites, il ne sera jamais édité)
165 3 Julien Enselme
* télécharger les fichiers et la base de donnée du site en question (cf compétences précédentes)
166 3 Julien Enselme
* injecter la dbb en local (utiliser le phpmyadmin local ou sudo mysql -u root -pmotdepasse nomdelabase < fichier.sql)
167 3 Julien Enselme
* modifier le settings.php du site en question pour donner les informations de connection mysql
168 3 Julien Enselme
* pour aller plus vite, renommer le dossier du site en default
169 3 Julien Enselme
170 3 Julien Enselme
h5. Compétence : installer le script drush de mise à jour
171 3 Julien Enselme
172 3 Julien Enselme
* aller sur http://drupal.org/project/drush_sup
173 3 Julien Enselme
* suivre la procédure d’installation
174 3 Julien Enselme
* critère de validation : la commande suivante marche : drush sup
175 3 Julien Enselme
176 3 Julien Enselme
h5. Compétence : mettre en place des alias drush
177 3 Julien Enselme
178 3 Julien Enselme
TODO
179 3 Julien Enselme
installer dom, xml (paquet php)
180 3 Julien Enselme
181 3 Julien Enselme
h4. Test en local : à vérifier
182 3 Julien Enselme
183 3 Julien Enselme
* vérifier htaccess
184 3 Julien Enselme
* <code>mkdir d6up (drupal 7)</code>
185 3 Julien Enselme
* <code>drush dl drupal dans ce site</code>
186 3 Julien Enselme
* <code>cp settings d6 -> settings d7</code>
187 3 Julien Enselme
* copier la base de données d6 car elle va être écrasée
188 3 Julien Enselme
* voir du côté de conf.d et de etc/host
189 3 Julien Enselme
* attention aux base_url
190 3 Julien Enselme
* alias drush pour mettre à jour :
191 3 Julien Enselme
192 3 Julien Enselme
 * <code>drush @d6 en update</code>
193 3 Julien Enselme
 * <code>drush @d6 sup @d6up</code>
194 3 Julien Enselme
195 3 Julien Enselme
h3. Méthode alternative
196 3 Julien Enselme
197 3 Julien Enselme
http://build2be.com/content/how-get-site-localhost
198 3 Julien Enselme
199 3 Julien Enselme
h3. Nettoyage (Terminé)
200 3 Julien Enselme
201 1 Julien Enselme
Il faut d'abord que D6 soit clean pour limiter les problèmes de migration:
202 1 Julien Enselme
203 3 Julien Enselme
# DONE Il faut disparaitre les derniers liens symboliques fr.truc
204 3 Julien Enselme
# DONE Il faut supprimer les modules/thèmes qui n'ont pas d'équivalent D7 dans du serveur après être sûr que personne ne les utilise plus! cf [[Article_help_1_migration_6_7]]
205 1 Julien Enselme
(--[[Utilisateur:Ismaeil|ismaeil]] 21 avril 2011 à 00:48 (CEST) ça a pris du temps mais plus de la moitié des projets qui n'ont pas de version D7 (thèmes et modules) ont été supprimés car non utilisés ou seulemnt utilisé par des sites tests !)
206 3 Julien Enselme
# DONE Il faut voir le cas des rares sites qui ont un thème propre ou un module propre dans leur répertoire<br />
207 1 Julien Enselme
# ---- [État : Terminé]
208 1 Julien Enselme
209 3 Julien Enselme
Un cas intéressant est apparu lors du traitement du point 2 : un thème non utilisé, non D7isé et donc supprimable, et dès qu'on le supprime, des problèmes apparaissent car des thèmes ne sont que des surcharges du projet à supprimer.
210 1 Julien Enselme
211 3 Julien Enselme
Conclusion : une tâche à ajouter serait de renommer tous les thèmes qui ne sont qu'une surcharge. Le nom doit commencer par les nom du thème père puis le nom mignon qu'on trouve.
212 1 Julien Enselme
 done [[Utilisateur:LiNux ^^=!|LiNux ^^=!]] 
213 1 Julien Enselme
214 3 Julien Enselme
Par contre, attention, il reste des cas susceptibles de poser problème : certains thèmes viennent directement avec des sous-thèmes intégrés (cas aboutpeople et about), et on a un cas de surcharge de ce sous-thème : je n'ai pas renommé le sous-thème intégré
215 1 Julien Enselme
216 1 Julien Enselme
h1. Réunions d'information
217 1 Julien Enselme
218 3 Julien Enselme
# Réduire au maximum la liste des projets incompatibles en en parlant aux webmasters [[Article_help_1_migration_6_7]]
219 1 Julien Enselme
# Dire aux wabmasters qu'on a l'intention de passer à Drupal 7 pour différents raisons
220 3 Julien Enselme
221 3 Julien Enselme
 * mail
222 1 Julien Enselme
 * Réu en amphi (faut savoir que celà à un impact direct sur leur site : le thème va changer de look !)
223 3 Julien Enselme
 * Invitation aux D&D (pour régler les problème du genre "ce module disparait mais la fonctionnalité dois rester car fondamentale pour le site")
224 1 Julien Enselme
225 1 Julien Enselme
226 1 Julien Enselme
h1. Mise à jour
227 1 Julien Enselme
228 1 Julien Enselme
h2. Le café
229 1 Julien Enselme
230 1 Julien Enselme
Il est strictement interdit (article L.3.2.1 du réglement intérieur) d'attaquer les mises à jour sans avoir pris du café ou thé.
231 1 Julien Enselme
232 1 Julien Enselme
Il est strictement interdit (article L.3.2.2 du réglement intérieur) d'attaquer les mises à jour si on n'a dormi que 5 heures la veille.
233 1 Julien Enselme
 
234 1 Julien Enselme
h2. Test des MAJ
235 1 Julien Enselme
236 1 Julien Enselme
# Sauvegarder l'environnement des tests précédemment créé !
237 3 Julien Enselme
# Effectuer une mise à jour vers Drupal 7 en suivant les recommandations du UPGRADE.txt de DRUPAL 7 (18 étapes) ou mieux : http://drupal.org/node/570162
238 3 Julien Enselme
# Noter tous les problèmes rencontrés et les solutions trouvés et si pas de solution : trouver un contournement, l'essayer, le valider.
239 3 Julien Enselme
# Hacker les sites de l'environnement de test : Écraser le mot de passe d'admin, se connecter et voir si la vie est belle de l'autre coté ou si c'est rouge !
240 3 Julien Enselme
# Une fois les problèmes réglés, **Répéter** cette étape avec une **nouvel environnement** de test et s'assurer qu'on maitrise vraiment le passage 6=>7
241 1 Julien Enselme
242 1 Julien Enselme
h2. Enfin Drupal7 !
243 1 Julien Enselme
244 3 Julien Enselme
# Alerter la liste drupal, voire webmasters de l'heure planifiée des mises à jour.
245 1 Julien Enselme
# Mettre les sites sous le mode maintenance 15 minutes avant le massacre !
246 1 Julien Enselme
# S'assurer que l'étape des Tests des Maj est bien effectuée et avoir la liste des problèmes rencontrés et leurs solutions sous les yeux !
247 1 Julien Enselme
# Sauvegarde des fichiers du repertoire html de 'assos' et des bases de donnés Forum et webassos.
248 1 Julien Enselme
# Croiser les doigts (mais le décroiser pour bien effectuer les étapes suivantes)
249 1 Julien Enselme
# Effectuer la mise à jour
250 1 Julien Enselme
# S'assurer que les sites de l'étape "Test des MAJ" survivent tous sans problème.
251 1 Julien Enselme
# supprimer CHANGELOG.TXT de l'installation
252 1 Julien Enselme
253 1 Julien Enselme
h1. Tests massifs
254 1 Julien Enselme
255 1 Julien Enselme
Après avoir silloner les sites des associations et être sur qu'il y a pas de mort.
256 1 Julien Enselme
257 1 Julien Enselme
Un mail de communication sera envoyé à la liste drupal, voire webmasters... encourageant les webmasters à découvrir la nouvelle plateforme et de reporte à assos@centrale les problèmes rencontrés.
258 1 Julien Enselme
259 1 Julien Enselme
h1. Réécriture des documentations
260 1 Julien Enselme
261 1 Julien Enselme
Du fait du grand changement (au niveau de l'interface, mais aussi des terminologies de certains concepts) introduit par le passage à D7, une grande partie de nos tutoriels (wiki + site default) devront être mis à jour
262 1 Julien Enselme
263 1 Julien Enselme
h1. Conclusions pour Drupal 8
264 1 Julien Enselme
265 3 Julien Enselme
Et oui, ce qui fait que le passage D6->D7 n'est pas aussi immédiat et risque d'être douloureux c'est principalement le nombre de projets qu'on a. Et si les thèmes peuvent être changés et adaptés voir re-développés, les modules quant à eux apportent des fonctionnalités dont on ne peut pas se passer parfois.
266 1 Julien Enselme
267 3 Julien Enselme
Il faut alors tout de suite redéfinir les régles de l'ajout d'un module en s'appuyant sur les problèmes rencontrés lors du D6->D7.
268 1 Julien Enselme
269 3 Julien Enselme
Je (iabouljamal) met des idées au hazard :
270 3 Julien Enselme
* Quand une fonctionnalitée peut être faite à l'aide des modules du core, toujours privilégier cette méthode (ou features) sur un autre module car on est pas sûr qu'il sera dispo pour D8 ! Il y a une tonne d'exemples à cela :  tous les modules notify-like peuvent être remplacé par actions et triggers, les evenements par calendar, fields et views…
271 3 Julien Enselme
* être plus exigeant lors du choix d'un module : voir qui l'a développé, quel est l'état des autres projet qu'il développé. Est ce que la société pour qui il a développé ce module encourage les MAJ (par exemple si le module est sponsorisé par acquia on est sûr qu'il sera à jour avant même la nouvelle version !)
272 1 Julien Enselme
* features : ne pas en abuser, mais quand ça permet d’éviter un nouveau module on l'utilise . Attention cela veux dire qu'on doit réfléchir à la manière de les mettre à jour, un bout sql pour updater les tables !!! => c'est lourd et contraignant ! espérons que features sera plus clean dans le futur !
273 1 Julien Enselme
274 1 Julien Enselme
h1. Trucs divers
275 1 Julien Enselme
276 1 Julien Enselme
h2. Les modules tiers utilisés
277 1 Julien Enselme
278 1 Julien Enselme
En parcourant tous les sites, afficher les modules activés autres que ceux du noyau et écrire le résultat dans un fichier
279 1 Julien Enselme
280 1 Julien Enselme
<pre>
281 1 Julien Enselme
<code class="bash">
282 1 Julien Enselme
drushall pml |grep Enabled | grep -v Core >> modules.txt
283 1 Julien Enselme
</code>
284 1 Julien Enselme
</pre>
285 1 Julien Enselme
286 3 Julien Enselme
Liste des modules et thèmes utilisés par le multi-asso qui n'ont pas encore une version D7 : [[Article_help_1_migration_6_7]]
287 1 Julien Enselme
288 1 Julien Enselme
h2. Vérifier l'existance d'une version 7
289 1 Julien Enselme
290 1 Julien Enselme
--[[Utilisateur:Ismaeil|ismaeil]] 12 avril 2011 à 03:12 (CEST)
291 1 Julien Enselme
292 3 Julien Enselme
On a plus d'une centaines de modules et thèmes et je ne trouve pas un moyen magique pour vérifier l'existance d'une version 7 que d'aller directement sur la page du projet : l'astuce est donc comment faciliter cette tâche lourde !
293 1 Julien Enselme
294 1 Julien Enselme
Voici la démarche que j'ai entreprise pour les modules (c'est la même pour les thèmes)
295 1 Julien Enselme
296 1 Julien Enselme
# Avoir la liste des modules tiers dans un fichier text
297 1 Julien Enselme
<pre>
298 1 Julien Enselme
ls sites/all/modules > modules.txt
299 1 Julien Enselme
</pre>
300 3 Julien Enselme
# Transformer ce fichier en un fichier html qu'on peut ouvrir avec un navigateur web et cliquer simplement sur des liens vers les pages des projets.
301 1 Julien Enselme
On commence par créer le script makehtml.sh
302 1 Julien Enselme
<pre>
303 1 Julien Enselme
<code class="bash">
304 1 Julien Enselme
#!/bin/bash
305 1 Julien Enselme
while read ligne
306 1 Julien Enselme
do
307 1 Julien Enselme
set $(echo $ligne)
308 1 Julien Enselme
project=$(eval echo $1)
309 1 Julien Enselme
#The file on which we write is in the next line
310 1 Julien Enselme
echo "<a href=\"http://drupal.org/project/$project\" target=\"_blank\">$project</a><br/>" >> sortie.html
311 1 Julien Enselme
#The file from which we read is in the next line
312 1 Julien Enselme
done < modules.txt
313 1 Julien Enselme
</code>
314 1 Julien Enselme
</pre>
315 1 Julien Enselme
Puis on lance le script dans le même répertoire que modules.txt
316 1 Julien Enselme
<pre>
317 1 Julien Enselme
sh makehtml.sh
318 1 Julien Enselme
</pre>
319 1 Julien Enselme
On aura un fichier sortie.html qu'on ouvre avec un navigateur web et on peut alors cliquer sur les liens !
320 1 Julien Enselme
321 1 Julien Enselme
h2. Script utilisation projet
322 1 Julien Enselme
323 3 Julien Enselme
Il nous faut un script qui prend pour entrée le nom d'un projet (module thème) et qui liste les sites qui ont activé ce projet.
324 1 Julien Enselme
325 1 Julien Enselme
Au début, nous utilision un script proche de drushall qui ressemblait à ça : 
326 1 Julien Enselme
327 1 Julien Enselme
<pre>
328 1 Julien Enselme
<code class="bash">
329 1 Julien Enselme
# si pas d'arguments :
330 1 Julien Enselme
if [ $# -lt 1 ]; then
331 1 Julien Enselme
  echo "usage: $0 <drush args>"
332 1 Julien Enselme
  exit 1
333 1 Julien Enselme
fi
334 1 Julien Enselme
335 1 Julien Enselme
cd [drupal_directory]/sites
336 1 Julien Enselme
337 1 Julien Enselme
for x in $(ls -1 | grep -v 'all' | grep -v other directories); do
338 1 Julien Enselme
  if [ -d $x -a ! -L $x ]; then
339 1 Julien Enselme
    cd $x;
340 1 Julien Enselme
	    echo $x
341 1 Julien Enselme
	    drush pml | grep $*
342 1 Julien Enselme
    cd -;
343 1 Julien Enselme
  fi
344 1 Julien Enselme
done
345 1 Julien Enselme
</code>
346 1 Julien Enselme
</pre>
347 1 Julien Enselme
348 3 Julien Enselme
Puis, nous avons créé un script plus efficace, nommé [[Scripts_et_taches_planifiees#usep|usep ]](used project).
349 1 Julien Enselme
350 3 Julien Enselme
Utilisation pour avoir l'état d'utilisation du theème tarski par rapport à tous les sites de l'installation :
351 1 Julien Enselme
<pre>
352 1 Julien Enselme
usep tarski
353 1 Julien Enselme
</pre>
354 1 Julien Enselme
355 1 Julien Enselme
h2. Script changement thème
356 1 Julien Enselme
357 3 Julien Enselme
Il nous faut un script qui active un autre thème : <code>drush en le_theme</code> puis qui définit ce dernier thème activé comme thème par defaut : <code>drush vset theme_default nom-de-mon-thème </code>. Enfin qui désactive le thème d'un site : <code>drush dis le_theme </code> et, plus un autre qui définit le thème d'administration au thème par defaut par exemple <code>drush vset admin_theme nom-de-mon-thème </code>
358 1 Julien Enselme
359 1 Julien Enselme
Ce script sera utilisé pour changer les thèmes des sites dont on peinera à trouver le webmaster pour passer à un thème D7 friendly !
360 1 Julien Enselme
361 1 Julien Enselme
h1. Après le D7
362 1 Julien Enselme
363 3 Julien Enselme
h2. Retester la méthode création de sous site
364 1 Julien Enselme
365 1 Julien Enselme
La mettre à jour et update de la doc sur le wiki
366 1 Julien Enselme
367 1 Julien Enselme
h2. retester le script de Maj des modules
368 1 Julien Enselme
369 3 Julien Enselme
Le mettre à jour et update de la doc sur le wiki