PageRenderTime 48ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 1ms

/ecrire/maj/v014.php

https://github.com/denisbz/SPIP-1
PHP | 328 lines | 254 code | 49 blank | 25 comment | 49 complexity | 3cd5fe29eec26030de6c4efd7ac9486e MD5 | raw file
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2011 *
  6. * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
  7. * *
  8. * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
  9. * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
  10. \***************************************************************************/
  11. if (!defined('_ECRIRE_INC_VERSION')) return;
  12. function maj_v014_dist($version_installee, $version_cible)
  13. {
  14. if (upgrade_vers(1.404, $version_installee, $version_cible)) {
  15. spip_query("UPDATE spip_mots SET type='Mots sans groupe...' WHERE type=''");
  16. $result = spip_query("SELECT * FROM spip_mots GROUP BY type");
  17. while($row = sql_fetch($result)) {
  18. $type = addslashes($row['type']);
  19. // Old style, doit echouer
  20. spip_log('ne pas tenir compte de l erreur spip_groupes_mots ci-dessous:', 'mysql');
  21. spip_query("INSERT INTO spip_groupes_mots (titre, unseul, obligatoire, articles, breves, rubriques, syndic, 0minirezo, 1comite, 6forum) VALUES (\"$type\", 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')");
  22. // New style, devrait marcher
  23. spip_query("INSERT INTO spip_groupes_mots (titre, unseul, obligatoire, articles, breves, rubriques, syndic, minirezo, comite, forum) VALUES (\"$type\", 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')");
  24. }
  25. sql_delete("spip_mots", "titre='kawax'");
  26. maj_version (1.404);
  27. }
  28. if (upgrade_vers(1.405, $version_installee, $version_cible)) {
  29. spip_query("ALTER TABLE spip_mots ADD id_groupe bigint(21) NOT NULL");
  30. $result = spip_query("SELECT * FROM spip_groupes_mots");
  31. while($row = sql_fetch($result)) {
  32. $id_groupe = addslashes($row['id_groupe']);
  33. $type = addslashes($row['titre']);
  34. spip_query("UPDATE spip_mots SET id_groupe = '$id_groupe' WHERE type='$type'");
  35. }
  36. maj_version (1.405);
  37. }
  38. if (upgrade_vers(1.408, $version_installee, $version_cible)) {
  39. // Images articles passent dans spip_documents
  40. $result = spip_query("SELECT id_article, images FROM spip_articles WHERE LENGTH(images) > 0");
  41. $types = array('jpg' => 1, 'png' => 2, 'gif' => 3);
  42. while ($row = @sql_fetch($result)) {
  43. $id_article = $row['id_article'];
  44. $images = $row['images'];
  45. $images = explode(",", $images);
  46. reset($images);
  47. $replace = '_orig_';
  48. foreach ($images as $val) {
  49. $image = explode("|", $val);
  50. $fichier = $image[0];
  51. $largeur = $image[1];
  52. $hauteur = $image[2];
  53. preg_match(",-([0-9]+)\.(gif|jpg|png)$,i", $fichier, $match);
  54. $id_type = intval($types[$match[2]]);
  55. $num_img = $match[1];
  56. $fichier = _DIR_IMG . $fichier;
  57. $taille = @filesize($fichier);
  58. // ici on n'a pas les fonctions absctract !
  59. $s = spip_query("INSERT INTO spip_documents (titre, id_type, fichier, mode, largeur, hauteur, taille) VALUES ('image $largeur x $hauteur', $id_type, '$fichier', 'vignette', '$largeur', '$hauteur', '$taille')");
  60. $id_document = mysql_insert_id($s);
  61. if ($id_document > 0) {
  62. spip_query("INSERT INTO spip_documents_articles (id_document, id_article) VALUES ($id_document, $id_article)");
  63. $replace = "REPLACE($replace, '<IMG$num_img|', '<IM_$id_document|')";
  64. } else {
  65. echo _T('texte_erreur_mise_niveau_base', array('fichier' => $fichier, 'id_article' => $id_article));
  66. exit;
  67. }
  68. }
  69. $replace = "REPLACE($replace, '<IM_', '<IMG')";
  70. $replace_chapo = str_replace('_orig_', 'chapo', $replace);
  71. $replace_descriptif = str_replace('_orig_', 'descriptif', $replace);
  72. $replace_texte = str_replace('_orig_', 'texte', $replace);
  73. $replace_ps = str_replace('_orig_', 'ps', $replace);
  74. spip_query("UPDATE spip_articles SET chapo=$replace_chapo, descriptif=$replace_descriptif, texte=$replace_texte, ps=$replace_ps WHERE id_article=$id_article");
  75. }
  76. spip_query("ALTER TABLE spip_articles DROP images");
  77. maj_version (1.408);
  78. }
  79. if (upgrade_vers(1.414, $version_installee, $version_cible)) {
  80. // Forum par defaut "en dur" dans les spip_articles
  81. // -> non, prio (priori), pos (posteriori), abo (abonnement)
  82. $accepter_forum = substr($GLOBALS['meta']["forums_publics"],0,3) ;
  83. $result = spip_query("ALTER TABLE spip_articles CHANGE accepter_forum accepter_forum CHAR(3) NOT NULL");
  84. $result = spip_query("UPDATE spip_articles SET accepter_forum='$accepter_forum' WHERE accepter_forum != 'non'");
  85. maj_version (1.414);
  86. }
  87. /*
  88. if ($version_installee == 1.415) {
  89. spip_query("ALTER TABLE spip_documents DROP inclus");
  90. maj_version (1.415);
  91. }
  92. */
  93. if (upgrade_vers(1.417, $version_installee, $version_cible)) {
  94. spip_query("ALTER TABLE spip_syndic_articles DROP date_index");
  95. maj_version (1.417);
  96. }
  97. if (upgrade_vers(1.418, $version_installee, $version_cible)) {
  98. $result = spip_query("SELECT * FROM spip_auteurs WHERE statut = '0minirezo' AND email != '' ORDER BY id_auteur LIMIT 1");
  99. if ($webmaster = sql_fetch($result)) {
  100. ecrire_meta('email_webmaster', $webmaster['email']);
  101. }
  102. maj_version (1.418);
  103. }
  104. if (upgrade_vers(1.419, $version_installee, $version_cible)) {
  105. spip_query("ALTER TABLE spip_auteurs ADD alea_actuel TINYTEXT DEFAULT ''");
  106. spip_query("ALTER TABLE spip_auteurs ADD alea_futur TINYTEXT DEFAULT ''");
  107. spip_query("UPDATE spip_auteurs SET alea_futur = FLOOR(32000*RAND())");
  108. maj_version (1.419);
  109. }
  110. if (upgrade_vers(1.420, $version_installee, $version_cible)) {
  111. spip_query("UPDATE spip_auteurs SET alea_actuel='' WHERE statut='nouveau'");
  112. maj_version (1.420);
  113. }
  114. if (upgrade_vers(1.421, $version_installee, $version_cible)) {
  115. spip_query("ALTER TABLE spip_articles ADD auteur_modif bigint(21) DEFAULT '0' NOT NULL");
  116. spip_query("ALTER TABLE spip_articles ADD date_modif datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
  117. maj_version (1.421);
  118. }
  119. if (upgrade_vers(1.432, $version_installee, $version_cible)) {
  120. spip_query("ALTER TABLE spip_articles DROP referers");
  121. spip_query("ALTER TABLE spip_articles ADD referers INTEGER DEFAULT '0' NOT NULL");
  122. spip_query("ALTER TABLE spip_articles ADD popularite INTEGER DEFAULT '0' NOT NULL");
  123. maj_version (1.432);
  124. }
  125. if (upgrade_vers(1.436, $version_installee, $version_cible)) {
  126. spip_query("ALTER TABLE spip_documents ADD date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
  127. maj_version (1.436);
  128. }
  129. if (upgrade_vers(1.437, $version_installee, $version_cible)) {
  130. spip_query("ALTER TABLE spip_visites ADD maj TIMESTAMP");
  131. spip_query("ALTER TABLE spip_visites_referers ADD maj TIMESTAMP");
  132. maj_version (1.437);
  133. }
  134. if (upgrade_vers(1.438, $version_installee, $version_cible)) {
  135. spip_query("ALTER TABLE spip_articles ADD INDEX id_secteur (id_secteur)");
  136. spip_query("ALTER TABLE spip_articles ADD INDEX statut (statut, date)");
  137. maj_version (1.438);
  138. }
  139. if (upgrade_vers(1.439, $version_installee, $version_cible)) {
  140. spip_query("ALTER TABLE spip_syndic ADD INDEX statut (statut, date_syndic)");
  141. spip_query("ALTER TABLE spip_syndic_articles ADD INDEX statut (statut)");
  142. spip_query("ALTER TABLE spip_syndic_articles CHANGE url url VARCHAR(255) NOT NULL");
  143. spip_query("ALTER TABLE spip_syndic_articles ADD INDEX url (url)");
  144. maj_version (1.439);
  145. }
  146. if (upgrade_vers(1.440, $version_installee, $version_cible)) {
  147. spip_query("ALTER TABLE spip_visites_temp CHANGE ip ip INTEGER UNSIGNED NOT NULL");
  148. maj_version (1.440);
  149. }
  150. if (upgrade_vers(1.441, $version_installee, $version_cible)) {
  151. spip_query("ALTER TABLE spip_visites_temp CHANGE date date DATE NOT NULL");
  152. spip_query("ALTER TABLE spip_visites CHANGE date date DATE NOT NULL");
  153. spip_query("ALTER TABLE spip_visites_referers CHANGE date date DATE NOT NULL");
  154. maj_version (1.441);
  155. }
  156. if (upgrade_vers(1.442, $version_installee, $version_cible)) {
  157. spip_query("ALTER TABLE spip_auteurs ADD prefs TINYTEXT NOT NULL");
  158. maj_version (1.442);
  159. }
  160. if (upgrade_vers(1.443, $version_installee, $version_cible)) {
  161. spip_query("ALTER TABLE spip_auteurs CHANGE login login VARCHAR(255) BINARY NOT NULL");
  162. spip_query("ALTER TABLE spip_auteurs CHANGE statut statut VARCHAR(255) NOT NULL");
  163. spip_query("ALTER TABLE spip_auteurs ADD INDEX login (login)");
  164. spip_query("ALTER TABLE spip_auteurs ADD INDEX statut (statut)");
  165. maj_version (1.443);
  166. }
  167. if (upgrade_vers(1.444, $version_installee, $version_cible)) {
  168. spip_query("ALTER TABLE spip_syndic ADD moderation VARCHAR(3) NOT NULL");
  169. maj_version (1.444);
  170. }
  171. if (upgrade_vers(1.457, $version_installee, $version_cible)) {
  172. spip_query("DROP TABLE spip_visites");
  173. spip_query("DROP TABLE spip_visites_temp");
  174. spip_query("DROP TABLE spip_visites_referers");
  175. creer_base(); // crade, a ameliorer :-((
  176. maj_version (1.457);
  177. }
  178. if (upgrade_vers(1.458, $version_installee, $version_cible)) {
  179. spip_query("ALTER TABLE spip_auteurs ADD cookie_oubli TINYTEXT NOT NULL");
  180. maj_version (1.458);
  181. }
  182. if (upgrade_vers(1.459, $version_installee, $version_cible)) {
  183. $result = spip_query("SELECT type FROM spip_mots GROUP BY type");
  184. while ($row = sql_fetch($result)) {
  185. $type = addslashes($row['type']);
  186. $res = spip_query("SELECT * FROM spip_groupes_mots WHERE titre='$type'");
  187. if (sql_count($res) == 0) {
  188. $s = spip_query("INSERT INTO spip_groupes_mots (titre, unseul, obligatoire, articles, breves, rubriques, syndic, minirezo, comite, forum) VALUES ('$type', 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')");
  189. if ($id_groupe = mysql_insert_id($s))
  190. spip_query("UPDATE spip_mots SET id_groupe = '$id_groupe' WHERE type='$type'");
  191. }
  192. }
  193. spip_query("UPDATE spip_articles SET popularite=0");
  194. maj_version (1.459);
  195. }
  196. if (upgrade_vers(1.460, $version_installee, $version_cible)) {
  197. // remettre les mots dans les groupes dupliques par erreur
  198. // dans la precedente version du paragraphe de maj 1.459
  199. // et supprimer ceux-ci
  200. $result = spip_query("SELECT * FROM spip_groupes_mots ORDER BY id_groupe");
  201. while ($row = sql_fetch($result)) {
  202. $titre = addslashes($row['titre']);
  203. if (! $vu[$titre] ) {
  204. $vu[$titre] = true;
  205. $id_groupe = $row['id_groupe'];
  206. spip_query("UPDATE spip_mots SET id_groupe=$id_groupe WHERE type='$titre'");
  207. sql_delete("spip_groupes_mots", "titre='$titre' AND id_groupe<>$id_groupe");
  208. }
  209. }
  210. maj_version (1.460);
  211. }
  212. if (upgrade_vers(1.462, $version_installee, $version_cible)) {
  213. spip_query("UPDATE spip_types_documents SET inclus='embed' WHERE inclus!='non' AND extension IN ('aiff', 'asf', 'avi', 'mid', 'mov', 'mp3', 'mpg', 'ogg', 'qt', 'ra', 'ram', 'rm', 'swf', 'wav', 'wmv')");
  214. maj_version (1.462);
  215. }
  216. if (upgrade_vers(1.463, $version_installee, $version_cible)) {
  217. spip_query("ALTER TABLE spip_articles CHANGE popularite popularite DOUBLE");
  218. spip_query("ALTER TABLE spip_visites_temp ADD maj TIMESTAMP");
  219. spip_query("ALTER TABLE spip_referers_temp ADD maj TIMESTAMP");
  220. maj_version (1.463);
  221. }
  222. // l'upgrade < 1.462 ci-dessus etait fausse, d'ou correctif
  223. if (upgrade_vers(1.464, $version_installee, $version_cible) AND ($version_installee >= 1.462)) {
  224. $res = spip_query("SELECT id_type, extension FROM spip_types_documents WHERE id_type NOT IN (1,2,3)");
  225. while ($row = sql_fetch($res)) {
  226. $extension = $row['extension'];
  227. $id_type = $row['id_type'];
  228. spip_query("UPDATE spip_documents SET id_type=$id_type WHERE fichier like '%.$extension'");
  229. }
  230. maj_version (1.464);
  231. }
  232. if (upgrade_vers(1.465, $version_installee, $version_cible)) {
  233. spip_query("ALTER TABLE spip_articles CHANGE popularite popularite DOUBLE NOT NULL");
  234. maj_version (1.465);
  235. }
  236. if (upgrade_vers(1.466, $version_installee, $version_cible)) {
  237. spip_query("ALTER TABLE spip_auteurs ADD source VARCHAR(10) DEFAULT 'spip' NOT NULL");
  238. maj_version (1.466);
  239. }
  240. if (upgrade_vers(1.468, $version_installee, $version_cible)) {
  241. spip_query("ALTER TABLE spip_auteurs ADD INDEX en_ligne (en_ligne)");
  242. spip_query("ALTER TABLE spip_forum ADD INDEX statut (statut, date_heure)");
  243. maj_version (1.468);
  244. }
  245. if (upgrade_vers(1.470, $version_installee, $version_cible)) {
  246. if ($version_installee >= 1.467) { // annule les "listes de diff"
  247. spip_query("DROP TABLE spip_listes");
  248. spip_query("ALTER TABLE spip_auteurs DROP abonne");
  249. spip_query("ALTER TABLE spip_auteurs DROP abonne_pass");
  250. }
  251. maj_version (1.470);
  252. }
  253. if (upgrade_vers(1.471, $version_installee, $version_cible)) {
  254. if ($version_installee >= 1.470) { // annule les "maj"
  255. spip_query("ALTER TABLE spip_auteurs_articles DROP maj TIMESTAMP");
  256. spip_query("ALTER TABLE spip_auteurs_rubriques DROP maj TIMESTAMP");
  257. spip_query("ALTER TABLE spip_auteurs_messages DROP maj TIMESTAMP");
  258. spip_query("ALTER TABLE spip_documents_articles DROP maj TIMESTAMP");
  259. spip_query("ALTER TABLE spip_documents_rubriques DROP maj TIMESTAMP");
  260. spip_query("ALTER TABLE spip_documents_breves DROP maj TIMESTAMP");
  261. spip_query("ALTER TABLE spip_mots_articles DROP maj TIMESTAMP");
  262. spip_query("ALTER TABLE spip_mots_breves DROP maj TIMESTAMP");
  263. spip_query("ALTER TABLE spip_mots_rubriques DROP maj TIMESTAMP");
  264. spip_query("ALTER TABLE spip_mots_syndic DROP maj TIMESTAMP");
  265. spip_query("ALTER TABLE spip_mots_forum DROP maj TIMESTAMP");
  266. }
  267. maj_version (1.471);
  268. }
  269. if (upgrade_vers(1.472, $version_installee, $version_cible)) {
  270. spip_query("ALTER TABLE spip_referers ADD visites_jour INTEGER UNSIGNED NOT NULL");
  271. maj_version (1.472);
  272. }
  273. if (upgrade_vers(1.473, $version_installee, $version_cible)) {
  274. spip_query("UPDATE spip_syndic_articles SET url = REPLACE(url, '&amp;', '&')");
  275. spip_query("UPDATE spip_syndic SET url_site = REPLACE(url_site, '&amp;', '&')");
  276. maj_version (1.473);
  277. }
  278. }
  279. ?>