-
Notifications
You must be signed in to change notification settings - Fork 6
supprimer la construction array_map('array_pop', $x)
#187
Comments
J'ai utilisé cette construction à pas mal d'endroits dans plugins/seenthis et seenthis_squelettes ; seuls ceux où les éléments qu'on passe comportent plusieurs champs vont poser problème, mais je crois que par principe il faudrait les éliminer tous. |
À noter : seenthis/seenthis@0276740 aurait pu être corrigé autrement, en supprimant |
Je disais : maintenant il vaut mieux utiliser |
Le patch suivant réglerait le problème pour les deux occurrences où on passe un élément à plusieurs champs : Index: inc/seenthis_data.php
===================================================================
--- inc/seenthis_data.php (révision 418)
+++ inc/seenthis_data.php (copie de travail)
@@ -507,7 +507,7 @@
# les mentions @login vers $moi :
$mentions = sql_allfetsel('id_me', 'spip_me_auteur', 'id_auteur='.$moi, '', 'date DESC', '0,'.($debut + $max_pagination));
- $pointe = array_merge($pointe, array_map('array_pop', $mentions));
+ $pointe = array_column($mentions, 'id_me');
# les messages qui parlent d'un sujet ou url qui m'interesse $moi
if ($pointetags = liste_pointe_tags($debut, $max_pagination, $moi)) {
@@ -516,7 +516,7 @@
# les messages auxquels j'ai repondu $moi
$mentions = sql_allfetsel('DISTINCT(id_parent) as id, date', 'spip_me', "id_auteur=$moi AND id_parent>0 AND statut='publi'", '', 'date DESC', '0,'.($debut + $max_pagination));
- foreach($mentions as $m) $pointe[] = $m['id'];
+ $pointe = array_column($mentions, 'id');
# faut-il ajouter les messages ayant des URLs avec un tag opencalais que je suis ? |
Appliqué dans la branche 3.1, reste à voir si on reporte dans la branche 2.1 dans quel cas il faudra préciser que PHP >= 5.5.0 est nécessaire. |
>= 5.5.0 est nécessaire.
Il suffit peut-être de fournir array_column si la fonction est absente (dans
mes_fonctions par exemple ?)
…-- Fil
|
Vi, on pourrait pomper ce que fait bonux https://zone.spip.org/trac/spip-zone/browser/_plugins_/spip-bonux-3/lib/array_column/array_column.php?rev=89337 pour la branche 2.1 uniquement, et ajouter un necessite bonux pour la branche 3.1. |
Discussion en ce moment sur |
Dans un premier temps, il suffit d'ajouter un necessite spip_bonux (qui fourni array_column) dans la branche 3.1 du plugin seenthis, parce que je ne suis pas certain de pouvoir assurer le portage de seenthis vers SPIP 3.2 en 5 minutes (notamment au niveau du plugin inclure ajaxload et des changements apportés par la nouvelle version de jQuery). |
Maintenant que seenthis est en 3.2 on peut considérer que c'est bien fermé :) |
évieter des warnings du type ` array_pop(): Argument #1 ($array) must be passed by reference, value given` terminer le travail de seenthis/seenthis_squelettes#187
éviter des warnings du type ` array_pop(): Argument #1 ($array) must be passed by reference, value given` terminer le travail de seenthis/seenthis_squelettes#187
L'idée était d'écrire simplement "récupérer le premier élément de chaque élément du tableau", mais on dirait que ça ne fonctionne plus si le tableau comporte plusieurs éléments, ce qui provoquait une grande lenteur sur la page d'accueil (cf. seenthis/seenthis@0276740 )
The text was updated successfully, but these errors were encountered: