PageRenderTime 26ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/_plugins_/spip-lettres/trunk/lettres_administrations.php

https://bitbucket.org/pombredanne/spip-zone-treemap
PHP | 210 lines | 184 code | 22 blank | 4 comment | 9 complexity | 3d2ec4c52c573e018f77304fdfd35bd0 MD5 | raw file
  1. <?php
  2. function lettres_upgrade($nom_meta_base_version,$version_cible){
  3. include_spip('inc/meta');
  4. // migration depuis l'ancien systeme de maj
  5. if (isset($GLOBALS['meta']['spip_lettres_version'])
  6. AND !isset($GLOBALS['meta'][$nom_meta_base_version])){
  7. ecrire_meta($nom_meta_base_version,$GLOBALS['meta']['spip_lettres_version'],'non');
  8. effacer_meta('spip_lettres_version');
  9. }
  10. $maj = array();
  11. $maj['create'] = array(
  12. array('creer_base'),
  13. array('spip_lettres_update_meta'),
  14. array('spip_lettres_creer_repertoire_documents'),
  15. );
  16. $maj['0.1'] = array(
  17. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  18. array('spip_lettres_creer_repertoire_documents'),
  19. );
  20. $maj['3.0'] = array(
  21. array('maj_tables',array('spip_abonnes_clics',
  22. 'spip_abonnes_lettres',
  23. 'spip_desabonnes',
  24. 'spip_abonnes_rubriques',
  25. 'spip_articles_lettres',
  26. 'spip_lettres_statistiques',
  27. 'spip_themes',
  28. 'spip_lettres',
  29. 'spip_rubriques_crontabs')),
  30. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  31. );
  32. $maj['3.1'] = array(
  33. array('maj_tables',array('spip_lettres')),
  34. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  35. );
  36. $maj['3.2'] = array(
  37. array('spip_lettres_maj_index_elements_objet')
  38. );
  39. $maj['3.3'] = array(
  40. array('maj_tables',array('spip_desabonnes')),
  41. );
  42. $maj['3.4'] = array(
  43. array('maj_tables',array('spip_desabonnes')),
  44. array('spip_lettres_creer_repertoire_documents')
  45. );
  46. $maj['3.6'] = array(
  47. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  48. );
  49. $maj['3.7'] = array(
  50. array('maj_tables',array('spip_rubriques_crontabs')),
  51. );
  52. $maj['3.8'] = array(
  53. array('maj_tables',array('spip_lettres')),
  54. array('sql_alter',"TABLE spip_lettres DROP idx"),
  55. array('sql_drop_table',"spip_documents_lettres",true),
  56. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  57. );
  58. $maj['4.0.0'] = array(
  59. array('spip_lettres_update_fond'),
  60. );
  61. $maj['4.0.1'] = array(
  62. array('sql_alter',"TABLE spip_lettres CHANGE statut statut VARCHAR(15) NOT NULL DEFAULT 'brouillon'"),
  63. );
  64. $maj['4.0.2'] = array(
  65. array('sql_alter',"TABLE spip_lettres CHANGE texte texte longtext DEFAULT '' NOT NULL"),
  66. array('sql_alter',"TABLE spip_lettres CHANGE message_html message_html longtext DEFAULT '' NOT NULL"),
  67. array('sql_alter',"TABLE spip_lettres CHANGE message_texte message_texte longtext DEFAULT '' NOT NULL"),
  68. array('sql_alter',"TABLE spip_lettres CHANGE extra extra longtext NULL"),
  69. );
  70. $maj['4.1'] = array(
  71. array('sql_alter',"TABLE spip_lettres CHANGE texte texte longtext DEFAULT '' NOT NULL"),
  72. array('sql_alter',"TABLE spip_lettres CHANGE message_html message_html longtext DEFAULT '' NOT NULL"),
  73. array('sql_alter',"TABLE spip_lettres CHANGE message_texte message_texte longtext DEFAULT '' NOT NULL"),
  74. array('sql_alter',"TABLE spip_lettres CHANGE extra extra longtext NULL"),
  75. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  76. );
  77. $maj['4.2'] = array(
  78. array('sql_alter',"TABLE spip_themes ADD COLUMN expediteur_type ENUM('default','webmaster','author','custom') NOT NULL DEFAULT 'default'"),
  79. array('sql_alter',"TABLE spip_themes ADD COLUMN expediteur_id BIGINT(21) NOT NULL DEFAULT '0'"),
  80. array('sql_alter',"TABLE spip_themes ADD COLUMN retours_type ENUM('default','webmaster','author','custom') NOT NULL DEFAULT 'default'"),
  81. array('sql_alter',"TABLE spip_themes ADD COLUMN retours_id BIGINT(21) NOT NULL DEFAULT '0'"),
  82. array('spip_lettres_update_meta',$version_plugin,$nom_meta_base_versio,$current_version,$version_cible),
  83. );
  84. if ('oui' == $GLOBALS['meta']['spip_lettres_signe_par_auteurs'])
  85. array_push($maj['4.2'][],array('sql_updateq','spip_themes',array('expediteur_type' => 'author'), '1'));
  86. // Laissons de la place dans la numerotation si la version de base de la branche 2 evolue
  87. include_spip('maj/svn10000');
  88. $maj['5.2'] = array(
  89. array('maj_liens','mot','lettre'),
  90. array('sql_drop_table',"spip_mots_lettres"),
  91. array('maj_liens','auteur','lettre'),
  92. array('sql_drop_table',"spip_auteurs_lettres"),
  93. );
  94. // Attention : cette maj ne gère pas le cas où d'autres tables que ABONNES ou AUTEURS
  95. // sont utilisées pour les abonnés
  96. $maj['5.3'] = array(
  97. array ('sql_updateq', 'spip_abonnes', array('objet'=>'auteur'), "objet='auteurs'"),
  98. array ('sql_updateq', 'spip_abonnes', array('objet'=>'abonne'), "objet='abonnes'"));
  99. $maj['5.4'] = array(
  100. array ('sql_alter', "TABLE spip_abonnes CHANGE objet objet VARCHAR(255) NOT NULL DEFAULT 'abonne'"));
  101. include_spip('base/upgrade');
  102. maj_plugin($nom_meta_base_version, $version_cible, $maj);
  103. }
  104. function spip_lettres_maj_index_elements_objet() {
  105. $INDEX_elements_objet = unserialize($GLOBALS['meta']['INDEX_elements_objet']);
  106. unset($INDEX_elements_objet['spip_lettres']);
  107. ecrire_meta('INDEX_elements_objet',serialize($INDEX_elements_objet));
  108. }
  109. function spip_lettres_update_meta($version_plugin,$nom_meta_base_versio,$current_version,$version_cible) {
  110. ecrire_meta('spip_lettres_version', $version_plugin);
  111. ecrire_meta('spip_lettres_fond_formulaire_lettres', 'lettres');
  112. ecrire_meta('spip_lettres_fond_lettre_titre', 'emails/lettre_titre');
  113. ecrire_meta('spip_lettres_fond_lettre_html', 'emails/lettre_html');
  114. ecrire_meta('spip_lettres_fond_lettre_texte', 'emails/lettre_texte');
  115. ecrire_meta('spip_lettres_notifier_suppression_abonne', 'non');
  116. ecrire_meta('spip_lettres_utiliser_articles', 'non');
  117. ecrire_meta('spip_lettres_utiliser_descriptif', 'non');
  118. ecrire_meta('spip_lettres_utiliser_chapo', 'non');
  119. ecrire_meta('spip_lettres_utiliser_ps', 'non');
  120. ecrire_meta('spip_lettres_envois_recurrents', 'non');
  121. ecrire_meta('spip_lettres_cron', md5(uniqid(rand())));
  122. ecrire_meta('spip_lettres_cliquer_anonyme', 'oui');
  123. ecrire_meta('spip_lettres_admin_abo_toutes_rubriques', 'non');
  124. ecrire_meta('spip_lettres_log_utiliser_email', 'non');
  125. if (!strpos($GLOBALS['meta']['preview'],',0minirezo,'))
  126. ecrire_meta('preview',',0minirezo,');
  127. ecrire_metas();
  128. }
  129. function spip_lettres_update_fond() {
  130. if ($GLOBALS['meta']['spip_lettres_fond_lettre_titre']=='lettre_titre'
  131. AND !find_in_path('lettre_titre.html'))
  132. ecrire_meta('spip_lettres_fond_lettre_titre', 'emails/lettre_titre');
  133. if ($GLOBALS['meta']['spip_lettres_fond_lettre_texte']=='lettre_texte'
  134. AND !find_in_path('lettre_texte.html'))
  135. ecrire_meta('spip_lettres_fond_lettre_texte', 'emails/lettre_texte');
  136. if ($GLOBALS['meta']['spip_lettres_fond_lettre_html']=='lettre_html'
  137. AND !find_in_path('lettre_html.html'))
  138. ecrire_meta('spip_lettres_fond_lettre_html', 'emails/lettre_html');
  139. }
  140. function spip_lettres_creer_repertoire_documents() {
  141. include_spip('inc/documents');
  142. creer_repertoire_documents('lettres');
  143. }
  144. function lettres_vider_tables($nom_meta_base_version) {
  145. include_spip('inc/meta');
  146. include_spip('base/abstract_sql');
  147. include_spip('classes/lettre');
  148. $res = sql_select('id_lettre', 'spip_lettres');
  149. if ($res) {
  150. while ($arr = sql_fetch($res)) {
  151. $lettre = new lettre($arr['id_lettre']);
  152. $lettre->supprimer();
  153. }
  154. }
  155. sql_drop_table('spip_abonnes', true);
  156. sql_drop_table('spip_clics', true);
  157. sql_drop_table('spip_desabonnes', true);
  158. sql_drop_table('spip_lettres', true);
  159. sql_drop_table('spip_rubriques_crontabs', true);
  160. sql_drop_table('spip_themes', true);
  161. sql_drop_table('spip_abonnes_clics', true);
  162. sql_drop_table('spip_abonnes_lettres', true);
  163. sql_drop_table('spip_abonnes_rubriques', true);
  164. sql_drop_table('spip_abonnes_statistiques', true);
  165. sql_drop_table('spip_articles_lettres', true);
  166. sql_drop_table('spip_documents_lettres', true);
  167. sql_drop_table('spip_lettres_statistiques', true);
  168. sql_drop_table('spip_mots_lettres', true);
  169. effacer_meta('spip_lettres_version');
  170. effacer_meta('spip_lettres_fond_formulaire_lettres');
  171. effacer_meta('spip_lettres_fond_lettre_titre');
  172. effacer_meta('spip_lettres_fond_lettre_html');
  173. effacer_meta('spip_lettres_fond_lettre_texte');
  174. effacer_meta('spip_lettres_notifier_suppression_abonne');
  175. effacer_meta('spip_lettres_utiliser_articles');
  176. effacer_meta('spip_lettres_utiliser_descriptif');
  177. effacer_meta('spip_lettres_utiliser_chapo');
  178. effacer_meta('spip_lettres_utiliser_ps');
  179. effacer_meta('spip_lettres_envois_recurrents');
  180. effacer_meta('derniere_modif_lettre');
  181. effacer_meta('spip_lettres_cron');
  182. effacer_meta('spip_lettres_abonnement_par_defaut');
  183. effacer_meta('spip_lettres_cliquer_anonyme');
  184. effacer_meta('spip_lettres_admin_abo_toutes_rubriques');
  185. supprimer_repertoire(_DIR_LETTRES);
  186. effacer_meta($nom_meta_base_version);
  187. }
  188. ?>