Changeset 69110 in spip-zone


Ignore:
Timestamp:
Jan 20, 2013, 2:56:08 PM (7 years ago)
Author:
cedric@…
Message:

En previsu on ajoute un bouton "Relecture temporaire" qui donne accès à une URL de relecture valable 12h et utilisable sans identification au site.
Permet donc de faire relire un article non publié à une personne sans accès au site comme espéré par http://romy.tetue.net/877

Location:
_plugins_/spip-bonux-3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/spip-bonux-3/paquet.xml

    r65543 r69110  
    22        prefix="spip_bonux"
    33        categorie="outil"
    4         version="3.0.3"
     4        version="3.0.4"
    55        etat="stable"
    66        compatibilite="[3.0.0-dev;3.1.*]"
     
    1919
    2020        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL</licence>
     21        <pipeline nom="affichage_final" />
    2122</paquet>
  • _plugins_/spip-bonux-3/spip_bonux_fonctions.php

    r53712 r69110  
    2525}
    2626
     27function previsu_verifier_cle_temporaire($cle){
     28        $validite = 12; // validite de 12h maxi
     29        $old = 0;
     30        do {
     31                $date = date('Y-m-d H',strtotime("-$old hour"));
     32                if ($cle==previsu_cle_temporaire($date))
     33                        return true;
     34        } while ($old++<$validite);
     35        return false;
     36}
     37function previsu_cle_temporaire($date=null){
     38        include_spip('inc/securiser_action');
     39        if (!$date) $date = date('Y-m-d H');
     40        $url = self();
     41        $cle = md5($url.$date.secret_du_site());
     42        return $cle;
     43}
    2744
    2845?>
  • _plugins_/spip-bonux-3/spip_bonux_options.php

    r52871 r69110  
    77 *
    88 */
     9
     10if (_request('var_mode')=='preview'
     11  AND $cle = _request('var_relecture')){
     12        include_spip("spip_bonux_fonctions");
     13        if (previsu_verifier_cle_temporaire($cle)){
     14                include_spip("inc/autoriser");
     15                autoriser_exception('previsualiser','',0);
     16                define('_VAR_PREVIEW_EXCEPTION',true);
     17        }
     18}
     19
     20function spip_bonux_affichage_final($flux){
     21        if (defined('_VAR_PREVIEW') AND _VAR_PREVIEW){
     22                $p = stripos($flux,"</body>");
     23                $url_relecture = parametre_url(self(),'var_mode','preview','&');
     24                $js = "";
     25                if (!defined('_VAR_PREVIEW_EXCEPTION')){
     26                        $url_relecture = parametre_url($url_relecture,'var_relecture',previsu_cle_temporaire(),'&');
     27                        $label = "Relecture temporaire";
     28                }
     29                else {
     30                        $label = _T('previsualisation');
     31                        $js = "jQuery('.spip-previsu').html('Relecture temporaire');";
     32                }
     33                $js .= "jQuery('#spip-admin').append('<a class=\"spip-admin-boutons review_link\" href=\"$url_relecture\">$label</a>');";
     34                $js = "jQuery(function(){ $js });";
     35                $js = "<script>$js</script>";
     36                $flux = substr_replace($flux,$js,$p,0);
     37        }
     38        return $flux;
     39}
    940
    1041if (!defined('_ECRIRE_INC_VERSION')) return;
Note: See TracChangeset for help on using the changeset viewer.