PageRenderTime 27ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/_core_/tags/spip-2.1.9/plugins/forum/base/forum_upgrade.php

https://bitbucket.org/pombredanne/spip-zone-treemap
PHP | 92 lines | 54 code | 14 blank | 24 comment | 5 complexity | 01146d2e2159964671a76065fb8bec97 MD5 | raw file
  1. <?php
  2. /***************************************************************************\
  3. * SPIP, Systeme de publication pour l'internet *
  4. * *
  5. * Copyright (c) 2001-2009 *
  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. /**
  12. * Installation/maj des tables forum
  13. *
  14. * @param string $nom_meta_base_version
  15. * @param string $version_cible
  16. */
  17. function forum_upgrade($nom_meta_base_version,$version_cible){
  18. $current_version = '0.0';
  19. if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
  20. || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
  21. if (version_compare($current_version, '0.0','<=')){
  22. include_spip('base/forum');
  23. include_spip('base/create');
  24. // creer les tables
  25. creer_base();
  26. // mettre les metas par defaut
  27. $config = charger_fonction('config','inc');
  28. $config();
  29. ecrire_meta($nom_meta_base_version,$current_version = '1.0');
  30. }
  31. # mise a jour de (id_article,id_breve,...) vers (objet,id_objet)
  32. if (version_compare($current_version, '1.1','<')) {
  33. echo "<h4>MISE A JOUR DES FORUMS (objet,id_objet)</h4>";
  34. sql_alter("TABLE `spip_forum` ADD `id_objet` bigint(21) DEFAULT 0 NOT NULL AFTER `id_forum`");
  35. sql_alter("TABLE `spip_forum` ADD `objet` VARCHAR (25) DEFAULT '' NOT NULL AFTER `id_objet`");
  36. sql_alter("TABLE `spip_forum` DROP key `optimal`");
  37. sql_alter("TABLE `spip_forum` ADD key `optimal` (`statut`,`id_parent`,`id_objet`,`objet`,`date_heure`)");
  38. echo "<ul>";
  39. foreach(array('breve', 'article', 'syndic', 'message', 'rubrique')
  40. as $objet) {
  41. echo "<li>$objet</li>";
  42. sql_update("spip_forum", array(
  43. 'objet' => sql_quote($objet),
  44. 'id_objet' => 'id_'.$objet
  45. ), 'id_'.$objet.' > 0');
  46. sql_alter('TABLE `spip_forum` DROP `id_'.$objet.'`');
  47. }
  48. echo "</ul>";
  49. ecrire_meta($nom_meta_base_version,$current_version = '1.1');
  50. }
  51. # champ ip sur 40 car (compat IPv6)
  52. if (version_compare($current_version, '1.2','<')) {
  53. sql_alter("TABLE `spip_forum` CHANGE `ip` `ip` VRCHAR(40) DEFAULT '' NOT NULL");
  54. ecrire_meta($nom_meta_base_version,$current_version = '1.2');
  55. }
  56. }
  57. }
  58. /**
  59. * Desinstallation/suppression des tables forum
  60. *
  61. * @param string $nom_meta_base_version
  62. */
  63. function forum_vider_tables($nom_meta_base_version) {
  64. sql_drop_table("spip_forum");
  65. sql_drop_table("spip_mots_forum");
  66. effacer_meta("mots_cles_forums");
  67. effacer_meta("forums_titre");
  68. effacer_meta("forums_texte");
  69. effacer_meta("forums_urlref");
  70. effacer_meta("forums_afficher_barre");
  71. effacer_meta("formats_documents_forum");
  72. effacer_meta("forums_publics");
  73. effacer_meta("forum_prive");
  74. effacer_meta("forum_prive_objets");
  75. effacer_meta("forum_prive_admin");
  76. effacer_meta($nom_meta_base_version);
  77. }
  78. ?>