$plugin, 'noisette' => $type_noisette, 'squelette' => $squelette, 'rang' => intval($rang), 'parametres' => serialize($parametres), 'balise' => 'defaut', 'css' => '' ); // On charge l'API de N-Core. // Ce sont ces fonctions qui aiguillent ou pas vers une fonction spécifique du service. include_spip("ncore/ncore"); // On récupère les noisettes déjà affectées au squelette sous la forme d'un tableau indexé par l'identifiant // de la noisette stocké dans l'index 'id_noisette'. $noisettes = ncore_noisette_lister($plugin, $squelette, '', $stockage); // On calcule le rang max déjà utilisé. $rang_max = $noisettes ? max(array_column($noisettes, 'rang')) : 0; if (!$rang) { // Si, le rang est nul, on positionne la noisette à ajouter au rang max + 1. $description['rang'] = $rang_max + 1; } else { // Si le rang est non nul c'est qu'on insère la noisette dans la liste existante. Néanmoins, si le rang // est strictement supérieur au rang_max c'est que la nouvelle noisette est ajoutée après les noisettes // existantes, donc on ne fait rien. // Sinon, il faut décaler les noisettes de rang supérieur ou égal. if ($rang <= $rang_max) { foreach ($noisettes as $_id_noisette => $_description) { if ($_description['rang'] >= $rang) { $_description['rang'] += 1; ncore_noisette_stocker($plugin, 'modification', $_description, $stockage); } } } } // La description de la nouvelle noisette est prête à être stockée. $noisette_ajoutee = ncore_noisette_stocker($plugin,'creation', $description, $stockage); } return $noisette_ajoutee; } /** * @param $plugin * @param $identifiant * @param string $stockage * * @return bool */ function noisette_supprimer($plugin, $identifiant, $stockage = '') { // Initialisation du retour $retour = false; if (intval($identifiant)) { // Suppression d'un noisette connue par son id. $retour = ncore_noisette_destocker($plugin, $identifiant, $stockage); } elseif (is_string($identifiant) and $identifiant) { // Suppression de toutes les noisettes affectées à un squelette. $retour = ncore_noisette_destocker_squelette($plugin, $identifiant, $stockage); } return $retour; }