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.
 
 

117 lines
3.2 KiB

<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function contrib_formulaire_charger($flux) {
// Personnalisation du formulaire de choix de l'article d'accueil
if ($flux['args']['form'] == 'editer_article_accueil') {
// Choisir la liste des statuts autorisés, le filtre sur le type d'article
// et le titre du bloc
$flux['data']['_statuts'] = array('prepa', 'prop', 'publie');
$flux['data']['_where'] = "type_article=''";
$flux['data']['_titre'] = _T('contrib:article_accueil_titre');
}
return $flux;
}
function contrib_affiche_droite($flux) {
// Identification de la page et de l'objet
$exec = $flux['args']['exec'];
// Récupérer la liste des objets qui supporte une couleur
include_spip('inc/config');
$objets_config = lire_config('couleur_objet/objets', array());
include_spip('inc/svptype_type_plugin');
if (
in_array('spip_mots', $objets_config) // si configuration objets ok
and ($exec == 'type_plugin') // page d'un objet éditorial
and ($id_objet = intval($flux['args']['id_mot']))
and ($typologie = _request('typologie'))
and ($typologie == 'categorie')
and (type_plugin_lire($typologie, $id_objet, 'profondeur') == 0)
) {
$couleur = sql_getfetsel(
'couleur_objet',
'spip_couleur_objet_liens',
array(
'objet=' . sql_quote('mot'),
'id_objet=' . $id_objet
)
);
$contexte = array(
'objet' => 'mot',
'id_objet' => $id_objet,
'couleur_objet' => $couleur
);
$flux['data'] .= recuperer_fond('inclure/couleur_objet', $contexte);
}
return $flux;
}
/**
* Insertion dans le pipeline boite_infos (SPIP).
* - Fiche objet d'un plugin :
* - Rajouter un lien privé vers la rubrique associée si elle existe.
* - Enrichir le préfixe avec la couleur de la catégorie du plugin.
*
* @pipeline boite_infos
*
* @param $flux array Le contexte du pipeline
*
* @return $flux array Le contexte du pipeline modifié
*/
function contrib_boite_infos($flux) {
if (isset($flux['args']['type'])) {
// Initialisation du type d'objet concerné.
$objet = $flux['args']['type'];
if (
($objet_exec = trouver_objet_exec($objet))
and !$objet_exec['edition']
and ($objet == 'plugin')
and ($id_plugin = intval($flux['args']['id']))
) {
// Page d'un plugin.
// Ajout du bouton "voir la rubrique..."
// -- On recherche le préfixe du plugin
include_spip('inc/svp_plugin');
$prefixe = plugin_lire($id_plugin, 'prefixe');
// -- Inclure le bouton "voir la rubrique" si elle existe
$contexte = array(
'id_plugin' => $id_plugin,
'prefixe' => $prefixe,
);
if ($bouton = recuperer_fond('prive/squelettes/inclure/inc-bouton_voir_rubrique_plugin', $contexte)) {
$flux['data'] .= $bouton;
}
// Coloration du préfixe du plugin
// -- on recherche la catégorie du plugin
include_spip('inc/contrib_plugin');
$categorie = plugin_lire_categorie($prefixe, 'racine');
if ($categorie) {
// -- on ajoute au span une class décrivant la couleur de la catégorie
$cherche = "/(<p[^>]*class=(?:'|\")prefixe[^>]*>\s*)(<span>)/is";
if (preg_match($cherche, $flux['data'], $m)) {
$flux['data'] = preg_replace(
$cherche,
'$1' . "<span class=\"couleur_${categorie}\">",
$flux['data'],
1
);
}
}
}
}
return $flux;
}