@ -230,7 +230,7 @@ function abonnements_affiche_gauche($flux) {
}
/*
* Ajouter la boite des abonnements sur la fiche auteur et les offres sur les objets configurés
* Ajouter la boite des abonnements sur la fiche auteur
*/
function abonnements_affiche_milieu($flux) {
$e = trouver_objet_exec($flux['args']['exec']);
@ -254,7 +254,7 @@ function abonnements_affiche_milieu($flux) {
}
/*
* Ajouter la boite des abonnements sur la fiche auteur et l es offres sur les objets configurés
* Ajouter les offres sur les objets configurés
*/
function abonnements_affiche_enfants($flux) {
$e = trouver_objet_exec($flux['args']['exec']);
@ -263,14 +263,13 @@ function abonnements_affiche_enfants($flux) {
if (
is_array($e)
and !$e['edition']
and isset($flux['args'][$e['id_table_objet']])
and in_array($e['table_objet_sql'], lire_config('abonnements/objets', array()))
and $texte = recuperer_fond(
'prive/objets/editer/liens',
array(
'table_source' => 'abonnements_offres',
'objet' => $e['type'],
'id_objet' => $flux['args'][$e[ 'id_table_ objet']]
'id_objet' => $flux['args']['id_objet']
)
)
) {
@ -284,6 +283,57 @@ function abonnements_affiche_enfants($flux) {
return $flux;
}
/**
* Afficher les contenus dans lesquels sont rangés les offres
*
* @param array $flux
* @return array
*/
function abonnements_affiche_hierarchie($flux) {
include_spip('inc/config');
// Sur la page d'une offre
if (
$flux['args']['objet'] == 'abonnements_offre'
and $objets = lire_config('abonnements/objets')
) {
include_spip('action/editer_liens');
$objets = array_map('objet_type', $objets);
// On cherche si cette offre à des liens
if ($liens = objet_trouver_liens(
array('abonnements_offre' => $flux['args']['id_objet']),
array('*' => '*')
)) {
$liens_parents = array();
$liens_offres = array();
foreach ($liens as $lien) {
// Seulement si ce lien est actuellement prévu dans la config
if (in_array($lien['objet'], $objets)) {
// Si c'est une liaison entre deux offres
if ($lien['objet'] == 'abonnements_offre') {
$liens_offres[] = "[->{$lien['objet']}{$lien['id_objet']}]";
}
else {
$liens_parents[] = "[->{$lien['objet']}{$lien['id_objet']}]";
}
}
}
if ($liens_parents) {
$liens_parents = PtoBR(propre(_T('abonnementsoffre:liens_parents_label') . join(', ', $liens_parents)));
$flux['data'] .= '< div class = "parents_offres" > '.$liens_parents.'< / div > ';
}
if ($liens_offres) {
$liens_offres = PtoBR(propre(_T('abonnementsoffre:liens_offres_label') . join(', ', $liens_offres)));
$flux['data'] .= '< div class = "liens_offres" > '.$liens_offres.'< / div > ';
}
}
}
return $flux;
}
/*
* Ajouter une feuille de style privée
*/