Changeset 65745 in spip-zone


Ignore:
Timestamp:
Sep 11, 2012, 10:11:18 AM (9 years ago)
Author:
cedric@…
Message:

Quand le contenu principal est vide sur une page automatique, il faut générer une 404.
+ coquille de nommage sur la 404

Z-Core est à peu près stabilisé donc on le passe en test et en v2.0.0 pour pouvoir incrémenter la version en cas d'évolution fonctionnelle.

Location:
_plugins_/z-core
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • _plugins_/z-core/paquet.xml

    r57469 r65745  
    22        prefix="Zcore"
    33        categorie="squelette"
    4         version="2.0.0-dev"
    5         etat="dev"
    6         compatibilite="[3.0.0-dev;["
     4        version="2.0.0"
     5        etat="test"
     6        compatibilite="[3.0.0;3.0.*]"
    77        logo="img/z-core-32.png"
    88        documentation="http://www.yterium.net/108"
     
    2121        <pipeline nom="declarer_url_objets" inclure="zcore_pipelines.php" />
    2222        <pipeline nom="styliser" inclure="zcore_pipelines.php" />
     23        <pipeline nom="recuperer_fond" inclure="zcore_pipelines.php" />
    2324        <pipeline nom="insert_head" inclure="zcore_pipelines.php" />
    2425        <pipeline nom="insert_head_css" inclure="zcore_pipelines.php" />
  • _plugins_/z-core/zcore_pipelines.php

    r60104 r65745  
    5959}
    6060
     61function zcore_recuperer_fond($flux){
     62        static $is_404 = false;
     63        static $z_contenu;
     64
     65        if ($is_404){
     66                if ($flux['args']['fond']==="structure"){
     67                $is_404 = false; // pas de risque de reentrance
     68                $code = "404 Not Found";
     69                $contexte_inclus = array(
     70                        'erreur' => "",
     71                        'code' => $code,
     72                        'lang' => $GLOBALS['spip_lang']
     73                );
     74
     75                $flux['data'] = evaluer_fond('404', $contexte_inclus);
     76                $flux['data']['status'] = intval($code); // pas remonte vers la page mais un jour peut etre...
     77                // du coup on envoie le status a la main
     78                include_spip("inc/headers");
     79                http_status(intval($code));
     80                }
     81        }
     82        elseif (!test_espace_prive()){
     83                if (!isset($z_contenu)) {
     84                        if (!function_exists("z_blocs"))
     85                                $styliser_par_z = charger_fonction('styliser_par_z','public');
     86                        $z_blocs = z_blocs(test_espace_prive());
     87                        $z_contenu = reset($z_blocs); // contenu par defaut
     88                        $z_nlength = strlen($z_contenu);
     89                }
     90                $fond = $flux['args']['fond'];
     91                if ($z_contenu
     92                        // eliminer rapidement la plupart des fond
     93                        AND strncmp($fond,"$z_contenu/",$z_nlength+1)==0
     94                        // verifier plus en detail que c'est bien le bon fond
     95                        AND $dir = explode('/',$fond)
     96                        AND count($dir)==2 // pas un sous repertoire
     97                        AND $dir = reset($dir)
     98                        AND $dir == $z_contenu // c'est le bloc de contenu principal
     99                        AND !strlen(trim($flux['data']['texte']))
     100                        ){
     101
     102                        $is_404 = true;
     103                }
     104        }
     105        return $flux;
     106}
     107
    61108
    62109
Note: See TracChangeset for help on using the changeset viewer.