Skip to content
Extraits de code Groupes Projets
Valider f65708e6 rédigé par marcimat's avatar marcimat Validation de Gitea
Parcourir les fichiers

Ticket #4519 sur les nomages de listes d’inclusions et d’exclusions.

On utilise `include list` et `exclude list` en anglais,
et `liste d’inclusion` et `liste d’exclusion` en français.
parent 158feda0
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -96,9 +96,9 @@ function article_modifier($id_article, $set = null) {
include_spip('inc/modifier');
include_spip('inc/filtres');
$c = collecter_requests(
// white list
// include list
objet_info('article', 'champs_editables'),
// black list
// exclude list
['date', 'statut', 'id_parent'],
// donnees eventuellement fournies
$set
......
......@@ -153,9 +153,9 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
include_spip('inc/modifier');
include_spip('inc/filtres');
$c = collecter_requests(
// white list
// include list
objet_info('auteur', 'champs_editables'),
// black list
// exclude list
$force_update ? [] : ['webmestre', 'pass', 'login'],
// donnees eventuellement fournies
$set
......@@ -180,7 +180,7 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
if (!$force_update) {
// Modification de statut, changement de rubrique ?
$c = collecter_requests(
// white list
// include list
[
'statut',
'new_login',
......@@ -191,7 +191,7 @@ function auteur_modifier($id_auteur, $set = null, $force_update = false) {
'restreintes',
'id_parent'
],
// black list
// exclude list
[],
// donnees eventuellement fournies
$set
......
......@@ -103,18 +103,18 @@ function objet_modifier($objet, $id, $set = null) {
$champ_date = 'date';
}
$white = array_keys($desc['field']);
$include_list = array_keys($desc['field']);
// on ne traite pas la cle primaire par defaut, notamment car
// sur une creation, id_x vaut 'oui', et serait enregistre en id_x=0 dans la base
$white = array_diff($white, [$desc['key']['PRIMARY KEY']]);
$include_list = array_diff($include_list, [$desc['key']['PRIMARY KEY']]);
if (isset($desc['champs_editables']) and is_array($desc['champs_editables'])) {
$white = $desc['champs_editables'];
$include_list = $desc['champs_editables'];
}
$c = collecter_requests(
// white list
$white,
// black list
// include list
$include_list,
// exclude list
[$champ_date, 'statut', 'id_parent', 'id_secteur'],
// donnees eventuellement fournies
$set
......@@ -149,7 +149,7 @@ function objet_modifier($objet, $id, $set = null) {
// Modification de statut, changement de rubrique ?
// FIXME: Ici lorsqu'un $set est passé, la fonction collecter_requests() retourne tout
// le tableau $set hors black liste, mais du coup on a possiblement des champs en trop.
// le tableau $set hors liste d’exclusion, mais du coup on a possiblement des champs en trop.
$c = collecter_requests([$champ_date, 'statut', 'id_parent'], [], $set);
$err = objet_instituer($objet, $id, $c);
......
......@@ -136,9 +136,9 @@ function rubrique_modifier($id_rubrique, $set = null) {
include_spip('inc/modifier');
$c = collecter_requests(
// white list
// include list
objet_info('rubrique', 'champs_editables'),
// black list
// exclude list
['id_parent', 'confirme_deplace'],
// donnees eventuellement fournies
$set
......
......@@ -18,16 +18,16 @@ if (!defined('_ECRIRE_INC_VERSION')) {
*
* @uses find_all_in_path()
*
* @param array $whitelist
* Liste blanche décrivant les objets à lister
* @param array $blacklist
* Liste noire décrivant les objets à ne pas lister
* @param array $includelist
* Liste d’inclusion décrivant les objets à lister
* @param array $excludelist
* Liste d’exclusion décrivant les objets à ne pas lister
* @return array
* Retourne un tableau de deux entrées listant les objets à lister et les objets sélectionnables
* - selectionner : tableau des objets que l'on pourra sélectionner (avec un +)
* - afficher : tableau des objets à afficher (mais pas forcément sélectionnables)
*/
function selecteur_lister_objets($whitelist = [], $blacklist = []) {
function selecteur_lister_objets($includelist = [], $excludelist = []) {
static $liste_selecteurs, $liste_parents;
if (!$liste_selecteurs) {
......@@ -39,15 +39,15 @@ function selecteur_lister_objets($whitelist = [], $blacklist = []) {
}
// S'il y a une whitelist on ne garde que ce qui est dedans
if (!empty($whitelist)) {
$whitelist = array_map('table_objet', $whitelist);
$objets_selectionner = array_intersect($objets_selectionner, $whitelist);
if (!empty($includelist)) {
$includelist = array_map('table_objet', $includelist);
$objets_selectionner = array_intersect($objets_selectionner, $includelist);
}
// On supprime ce qui est dans la blacklist
$blacklist = array_map('table_objet', $blacklist);
// On supprime ce qui est dans la liste d’exclusion
$excludelist = array_map('table_objet', $excludelist);
// On enlève toujours la racine
$blacklist[] = 'racine';
$objets_selectionner = array_diff($objets_selectionner, $blacklist);
$excludelist[] = 'racine';
$objets_selectionner = array_diff($objets_selectionner, $excludelist);
// Ensuite on cherche ce qu'on doit afficher : au moins ceux qu'on peut sélectionner
$objets_afficher = $objets_selectionner;
......
......@@ -26,23 +26,23 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Fonction générique pour la collecte des posts
* dans action/editer_xxx
*
* @param array $white_list
* @param array $include_list
* Les champs à récupérer
* @param array $black_list
* @param array $exclude_list
* Les champs à ignorer
* @param array|null $set
* array : Tableau des champs postés
* null : Les champs sont obtenus par des _request() sur les noms de la white liste
* null : Les champs sont obtenus par des _request() sur les noms de la liste d’inclusion
* @param bool $tous
* true : Recupère tous les champs de white_list meme ceux n'ayant pas ete postés
* @return array
* Tableau des champs et valeurs collectées
*/
function collecter_requests($white_list, $black_list = [], $set = null, $tous = false) {
function collecter_requests($include_list, $exclude_list = [], $set = null, $tous = false) {
$c = $set;
if (!$c) {
$c = [];
foreach ($white_list as $champ) {
foreach ($include_list as $champ) {
// on ne collecte que les champs reellement envoyes par defaut.
// le cas d'un envoi de valeur NULL peut du coup poser probleme.
$val = _request($champ);
......@@ -56,7 +56,7 @@ function collecter_requests($white_list, $black_list = [], $set = null, $tous =
$c['lang'] = $l;
}
}
foreach ($black_list as $champ) {
foreach ($exclude_list as $champ) {
unset($c[$champ]);
}
......
......@@ -15,7 +15,7 @@
*
* Une surcharge de ce fichier pourrait permettre :
*
* - de limiter l'utilisation des filtres à l'aide d'une liste blanche ou liste noire,
* - de limiter l'utilisation des filtres à l'aide d'une liste d’inclusion ou d’exclusion,
* - de rendre inactif le PHP écrit dans les squelettes
* - de refuser l'inclusion de fichier PHP dans les squelettes
*
......
#SET{img_unpick, #CHEMIN_IMAGE{supprimer-12.png}}
[(#REM)
@deprecated 4.1 ENV 'whitelist'. Use 'includelist' instead
@deprecated 4.1 ENV 'blacklist'. Use 'excludelist' instead
]#SET{img_unpick, #CHEMIN_IMAGE{supprimer-12.png}}
[(#SET{label_supprimer, <:lien_supprimer:>})]
<script type='text/javascript'>var identifiant_selecteur = 'selecteur_#ENV{name}'; var img_unpick='#GET{img_unpick}'; var selecteur_label_supprimer='#GET{label_supprimer}';
jQuery.getScript('[(#CHEMIN{formulaires/selecteur/jquery.picker.js}|timestamp)]');
......@@ -18,7 +23,7 @@ afficher la selection dans un ul class item_picked
]
[(#REM) On commence par chercher la liste des objets disposant d'un sélecteur ]
[(#SET{objets, [(#ENV{whitelist,#ARRAY}|selecteur_lister_objets{#ENV{blacklist,#ARRAY}})]})]
[(#SET{objets, [(#ENV{includelist,#ENV{whitelist,#ARRAY}}|selecteur_lister_objets{#ENV{excludelist,#ENV{blacklist,#ARRAY}}})]})]
[(#REM) S'il n'y a qu'un type d'objet affiché et sélectionnable, on ajoute une classe (on fait -1 car il y a toujours la racine dans "afficher" ]
<div id="selecteur_#ENV{name}" class="selecteur[ (#GET{objets/afficher}|count|moins{1}|=={1}|et{#GET{objets/selectionner}|count|=={1}})selecteur_type_unique]">
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter