X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Fbase%2Fcreate.php;fp=www%2Fecrire%2Fbase%2Fcreate.php;h=45494da38e26a16f2e4ad5dcacd2fedc0b3f4d51;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c;ds=sidebyside diff --git a/www/ecrire/base/create.php b/www/ecrire/base/create.php new file mode 100644 index 0000000..45494da --- /dev/null +++ b/www/ecrire/base/create.php @@ -0,0 +1,115 @@ +$type){ + if (!isset($sql_desc['field'][$field])) + sql_alter("TABLE $table ADD $field $type".($last?" AFTER $last":""),$serveur); + $last = $field; + } + foreach($desc['key'] as $key=>$type){ + if (!isset($sql_desc['key'][$key])) + sql_alter("TABLE $table ADD $key ($type)",$serveur); + $last = $field; + } + + } +} + +function alterer_base($tables_inc, $tables_noinc, $up=false, $serveur='') +{ + if ($up === false) { + $old = false; + $up = array(); + } else { + $old = true; + if (!is_array($up)) $up = array($up); + } + foreach($tables_inc as $k => $v) + if (!$old OR in_array($k, $up)) + creer_ou_upgrader_table($k,$v,true,$old,$serveur); + + foreach($tables_noinc as $k => $v) + if (!$old OR in_array($k, $up)) + creer_ou_upgrader_table($k,$v,false,$old,$serveur); +} + +// http://doc.spip.org/@creer_base +function creer_base($serveur='') { + + // Note: les mises a jour reexecutent ce code pour s'assurer + // de la conformite de la base + // pas de panique sur "already exists" et "duplicate entry" donc. + + alterer_base($GLOBALS['tables_principales'], + $GLOBALS['tables_auxiliaires'], + false, + $serveur); +} + +// http://doc.spip.org/@maj_tables +function maj_tables($upgrade_tables=array(),$serveur=''){ + alterer_base($GLOBALS['tables_principales'], + $GLOBALS['tables_auxiliaires'], + $upgrade_tables, + $serveur); +} + +// http://doc.spip.org/@creer_base_types_doc +function creer_base_types_doc($serveur='') { + global $tables_images, $tables_sequences, $tables_documents, $tables_mime; + // Init ou Re-init ==> replace pas insert + + $freplace = sql_serveur('replace', $serveur); + foreach ($tables_mime as $extension => $type_mime) { + if (isset($tables_images[$extension])) { + $titre = $tables_images[$extension]; + $inclus='image'; + } + else if (isset($tables_sequences[$extension])) { + $titre = $tables_sequences[$extension]; + $inclus='embed'; + } + else { + $inclus='non'; + if (isset($tables_documents[$extension])) + $titre = $tables_documents[$extension]; + else + $titre = ''; + } + + $freplace('spip_types_documents', + array('mime_type' => $type_mime, + 'titre' => $titre, + 'inclus' => $inclus, + 'extension' => $extension, + 'upload' => 'oui' + ), + '', $serveur); + } +} +?>