Ajouter 2 champs d'un ouvel objet éditorial au critère {vu}

Salut,

je souhaite ajouter deux champs d’un nouvel objet éditorial à la liste des champs scrutés pour déterminer le statut « vu ».

J’ai essayé d’ajouter $GLOBALS['medias_liste_champs'][] = 'resume'; comme indiqué ici mais j’imagine qu’il faut déclarer ce nouvel objet quelque part avant ça.

Et si j’ai 2 champs, j’ajoute simplement sur 2 lignes ?

$GLOBALS['medias_liste_champs'][] = 'resume';
$GLOBALS['medias_liste_champs'][] = 'critiques';

Merci

Je me réponds à moi-même après diverses tentatives : il faut préciser la table (spip_films dans mon cas) :

$GLOBALS['medias_liste_champs']['spip_films'] = 'resume';

Par contre, pour l’ajout du 2e champ, il ne faut pas préciser la table (sinon, seul le dernier champ est pris en compte), donc ça donne :

$GLOBALS['medias_liste_champs']['spip_films'] = 'resume';
$GLOBALS['medias_liste_champs'][] = 'critiques';

Je ne sais pas comment ça se passe pour la mise à jour des document déjà ajoutés dans ces champs, la seule façon que j’ai trouvé est de passer par la page modifier le film, d’enregistrer puis de recalculer la page dans le public.

Hello,

La fonction qui utilise cette globale attend une simple liste des champs, il ne faut pas préciser les tables, c’était bon au début.
Cf. marquer_doublons_docs :

// Récupérer chaque champ impactant qui existe dans la table de l'objet et qui nous manque
	foreach ($GLOBALS['medias_liste_champs'] as $champ) {
		if (isset($desc['field'][$champ]) and !isset($champs[$champ])) {
			$absents[] = $champ;
		}
	}

j’imagine qu’il faut déclarer ce nouvel objet quelque part avant ça

Oui le problème viendrait plutôt de là à priori, il faut que l’objet et ses champs soient proprement déclarés avec declarer_tables_objets_sql

(Mais pourquoi diable ce truc est encore dans une globale, et pas un pipeline bien propre…)

Hello,

merci pour ton retour.

La table spip_films est bien déclarée via declarer_tables_objets_sql (le plugin est créé avec la Fabrique, c’est automatique visiblement) : base/films.php · master · jeanmarie / films · GitLab

Est-ce qu’il y a autre chose à déclarer ailleurs ?