Changeset 112695 in spip-zone


Ignore:
Timestamp:
Dec 9, 2018, 7:35:03 PM (6 months ago)
Author:
root
Message:

joli_cache et joli_contexte pour afficher avec les liens auto + pas de curly quotes en php pour apc_key_test_flush !

Location:
_plugins_/xray/trunk
Files:
4 edited

Legend:

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

    r112676 r112695  
    22        prefix="xray"
    33        categorie="outil"
    4         version="0.20.1"
     4        version="0.20.2"
    55        etat="test"
    66        compatibilite="[2.1.0;3.2.*]"
  • _plugins_/xray/trunk/plugin.xml

    r112676 r112695  
    99        <licence>GPL</licence>
    1010        <licence>PHP</licence>
    11         <version>0.20.1</version>
     11        <version>0.20.2</version>
    1212        <etat>test</etat>
    1313        <description>
  • _plugins_/xray/trunk/xray_apc.php

    r112676 r112695  
    142142                $unser['texte'] = ajuste_longueur_html($unser['texte']);
    143143        }
    144         return print_contexte($unser, 1);
    145 }
    146 
    147 function print_contexte($extra, $tostring=true) {
     144        return joli_cache($unser, false);
     145}
     146
     147function joli_contexte($contexte) {
     148        global $MY_SELF;
     149        $return = '';
     150        if (!$contexte)
     151                return '';
     152        if (!is_array($contexte))
     153                return $contexte;
     154        foreach ($contexte as $var => $val) {
     155                $print = print_r($val, 1);
     156                if (!is_array($val) and (!$val or (strpos("\n", $val) === false))) {
     157                        $ligne = "[$var] => $val";
     158                        if (strlen($val) < 100) {
     159                                $url = parametre_url (parametre_url($MY_SELF,'WHERE', 'CONTEXTE'),
     160                                                                          'SEARCH', "\\[$var\\] => $val$");
     161                                $title = "Voir tous les caches ayant cette même valeur de contexte";
     162                                $return .= "<a href='$url' title='$title'><xmp>[$var] => $val</xmp></a>";
     163                                if (substr($var,0,3)== 'id_')
     164                                        $return .= bouton_objet(substr($var,3), $val, $contexte);
     165                        }
     166                        else
     167                                $return .= "<xmp>$ligne</xmp>";
     168                        $return .= "<br>";
     169                }
     170                else
     171                        $return .= "<xmp>[$var] => (".gettype($val).") $print</xmp>";
     172        };
     173        return $return;
     174}
     175function joli_cache($extra) {
     176        if (isset($extra['texte']))     // Alors c'est un cache entier !
     177                $extra['texte'] = ajuste_longueur_html($extra['texte']);
     178                // sinon c'est juste une des métadonnées du cache
     179               
    148180        $print=print_r($extra,1);
    149         if (is_array($extra)) {
    150                 // On enlève 'Array( ' au début et ')' à la fin
    151                 $print = trim(substr($print, 5), " (\n\r\t");
    152                 $print = substr ($print, 0, -1);
    153                 $print = preg_replace_callback("/\[id_([a-z\-_]+)\]\s*=>\s*(\d+)$/im", function($match) use ($extra)
    154                         {
    155                                 return $match[0] . '</xmp>' . bouton_objet($match[1], $match[2], $extra) . '<xmp>';
    156                         }, $print);
    157                 // [squelette] => html_5731a2e40776724746309c16569cac40
    158                 // et [source] => plugins/paeco/squelettes/inclure/element/tag-rubrique.html
    159                 $print = preg_replace_callback("/\[(squelette|source)\]\s*=>\s*(html_[a-f0-9]{32}+|[\w_\.\/\-]+\.html)$/im",
    160                         function($match)
    161                         {
    162                                 if (!defined('_SPIP_ECRIRE_SCRIPT'))
    163                                         spip_initialisation_suite();
    164                                 switch ($match[1]) {
    165                                 case 'squelette' : // cache squelette intermédiaire, en php
    166                                         $source = trim(_DIR_CACHE, '/').'/skel/'.$match[2].'.php';
    167                                         $title = "Squelette compilé : cache intermédiaire en php";
    168                                         break;
    169                                 case 'source' :
    170                                         $source = '../'.$match[2];
    171                                         $title = "Source du squelette SPIP, avec boucles, balises etc";
    172                                         break;
    173                                 }
    174                                 return "[{$match[1]}] => </xmp><a title='{$title}'
    175                                                         href='".generer_url_ecrire('xray', "SOURCE=$source")."'
    176                                                         target='blank'><xmp>{$match[2]}</xmp> &#128279;</a><xmp>";
    177                         },
    178                         $print);
    179                 $print = preg_replace('/^    /m', '', $print);
    180         };
    181         $print=ajuste_longueur_html($print);
    182         if ($tostring)
    183                 return $print;
    184         echo $print;
     181        if (!is_array($extra))
     182                return "<xmp>$print</xmp>";
     183
     184        // On enlève 'Array( ' au début et ')' à la fin
     185        $print = trim(substr($print, 5), " (\n\r\t");
     186        $print = substr ($print, 0, -1);
     187
     188        // Si ce n'est pas un cache entier avec ses métadonnées
     189        if (!isset($extra['squelette']) or !isset($extra['source']))
     190                return "<xmp>$print</xmp>";
     191
     192        // [squelette] => html_5731a2e40776724746309c16569cac40
     193        // et [source] => plugins/paeco/squelettes/inclure/element/tag-rubrique.html
     194        $print = preg_replace_callback("/\[(squelette|source)\]\s*=>\s*(html_[a-f0-9]{32}+|[\w_\.\/\-]+\.html)$/im",
     195                function($match)
     196                {
     197                        if (!defined('_SPIP_ECRIRE_SCRIPT'))
     198                                spip_initialisation_suite();    // pour define(_DIR_CACHE)
     199
     200                        switch ($match[1]) {
     201                        case 'squelette' : // cache squelette intermédiaire, en php
     202                                $source = trim(_DIR_CACHE, '/').'/skel/'.$match[2].'.php';
     203                                $title = "Squelette compilé : cache intermédiaire en php";
     204                                break;
     205                        case 'source' :
     206                                $source = '../'.$match[2];
     207                                $title = "Source du squelette SPIP, avec boucles, balises etc";
     208                                break;
     209                        }
     210                        return "[{$match[1]}] => </xmp><a title='{$title}'
     211                                                href='".generer_url_ecrire('xray', "SOURCE=$source")."'
     212                                                target='blank'><xmp>{$match[2]}</xmp> &#128279;</a><xmp>";
     213                },
     214                $print);
     215        $print = preg_replace('/^    /m', '', $print);
     216        return "<xmp>$print</xmp>";;
    185217}
    186218
     
    196228}
    197229
    198 function bouton_objet($objet, $id_objet, $extra) {
     230function bouton_objet($objet, $id_objet, $contexte) {
    199231        $objet_visible = $objet;
    200232        if ($objet == 'secteur')
    201233                $objet = 'rubrique';
    202         elseif (($objet == 'objet')     and isset ($extra['objet']))
     234        elseif (($objet == 'objet')     and isset ($contexte['objet']))
    203235        {
    204                 $objet_visible = $objet = $extra['objet'];
     236                $objet_visible = $objet = $contexte['objet'];
    205237        };
    206238global $MY_SELF;
    207         return "<a href=\"".parametre_url(
    208                                                         parametre_url($MY_SELF,'WHERE', 'CONTEXTE'),
    209                                                         'SEARCH', "\\[id_$objet\\] => $id_objet\n")."\"
    210                                 style=\"float: right\"
    211                                 title=\"Voir tous les caches ayant $objet $id_objet dans leur contexte\">
    212                                 [mm $objet]
    213                         </a>
    214                         <a href='/ecrire/?exec=$objet&id_$objet=$id_objet' target='blank'
     239        return "<a href='/ecrire/?exec=$objet&id_$objet=$id_objet' target='blank'
    215240                                style='float: right'
    216241                                title=\"" . attribut_html(generer_info_entite($id_objet, $objet, 'titre', 'etoile')) . "\">
     
    359384        . $_SERVER['SERVER_NAME']
    360385        // parametre_url fait un urlencode bienvenu pour les regexp qui peuvent contenir des ?
    361         . parametre_url($_SERVER['REQUEST_URI'], 'SEARCH', $_REQUEST['SEARCH']);
     386        . parametre_url($_SERVER['REQUEST_URI'], 'SEARCH', @$_REQUEST['SEARCH']);
    362387
    363388global $IMG_BASE;
     
    12341259                        <input type="hidden" name="OB" value="'.$MYREQUEST['OB'].'">
    12351260                        <input type="hidden" name="exec" value="'.$MYREQUEST['exec'].'">
     1261                        <input type="hidden" name="S_KEY" value="'.$MYREQUEST['S_KEY'].'">
    12361262                <b>Affichage extra:</b>
    12371263                <select name=EXTRA  onChange="form.submit()">
     
    14651491                                                and $data_success) {
    14661492                                                $extra = null;
    1467                                                 $print_contexte=true;
     1493                                                $jolif='joli_cache';
    14681494                                                if (is_array($data)) {
    14691495                                                        switch ($MYREQUEST['EXTRA']) {
    14701496                                                        case 'CONTEXTE':
     1497                                                                $jolif='joli_contexte';
    14711498                                                                if (isset($data['contexte']))
    14721499                                                                        $extra = $data['contexte'];
     
    14771504                                                        case 'CONTEXTES_SPECIAUX':
    14781505                                                                if (isset($data['contexte'])) {
     1506                                                                        $jolif='joli_contexte';
    14791507                                                                        $extra = $data['contexte'];
    14801508                                                                        foreach (array(
     
    14911519
    14921520                                                        case 'HTML_COURT' :
    1493                                                                 $print_contexte = false;
    14941521                                                                $extra = ajuste_longueur_html($data['texte']);
    14951522                                                                break;
    14961523
    14971524                                                        case 'INFO_AUTEUR':
     1525                                                                $jolif='joli_contexte';
    14981526                                                                if (isset($data['contexte'])) {
    14991527                                                                        foreach (array(
     
    15101538
    15111539                                                        case 'INFO_OBJET_SPECIAL':
     1540                                                                $jolif='joli_contexte';
    15121541                                                                if (isset($data['contexte'])) {
    15131542                                                                        $ki = 'id_'.XRAY_OBJET_SPECIAL;
     
    15571586                                                        }
    15581587                                                }
    1559                                                 if ($print_contexte)
    1560                                                         $extra = print_contexte($extra, 1);
     1588                                                $extra = $jolif($extra);
    15611589
    15621590                                                if ($extra)
    1563                                                         echo "<br><xmp>$extra</xmp>";
     1591                                                        echo "<br>".$extra."<br>";
    15641592                                                else
    15651593                                                        echo "<br>(rien)</br>";
     
    16071635                                                if ($data_success) {
    16081636                                                        echo "<p>$menuzoom</p>";
    1609                                                         // echo '<xmp>' . print_r($data, 1) . '</xmp>';
    1610                                                         echo '<xmp>'.print_contexte($data,1).'</xmp>';
     1637                                                        echo joli_cache($data);
    16111638                                                } else {
    16121639                                                        if (!apcu_exists($entry['info']))
  • _plugins_/xray/trunk/xray_options.php

    r112673 r112695  
    33//              xray/xray_options.php
    44//
     5if (!defined('_ECRIRE_INC_VERSION')) return;
    56
    67if (!defined('_ECRIRE_INC_VERSION')) return;
     
    1213        return;
    1314
     15// détecter (?) les vidages de caches yc car saturation de l'espace dispo
     16if (!apc_exists('apc_key_test_flush')) {
     17  spip_log ('xray says : le cache APC a été vidé', 'APC_cache_flush');
     18  apc_store('apc_key_test_flush', 'apc_test_value_flush');
     19}
     20
     21function xray_marqueur_invisible($t) {
     22        recuperer_fond('inclure/xray_marqueur_visible', array('what'=>'session','texte'=>$t));
     23        return '';
     24}
    1425
    1526global $Memoization;
     
    2536};
    2637
    27 // détecter (?) les vidages de caches yc car saturation de l'espace dispo
    28 if (!apc_exists(‘apc_key_test_flush’)) {
    29   spip_log ('xray says : le cache APC a été vidé', 'APC_cache_flush');
    30   apc_store(‘apc_key_test_flush’, ‘apc_test_value_flush’);
    31 }
    32 
    33 function xray_marqueur_invisible($t) {
    34         recuperer_fond('inclure/xray_marqueur_visible', array('what'=>'session','texte'=>$t));
    35         return '';
    36 }
Note: See TracChangeset for help on using the changeset viewer.