function action_supprimer_champ_sql($table, $champ) { // recuperer les descriptions // pour verifier que le champ n'est pas declare par quelqu'un include_spip('inc/cextras'); $champs = extras_champs_anormaux(); if (isset($champs[$table][$champ])) { // suppression extras_log("Suppression du champ {$table}/{$champ} par auteur " . $GLOBALS['auteur_session']['id_auteur'], true); sql_alter("TABLE {$table} DROP COLUMN " . $champ); } }
/** * Liste les tables et les champs que le plugin et spip savent gérer * mais qui ne sont pas déclarés à SPIP * * @param string $connect * Nom du connecteur de base de données * @return array * Tableau (table => couples(colonne => description SQL)) */ function extras_champs_utilisables($connect = '') { $tout = extras_champs_anormaux($connect); $objets = cextras_objets_valides(); $utilisables = array_intersect_key($tout, $objets); ksort($utilisables); return $utilisables; }
function extras_champs_utilisables($connect='') { $tout = extras_champs_anormaux($connect); $objets = cextras_objets_valides(); $tables_utilisables = array(); foreach ($objets as $o){$tables_utilisables[] = $o['table'];} foreach ($tout as $table=>$champs) { if (!in_array($table, $tables_utilisables)) { unset($tout[$table]); } } return $tout; }