/ecrire/maj/v009.php

https://github.com/denisbz/SPIP · PHP · 128 lines · 96 code · 23 blank · 9 comment · 18 complexity · 661514c9af08a31e164616c90a6f8707 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_v009_dist($version_installee, $version_cible)
  13. {
  14. if (upgrade_vers(0.98, $version_installee, $version_cible)) {
  15. spip_query("ALTER TABLE spip_articles ADD maj TIMESTAMP");
  16. spip_query("ALTER TABLE spip_articles ADD export VARCHAR(10) DEFAULT 'oui'");
  17. spip_query("ALTER TABLE spip_articles ADD images TEXT DEFAULT ''");
  18. spip_query("ALTER TABLE spip_articles ADD date_redac datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
  19. spip_query("ALTER TABLE spip_articles DROP INDEX id_article");
  20. spip_query("ALTER TABLE spip_articles ADD INDEX id_rubrique (id_rubrique)");
  21. spip_query("ALTER TABLE spip_articles ADD visites INTEGER DEFAULT '0' NOT NULL");
  22. spip_query("ALTER TABLE spip_articles ADD referers BLOB NOT NULL");
  23. spip_query("ALTER TABLE spip_auteurs ADD maj TIMESTAMP");
  24. spip_query("ALTER TABLE spip_auteurs ADD pgp BLOB NOT NULL");
  25. spip_query("ALTER TABLE spip_auteurs_articles ADD INDEX id_auteur (id_auteur), ADD INDEX id_article (id_article)");
  26. spip_query("ALTER TABLE spip_rubriques ADD maj TIMESTAMP");
  27. spip_query("ALTER TABLE spip_rubriques ADD export VARCHAR(10) DEFAULT 'oui', ADD id_import BIGINT DEFAULT '0'");
  28. spip_query("ALTER TABLE spip_breves ADD maj TIMESTAMP");
  29. spip_query("ALTER TABLE spip_breves DROP INDEX id_breve");
  30. spip_query("ALTER TABLE spip_breves DROP INDEX id_breve_2");
  31. spip_query("ALTER TABLE spip_breves ADD INDEX id_rubrique (id_rubrique)");
  32. spip_query("ALTER TABLE spip_forum ADD ip VARCHAR(16)");
  33. spip_query("ALTER TABLE spip_forum ADD maj TIMESTAMP");
  34. spip_query("ALTER TABLE spip_forum DROP INDEX id_forum");
  35. spip_query("ALTER TABLE spip_forum ADD INDEX id_parent (id_parent), ADD INDEX id_rubrique (id_rubrique), ADD INDEX id_article(id_article), ADD INDEX id_breve(id_breve)");
  36. maj_version (0.98);
  37. }
  38. if (upgrade_vers(0.99, $version_installee, $version_cible)) {
  39. $result = spip_query("SELECT DISTINCT id_article FROM spip_forum WHERE id_article!=0 AND id_parent=0");
  40. while ($row = sql_fetch($result)) {
  41. unset($forums_article);
  42. $id_article = $row['id_article'];
  43. $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_article=$id_article");
  44. for (;;) {
  45. unset($forums);
  46. while ($row2 = sql_fetch($result2)) $forums[] = $row2['id_forum'];
  47. if (!$forums) break;
  48. $forums = join(',', $forums);
  49. $forums_article[] = $forums;
  50. $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
  51. }
  52. $forums_article = join(',', $forums_article);
  53. spip_query("UPDATE spip_forum SET id_article=$id_article WHERE id_forum IN ($forums_article)");
  54. }
  55. $result = spip_query("SELECT DISTINCT id_breve FROM spip_forum WHERE id_breve!=0 AND id_parent=0");
  56. while ($row = sql_fetch($result)) {
  57. unset($forums_breve);
  58. $id_breve = $row['id_breve'];
  59. $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_breve=$id_breve");
  60. for (;;) {
  61. unset($forums);
  62. while ($row2 = sql_fetch($result2)) $forums[] = $row2['id_forum'];
  63. if (!$forums) break;
  64. $forums = join(',', $forums);
  65. $forums_breve[] = $forums;
  66. $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
  67. }
  68. $forums_breve = join(',', $forums_breve);
  69. spip_query("UPDATE spip_forum SET id_breve=$id_breve WHERE id_forum IN ($forums_breve)");
  70. }
  71. $result = spip_query("SELECT DISTINCT id_rubrique FROM spip_forum WHERE id_rubrique!=0 AND id_parent=0");
  72. while ($row = sql_fetch($result)) {
  73. unset($forums_rubrique);
  74. $id_rubrique = $row['id_rubrique'];
  75. $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_rubrique=$id_rubrique");
  76. for (;;) {
  77. unset($forums);
  78. while ($row2 = sql_fetch($result2)) $forums[] = $row2['id_forum'];
  79. if (!$forums) break;
  80. $forums = join(',', $forums);
  81. $forums_rubrique[] = $forums;
  82. $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
  83. }
  84. $forums_rubrique = join(',', $forums_rubrique);
  85. spip_query("UPDATE spip_forum SET id_rubrique=$id_rubrique WHERE id_forum IN ($forums_rubrique)");
  86. }
  87. maj_version (0.99);
  88. }
  89. if (upgrade_vers(0.997, $version_installee, $version_cible)) {
  90. spip_query("DROP TABLE spip_index");
  91. maj_version (0.997);
  92. }
  93. if (upgrade_vers(0.999, $version_installee, $version_cible)) {
  94. spip_query("ALTER TABLE spip_auteurs CHANGE pass pass tinyblob NOT NULL");
  95. spip_query("ALTER TABLE spip_auteurs ADD htpass tinyblob NOT NULL");
  96. $result = spip_query("SELECT id_auteur, pass FROM spip_auteurs WHERE pass!=''");
  97. while ($r= sql_fetch($result)) {
  98. $htpass = generer_htpass($r['pass']);
  99. $pass = md5($pass);
  100. spip_query("UPDATE spip_auteurs SET pass='$pass', htpass='$htpass' WHERE id_auteur=" . $r['id_auteur']);
  101. }
  102. maj_version (0.999);
  103. }
  104. }
  105. ?>