/_plugins_/videos/branches/videos_0/base/videos_sql.php

https://bitbucket.org/pombredanne/spip-zone-treemap · PHP · 77 lines · 60 code · 12 blank · 5 comment · 8 complexity · 86901251b18631ee65afe95a8a9db3b7 MD5 · raw file

  1. <?php
  2. if (!defined("_ECRIRE_INC_VERSION")) return;
  3. function videos_upgrade($nom_meta_base_version,$version_cible){
  4. $current_version = 0.0;
  5. if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
  6. || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
  7. if (version_compare($current_version,'0.1','<')){
  8. include_spip('base/abstract_sql');
  9. /* Mettre à jour la table DOCUMENTS pour regrouper les extensions "distantes" (changement de nomenclature) */
  10. sql_updateq('spip_documents',array('extension'=>'dist_daily'),"extension='dailym'");
  11. sql_updateq('spip_documents',array('extension'=>'dist_vimeo'),"extension='vimeo'");
  12. sql_updateq('spip_documents',array('extension'=>'dist_youtu'),"extension='youtube'");
  13. /* Ajouter les nouvelles extensions en base pour qu'elles soient prises en compte comme des vidéos */
  14. sql_insertq('spip_types_documents', array( 'extension'=>'dist_daily', 'titre'=>'Dailymotion','inclus'=>'embed', 'upload'=>'oui' ) );
  15. sql_insertq('spip_types_documents', array( 'extension'=>'dist_vimeo', 'titre'=>'Vimeo','inclus'=>'embed', 'upload'=>'oui' ) );
  16. sql_insertq('spip_types_documents', array( 'extension'=>'dist_youtu', 'titre'=>'Youtube','inclus'=>'embed', 'upload'=>'oui' ) );
  17. ecrire_meta($nom_meta_base_version,$current_version="0.1",'non');
  18. }
  19. if (version_compare($current_version,'0.2','<')){
  20. include_spip('base/abstract_sql');
  21. sql_updateq('spip_documents',array('extension'=>'dist_cubox'),"extension='culturebox'");
  22. sql_insertq('spip_types_documents', array( 'extension'=>'dist_cubox', 'titre'=>'CultureBox','inclus'=>'embed', 'upload'=>'oui' ) );
  23. ecrire_meta($nom_meta_base_version,$current_version="0.2",'non');
  24. }
  25. if (version_compare($current_version,'0.3','<')){
  26. /* 0.1 et 0.2 rataient leurs insertions SI le plugin Mediatheque n'avait pas inséré le champ media, on relance donc l'insertion pour ceux qui ont raté le coche */
  27. include_spip('base/abstract_sql');
  28. sql_insertq('spip_types_documents', array( 'extension'=>'dist_daily', 'titre'=>'Dailymotion','inclus'=>'embed', 'upload'=>'oui' ) );
  29. sql_insertq('spip_types_documents', array( 'extension'=>'dist_vimeo', 'titre'=>'Vimeo','inclus'=>'embed', 'upload'=>'oui' ) );
  30. sql_insertq('spip_types_documents', array( 'extension'=>'dist_youtu', 'titre'=>'Youtube','inclus'=>'embed', 'upload'=>'oui' ) );
  31. sql_insertq('spip_types_documents', array( 'extension'=>'dist_cubox', 'titre'=>'CultureBox','inclus'=>'embed', 'upload'=>'oui' ) );
  32. echo "Mise à jour du plugin Vidéo(s) en version base $version_cible<br/>";
  33. ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
  34. }
  35. }
  36. // Si présence du champ MEDIA : on MAJ
  37. $trouver_table=charger_fonction('trouver_table','base');
  38. $desc = $trouver_table('spip_types_documents');
  39. if(array_key_exists('media',$desc['field'])) sql_updateq('spip_types_documents',array('media'=>'video'),"extension REGEXP '^dist_'");
  40. }
  41. function videos_install($action,$prefix,$version_cible){
  42. $version_base = $GLOBALS[$prefix."_base_version"];
  43. switch ($action){
  44. case 'test':
  45. // Des trucs
  46. return (isset($GLOBALS['meta'][$prefix."_base_version"])
  47. AND version_compare($GLOBALS['meta'][$prefix."_base_version"],$version_cible,">="));
  48. break;
  49. case 'install':
  50. videos_upgrade('videos_base_version',$version_cible);
  51. break;
  52. case 'uninstall':
  53. videos_vider_tables('videos_base_version');
  54. videos_vider_tables('videos');
  55. break;
  56. }
  57. }
  58. function videos_vider_tables($nom_meta_base_version) {
  59. sql_delete("spip_types_documents", "extension='dist_daily'");
  60. sql_delete("spip_types_documents", "extension='dist_vimeo'");
  61. sql_delete("spip_types_documents", "extension='dist_youtu'");
  62. sql_delete("spip_types_documents", "extension='dist_cubox'");
  63. effacer_meta($nom_meta_base_version);
  64. }
  65. ?>