| @ -0,0 +1,53 @@ | |||
| <?php | |||
| require_once('smeti_db.inc.php'); | |||
| SMETI_db::init(); | |||
| $libelle = 'Collectivités'; | |||
| echo 'VACUUM '; | |||
| SMETI_db::removePlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout du plugin '$libelle' "; | |||
| SMETI_db::addPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Plugin courant : '$libelle' "; | |||
| SMETI_db::setCurPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout d'une racine: '$libelle' "; | |||
| // Ajouter un item | |||
| SMETI_db::$libelle = $libelle; | |||
| SMETI_db::$code = 'COLL'; | |||
| SMETI_db::$req1->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Ajouter un lien sur cet item | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Positionner ce lien comme parent | |||
| SMETI_db::$parent = SMETI_db::$item; | |||
| echo 'OK'.PHP_EOL; | |||
| $shipments = json_decode(file_get_contents("../data/json/BMO/01_COLLECTIVITES.json"), true); | |||
| foreach($shipments as $element) | |||
| { | |||
| // Ajouter un item | |||
| SMETI_db::$code = $element['collcod']; | |||
| SMETI_db::$libelle = $element['collnom']; | |||
| SMETI_db::$req1->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Ajouter un lien | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Le rattacher à la racine | |||
| SMETI_db::$child = SMETI_db::$item; | |||
| SMETI_db::$req3->execute(); | |||
| } | |||
| ?> | |||
| @ -0,0 +1,108 @@ | |||
| <?php | |||
| require_once('smeti_db.inc.php'); | |||
| SMETI_db::init(); | |||
| echo 'Chargement collectivités '; | |||
| $sql = SMETI_db::$pdo->prepare("SELECT code, item, libelle FROM v_items WHERE plugin = ( SELECT id FROM plugins WHERE libelle = 'Collectivités' )"); | |||
| $sql->execute(); | |||
| $coll = $sql->fetchAll(PDO::FETCH_NUM); | |||
| echo 'OK'.PHP_EOL; | |||
| $libelle = 'Budgets'; | |||
| echo 'VACUUM '; | |||
| SMETI_db::removePlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout du plugin '$libelle' "; | |||
| SMETI_db::addPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Plugin courant : '$libelle' "; | |||
| SMETI_db::setCurPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout d'une racine: '$libelle' "; | |||
| // Ajouter un item | |||
| SMETI_db::$libelle = $libelle; | |||
| SMETI_db::$code = 'BUDG'; | |||
| SMETI_db::$req1->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Ajouter un lien sur cet item | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Positionner ce lien comme parent | |||
| SMETI_db::$parent = SMETI_db::$item; | |||
| echo 'OK'.PHP_EOL; | |||
| $pile_index = 0; | |||
| $pile_code[$pile_index] = SMETI_db::$code; | |||
| $pile_item[$pile_index] = SMETI_db::$item; | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = ''; | |||
| $pile_item[$pile_index] = 0; | |||
| echo 'Chargement des données'.PHP_EOL; | |||
| $counter = 0; | |||
| $shipments = json_decode(file_get_contents("../data/json/BMO/02_BUDGETS.json"), true); | |||
| $nb_shipments = count($shipments); | |||
| foreach($shipments as $element) | |||
| { | |||
| // Gestion d'une barre de progression | |||
| progressBar($counter, $nb_shipments); | |||
| if (5000 == $counter++) break; | |||
| // Gestion d'une barre de progression | |||
| // A-t-on changé de collectivité ? | |||
| if ($element['collcod'] != $pile_code[$pile_index]) | |||
| { | |||
| // chercher la collectivité | |||
| $n = count($coll); | |||
| for($i=0;$i<$n;$i++) | |||
| if ($element['collcod'] == $coll[$i][0]) | |||
| break; | |||
| if ($i == $n) continue; | |||
| // Revenir au niveau 'plugin' de la pile | |||
| $pile_index -= 1; | |||
| // Ajout d'un lien (symbolique) | |||
| SMETI_db::$link = 1; | |||
| SMETI_db::$item = $coll[$i][1]; | |||
| SMETI_db::$req2->execute(); | |||
| // Ajout d'un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| // Conserver ce noeud dans la pile | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = $element['collcod']; | |||
| $pile_item[$pile_index] = SMETI_db::$child; | |||
| } | |||
| // Rajouter le budget | |||
| // Rajouter un item | |||
| SMETI_db::$code = $element['colbcodbud']; | |||
| SMETI_db::$libelle = $element['colbnom']; | |||
| SMETI_db::$req1->execute(); | |||
| // Rajouter un lien | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| // Rajouter un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| } | |||
| // Enlever la barre de progression | |||
| clearLine(); | |||
| // Enlever la barre de progression | |||
| echo 'OK'.PHP_EOL; | |||
| ?> | |||
| @ -0,0 +1,109 @@ | |||
| <?php | |||
| require_once('smeti_db.inc.php'); | |||
| SMETI_db::init(); | |||
| echo 'Chargement collectivités '; | |||
| $sql = SMETI_db::$pdo->prepare("SELECT code, item, libelle FROM v_items WHERE plugin = ( SELECT id FROM plugins WHERE libelle = 'Collectivités' )"); | |||
| $sql->execute(); | |||
| $coll = $sql->fetchAll(PDO::FETCH_NUM); | |||
| echo 'OK'.PHP_EOL; | |||
| $libelle = 'Services'; | |||
| echo 'VACUUM '; | |||
| SMETI_db::removePlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| die; | |||
| echo "Ajout du plugin '$libelle' "; | |||
| SMETI_db::addPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Plugin courant : '$libelle' "; | |||
| SMETI_db::setCurPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout d'une racine: '$libelle' "; | |||
| // Ajouter un item | |||
| SMETI_db::$libelle = $libelle; | |||
| SMETI_db::$code = 'SERV'; | |||
| SMETI_db::$req1->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Ajouter un lien sur cet item | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Positionner ce lien comme parent | |||
| SMETI_db::$parent = SMETI_db::$item; | |||
| echo 'OK'.PHP_EOL; | |||
| $pile_index = 0; | |||
| $pile_code[$pile_index] = SMETI_db::$code; | |||
| $pile_item[$pile_index] = SMETI_db::$item; | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = ''; | |||
| $pile_item[$pile_index] = 0; | |||
| echo 'Chargement des données'.PHP_EOL; | |||
| $counter = 0; | |||
| $shipments = json_decode(file_get_contents("../data/json/BMO/03_SERVICES.json"), true); | |||
| $nb_shipments = count($shipments); | |||
| foreach($shipments as $element) | |||
| { | |||
| // Gestion d'une barre de progression | |||
| progressBar($counter, $nb_shipments); | |||
| if (5000 == $counter++) break; | |||
| // Gestion d'une barre de progression | |||
| // A-t-on changé de collectivité ? | |||
| if ($element['collcod'] != $pile_code[$pile_index]) | |||
| { | |||
| // chercher la collectivité | |||
| $n = count($coll); | |||
| for($i=0;$i<$n;$i++) | |||
| if ($element['collcod'] == $coll[$i][0]) | |||
| break; | |||
| if ($i == $n) continue; | |||
| // Revenir au niveau 'plugin' de la pile | |||
| $pile_index -= 1; | |||
| // Ajout d'un lien (symbolique) | |||
| SMETI_db::$link = 1; | |||
| SMETI_db::$item = $coll[$i][1]; | |||
| SMETI_db::$req2->execute(); | |||
| // Ajout d'un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| // Conserver ce noeud dans la pile | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = $element['collcod']; | |||
| $pile_item[$pile_index] = SMETI_db::$child; | |||
| } | |||
| // Rajouter le service | |||
| SMETI_db::$code = $element['servcod']; | |||
| SMETI_db::$libelle = $element['servcod']; | |||
| SMETI_db::$req1->execute(); | |||
| // Rajouter un lien | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| // Rajouter un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| } | |||
| // Enlever la barre de progression | |||
| clearLine(); | |||
| // Enlever la barre de progression | |||
| echo 'OK'.PHP_EOL; | |||
| ?> | |||
| @ -0,0 +1,141 @@ | |||
| <?php | |||
| require_once('smeti_db.inc.php'); | |||
| SMETI_db::init(); | |||
| echo 'Chargement collectivités '; | |||
| $sql = SMETI_db::$pdo->prepare("SELECT code, item, libelle FROM v_items WHERE plugin = ( SELECT id FROM plugins WHERE libelle = 'Collectivités' )"); | |||
| $sql->execute(); | |||
| $coll = $sql->fetchAll(PDO::FETCH_NUM); | |||
| echo 'OK'.PHP_EOL; | |||
| $libelle = 'Familles achats'; | |||
| echo 'VACUUM '; | |||
| SMETI_db::removePlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout du plugin '$libelle' "; | |||
| SMETI_db::addPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Plugin courant : '$libelle' "; | |||
| SMETI_db::setCurPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout d'une racine: '$libelle' "; | |||
| // Ajouter un item | |||
| SMETI_db::$libelle = $libelle; | |||
| SMETI_db::$code = 'NCMP'; | |||
| SMETI_db::$req1->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Ajouter un lien sur cet item | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Positionner ce lien comme parent | |||
| SMETI_db::$parent = SMETI_db::$item; | |||
| echo 'OK'.PHP_EOL; | |||
| $pile_index = 0; | |||
| $pile_code[$pile_index] = SMETI_db::$code; | |||
| $pile_item[$pile_index] = SMETI_db::$item; | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = ''; | |||
| $pile_item[$pile_index] = 0; | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = ''; | |||
| $pile_item[$pile_index] = 0; | |||
| echo 'Chargement des données'.PHP_EOL; | |||
| $counter = 0; | |||
| $shipments = json_decode(file_get_contents("../data/json/BMO/10_NOMCMP.json"), true); | |||
| $nb_shipments = count($shipments); | |||
| foreach($shipments as $element) | |||
| { | |||
| // Gestion d'une barre de progression | |||
| progressBar($counter, $nb_shipments); | |||
| if (5000 == $counter++) break; | |||
| // Gestion d'une barre de progression | |||
| // A-t-on changé de collectivité ? | |||
| if ($element['collcod'] != $pile_code[$pile_index-1]) | |||
| { | |||
| // chercher la collectivité | |||
| $n = count($coll); | |||
| for($i=0;$i<$n;$i++) | |||
| if ($element['collcod'] == $coll[$i][0]) | |||
| break; | |||
| if ($i == $n) continue; | |||
| // Revenir au niveau 'plugin' de la pile | |||
| $pile_index -= 2; | |||
| // Ajout d'un lien (symbolique) | |||
| SMETI_db::$link = 1; | |||
| SMETI_db::$item = $coll[$i][1]; | |||
| SMETI_db::$req2->execute(); | |||
| // Ajout d'un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| // Conserver ce noeud dans la pile | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = $element['collcod']; | |||
| $pile_item[$pile_index] = SMETI_db::$child; | |||
| // Rajouter un élément vide dans la pile | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = ''; | |||
| $pile_item[$pile_index] = 0; | |||
| } | |||
| // A-t-on changé de Catégorie de famille ? | |||
| if ($element['mpcacod'] != $pile_code[$pile_index]) | |||
| { | |||
| // Dépiler | |||
| $pile_index -= 1; | |||
| // Rajouter un item | |||
| SMETI_db::$code = 'MPCA'.$pile_code[$pile_index].$element['mpcacod']; | |||
| SMETI_db::$libelle = $element['mpnclib']; | |||
| SMETI_db::$req1->execute(); | |||
| // Rajouter un lien | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| // Rajouter un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| // Empiler | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = $element['mpcacod']; | |||
| $pile_item[$pile_index] = SMETI_db::$child; | |||
| } | |||
| if ($element['mpnccod'] == "") continue; | |||
| // Rajouter la famille | |||
| // Rajouter un item | |||
| SMETI_db::$code = $element['mpnccod']; | |||
| SMETI_db::$libelle = $element['mpnclib']; | |||
| SMETI_db::$req1->execute(); | |||
| // Rajouter un lien | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| // Rajouter un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| } | |||
| // Enlever la barre de progression | |||
| clearLine(); | |||
| // Enlever la barre de progression | |||
| echo 'OK'.PHP_EOL; | |||
| ?> | |||
| @ -0,0 +1,107 @@ | |||
| <?php | |||
| require_once('smeti_db.inc.php'); | |||
| SMETI_db::init(); | |||
| echo 'Chargement collectivités '; | |||
| $sql = SMETI_db::$pdo->prepare("SELECT code, item, libelle FROM v_items WHERE plugin = ( SELECT id FROM plugins WHERE libelle = 'Collectivités' )"); | |||
| $sql->execute(); | |||
| $coll = $sql->fetchAll(PDO::FETCH_NUM); | |||
| echo 'OK'.PHP_EOL; | |||
| $libelle = 'Programmes'; | |||
| echo 'VACUUM '; | |||
| SMETI_db::removePlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout du plugin '$libelle' "; | |||
| SMETI_db::addPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Plugin courant : '$libelle' "; | |||
| SMETI_db::setCurPlugin($libelle); | |||
| echo 'OK'.PHP_EOL; | |||
| echo "Ajout d'une racine: '$libelle' "; | |||
| // Ajouter un item | |||
| SMETI_db::$libelle = $libelle; | |||
| SMETI_db::$code = 'PROG'; | |||
| SMETI_db::$req1->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Ajouter un lien sur cet item | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| // Positionner ce lien comme parent | |||
| SMETI_db::$parent = SMETI_db::$item; | |||
| echo 'OK'.PHP_EOL; | |||
| $pile_index = 0; | |||
| $pile_code[$pile_index] = SMETI_db::$code; | |||
| $pile_item[$pile_index] = SMETI_db::$item; | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = ''; | |||
| $pile_item[$pile_index] = 0; | |||
| echo 'Chargement des données'.PHP_EOL; | |||
| $counter = 0; | |||
| $shipments = json_decode(file_get_contents("../data/json/BMO/07_PROGRAMMES.json"), true); | |||
| $nb_shipments = count($shipments); | |||
| foreach($shipments as $element) | |||
| { | |||
| // Gestion d'une barre de progression | |||
| progressBar($counter, $nb_shipments); | |||
| if (5000 == $counter++) break; | |||
| // Gestion d'une barre de progression | |||
| // A-t-on changé de collectivité ? | |||
| if ($element['collcod'] != $pile_code[$pile_index]) | |||
| { | |||
| // chercher la collectivité | |||
| $n = count($coll); | |||
| for($i=0;$i<$n;$i++) | |||
| if ($element['collcod'] == $coll[$i][0]) | |||
| break; | |||
| if ($i == $n) continue; | |||
| // Revenir au niveau 'plugin' de la pile | |||
| $pile_index -= 1; | |||
| // Ajout d'un lien (symbolique) | |||
| SMETI_db::$link = 1; | |||
| SMETI_db::$item = $coll[$i][1]; | |||
| SMETI_db::$req2->execute(); | |||
| // Ajout d'un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| // Conserver ce noeud dans la pile | |||
| $pile_index += 1; | |||
| $pile_code[$pile_index] = $element['collcod']; | |||
| $pile_item[$pile_index] = SMETI_db::$child; | |||
| } | |||
| // Rajouter le programme | |||
| SMETI_db::$code = $element['prognum']; | |||
| SMETI_db::$libelle = $element['proglib']; | |||
| SMETI_db::$req1->execute(); | |||
| // Rajouter un lien | |||
| SMETI_db::$item = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$link = 0; | |||
| SMETI_db::$req2->execute(); | |||
| // Rajouter un noeud | |||
| SMETI_db::$child = SMETI_db::$pdo->lastInsertId(); | |||
| SMETI_db::$parent = $pile_item[$pile_index]; | |||
| SMETI_db::$req3->execute(); | |||
| } | |||
| // Enlever la barre de progression | |||
| clearLine(); | |||
| // Enlever la barre de progression | |||
| echo 'OK'.PHP_EOL; | |||
| ?> | |||
| @ -0,0 +1,6 @@ | |||
| rm -f ../data/$1 | |||
| sqlite3 ../data/$1 < ../data/SQL/init.sql | |||
| for script in import_??_*.php | |||
| do | |||
| php $script ../data/$1 | |||
| done | |||
| @ -0,0 +1,110 @@ | |||
| <?php | |||
| function clearLine() | |||
| { | |||
| echo "\033[2K\r"; | |||
| } | |||
| function replaceOut($str) | |||
| { | |||
| $numNewLines = substr_count($str, "\n"); | |||
| echo chr(27) . "[0G"; // Set cursor to first column | |||
| echo $str; | |||
| echo chr(27) . "[" . $numNewLines ."A"; // Set cursor up x lines | |||
| } | |||
| function progressBar($n, $m) | |||
| { | |||
| static $maxsize = 80; | |||
| static $linesize = 0; | |||
| static $even = 0; | |||
| if (0 == ($linesize % $maxsize)) | |||
| { | |||
| $even = 1 - $even; | |||
| $linesize = 0; | |||
| echo chr(27) . "[0G"; | |||
| printf('[ %010d / %010d ] ', $n, $m); | |||
| } | |||
| $linesize += 1; | |||
| if ($even == 1) echo '.'; | |||
| else echo 'X'; | |||
| } | |||
| class SMETI_db | |||
| { | |||
| static $plugin = 0; | |||
| static $libelle = ''; | |||
| static $item = 0; | |||
| static $code = ''; | |||
| static $link = 0; | |||
| static $child = 0; | |||
| static $parent = 0; | |||
| static $rank = 0; | |||
| static $pdo; | |||
| static $req0; | |||
| static $req1; | |||
| static $req2; | |||
| static $req3; | |||
| static function init($pdo_cn_string = 'sqlite:../data/base.sqlite') | |||
| { | |||
| try{ | |||
| self::$pdo = new PDO($pdo_cn_string); | |||
| self::$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); | |||
| self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // ERRMODE_WARNING | ERRMODE_EXCEPTION | ERRMODE_SILENT | |||
| } catch(Exception $e) { | |||
| echo "Impossible d'accéder à la base de données SQLite : ".$e->getMessage(); | |||
| die(); | |||
| } | |||
| self::$req0 = self::$pdo->prepare('INSERT INTO plugins(libelle) VALUES(:libelle)'); | |||
| self::$req0->bindParam('libelle', self::$libelle, PDO::PARAM_STR); | |||
| self::$req1 = self::$pdo->prepare('INSERT INTO items(plugin, code, libelle) VALUES(:plugin, :code, :libelle)'); | |||
| self::$req1->bindParam('plugin', self::$plugin, PDO::PARAM_INT); | |||
| self::$req1->bindParam('code', self::$code, PDO::PARAM_STR); | |||
| self::$req1->bindParam('libelle', self::$libelle, PDO::PARAM_STR); | |||
| self::$req2 = self::$pdo->prepare('INSERT INTO links(link, item) VALUES(:link, :item)'); | |||
| self::$req2->bindParam('link', self::$link, PDO::PARAM_INT); | |||
| self::$req2->bindParam('item', self::$item, PDO::PARAM_INT); | |||
| self::$req3 = self::$pdo->prepare('INSERT INTO nodes(child, parent, rank) VALUES(:child, :parent, :rank)'); | |||
| self::$req3->bindParam('child', self::$child, PDO::PARAM_INT); | |||
| self::$req3->bindParam('parent', self::$parent, PDO::PARAM_INT); | |||
| self::$req3->bindParam('rank', self::$rank, PDO::PARAM_INT); | |||
| } | |||
| static function removePlugin($plugin_name) | |||
| { | |||
| $select_clause="SELECT id FROM plugins WHERE libelle = '$plugin_name'"; | |||
| // Parce que je n'ai pas réussi à faire correctement marcher le DELETE CASCADE ! | |||
| self::$pdo->exec("DELETE FROM nodes WHERE parent IN (SELECT DISTINCT id FROM items WHERE plugin IN ( $select_clause ))"); | |||
| self::$pdo->exec("DELETE FROM nodes WHERE child IN (SELECT DISTINCT id FROM items WHERE plugin IN ( $select_clause ))"); | |||
| self::$pdo->exec("DELETE FROM links WHERE item IN (SELECT DISTINCT id FROM items WHERE plugin IN ( $select_clause ))"); | |||
| self::$pdo->exec("DELETE FROM links WHERE link = 1 AND id IN ( SELECT id FROM v_items_tree WHERE parent IS NULL)"); | |||
| self::$pdo->exec("DELETE FROM items WHERE plugin IN ( $select_clause)"); | |||
| self::$pdo->exec("DELETE FROM plugins WHERE libelle = '$plugin_name' "); | |||
| // Parce que je n'ai pas réussi à faire correctement marcher le DELETE CASCADE ! | |||
| self::$pdo->exec('VACUUM'); | |||
| } | |||
| static function addPlugin($plugin_name) | |||
| { | |||
| self::$libelle = $plugin_name; | |||
| self::$req0->execute(); | |||
| self::$plugin = self::$pdo->lastInsertId(); | |||
| } | |||
| static function setCurPlugin($plugin_name) | |||
| { | |||
| $sql = self::$pdo->prepare("SELECT id FROM plugins WHERE libelle = '$plugin_name'"); | |||
| $sql->execute(); | |||
| $row = $sql->fetch(PDO::FETCH_NUM); | |||
| self::$plugin = $row[0]; | |||
| } | |||
| } | |||
| ?> | |||