Changeset 112652 in spip-zone


Ignore:
Timestamp:
Dec 6, 2018, 12:06:23 PM (10 days ago)
Author:
jluc@…
Message:

Nouvel affichage extra : le cache. Icone pour les liens vers le source et le cache intermédiaire php. Allégement des menus legacy

Location:
_plugins_/xray/trunk
Files:
3 edited

Legend:

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

    r112628 r112652  
    22        prefix="xray"
    33        categorie="outil"
    4         version="0.18.0"
     4        version="0.19.0"
    55        etat="test"
    66        compatibilite="[2.1.0;3.2.*]"
  • _plugins_/xray/trunk/plugin.xml

    r112628 r112652  
    99        <licence>GPL</licence>
    1010        <licence>PHP</licence>
    11         <version>0.18.0</version>
     11        <version>0.19.0</version>
    1212        <etat>test</etat>
    1313        <description>
  • _plugins_/xray/trunk/xray_apc.php

    r112629 r112652  
    5454defaults('ADMIN_PASSWORD', 'password'); // Admin Password - CHANGE THIS TO ENABLE!!!
    5555
     56defaults('MAXLEN_HTMLCOURT', 1000);     // Couper les html
     57
    5658// (beckerr) I'm using a clear text password here, because I've no good idea how to let
    5759//           users generate a md5 or crypt password in a easy way to fill it in above
     
    8587
    8688// Strings utils
     89
     90function ajuste_longueur_html($str) {
     91        $court = (!isset($_GET['ZOOM']) or ($_GET['ZOOM'] != 'TEXTELONG'));
     92        $str = trim(preg_replace(array('/ +/', "/(\n\s*)+/"), array(' ',"\n  "), $str));
     93        if ($court and (mb_strlen($str) > MAXLEN_HTMLCOURT))
     94                $str = mb_substr($str, 0, MAXLEN_HTMLCOURT) . '...';
     95        elseif (!$str)
     96                $str = '(vide)';
     97        return "ajuste_longueur=".$str;
     98}
    8799
    88100function is_serialized($str) {
     
    122134
    123135function spipsafe_unserialize($str) {
    124         if (strpos($str, "SPIPTextWheelRuleset") !== false) {
    125                 if (isset($_GET['ZOOM']) and ($_GET['ZOOM'] == 'TEXTECOURT'))
    126                         return "Début : " . substr(trim($str), 0, 80) . '...';
    127                 else
    128                         return "Brut : $str";
    129         }
     136        if (strpos($str, "SPIPTextWheelRuleset") !== false)
     137                return ajuste_longueur_html($str);
    130138        $unser = unserialize($str);
    131139        if (is_array($unser) and isset($unser['texte'])) {
    132140                gunzip_page($unser); // si 'texte' est trop grand il est gzcompress par gzip_page
    133                 if (isset($_GET['ZOOM']) and ($_GET['ZOOM'] == 'TEXTECOURT')) {
    134                         $unser['texte'] = trim(preg_replace('/\s+/', ' ', $unser['texte']));
    135                         if (mb_strlen($unser['texte']) > 80)
    136                                 $unser['texte'] = mb_substr($unser['texte'], 0, 80) . '...';
    137                         elseif (!$unser['texte'])
    138                                 $unser['texte'] = '(vide)';
    139                 }
     141                $unser['texte'] = ajuste_longueur_html($unser['texte']);
    140142        }
    141143        return print_contexte($unser, 1);
    142144}
    143145
    144 function print_contexte($extra, $tostring) {
    145         $print = print_r($extra, 1);
     146function print_contexte($extra, $tostring=true) {
     147        $print=print_r($extra,1);
    146148        if (stripos($print, 'Array') === 0) {
    147149                // On enlève 'Array( ' au début et ')' à la fin
     
    153155                        }, $print);
    154156                // [squelette] => html_5731a2e40776724746309c16569cac40
    155                 $print = preg_replace_callback("/\[(squelette|source)\]\s*=>\s*(html_[a-f0-9]+|[a-z0-9_\.\/\-]+\.html)$/im", function($match)
     157                // et [source] => plugins/paeco/squelettes/inclure/element/tag-rubrique.html
     158                $print = preg_replace_callback("/\[(squelette|source)\]\s*=>\s*(html_[a-f0-9]{32}+|[\w_\.\/\-]+\.html)$/im",
     159                        function($match)
    156160                        {
    157161                                if (!defined('_SPIP_ECRIRE_SCRIPT'))
     
    169173                                return "[{$match[1]}] => </xmp><a title='{$title}'
    170174                                                        href='".generer_url_ecrire('xray', "SOURCE=$source")."'
    171                                                         target='blank'><xmp>{$match[2]}</xmp></a><xmp>";
    172                         }, $print);
    173         }
    174         $print=preg_replace('/^    /m', '', $print);
     175                                                        target='blank'><xmp>{$match[2]}</xmp> &#128279;</a><xmp>";
     176                        },
     177                        $print);
     178                $extra = $print;
     179        }
     180        $extra=preg_replace('/^    /m', '', $extra);
    175181        if ($tostring)
    176                 return $print;
    177         echo $print;
     182                return $extra;
     183        echo $extra;
    178184}
    179185
     
    286292        'ZOOM' => '/^(|TEXTECOURT|TEXTELONG)$/', //
    287293        'WHERE' => '/^(|ALL|HTML|META|CONTEXTE)$/', // recherche dans le contenu
    288         'EXTRA' => '/^(|CONTEXTE|CONTEXTES_SPECIAUX|INFO_AUTEUR|INFO_OBJET_SPECIAL|INVALIDEURS|INVALIDEURS_SPECIAUX|INCLUSIONS'
     294        'EXTRA' => '/^(|CONTEXTE|CONTEXTES_SPECIAUX|HTML_COURT|INFO_AUTEUR|INFO_OBJET_SPECIAL|INVALIDEURS|INVALIDEURS_SPECIAUX|INCLUSIONS'
    289295                .(plugin_est_actif('macrosession') ? '|MACROSESSIONS|MACROAUTORISER' : '')
    290296                .')$/'          // Affichage pour chaque élément de la liste
     
    292298
    293299global $MYREQUEST; // fix apcu
     300        $MYREQUEST = array();
     301
    294302// handle POST and GET requests
    295303if (empty($_REQUEST)) {
     
    317325}
    318326
    319 // check parameter sematics
     327// check parameter semantics
    320328if (empty($MYREQUEST['S_KEY']))
    321329        $MYREQUEST['S_KEY'] = "H";
     
    326334if (!isset($MYREQUEST['COUNT']))
    327335        $MYREQUEST['COUNT'] = 20;
     336if (!isset($MYREQUEST['EXTRA']))
     337        $MYREQUEST['EXTRA'] = '';
     338if (!isset($MYREQUEST['ZOOM']))
     339        $MYREQUEST['ZOOM'] = 'TEXTECOURT';
    328340
    329341global $MY_SELF; // fix apcu
     
    12011213               
    12021214                $cols = 6;
    1203                 echo '
    1204                 <div class=sorting>
    1205                 <form>'
    1206                         ."<input type='hidden' name='OB' value='".$MYREQUEST['OB']."'>
    1207                     <input type='hidden' name='exec' value='".$MYREQUEST['exec']."'>
    1208                 Sorting:
    1209                 <select name=S_KEY  onChange='form.submit()'>
    1210                         <option value=H", $MYREQUEST['S_KEY'] == 'H' ? ' selected' : '', '>Hits</option>
    1211                         <option value=Z', $MYREQUEST['S_KEY'] == 'Z' ? ' selected' : '', '>Size</option>
    1212                         <option value=S', $MYREQUEST['S_KEY'] == 'S' ? ' selected' : '', '>Squelette</option>',
    1213                         '<option value=A', $MYREQUEST['S_KEY'] == 'A' ? ' selected' : '', '>Last accessed</option>
    1214                         <option value=C', $MYREQUEST['S_KEY'] == 'C' ? ' selected' : '', '>Created at</option>';
    1215                 if ($fieldname == 'info')
    1216                         echo '<option value=D', $MYREQUEST['S_KEY'] == 'T' ? ' selected' : '', '>Timeout</option>';
    1217                
    1218                 echo '</select>
    1219                 <select name=SORT  onChange="form.submit()">',
    1220                         '<option value=D', $MYREQUEST['SORT'] == 'D' ? ' selected' : '', '>DESC</option>',
    1221                         '<option value=A', $MYREQUEST['SORT'] == 'A' ? ' selected' : '', '>ASC</option>',
    1222                 '</select>
    1223                 &nbsp;&nbsp;<b>HTML:</b>
    1224                 <select name=ZOOM  onChange="form.submit()">
    1225                         <option value=TEXTECOURT', $MYREQUEST['ZOOM'] == 'TEXTECOURT' ? ' selected' : '', '>Courts</option>
    1226                         <option value=TEXTELONG', $MYREQUEST['ZOOM'] == 'TEXTELONG' ? ' selected' : '', '>Entiers</option>
    1227                 </select>
    1228                 &nbsp;&nbsp;<b>Affichage extra:</b>
     1215               
     1216                echo '<form>
     1217                        <input type="hidden" name="OB" value="'.$MYREQUEST['OB'].'">
     1218                        <input type="hidden" name="exec" value="'.$MYREQUEST['exec'].'">
     1219                <b>Affichage extra:</b>
    12291220                <select name=EXTRA  onChange="form.submit()">
    12301221                        <option value="" ', $MYREQUEST['EXTRA'] == '' ? ' selected' : '', '></option>
    12311222                        <option value=CONTEXTE ', $MYREQUEST['EXTRA'] == 'CONTEXTE' ? ' selected' : '', '>Contexte</option>
    12321223                        <option value=CONTEXTES_SPECIAUX ', $MYREQUEST['EXTRA'] == 'CONTEXTES_SPECIAUX' ? ' selected' : '', '>Contextes spécifiques</option>
     1224                        <option value=HTML_COURT ', $MYREQUEST['EXTRA'] == 'HTML_COURT' ? ' selected' : '', '>HTML (...)</option>
    12331225                        <option value=INFO_AUTEUR ', $MYREQUEST['EXTRA'] == 'INFO_AUTEUR' ? ' selected' : '', '>Infos auteur</option>
    12341226                        <option value=INFO_OBJET_SPECIAL ', $MYREQUEST['EXTRA'] == 'INFO_OBJET_SPECIAL' ? ' selected' : '', '>Infos '.XRAY_OBJET_SPECIAL.'</option>
     
    12551247                        <option value=100', $MYREQUEST['COUNT'] == '100' ? ' selected' : '', '>Top 100</option>
    12561248                        <option value=150', $MYREQUEST['COUNT'] == '150' ? ' selected' : '', '>Top 150</option>
    1257                         <option value=200', $MYREQUEST['COUNT'] == '200' ? ' selected' : '', '>Top 200</option>
     1249                        <option value=250', $MYREQUEST['COUNT'] == '250' ? ' selected' : '', '>Top 250</option>
    12581250                        <option value=500', $MYREQUEST['COUNT'] == '500' ? ' selected' : '', '>Top 500</option>
    12591251                        <option value=0  ', $MYREQUEST['COUNT'] == '0' ? ' selected' : '', '>All</option>
     
    14561448                                                and $data_success) {
    14571449                                                $extra = null;
    1458                                                 $liens = '';
     1450                                                $print_contexte=true;
    14591451                                                if (is_array($data)) {
    14601452                                                        switch ($MYREQUEST['EXTRA']) {
     
    14651457                                                                        $extra = '(non défini)';
    14661458                                                                break;
     1459
    14671460                                                        case 'CONTEXTES_SPECIAUX':
    14681461                                                                if (isset($data['contexte'])) {
     
    14791472                                                                        $extra = '(non défini)';
    14801473                                                                break;
     1474
     1475                                                        case 'HTML_COURT' :
     1476                                                                $print_contexte = false;
     1477                                                                $extra = ajuste_longueur_html($data['texte']);
     1478                                                                break;
     1479
    14811480                                                        case 'INFO_AUTEUR':
    14821481                                                                if (isset($data['contexte'])) {
     
    14921491                                                                };
    14931492                                                                break;
     1493
    14941494                                                        case 'INFO_OBJET_SPECIAL':
    14951495                                                                if (isset($data['contexte'])) {
     
    15401540                                                        }
    15411541                                                }
    1542                                                 if ($extra = print_contexte($extra, 1))
     1542                                                if ($print_contexte)
     1543                                                        $extra = print_contexte($extra, 1);
     1544
     1545                                                if ($extra)
    15431546                                                        echo "<br><xmp>$extra</xmp>";
    1544                                                 if ($liens)     // inutilisé désormais en fait
    1545                                                         echo "<small style='float:right'>$liens</small>";
     1547                                                else
     1548                                                        echo "<br>(rien)</br>";
    15461549                                        }
    15471550                                        echo '</td>
     
    15731576                                                echo '<td colspan="7">';
    15741577                                               
    1575                                                 if (isset($_GET['ZOOM']) and ($_GET['ZOOM'] == 'TEXTECOURT')) {
     1578                                                if (!isset($_GET['ZOOM']) or ($_GET['ZOOM'] != 'TEXTELONG')) {
    15761579                                                        $url      = parametre_url($self, 'ZOOM', 'TEXTELONG') . "#key-$sh";
    15771580                                                        $menuzoom = "<a href='$url' class='menuzoom'>Voir tout le texte</a> ";
     1581                                                        if (isset($data['texte']))
     1582                                                                $data['texte'] = ajuste_longueur_html($data['texte']);
    15781583                                                } else {
    15791584                                                        $url      = parametre_url($self, 'ZOOM', 'TEXTECOURT') . "#key-$sh";
     
    15851590                                                if ($data_success) {
    15861591                                                        echo "<p>$menuzoom</p>";
    1587                                                         echo '<xmp>' . print_r($data, 1) . '</xmp>';
     1592                                                        // echo '<xmp>' . print_r($data, 1) . '</xmp>';
     1593                                                        echo '<xmp>'.print_contexte($data,1).'</xmp>';
    15881594                                                } else {
    15891595                                                        if (!apcu_exists($entry['info']))
Note: See TracChangeset for help on using the changeset viewer.