if (is_array($contenu)) {
foreach ($contenu as $ligne) {
if (is_array($ligne)) {
- if (array_key_exists('saisie', $ligne) and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur) and isset($ligne['options'])) {
+ if (
+ array_key_exists('saisie', $ligne)
+ and (!isset($ligne['saisies']) or !is_array($ligne['saisies']) or $avec_conteneur)
+ and isset($ligne['options'])
+ ) {
$saisies[$ligne['options']['nom']] = $ligne;
}
if (isset($ligne['saisies']) and is_array($ligne['saisies'])) {
* # saisies_lister_avec_option('sql', $saisies);.
*
*
- * @param String $option Nom de l'option cherchée
- * @param Array $saisies Liste de saisies
- * @param String $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
+ * @param string $option Nom de l'option cherchée
+ * @param array $saisies Liste de saisies
+ * @param string $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
*
* @return liste de ces saisies triees par nom ayant une option X définie
*/
function saisies_lister_avec_option($option, $saisies, $tri = 'nom') {
$saisies_option = array();
+
// tri par nom si ce n'est pas le cas
$s = array_keys($saisies);
if (is_int(array_shift($s))) {
$trier = 'saisies_lister_par_'.$tri;
$saisies = $trier($saisies);
}
+
foreach ($saisies as $nom_ou_id => $saisie) {
if (isset($saisie['options'][$option]) and $saisie['options'][$option]) {
$saisies_option[$nom_ou_id] = $saisie;
/**
* Liste les saisies ayant une definition SQL.
*
- * @param Array $saisies liste de saisies
- * @param String $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
+ * @param array $saisies liste de saisies
+ * @param string $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom', 'identifiant')
*
* @return liste de ces saisies triees par nom ayant une option sql définie
*/
return saisies_lister_avec_option('sql', $saisies, $tri);
}
+/**
+ * Liste les saisies d'un certain type.
+ *
+ * @example `$saisies_date = saisies_lister_avec_type($saisies, 'date')`
+ *
+ * @param array $saisies liste de saisies
+ * @param string $type Type de la saisie
+ * @param string $tri tri par défaut des résultats (s'ils ne sont pas deja triés) ('nom')
+ *
+ * @return liste de ces saisies triees par nom
+ */
+function saisies_lister_avec_type($saisies, $type, $tri = 'nom') {
+ $saisies_type = array();
+
+ // tri par nom si ce n'est pas le cas
+ $s = array_keys($saisies);
+ if (is_int(array_shift($s))) {
+ $trier = 'saisies_lister_par_'.$tri;
+ $saisies = $trier($saisies);
+ }
+
+ foreach ($saisies as $nom_ou_id => $saisie) {
+ if ($saisie['saisie'] == $type) {
+ $saisies_type[$nom_ou_id] = $saisie;
+ }
+ }
+
+ return $saisies_type;
+}
+
/**
* Prend la description complète du contenu d'un formulaire et retourne
* les saisies "à plat" classées par type de saisie.
function saisies_lister_valeurs_defaut($contenu) {
$contenu = saisies_lister_par_nom($contenu, false);
$defauts = array();
+
foreach ($contenu as $nom => $saisie) {
// Si le nom du champ est un tableau indexé, il faut parser !
if (preg_match('/([\w]+)((\[[\w]+\])+)/', $nom, $separe)) {
$nom = $separe[1];
- // Dans ce cas on ne récupère que le nom, la valeur par défaut du tableau devra être renseigné autre part
+ // Dans ce cas on ne récupère que le nom,
+ // la valeur par défaut du tableau devra être renseigné autre part
$defauts[$nom] = array();
- } else {
+ }
+ else {
$defauts[$nom] = isset($saisie['options']['defaut']) ? $saisie['options']['defaut'] : '';
}
}
* @param array $saisies_anciennes Un tableau décrivant des saisies
* @param array $saisies_nouvelles Un autre tableau décrivant des saisies
* @param bool $avec_conteneur Indique si on veut prendre en compte dans la comparaison
- * les conteneurs comme les fieldsets
+ * les conteneurs comme les fieldsets
*
* @return array Retourne le tableau des saisies supprimées, ajoutées et modifiées
*/
foreach ($liste as $fichier => $chemin) {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
+
// On ne garde que les saisies qui ont bien le HTML avec !
- if (file_exists("$dossier$type_saisie.html")
+ if (
+ file_exists("$dossier$type_saisie.html")
and (
is_array($saisie = saisies_charger_infos($type_saisie))
)
foreach ($liste as $fichier => $chemin) {
$type_saisie = preg_replace(',[.]yaml$,i', '', $fichier);
$dossier = str_replace($fichier, '', $chemin);
- // On ne garde que les saisies qui ont bien le HTML avec !
+
if (is_array($saisie = saisies_charger_infos($type_saisie, $saisies_repertoire))) {
$saisies[$type_saisie] = $saisie;
}
}
}
}
+
return $saisies;
}
function saisies_lister_disponibles_sql($saisies_repertoire = 'saisies') {
$saisies = array();
$saisies_disponibles = saisies_lister_disponibles($saisies_repertoire);
+
foreach ($saisies_disponibles as $type => $saisie) {
if (isset($saisie['defaut']['options']['sql']) and $saisie['defaut']['options']['sql']) {
$saisies[$type] = $saisie;
include_spip('inc/yaml');
$fichier = find_in_path("$saisies_repertoire/$type_saisie.yaml");
$saisie = yaml_decode_file($fichier);
+
if (is_array($saisie)) {
$saisie['titre'] = (isset($saisie['titre']) and $saisie['titre'])
? _T_ou_typo($saisie['titre']) : $type_saisie;
$saisie['icone'] = (isset($saisie['icone']) and $saisie['icone'])
? find_in_path($saisie['icone']) : '';
}
- } else {
+ }
+ else {
$saisie = array();
}