Browse Source

chercher une saisie, cela revient à lister une saisie unique... on déplace la fonction

pull/94/head
Maïeul 2 years ago
parent
commit
6be0e1c478
  1. 49
      inc/saisies.php
  2. 51
      inc/saisies_lister.php

49
inc/saisies.php

@ -73,55 +73,6 @@ function saisies_chercher_formulaire($form, $args, $je_suis_poste=false) {
return $saisies;
}
/**
* Cherche une saisie par son id, son nom ou son chemin et renvoie soit la saisie, soit son chemin
*
* @param array $saisies Un tableau décrivant les saisies
* @param unknown_type $id_ou_nom_ou_chemin L'identifiant ou le nom de la saisie à chercher ou le chemin sous forme d'une liste de clés
* @param bool $retourner_chemin Indique si on retourne non pas la saisie mais son chemin
* @return array Retourne soit la saisie, soit son chemin, soit null
*/
function saisies_chercher($saisies, $id_ou_nom_ou_chemin, $retourner_chemin = false) {
if (is_array($saisies) and $id_ou_nom_ou_chemin) {
if (is_string($id_ou_nom_ou_chemin)) {
$nom = $id_ou_nom_ou_chemin;
// identifiant ? premier caractere @
$id = ($nom[0] == '@');
foreach ($saisies as $cle => $saisie) {
$chemin = array($cle);
// notre saisie est la bonne ?
if ($nom == ($id ? $saisie['identifiant'] : $saisie['options']['nom'])) {
return $retourner_chemin ? $chemin : $saisie;
// sinon a telle des enfants ? et si c'est le cas, cherchons dedans
} elseif (isset($saisie['saisies']) and is_array($saisie['saisies']) and $saisie['saisies']
and ($retour = saisies_chercher($saisie['saisies'], $nom, $retourner_chemin))) {
return $retourner_chemin ? array_merge($chemin, array('saisies'), $retour) : $retour;
}
}
}
elseif (is_array($id_ou_nom_ou_chemin)) {
$chemin = $id_ou_nom_ou_chemin;
$saisie = $saisies;
// On vérifie l'existence quand même
foreach ($chemin as $cle) {
if (isset($saisie[$cle])) {
$saisie = $saisie[$cle];
} else {
return null;
}
}
// Si c'est une vraie saisie
if ($saisie['saisie'] and $saisie['options']['nom']) {
return $retourner_chemin ? $chemin : $saisie;
}
}
}
return null;
}
/**
* Génère un nom unique pour un champ d'un formulaire donné

51
inc/saisies_lister.php

@ -447,6 +447,57 @@ function saisies_saisie_est_tabulaire($saisie) {
);
}
/**
* Cherche une saisie par son id, son nom ou son chemin et renvoie soit la saisie, soit son chemin
*
* @param array $saisies Un tableau décrivant les saisies
* @param unknown_type $id_ou_nom_ou_chemin L'identifiant ou le nom de la saisie à chercher ou le chemin sous forme d'une liste de clés
* @param bool $retourner_chemin Indique si on retourne non pas la saisie mais son chemin
* @return array Retourne soit la saisie, soit son chemin, soit null
*/
function saisies_chercher($saisies, $id_ou_nom_ou_chemin, $retourner_chemin = false) {
if (is_array($saisies) and $id_ou_nom_ou_chemin) {
if (is_string($id_ou_nom_ou_chemin)) {
$nom = $id_ou_nom_ou_chemin;
// identifiant ? premier caractere @
$id = ($nom[0] == '@');
foreach ($saisies as $cle => $saisie) {
$chemin = array($cle);
// notre saisie est la bonne ?
if ($nom == ($id ? $saisie['identifiant'] : $saisie['options']['nom'])) {
return $retourner_chemin ? $chemin : $saisie;
// sinon a telle des enfants ? et si c'est le cas, cherchons dedans
} elseif (isset($saisie['saisies']) and is_array($saisie['saisies']) and $saisie['saisies']
and ($retour = saisies_chercher($saisie['saisies'], $nom, $retourner_chemin))) {
return $retourner_chemin ? array_merge($chemin, array('saisies'), $retour) : $retour;
}
}
}
elseif (is_array($id_ou_nom_ou_chemin)) {
$chemin = $id_ou_nom_ou_chemin;
$saisie = $saisies;
// On vérifie l'existence quand même
foreach ($chemin as $cle) {
if (isset($saisie[$cle])) {
$saisie = $saisie[$cle];
} else {
return null;
}
}
// Si c'est une vraie saisie
if ($saisie['saisie'] and $saisie['options']['nom']) {
return $retourner_chemin ? $chemin : $saisie;
}
}
}
return null;
}
/**
* Indique si une saisie à sa valeur gelée
* - soit par option disabled avec envoi cachée

Loading…
Cancel
Save