Sur la page d'une offre, afficher dans le chemin en haut les contenus où on l'a placé, en mettant de côté quand c'est aussi un objet offre, pour dire que là c'est lié

v3
RastaPopoulos 2 years ago committed by Gitea
parent ed5e823e99
commit e9b79c0b6f

@ -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 les 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
*/

@ -81,7 +81,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// N
'nb_abonnements' => 'Nb. abo.',
// P
'liens_offres_label' => 'Liée aux offres : ',
'liens_parents_label' => 'Dans les contenus : ',
// R
'retirer_lien_abonnementsoffre' => 'Retirer cette offre dabonnement',
'retirer_tous_liens_abonnementsoffres' => 'Retirer toutes les offres dabonnement',

@ -40,6 +40,7 @@
<pipeline nom="affiche_gauche" inclure="abonnements_pipelines.php" />
<pipeline nom="affiche_milieu" inclure="abonnements_pipelines.php" />
<pipeline nom="affiche_enfants" inclure="abonnements_pipelines.php" />
<pipeline nom="affiche_hierarchie" inclure="abonnements_pipelines.php" />
<!-- Pipelines ajoutés par ce plugin -->
<pipeline nom="abonnement_initialisation_dates" action="" />
<pipeline nom="header_prive" inclure="abonnements_pipelines.php" />

Loading…
Cancel
Save