Browse Source

Les pages 'auteurs' et 'visiteurs' ajoutent un lien en navigation vers une page

'auteurs_access_ips' qui liste les auteurs ayant au moins une IP définie.
pull/2/head
Matthieu Marcillaud 2 years ago
parent
commit
4220ec1134
  1. 16
      ipset_pipelines.php
  2. 4
      lang/ipset_fr.php
  3. 1
      paquet.xml
  4. 63
      prive/objets/liste/auteurs_access_ips.html
  5. 3
      prive/objets/liste/auteurs_access_ips_fonctions.php
  6. 34
      prive/squelettes/contenu/auteurs_access_ips.html
  7. 3
      prive/squelettes/inclure/auteurs_access_ips.html
  8. 8
      prive/squelettes/navigation/auteurs_access_ips.html

16
ipset_pipelines.php

@ -34,3 +34,19 @@ function ipset_post_edition($flux) {
return $flux;
}
/**
* Ajoute un lien vers la page de liste des auteurs avec ips sur les pages auteurs et visiteurs.
*
* @param array $flux
* @return array
*/
function ipset_affiche_gauche($flux) {
if (
in_array($flux['args']['exec'], ['auteurs', 'visiteurs'])
and autoriser('voir', '_auteurs')
) {
$flux['data'] .= recuperer_fond('prive/squelettes/inclure/auteurs_access_ips');
}
return $flux;
}

4
lang/ipset_fr.php

@ -6,6 +6,10 @@ if (!defined('_ECRIRE_INC_VERSION')) {
}
$GLOBALS[$GLOBALS['idx_lang']] = array(
// A
'auteurs_access_ips' => 'Auteurs avec accès par IP',
'auteurs_access_ips_info' => 'Auteurs ayant au moins une IP renseignée dans le champ dédié.',
// E
'erreur_format_ip_string' => 'Format de valeur invalide (string)',
'erreur_format_ip' => '<code>@ip@</code> n\'est pas une adresse IP valide',

1
paquet.xml

@ -20,6 +20,7 @@
<pipeline nom="declarer_champs_extras" inclure="base/ipset.php" />
<pipeline nom="post_edition" inclure="ipset_pipelines.php" />
<pipeline nom="affiche_gauche" inclure="ipset_pipelines.php" />
<necessite nom="cextras" compatibilite="[3.12.0;]" />
<necessite nom="verifier" compatibilite="[1.9.0;]" />

63
prive/objets/liste/auteurs_access_ips.html

@ -0,0 +1,63 @@
[(#SET{defaut_tri,#ARRAY{
statut,1,
multi nom,1,
id_auteur,1,
points,-1
}})
]<B_liste_aut>
#SET{afficher_lettres,#TRI|=={'multi nom'}|oui}
#SET{debut,#ENV{debutaut,#EVAL{_request("debutaut");}}}
#ANCRE_PAGINATION
<div class="liste-objets auteurs">
<table class='spip liste'>
[<caption><strong class="caption">(#ENV*{titre,#GRAND_TOTAL|singulier_ou_pluriel{info_1_auteur,info_nb_auteurs}})</strong></caption>]
<thead>
#SET{p,''}
<BOUCLE_lettre(AUTEURS){tout}{id_auteur?}{where?}{statut?}{recherche?}{access_ips != ''}{par multi nom}{id_auteur==#GET{afficher_lettres}|?{'.*','A'}}>[
(#NOM**|initiale|unique|oui)
[(#SET{p,#GET{p}|concat{
#SELF|parametre_url{debutaut,@#ID_AUTEUR}|ancre_url{paginationaut}|afficher_initiale{#NOM**|initiale{},#COMPTEUR_BOUCLE,#GET{debut},#ENV{nb,10}}
}})]
]#SAUTER{#ENV{nb,10}|moins{#COMPTEUR_BOUCLE|=={1}|?{2,1}}}</BOUCLE_lettre>[
(#SET{p,
#GET{p}|concat{
#REM|afficher_initiale{#REM,#TOTAL_BOUCLE,#GET{debut},#ENV{nb,10}}
}
})]</B_lettre>
[<tr><td colspan="6"><p class='pagination'>(#GET{p})</p></td></tr>]
[<tr><td colspan="6"><p class='pagination'>(#PAGINATION{prive})</p></td></tr>]
<tr class='first_row'>
<th class='statut' scope='col'>[(#TRI{statut,#CHEMIN_IMAGE{auteur-16.png}|balise_img{<:lien_trier_statut|attribut_html:>},ajax})]</th>
<th class='messagerie' scope='col'></th>
<th class='nom' scope='col' colspan='2'>[(#TRI{multi nom,<:info_nom:>,ajax})]</th>
<th class='email' scope='col'>[(#TRI{email,<:email:>,ajax})]</th>
<th class='ips' scope='col'><:ipset:label_access_ips:></th>
<th class='id' scope='col'>[(#TRI{id_auteur,<:info_numero_abbreviation:>,ajax})]</th>
</tr>
</thead>
<tbody>
<BOUCLE_liste_aut(AUTEURS){tout}{id_auteur?}{id_mot?}{where?}{statut?}{recherche?}{access_ips != ''}{tri #ENV{par,multi nom},#GET{defaut_tri}}{pagination #ENV{nb,10} aut}>
[(#LANG|changer_typo)]
<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#EXPOSE|unique)][ (#NOM**|initiale|=={#ENV{i}}|et{#ENV{i}}|?{on}|unique)]">
<td class='statut'>[(#STATUT|puce_statut{auteur})]</td>
<td class="messagerie">[<a href="(#ID_AUTEUR|auteur_lien_messagerie{#EN_LIGNE,#STATUT,#IMESSAGE})">[(#CHEMIN{images/m_envoi.gif}|balise_img{<:info_envoyer_message_prive:>})]</a>]</td>
<td class='nom[ (#NOM|non)vide]'[(#LOGO_AUTEUR|non)colspan='2']><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]"[ title="(#BIO*|couper{200}|attribut_html)"]>[(#RANG). ][(#NOM|trim|sinon{#BIO*|couper{80}|trim}|sinon{<:info_numero_abbreviation:>#ID_AUTEUR})]</a>[ <small>((#STATUT|=={0minirezo}|et{#WEBMESTRE|=={oui}}|?{<:statut_webmestre:>}))</small>][ <small>((#STATUT|=={0minirezo}|et{#AUTORISER{'','','',#ID_AUTEUR}|non}|?{<:statut_admin_restreint:>}))</small>]</td>
[<td class='logo'><a href="[(#ID_AUTEUR|generer_url_entite{auteur})]" style="background-image:url\((#LOGO_AUTEUR|image_passe_partout{40,40}|extraire_attribut{src}))"></a></td>]
<td class='email'>[<a href='mailto:(#EMAIL)'>[(#EMAIL|couper{30})]</a>]</td>
<td class='ips'>[(#ACCESS_IPS|couper{30})]</td>
<td class='id'>[(#AUTORISER{modifier,auteur,#ID_AUTEUR}|?{
<a href="[(#URL_ECRIRE{auteur_edit,id_auteur=#ID_AUTEUR})]" title="<:admin_modifier_auteur|attribut_html:>">#ID_AUTEUR</a>,
#ID_AUTEUR
})]</td>
</tr>
</BOUCLE_liste_aut>
[(#REM|changer_typo)]
</tbody>
</table>
[<p class='pagination'>(#PAGINATION{prive})</p>]
</div>
</B_liste_aut>[
<div class="liste-objets auteurs caption-wrap"><strong class="caption">(#ENV*{sinon,''})</strong></div>
]<//B_liste_aut>

3
prive/objets/liste/auteurs_access_ips_fonctions.php

@ -0,0 +1,3 @@
<?php
include_spip('prive/objets/liste/auteurs_fonctions');

34
prive/squelettes/contenu/auteurs_access_ips.html

@ -0,0 +1,34 @@
[(#AUTORISER{voir,_auteurs}|sinon_interdire_acces)]
<h1 class="grostitre"><:ipset:auteurs_access_ips:></h1>
#SET{statuts,#VAL{tous}|auteurs_lister_statuts}
<B_st>
<div class="onglets_simple clearfix">
<ul>
<li>[(#SELF|parametre_url{statut,''}|lien_ou_expose{<:info_tout_afficher:>,[(#ENV{statut,''}|non)],ajax})]</li>
<BOUCLE_st(POUR){tableau #GET{statuts}}{si #GET{statuts}|count|>{1}}>
<li>[(#SELF|parametre_url{statut,#VALEUR}|lien_ou_expose{[(#VALEUR|traduire_statut_auteur)],#ENV{statut,''}|=={#VALEUR},ajax})]</li>
</BOUCLE_st>
</ul>
</div>
</B_st>
[(#ENV{id_auteur}|oui)
<a href="[(#SELF|parametre_url{id_auteur,''})]"><:icone_tous_auteur:></a>
]
#FORMULAIRE_RECHERCHE_ECRIRE{#SELF,ajax}
<div class='nettoyeur'></div>
#SET{filtre,#SESSION{statut}|=={0minirezo}|?{poubelle,'prepa|poubelle|refuse'}|explode{|}}
[(#INCLURE{fond=prive/objets/liste/auteurs_access_ips,
nb=30,
filtre_statut_articles=#GET{filtre},
statut=#ENV{statut}|in_any{#GET{statuts}}|?{#ENV{statut},
#GET{statuts}},
env,
ajax}
|sinon{#ENV{recherche}|?{
#VAL{info_recherche_auteur_zero}|_T{#ARRAY{cherche_auteur,#ENV{recherche}}}|wrap{'<h3>'}
}})
]

3
prive/squelettes/inclure/auteurs_access_ips.html

@ -0,0 +1,3 @@
[(#BOITE_OUVRIR{'','raccourcis'})]
[(#URL_ECRIRE{auteurs_access_ips}|icone_horizontale{<:ipset:auteurs_access_ips:>, #CHEMIN_IMAGE{ipset-24.png}})]
[(#BOITE_FERMER)]

8
prive/squelettes/navigation/auteurs_access_ips.html

@ -0,0 +1,8 @@
#BOITE_OUVRIR{'','info'}
<p><:ipset:auteurs_access_ips_info:></p>
#BOITE_FERMER
[(#BOITE_OUVRIR{'','raccourcis'})]
[(#URL_ECRIRE{auteurs}|icone_horizontale{<:icone_afficher_auteurs:>,auteur})]
#BOITE_FERMER
Loading…
Cancel
Save