Changeset 112965 in spip-zone


Ignore:
Timestamp:
Dec 19, 2018, 8:00:09 PM (3 months ago)
Author:
jluc@…
Message:

Stats nb caches par squelette avec lien + bouton Del sur les résultats du filtrage si cachelab est actif + meilleure présentation des inputs commandant l'affichage et le filtrage

Location:
_plugins_/xray/trunk
Files:
3 edited

Legend:

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

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

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

    r112793 r112965  
    263263}
    264264
     265//
     266// Ça enlève le préfixe non affiché plus le préfixe md5
     267// et ça supprime le suffixe de session
     268// MAIS ça ne supprime pas les suffixes /12354 ou /spip ou autres
     269// qu'il y a pour les squelettes appelés en tant que pages
     270// et qui viennent de la forme de l'url visible par l'internaute
     271//
    265272function cache_get_squelette($cle) {
    266273        $squelette = substr(str_replace(XRAY_NEPASAFFICHER_DEBUTNOMCACHE, '', $cle), 33);
     
    11661173               
    11671174                echo '<form>
    1168                         <input type="hidden" name="OB" value="'.$MYREQUEST['OB'].'">
    1169                         <input type="hidden" name="exec" value="'.$MYREQUEST['exec'].'">
    1170                         <input type="hidden" name="S_KEY" value="'.$MYREQUEST['S_KEY'].'">
    1171                         <input type="hidden" name="TYPELISTE" value="'.$MYREQUEST['TYPELISTE'].'">
    1172                 <b>Affichage extra:</b>
    1173                 <select name=EXTRA  onChange="form.submit()">
    1174                         <option value="" ', $MYREQUEST['EXTRA'] == '' ? ' selected' : '', '></option>
    1175                         <option value=CONTEXTE ', $MYREQUEST['EXTRA'] == 'CONTEXTE' ? ' selected' : '', '>Contexte</option>
    1176                         <option value=CONTEXTES_SPECIAUX ', $MYREQUEST['EXTRA'] == 'CONTEXTES_SPECIAUX' ? ' selected' : '', '>Contextes spécifiques</option>
    1177                         <option value=HTML_COURT ', $MYREQUEST['EXTRA'] == 'HTML_COURT' ? ' selected' : '', '>HTML (...)</option>
    1178                         <option value=INFO_AUTEUR ', $MYREQUEST['EXTRA'] == 'INFO_AUTEUR' ? ' selected' : '', '>Infos auteur</option>
    1179                         <option value=INFO_OBJET_SPECIAL ', $MYREQUEST['EXTRA'] == 'INFO_OBJET_SPECIAL' ? ' selected' : '', '>Infos '.XRAY_OBJET_SPECIAL.'</option>
    1180                         <option value=INVALIDEURS ', $MYREQUEST['EXTRA'] == 'INVALIDEURS' ? ' selected' : '', '>Invalideurs</option>
    1181                         <option value=INVALIDEURS_SPECIAUX ', $MYREQUEST['EXTRA'] == 'INVALIDEURS_SPECIAUX' ? ' selected' : '', '>Invalideurs spécifiques</option>
    1182                         <option value=INCLUSIONS ', $MYREQUEST['EXTRA'] == 'INCLUSIONS' ? ' selected' : '', '>&lt;INCLURE&gt;</option>
    1183                         <option value=MACROSESSIONS ', $MYREQUEST['EXTRA'] == 'MACROSESSIONS' ? ' selected' : '', '>#_SESSION</option>
    1184                         <option value=MACROAUTORISER ', $MYREQUEST['EXTRA'] == 'MACROAUTORISER' ? ' selected' : '', '>#_AUTORISER_SI</option>
    1185                 </select>';
    1186        
    1187                 echo "<span style='margin-left: 2em; '></span>";
     1175                <input type="hidden" name="OB" value="'.$MYREQUEST['OB'].'">
     1176                <input type="hidden" name="exec" value="'.$MYREQUEST['exec'].'">
     1177                <input type="hidden" name="S_KEY" value="'.$MYREQUEST['S_KEY'].'">
     1178                <input type="hidden" name="TYPELISTE" value="'.$MYREQUEST['TYPELISTE'].'">
     1179                <p style="margin-bottom:10px">
     1180                        <b style="margin-bottom:5px">Lister :</b>
     1181                        <span style="margin-left: 1em; "></span>
     1182                        <select name=COUNT onChange="form.submit()" dir="rtl">
     1183                                <option value=10 ', $MYREQUEST['COUNT'] == '10' ? ' selected' : '', ' style="text-align: right">10</option>
     1184                                <option value=20 ', $MYREQUEST['COUNT'] == '20' ? ' selected' : '', '>20</option>
     1185                                <option value=50 ', $MYREQUEST['COUNT'] == '50' ? ' selected' : '', '> 50</option>
     1186                                <option value=100', $MYREQUEST['COUNT'] == '100' ? ' selected' : '', '>100</option>
     1187                                <option value=150', $MYREQUEST['COUNT'] == '150' ? ' selected' : '', '>150</option>
     1188                                <option value=250', $MYREQUEST['COUNT'] == '250' ? ' selected' : '', '>250</option>
     1189                                <option value=500', $MYREQUEST['COUNT'] == '500' ? ' selected' : '', '>500</option>
     1190                                <option value=0  ', $MYREQUEST['COUNT'] == '0' ? ' selected' : '', '>Tous</option>
     1191                        </select>&nbsp;&nbsp;';
     1192
    11881193                if ($MYREQUEST['TYPELISTE']=='squelettes') {
    11891194                        echo '<a href="'.parametre_url($MY_SELF, 'TYPELISTE', 'caches').'">Caches</a>
     
    11941199                        | <a href="'.parametre_url($MY_SELF, 'TYPELISTE', 'squelettes').'">Squelettes</a>';
    11951200                };
    1196 
    1197                 echo '<p><b>Types cache:</b>
     1201                echo '
     1202                        <span style="margin-left: 1em; "></span>
     1203                        <b>Afficher :</b>
     1204                        <select name=EXTRA  onChange="form.submit()">
     1205                                <option value="" ', $MYREQUEST['EXTRA'] == '' ? ' selected' : '', '></option>
     1206                                <option value=CONTEXTE ', $MYREQUEST['EXTRA'] == 'CONTEXTE' ? ' selected' : '', '>Contexte</option>
     1207                                <option value=CONTEXTES_SPECIAUX ', $MYREQUEST['EXTRA'] == 'CONTEXTES_SPECIAUX' ? ' selected' : '', '>Contextes spécifiques</option>
     1208                                <option value=HTML_COURT ', $MYREQUEST['EXTRA'] == 'HTML_COURT' ? ' selected' : '', '>HTML (...)</option>
     1209                                <option value=INFO_AUTEUR ', $MYREQUEST['EXTRA'] == 'INFO_AUTEUR' ? ' selected' : '', '>Infos auteur</option>
     1210                                <option value=INFO_OBJET_SPECIAL ', $MYREQUEST['EXTRA'] == 'INFO_OBJET_SPECIAL' ? ' selected' : '', '>Infos '.XRAY_OBJET_SPECIAL.'</option>
     1211                                <option value=INVALIDEURS ', $MYREQUEST['EXTRA'] == 'INVALIDEURS' ? ' selected' : '', '>Invalideurs</option>
     1212                                <option value=INVALIDEURS_SPECIAUX ', $MYREQUEST['EXTRA'] == 'INVALIDEURS_SPECIAUX' ? ' selected' : '', '>Invalideurs spécifiques</option>
     1213                                <option value=INCLUSIONS ', $MYREQUEST['EXTRA'] == 'INCLUSIONS' ? ' selected' : '', '>&lt;INCLURE&gt;</option>
     1214                                <option value=MACROSESSIONS ', $MYREQUEST['EXTRA'] == 'MACROSESSIONS' ? ' selected' : '', '>#_SESSION</option>
     1215                                <option value=MACROAUTORISER ', $MYREQUEST['EXTRA'] == 'MACROAUTORISER' ? ' selected' : '', '>#_AUTORISER_SI</option>
     1216                        </select>
     1217                        </p>';
     1218       
     1219                echo '<p><b>Filtrer caches : </b>
     1220                <span style="margin-left: 1em; "></span>
     1221                Types
    11981222                <select name=TYPECACHE  onChange="form.submit()">
    11991223                        <option value=ALL', $MYREQUEST['TYPECACHE'] == 'ALL' ? ' selected' : '', '>Tous</option>
     
    12051229                        <option value=FORMULAIRES', $MYREQUEST['TYPECACHE'] == 'FORMULAIRES' ? ' selected' : '', '>Formulaires</option>
    12061230                </select>
    1207                 <select name=COUNT onChange="form.submit()">
    1208                         <option value=10 ', $MYREQUEST['COUNT'] == '10' ? ' selected' : '', '>Top 10</option>
    1209                         <option value=20 ', $MYREQUEST['COUNT'] == '20' ? ' selected' : '', '>Top 20</option>
    1210                         <option value=50 ', $MYREQUEST['COUNT'] == '50' ? ' selected' : '', '>Top 50</option>
    1211                         <option value=100', $MYREQUEST['COUNT'] == '100' ? ' selected' : '', '>Top 100</option>
    1212                         <option value=150', $MYREQUEST['COUNT'] == '150' ? ' selected' : '', '>Top 150</option>
    1213                         <option value=250', $MYREQUEST['COUNT'] == '250' ? ' selected' : '', '>Top 250</option>
    1214                         <option value=500', $MYREQUEST['COUNT'] == '500' ? ' selected' : '', '>Top 500</option>
    1215                         <option value=0  ', $MYREQUEST['COUNT'] == '0' ? ' selected' : '', '>All</option>
    1216                 </select>
     1231                <span style="margin-left: 1em; "></span>
    12171232                &nbsp;&nbsp;&nbsp;
    1218                 <span title="REGEXP">Chercher:</span> <input name=SEARCH value="', $MYREQUEST['SEARCH'], '" type=text size=25/>
    1219                 <b>Dans:</b>
     1233                <span title="REGEXP">avec</span> <input name=SEARCH value="', $MYREQUEST['SEARCH'], '" type=text size=25/>
     1234                <b>dans</b>
    12201235                <select name=WHERE onChange="form.submit()">
    12211236                        <option value="" ', $MYREQUEST['WHERE'] == '' ? ' selected' : '', '>Noms des caches</option>
     
    12261241                </select>
    12271242                &nbsp;&nbsp;&nbsp;
    1228                 <input type=submit value="GO!">
    1229                 </p></form></div>
     1243                <input type=submit id="ListSubmit" name="ListSubmit" value="List">';
     1244
     1245                if (plugin_est_actif('cachelab'))
     1246                        echo '<input type=submit id="DelSubmit"  name="DelSubmit" value="X" style="color:red">';
     1247
     1248                echo '</p>
     1249                </form>
    12301250                ';
    12311251               
     
    12481268                                        <tbody><tr>';
    12491269                if ($MYREQUEST['TYPELISTE']=='squelettes')
    1250                         echo '<th align="left">', sortheader('S', 'Squelettes').'</th>';
     1270                        echo '<th align="left">', sortheader('S', 'Squelettes').'</th><th></th>';
    12511271                else {
    12521272                        echo '<th align="left">Caches - ', sortheader('S', 'tri par Squelette').'</th>',
     
    13781398                                                or ($also_required($entry['info'], $data)== $also_required_bool))
    13791399                                        ) {
    1380 
    1381                                         if ($MYREQUEST['TYPELISTE']=='squelettes') {
    1382 
     1400                                        $descriptif = "%s caches listés, sur un total de %s";
     1401                                        if ($_REQUEST['DelSubmit']=='X') {
     1402                                                cachelab_cibler('del', array ('chemin'=>$entry['info']));
     1403                                                $i++;
     1404                                                $descriptif = "%s caches effacés sur un total de %s caches";
     1405                                                continue;
     1406                                        }
     1407                                        elseif ($MYREQUEST['TYPELISTE']=='squelettes') {
     1408                                                $descriptif = "%s squelettes listés, pour un total de %s caches";
    13831409                                                $joli = array();
    13841410                                                if (!is_array($data)) { // textwheel etc
    13851411                                                        continue;
    13861412                                                }
    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é
     1413                                                $radical = cache_get_squelette($entry['info']);
     1414
     1415                                                if (isset($data['source']))
     1416                                                        $source = $data['source'];
     1417                                                else
     1418                                                        // talons (sans 'source')
     1419                                                        // Le radical est relatif aux CHEMINs SPIP
     1420                                                        // Pour le lien il faut l'adresse systeme
     1421                                                        $source = find_in_path($radical.'.html');
     1422
     1423                                                if (array_key_exists($radical, $liste_squelettes)) {    // déjà listé
     1424                                                        $liste_squelettes[$radical]['nb']++;
     1425                                                        if (!$liste_squelettes[$radical]['source'])     // au cas où
     1426                                                                $liste_squelettes[$radical]['source'] = $source;
    14051427                                                        continue;
    14061428                                                }
    14071429
    14081430                                                // squelette pas encore listé
    1409                                                 $i++;
    1410                                                 $liste_squelettes[] = $squelette;
    1411                                                 echo "<tr class='tr-".($i % 2)."'><td colspan='7'>$i) ".joli_cache($joli)."</td></tr>";
    1412                                                 if ($i == $MYREQUEST['COUNT'])
    1413                                                         break;
     1431                                                if ($i < $MYREQUEST['COUNT']) {
     1432                                                        $i++;
     1433                                                        $liste_squelettes[$radical] = array('nb'=>1, 'source'=>$source);
     1434                                                }
     1435                                                // Même aprés avoir le bon compte à afficher, on continue à scanner les caches
     1436                                                // pour avoir à la fin le bon nombre de caches par squelettes
    14141437                                                continue;
    1415                                         }
     1438                                        } // Fin du cas "on liste les squelettes"
     1439                                       
     1440                                        // Maintenant on liste les caches
    14161441                                        $i++;
    14171442                                        $sh = md5($entry["info"]);
     
    16151640                        echo '<tr class=tr-0><td class="center" colspan=', $cols, '><i>No data</i></td></tr>';
    16161641                }
    1617                 echo <<< EOB
     1642                // Si on liste les squelettes, on a récolté et compté mais encore rien affiché
     1643                if ($MYREQUEST['TYPELISTE']=='squelettes') {
     1644                        $i=1;
     1645                        foreach ($liste_squelettes as $radical => $s) {
     1646                                $squel_caches = parametre_url(
     1647                                                        parametre_url($self_pour_lien, 'SEARCH', $radical),
     1648                                                        'TYPELISTE', 'caches');
     1649                                // Les dossiers de squelettes déclarés comme public dans paquet.xml
     1650                                // ne sont pas utilisés par find_in_path dans le privé
     1651
     1652                                echo "<tr class='tr-".($i % 2)."'>
     1653                                        <td>$i) ";
     1654                                if (!$s['source'])
     1655                                        echo $radical.' <span title="Parfois la forme du squelette n’est pas prévue par CacheLab, mais avez-vous déclaré le chemin de vos dossiers publics de squelettes dans GLOBALS[\'dossier_squelette\'] ?">(échec find_in_path)</span>';
     1656                                else
     1657                                        echo joli_cache(array('source'=>$s['source']));
     1658                                echo "</td>
     1659                                        <td><a href='$squel_caches'>[{$s['nb']} caches]</a></td>
     1660                                </tr>";
     1661                                $i++;
     1662                        }
     1663                }
     1664                echo "
    16181665                </tbody></table>
    1619 EOB;
    1620                
    1621                 if ($list && $i < count($list)) {
    1622                         echo "<a href=\"$MY_SELF", "&COUNT=0\"><i>", count($list) - $i, ' more available...</i></a>';
    1623                 }
    1624                
    1625                 echo <<< EOB
    1626                 </div>
    1627 EOB;
     1666                </div>";
     1667
     1668                printf("<p>$descriptif</p>", $i, count($list));
     1669
    16281670                break;
    16291671       
Note: See TracChangeset for help on using the changeset viewer.