$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);
}
}
?>