Dépôt officiel du core SPIP * Copie possible par svn sur svn://trac.rezo.net/spip * Les svn:externals sont présent dans https://git.spip.net/SPIP/[nom du plugin dist]
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.3 KiB

<?php
/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
* Copyright (c) 2001-2019 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
* Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
\***************************************************************************/
/**
* Gestion des puces d'action rapide
*
* @package SPIP\Core\Puce_statut
**/
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/presentation');
/**
* Gestion de l'affichage ajax des puces d'action rapide
*
* Récupère l'identifiant id et le type d'objet dans les données postées
* et appelle la fonction de traitement de cet exec.
*
* @uses exec_puce_statut_args()
* @return string Code HTML
**/
function exec_puce_statut_dist() {
exec_puce_statut_args(_request('id'), _request('type'));
}
/**
* Traitement de l'affichage ajax des puces d'action rapide
*
* Appelle la fonction de traitement des puces statuts
* après avoir retrouvé le statut en cours de l'objet
* et son parent (une rubrique)
9 years ago
*
* @uses inc_puce_statut_dist()
* @uses ajax_retour()
*
* @param int $id
* Identifiant de l'objet
* @param string $type
* Type d'objet
* @return string Code HTML
**/
function exec_puce_statut_args($id, $type) {
$id = intval($id);
Unification de la gestion et affichage des puces de statut, par declaration dans declarer_tables_objets_sql : Declaration des puces utilisees : statut_images => array( 'pucepardefaut','statut1'=>'pucestatut1','statut2'=>'pucestatut2',...) Declaration des titres associes : statut_titres => array( 'titrepardefaut','statut1'=>'titretatut1','statut2'=>'titrestatut2',...) Declaration des statuts instituables (puce de changement rapide) : statut_textes_instituer => array('statut1'=>'texte instituer statut1',...) En l'absence de declaration des images et/ou des titres de puce de statut, on utilise les puce bien connues pour les status connus prepa/prop/publie/refuse/poubelle La declaration des status instituables permet par ailleurs de beneficier automatiquement des puces de changement rapide, proposees parmi les choix listes. Le filtre puce_statut permet d'afficher une puce : [(#STATUT|puce_statut{article})] affiche une puce statique simple [(#STATUT|puce_statut{article,#ID_ARTICLE,#ID_RUBRIQUE})] affiche une puce avec changement rapide, lorsque l'objet a été déclaré, une puce statique simple sinon Les fonctions puce_statut_{$type}_dist ne sont plus necessaires sauf exception, le traitement par defaut etant generique. Lorsque la fonction existe, elle est neanmoins appelee en priorite et se substitue au traitement generique. Lorsqu'aucune puce n'est connue pour un objet donné, on affiche l'icone de son type, en 16px. Le filtre |puce_changement_statut est obsolete et devrait disparaitre Le filtre |puce_statut est implémenté par la fonction filtre_puce_statut_dist La fonction puce_statut() homonyme du filtre est encore utilisée dans les menus instituer (boite info). Il reste a unifier celui là et le rendre generique sur la base de la déclaration pour faire disparaitre cette fonction.
12 years ago
if ($table_objet_sql = table_objet_sql($type)
and $d = lister_tables_objets_sql($table_objet_sql)
and isset($d['statut_textes_instituer'])
and $d['statut_textes_instituer']
) {
$prim = id_table_objet($type);
if (isset($d['field']['id_rubrique'])) {
$select = "id_rubrique,statut";
} else {
$select = "0 as id_rubrique,statut";
}
$r = sql_fetsel($select, $table_objet_sql, "$prim=$id");
$statut = $r['statut'];
$id_rubrique = $r['id_rubrique'];
} else {
$id_rubrique = $id;
$statut = 'prop'; // arbitraire
}
$puce_statut = charger_fonction('puce_statut', 'inc');
ajax_retour($puce_statut($id, $statut, $id_rubrique, $type, true));
}