Des modifs pour pouvoir lier/placer/classer des offres dans n'importe quel autre objet (par ex les rubriques). Donc configuration quels objets, puis editer_liens sur eux.

v3
RastaPopoulos 2 years ago committed by Gitea
parent 6c7000d5cb
commit ed5e823e99

@ -230,15 +230,17 @@ function abonnements_affiche_gauche($flux) {
}
/*
* Ajouter la boite des abonnements sur la fiche auteur
* Ajouter la boite des abonnements sur la fiche auteur et les offres sur les objets configurés
*/
function abonnements_affiche_milieu($flux) {
if ($e = trouver_objet_exec($flux['args']['exec'])
AND $e['type'] == 'auteur'
AND $e['edition'] == false) {
$e = trouver_objet_exec($flux['args']['exec']);
// Sur la page des auteurs
if (
is_array($e)
and $e['type'] == 'auteur'
and $e['edition'] == false
) {
$id_auteur = $flux['args']['id_auteur'];
$ins = recuperer_fond('prive/squelettes/inclure/abonnements_auteur', array('id_auteur' => $id_auteur));
@ -251,6 +253,37 @@ function abonnements_affiche_milieu($flux) {
return $flux;
}
/*
* Ajouter la boite des abonnements sur la fiche auteur et les offres sur les objets configurés
*/
function abonnements_affiche_enfants($flux) {
$e = trouver_objet_exec($flux['args']['exec']);
// Sur la page d'un objet s'il fait partie de la config
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']]
)
)
) {
if ($p=strpos($flux['data'], '<!--affiche_milieu-->')) {
$flux['data'] = substr_replace($flux['data'], $texte, $p, 0);
} else {
$flux['data'] .= $texte;
}
}
return $flux;
}
/*
* Ajouter une feuille de style privée
*/

@ -0,0 +1,20 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
function formulaires_configurer_abonnements_saisies_dist() {
$saisies = array(
array(
'saisie' => 'choisir_objets',
'options' => array(
'nom' => 'objets',
'label' => _T('abonnementsoffre:configurer_objets_label'),
'explication' => _T('abonnementsoffre:configurer_objets_explication'),
),
),
);
return $saisies;
}

@ -41,6 +41,9 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'champ_titre_label' => 'Titre',
'configurer_notifications' => 'Configurer les notifications',
'configurer_notifications_quand' => 'Quand ?',
'configurer_objets_explication' => 'Vous pourrez classer les offres dabonnements dans les pages des contenus suivants.',
'configurer_objets_label' => 'Placer des offres dans les contenus',
'configurer_titre' => 'Configurer les abonnements',
// E
'erreur_notification_doublon' => 'Cette notification est déjà enregistrée',
@ -96,5 +99,5 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'titre_abonnementsoffres_rubrique' => 'Offres dabonnement de la rubrique',
'titre_langue_abonnementsoffre' => 'Langue de cette offre dabonnement',
'titre_logo_abonnementsoffre' => 'Logo de cette offre dabonnement',
'titre_notifier_abonnementsoffre' => 'Envoyer des notifications'
'titre_notifier_abonnementsoffre' => 'Envoyer des notifications',
);

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

@ -0,0 +1,60 @@
[(#SET{defaut_tri,#ARRAY{
multi titre,1,
date_naissance,-1,
id_abonnements_offre,1
}})
]
#SET{exclus,#ENV**{exclus,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}}
#SET{debut,#ENV{debutaboa,#EVAL{_request("debutaboa");}}}
<input type="hidden" name="debutaboa" value="#GET{debut}" />
<B_liste_abonnements_offres>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-associer abonnements_offres">
<table class="spip liste">
[<caption><span class="caption"><strong>(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{abonnementsoffre:info_1_abonnementsoffre,abonnementsoffre:info_nb_abonnementsoffres}})</strong>
<span class="recherche">
<label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
<input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
<input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
</span>
</span>
</caption>]
<thead>
<tr class="first_row">
<th class="statut" scope="col">[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:>">#</span>,ajax})]</th>
<th class="titre" scope="col">[(#TRI{multi titre,<:abonnementsoffre:champ_titre_label:>,ajax})]</th>
<th class="action" scope="col"></th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_abonnements_offres(ABONNEMENTS_OFFRES)
{!id_abonnements_offre IN #GET{exclus}}
{where?}
{recherche?}
{statut?}
{tri #ENV{par,multi titre},#GET{defaut_tri}}
{pagination #ENV{nb,10} forma}
>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#TITRE**|extraire_multi|initiale|=={#ENV{i}}|?{on}|unique)]">
<td class="statut">[(#STATUT|puce_statut{abonnements_offre})]</td>
<td class="titre">[(#LOGO_ABONNEMENTS_OFFRE|image_reduire{20,20})]<a href="[(#ID_ABONNEMENTS_OFFRE|generer_url_entite{abonnements_offre})]">#TITRE</a></td>
<td class="action">
<button type="submit" class="ajouter btn_mini btn_secondaire" name="ajouter_lien\[abonnements_offre-#ID_ABONNEMENTS_OFFRE-#OBJET-#ID_OBJET\]" value="+"><:abonnementsoffre:ajouter_lien_abonnementsoffre:> [(#CHEMIN_IMAGE{ajouter-12.png}|balise_img{'+'})]</button>
</td>
</tr>
</BOUCLE_liste_abonnements_offres>
</tbody>
</table>
[<nav role="navigation" class="pagination">(#PAGINATION{prive})</nav>]
</div>
</B_liste_abonnements_offres>[(#ENV{recherche}|oui)
<div class="liste-objets liste-objets-associer abonnements_offres caption-wrap">
<span class="caption"><strong>[(#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}})]</strong>
<span class="recherche">
<label for="recherche-#ENV{id}"><:info_rechercher_02:></label>
<input type="text" class="recherche" name="recherche" id="recherche-#ENV{id}" value="#ENV{recherche}" />
<input type="submit" class="tout_voir" name="tout_voir" value="<:info_tout_afficher:>" />
</span>
</span>
</div>
]<//B_liste_abonnements_offres>

@ -0,0 +1,49 @@
[(#SET{defaut_tri,#ARRAY{
multi titre,1,
id_abonnements_offre,1
}})
]
#SET{selection,#ENV**{selection,#ENV{objet_source}|lister_objets_lies{#ENV{objet},#ENV{id_objet},#ENV{_objet_lien}}}}
#SET{debut,#ENV{debutabol,#EVAL{_request("debutabol");}}}
<input type="hidden" name="debutabol" value="#GET{debut}" />
<B_liste_abonnements_offres>
#ANCRE_PAGINATION
<div class="liste-objets liste-objets-lies abonnements_offres">
<table class="spip liste">
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{abonnementsoffre:info_1_abonnementsoffre,abonnementsoffre:info_nb_abonnementsoffres}})</strong></caption>]
<thead>
<tr class="first_row">
<th class="statut" scope="col">[(#TRI{statut,<span title="<:lien_trier_statut|attribut_html:>">#</span>,ajax})]</th>
<th class="titre" scope="col">[(#TRI{multi titre,<:abonnementsoffre:champ_titre_label:>,ajax})]</th>
<th class="action" scope="col"></th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_abonnements_offres(ABONNEMENTS_OFFRES)
{objet=#ENV{objet}}{id_objet=#ENV{id_objet}}
{id_abonnements_offre IN #GET{selection}}
{statut?}
{tri #ENV{par,multi titre},#GET{defaut_tri}}
{pagination #ENV{nb,10} abol}
>
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#TITRE**|extraire_multi|initiale|=={#ENV{i}}|?{on}|unique)][(#ID_ABONNEMENTS_OFFRE|=={#ENV{id_lien_ajoute}}|oui)append]">
<td class="statut">[(#STATUT|puce_statut{abonnements_offre})]</td>
<td class="titre">[(#LOGO_ABONNEMENTS_OFFRE|image_reduire{20,20})]<a href="[(#ID_ABONNEMENTS_OFFRE|generer_url_entite{abonnements_offre})]">#TITRE</a></td>
<td class="action">
[(#ENV{editable}|oui)
<button type="submit" class="supprimer btn_link btn_mini" name="supprimer_lien\[abonnements_offre-#ID_ABONNEMENTS_OFFRE-#OBJET-#ID_OBJET\]" value="X"><:abonnementsoffre:retirer_lien_abonnementsoffre:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button>
]
</td>
</tr>
</BOUCLE_liste_abonnements_offres>
</tbody>
</table>
[<nav role="navigation" class="pagination">(#PAGINATION{prive})</nav>]
[(#GRAND_TOTAL|>{3}|oui)<div class="action"><button type="submit" class="supprimer btn_link btn_mini" name="supprimer_lien\[abonnements_offre-*-#OBJET-#ID_OBJET\]" value="X"><:abonnementsoffre:retirer_tous_liens_abonnementsoffres:> [(#CHEMIN_IMAGE{supprimer-12.png}|balise_img{'X'})]</button></div>]
</div>
</B_liste_abonnements_offres>
<div class="liste-objets liste-objets-lies abonnements_offres caption-wrap">
<strong class="caption">[(#ENV*{titre,<:abonnementsoffre:info_aucun_abonnementsoffre:>})]</strong>
</div>
<//B_liste_abonnements_offres>

@ -0,0 +1,7 @@
[(#AUTORISER{configurer,abonnements}|sinon_interdire_acces)]
<h1 class="grostitre"><:abonnementsoffre:configurer_titre:></h1>
<div class="ajax">
#FORMULAIRE_CONFIGURER_ABONNEMENTS
</div>
Loading…
Cancel
Save