From 8c4b10318463c5f6c03819f1fac5c8a7069ffefb Mon Sep 17 00:00:00 2001
From: tcharlss <tcharlss@bravecassine.com>
Date: Mon, 27 Mar 2023 22:06:27 +0200
Subject: [PATCH] =?UTF-8?q?fix:=20notices=20PHP=20en=20moins=20sur=20la=20?=
 =?UTF-8?q?page=20de=20contr=C3=B4le=20des=20t=C3=A2ches=20de=20fond?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On fait un filtre pour afficher la fonction et ses arguments (crédits: 100% marcimat).

Refs: #5541
---
 prive/squelettes/contenu/job_queue.html          |  2 +-
 prive/squelettes/contenu/job_queue_fonctions.php | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/prive/squelettes/contenu/job_queue.html b/prive/squelettes/contenu/job_queue.html
index 6ba36d1357..c8bb690733 100644
--- a/prive/squelettes/contenu/job_queue.html
+++ b/prive/squelettes/contenu/job_queue.html
@@ -12,7 +12,7 @@
 				<li class="item[ (#STATUS|?{'scheduled','pending'})]">
 					<div class="date">[(#DATE|date_relative|spip_ucfirst)][ (#STATUS|non)(en cours)] [(#PRIORITE|oui)\[<:queue_priorite_tache:> : #PRIORITE\]]</div>
 					[<strong class="description">(#DESCRIPTIF|PtoBR)</strong>]
-					[<span class="small">| #FONCTION((#ARGS|unserialize|implode{','}))</span>]
+					[<span class="small">| (#FONCTION|job_queue_display_call{#ARGS})</span>]
 					[(#AUTORISER{'annuler','job',#ID_JOB}|oui)
 					<div class="actions">
 						[(#BOUTON_ACTION{<:annuler:>,#URL_ACTION_AUTEUR{annuler_job,#ID_JOB,#SELF},ajax})]
diff --git a/prive/squelettes/contenu/job_queue_fonctions.php b/prive/squelettes/contenu/job_queue_fonctions.php
index 35a457d5bd..5cda12240d 100644
--- a/prive/squelettes/contenu/job_queue_fonctions.php
+++ b/prive/squelettes/contenu/job_queue_fonctions.php
@@ -12,3 +12,19 @@ function job_queue_block_and_watch() {
 	include_spip('inc/genie');
 	genie_queue_watch_dist();
 }
+
+/**
+ * Prévisu d'un appel à une fonction avec ses arguments
+ *
+ * @param string $function
+ * @param string $args
+ * @return string
+ */
+function job_queue_display_call(string $function, string $args): string {
+	$args = unserialize($args);
+	$args = array_map(function($arg) {
+		return is_scalar($arg) ? $arg : get_debug_type($arg);
+	}, $args);
+
+	return sprintf('%s(%s)', $function, implode(', ', $args));
+}
-- 
GitLab