Changeset 112793 in spip-zone


Ignore:
Timestamp:
Dec 13, 2018, 10:08:59 PM (5 weeks ago)
Author:
jluc@…
Message:

meilleur mode 'par squelettes'

Location:
_plugins_/xray/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/xray/trunk/paquet.xml

    r112766 r112793  
    22        prefix="xray"
    33        categorie="outil"
    4         version="0.21.0"
     4        version="0.21.1"
    55        etat="test"
    66        compatibilite="[2.1.0;3.2.*]"
  • _plugins_/xray/trunk/plugin.xml

    r112766 r112793  
    99        <licence>GPL</licence>
    1010        <licence>PHP</licence>
    11         <version>0.21.0</version>
     11        <version>0.21.1</version>
    1212        <etat>test</etat>
    1313        <description>
  • _plugins_/xray/trunk/xray_apc.php

    r112766 r112793  
    121121        $data_success = false;
    122122        return null;
    123 }
    124 
    125 function spipsafe_unserialize($str) {
    126         if (strpos($str, "SPIPTextWheelRuleset") !== false)
    127                 return ajuste_longueur_html($str);
    128         $unser = unserialize($str);
    129         if (is_array($unser) and isset($unser['texte'])) {
    130                 gunzip_page($unser); // si 'texte' est trop grand il est gzcompress par gzip_page
    131                 $unser['texte'] = ajuste_longueur_html($unser['texte']);
    132         }
    133         return joli_cache($unser, false);
    134123}
    135124
     
    162151        return $return;
    163152}
     153
    164154function joli_cache($extra) {
    165         if (isset($extra['texte']))     // Alors c'est un cache entier !
     155        if (is_array($extra)
     156                and isset($extra['texte']))
    166157                $extra['texte'] = ajuste_longueur_html($extra['texte']);
    167                 // sinon c'est juste une des métadonnées du cache
    168                
     158                // sinon c'est pas un squelette spip, par exemple une textwheel
     159                // ou juste un talon ou juste une des métadonnées du cache
     160
    169161        $print=print_r($extra,1);
     162
    170163        if (!is_array($extra))
    171                 return "<xmp>$print</xmp>";
     164                return "<xmp>".ajuste_longueur_html($print)."</xmp>";
    172165
    173166        // On enlève 'Array( ' au début et ')' à la fin
     
    175168        $print = substr ($print, 0, -1);
    176169
    177         // Si ce n'est pas un cache entier avec ses métadonnées
    178         if (!isset($extra['squelette']) or !isset($extra['source']))
     170        // rien à améliorer s'il n'y a ni la source ni le squelette
     171        if (!isset($extra['source']) and !isset($extra['squelette']))
    179172                return "<xmp>$print</xmp>";
    180173
     
    199192                        return "[{$match[1]}] => </xmp><a title='{$title}'
    200193                                                href='".generer_url_ecrire('xray', "SOURCE=$source")."'
    201                                                 target='blank'><xmp>{$match[2]}</xmp> &#128279;</a><xmp>";
     194                                                target='blank'><xmp>{$match[2]}</xmp> <small>&#128279;</small></a><xmp>";
    202195                },
    203196                $print);
     
    693686
    694687if (isset($MYREQUEST['SOURCE']) and $MYREQUEST['SOURCE']) {
    695         echo 'Depuis '.getcwd().' : voir '.$MYREQUEST['SOURCE'].'<br><hr><br>';
    696        
    697688        echo '<xmp>'.file_get_contents ($MYREQUEST['SOURCE']).'</xmp>';
    698689        exit;
     
    762753<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    763754<html>
    764 <head><title>APCu INFO <?php
    765 echo $host;
    766 ?></title>
     755<head><title>XRay - APCu Infos sur les caches SPIP</title>
    767756<style><!--
    768757body { background:white; font-size:100.01%; margin:0; padding:0; }
     
    957946        <hr class="apc">
    958947</div>
     948
     949<?php
     950// Les dossiers de squelettes déclarés dans le paquet.xml comme 'public' ne sont pas accessibles dans le privé
     951// Pour bénéficier des liens ici, il faut les ajouter dans la $GLOBALS['dossier_squelettes']
     952// echo "<h2>GLOBALS['dossier_squelettes'] : <pre>". print_r($GLOBALS['dossier_squelettes'],1)."</pre></h2>";
     953// echo "<h2>_chemin</h2> <pre>".print_r(_chemin(),1)."</p>";
     954?>
     955
    959956
    960957<?php
     
    12921289                                        break;
    12931290                        }
    1294                         echo "</ul>";
    12951291                        $list[$k . $entry['info']] = $entry;
    12961292                }
     
    13481344                                $data=$searched=null;
    13491345                                $data_success = false;
    1350 // plus de restrictions, on cherche toujours data
     1346                                // désormais on cherche toujours data
    13511347                                $searched = $data = get_apc_data($entry['info'], $data_success);
    13521348
     
    13841380
    13851381                                        if ($MYREQUEST['TYPELISTE']=='squelettes') {
    1386                                                 if ($MYREQUEST['TYPECACHE'] == 'SESSIONS_TALON')        // ya pas de 'source' dans les talons
    1387                                                         $squelette = cache_get_squelette($entry['info']);
    1388                                                 elseif (!isset($data['source']))        // textwheel, etc
     1382
     1383                                                $joli = array();
     1384                                                if (!is_array($data)) { // textwheel etc
    13891385                                                        continue;
    1390                                                 else
    1391                                                         $squelette = $data['source'];
    1392 
    1393                                                 if (in_array($squelette, $liste_squelettes))    // déjà listé
     1386                                                }
     1387                                                elseif (($MYREQUEST['TYPECACHE'] == 'SESSIONS_TALON')
     1388                                                                or !isset($data['source'])) { // talons
     1389                                                        // ya pas de 'source' dans les talons, c'est la clé qui donne le squelette
     1390                                                        $s = cache_get_squelette($entry['info']);
     1391                                                        $squelette = find_in_path($s.'.html');
     1392
     1393                                                        // Les dossiers de squelettes déclarés comme public dans paquet.xml
     1394                                                        // ne sont pas utilisés par find_in_path dans le privé
     1395                                                        if (!$squelette)
     1396                                                                $squelette = $joli = $s." (échec find_in_path : déclarez le chemin (depuis la racine du site) de vos dossiers publics de squelettes dans GLOBALS['dossier_squelette']) ";
     1397                                                        else
     1398                                                                $squelette = $joli['source'] = substr($squelette, 3);   // On enlève ../
     1399                                                }
     1400                                                else {  // cas normal : vrai cache d'un squelette spip
     1401                                                        $squelette = $joli['source'] = $data['source'];
     1402                                                }
     1403
     1404                                                if (in_array($squelette, $liste_squelettes)) {  // déjà listé
    13941405                                                        continue;
     1406                                                }
    13951407
    13961408                                                // squelette pas encore listé
    13971409                                                $i++;
    13981410                                                $liste_squelettes[] = $squelette;
    1399                                                 echo "<tr class='tr-", $i % 2, "'><td colspan='7'>$i) $squelette</td></tr>";
     1411                                                echo "<tr class='tr-".($i % 2)."'><td colspan='7'>$i) ".joli_cache($joli)."</td></tr>";
    14001412                                                if ($i == $MYREQUEST['COUNT'])
    14011413                                                        break;
     
    14101422                                        echo '<tr id="key-' . $sh . '" class=tr-', $i % 2, '>',
    14111423                                                        "<td class='td-0' style='position: relative'>
     1424                                                                $i)
    14121425                                                                <a href='$MY_SELF&SH={$sh}#key-{$sh}'>
    14131426                                                                        $displayed_name
Note: See TracChangeset for help on using the changeset viewer.