Browse Source

tout ce qui est gestion des identifiants dans un fichier à part

pull/94/head
Maïeul 2 years ago
parent
commit
6aa69d2ac2
  1. 68
      inc/saisies.php
  2. 79
      inc/saisies_identifiants.php

68
inc/saisies.php

@ -20,6 +20,9 @@ include_spip('inc/saisies_lister_disponibles');
// Différentes méthodes pour manipuler une liste de saisies
include_spip('inc/saisies_manipuler');
// Les outils pour identifier les saisies de manière stables
include_spip('inc/saisies_identifiants');
// Les outils pour vérifier les saisies
include_spip('inc/saisies_verifier');
@ -137,71 +140,6 @@ function saisies_generer_nom($formulaire, $type_saisie) {
return $type_saisie.'_'.$compteur;
}
/**
* Crée un identifiant Unique
* pour toutes les saisies donnees qui n'en ont pas
*
* @param Array $saisies Tableau de saisies
* @param Bool $regenerer Régénère un nouvel identifiant pour toutes les saisies ?
* @return Array Tableau de saisies complété des identifiants
*/
function saisies_identifier($saisies, $regenerer = false) {
if (!is_array($saisies)) {
return array();
}
foreach ($saisies as $k => $saisie) {
if ($k !== 'options') {
$saisies[$k] = saisie_identifier($saisie, $regenerer);
}
}
return $saisies;
}
/**
* Crée un identifiant Unique
* pour la saisie donnee si elle n'en a pas
* (et pour ses sous saisies éventuels)
*
* @param Array $saisie Tableau d'une saisie
* @param Bool $regenerer Régénère un nouvel identifiant pour la saisie ?
* @return Array Tableau de la saisie complété de l'identifiant
**/
function saisie_identifier($saisie, $regenerer = false) {
if (!isset($saisie['identifiant']) or !$saisie['identifiant']) {
$saisie['identifiant'] = uniqid('@');
} elseif ($regenerer) {
$saisie['identifiant'] = uniqid('@');
}
if (isset($saisie['saisies']) and is_array($saisie['saisies'])) {
$saisie['saisies'] = saisies_identifier($saisie['saisies'], $regenerer);
}
return $saisie;
}
/**
* Supprimer récursivement les identifiants d'un tableau de saisie
* Seul usage probable : pour les test uniaires
* pour la saisie donnee si elle n'en a pas
* (et pour ses sous saisies éventuels)
*
* @param Array $saisie Tableau d'une saisie
* @return Array Tableau de la saisie sans les identifiant
**/
function saisies_supprimer_identifiants($saisies) {
unset($saisies['identifiant']);
foreach ($saisies as $cle => $valeur) {
if (is_array($valeur)) {
$saisies[$cle] = saisies_supprimer_identifiants($valeur);
}
}
return $saisies;
}
/**
* Trouve le champ datas ou datas (pour raison historique)

79
inc/saisies_identifiants.php

@ -0,0 +1,79 @@
<?php
/**
* Gestion de l'identification pérenne des saisies
*
* @package SPIP\Saisies\Identifiants
**/
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
/**
* Crée un identifiant Unique
* pour la saisie donnee si elle n'en a pas
* (et pour ses sous saisies éventuels)
*
* @param Array $saisie Tableau d'une saisie
* @param Bool $regenerer Régénère un nouvel identifiant pour la saisie ?
* @return Array Tableau de la saisie complété de l'identifiant
**/
function saisie_identifier($saisie, $regenerer = false) {
if (!isset($saisie['identifiant']) or !$saisie['identifiant']) {
$saisie['identifiant'] = uniqid('@');
} elseif ($regenerer) {
$saisie['identifiant'] = uniqid('@');
}
if (isset($saisie['saisies']) and is_array($saisie['saisies'])) {
$saisie['saisies'] = saisies_identifier($saisie['saisies'], $regenerer);
}
return $saisie;
}
/**
* Crée un identifiant Unique
* pour toutes les saisies donnees qui n'en ont pas
*
* @param Array $saisies Tableau de saisies
* @param Bool $regenerer Régénère un nouvel identifiant pour toutes les saisies ?
* @return Array Tableau de saisies complété des identifiants
*/
function saisies_identifier($saisies, $regenerer = false) {
if (!is_array($saisies)) {
return array();
}
foreach ($saisies as $k => $saisie) {
if ($k !== 'options') {
$saisies[$k] = saisie_identifier($saisie, $regenerer);
}
}
return $saisies;
}
/**
* Supprimer récursivement les identifiants d'un tableau de saisie
* Seul usage probable : pour les test uniaires
* pour la saisie donnee si elle n'en a pas
* (et pour ses sous saisies éventuels)
*
* @param Array $saisie Tableau d'une saisie
* @return Array Tableau de la saisie sans les identifiant
**/
function saisies_supprimer_identifiants($saisies) {
unset($saisies['identifiant']);
foreach ($saisies as $cle => $valeur) {
if (is_array($valeur)) {
$saisies[$cle] = saisies_supprimer_identifiants($valeur);
}
}
return $saisies;
}
Loading…
Cancel
Save