Browse Source

feat: Cloisonner la visu sur les serveurs où le cache APCU est mutualisé par plusieurs sites si la constante XRAY_NEPASAFFICHER_AUTRES_SITES est true (cas par défaut).

Si la constante est false, une checkbox permet de désactiver ponctuellement la visu des caches des autres sites.
Sécu et confidentialité des caches : c'est adapté lorsque les différents sites sont gérés par un même webmestre, qui peut adapter la constante selon l'utilisateur. Pour un multihébergement pro industrialisé, l'admin systeme doit forcer la constante à true en amont des mes_options des sites.
Up Y
Related: #2
master
JLuc 3 months ago
parent
commit
42178a671f
  1. 21
      inc/xray.php
  2. 4
      paquet.xml
  3. 30
      xray_apc.php

21
inc/xray.php

@ -197,9 +197,20 @@ function xray_menu_scanner () {
<option value=MACROSESSIONS ', $MYREQUEST['EXTRA'] == 'MACROSESSIONS' ? ' selected' : '', '>#_SESSION</option>
<option value=MACROAUTORISER ', $MYREQUEST['EXTRA'] == 'MACROAUTORISER' ? ' selected' : '', '>#_AUTORISER_SI</option>
</select>
</span>
</p>';
</span>';
$xray_nepasafficher_autres_sites = true;
if (!XRAY_NEPASAFFICHER_AUTRES_SITES) {
$xray_nepasafficher_autres_sites = $_GET['xray_nepasafficher_autres_sites'] ?? XRAY_NEPASAFFICHER_AUTRES_SITES;
echo '<input type="checkbox" style="margin-left: 4em;"
name="xray_nepasafficher_autres_sites" id="xray_nepasafficher_autres_sites"
'.($xray_nepasafficher_autres_sites ? 'checked' : '').'
><label for="xray_nepasafficher_autres_sites">Seulement '._CACHE_NAMESPACE.'</label>';
}
else {
echo '<span style="margin-left: 4em;">Préfixe exigé : '._CACHE_NAMESPACE.'</span>';
}
echo '</p>';
echo '<p><b>Filtrer caches : </b>
<span style="margin-left: 1em; "></span>
Types
@ -218,7 +229,7 @@ function xray_menu_scanner () {
</select>
<span style="margin-left: 1em; "></span>
&nbsp;&nbsp;&nbsp;
<span title="REGEXP">avec</span> <input name=SEARCH value="', $MYREQUEST['SEARCH'], '" type=text size=25/>
<span title="REGEXP">avec</span> <input name=SEARCH value="', $MYREQUEST['SEARCH'], '" type=text size=25 style="line-height: 2em" />
<b>dans</b>
<select name=WHERE onChange="form.submit()">
<option value="" ', $MYREQUEST['WHERE'] == '' ? ' selected' : '', '>Noms des caches</option>
@ -232,7 +243,9 @@ function xray_menu_scanner () {
</select>
&nbsp;&nbsp;&nbsp;
<input type=submit id="ListSubmit" name="ListSubmit" value="List">';
<input type=submit id="ListSubmit" name="ListSubmit" value="List"
style="font-size: larger; padding: 0.1em 3em; background: green;"
>';
if (test_plugin_actif ('cachelab')) {
echo '<input type=submit id="DelSubmit" name="DelSubmit" value="X" style="color:red">';

4
paquet.xml

@ -1,9 +1,9 @@
<paquet
prefix="xray"
categorie="outil"
version="1.7.5"
version="1.8.0"
etat="stable"
compatibilite="[4.0.0;4.0.*]"
compatibilite="[4.0.0;4.1.*]"
logo="prive/themes/spip/images/xray-32.png"
documentation="https://contrib.spip.net/4946"
>

30
xray_apc.php

@ -63,9 +63,20 @@ defaults('GRAPH_SIZE', 400); // Image size
// defaults('PROXY', 'tcp://127.0.0.1:8080');
// _CACHE_NAMESPACE est défini par memoization et préfixe chaque nom de cache SPIP
// On ne souhaite pas que cette partie du nom s'affiche sur chaque ligne
define('XRAY_NEPASAFFICHER_DEBUTNOMCACHE', _CACHE_NAMESPACE.'cache:');
/**
* _CACHE_NAMESPACE est défini par memoization et préfixe chaque nom de cache SPIP
* On ne souhaite pas que cette partie du nom s'affiche sur chaque ligne
* */
if (!defined ('XRAY_NEPASAFFICHER_DEBUTNOMCACHE')) {
define ('XRAY_NEPASAFFICHER_DEBUTNOMCACHE', true);
}
/**
* Par défaut on ne veut QUE afficher les caches du site courant
*/
if (!defined('XRAY_NEPASAFFICHER_AUTRES_SITES')) {
define ('XRAY_NEPASAFFICHER_AUTRES_SITES', true);
}
////////// END OF DEFAULT CONFIG AREA /////////////////////////////////////////////////////////////
@ -1411,13 +1422,20 @@ EOB;
}
// Maintenant on liste les caches
$displayed_name_org = $displayed_name = htmlentities(strip_tags($entry['info'], ''), ENT_QUOTES, 'UTF-8');
$displayed_name = str_replace (_CACHE_NAMESPACE.'cache:', '', $displayed_name);
$displayed_name = str_replace (_CACHE_NAMESPACE, '<span title="Pas un cache squelette" style="color:orange">[NON SQUEL]</span> ', $displayed_name);
$xray_nepasafficher_autres_sites = ($_GET['xray_nepasafficher_autres_sites'] ?? XRAY_NEPASAFFICHER_AUTRES_SITES);
if ($xray_nepasafficher_autres_sites and ($displayed_name_org == $displayed_name)) {
continue;
}
$i_list++;
$size_list += $entry['mem_size'];
$sh = md5($entry["info"]);
$displayed_name = htmlentities(strip_tags($entry['info'], ''), ENT_QUOTES, 'UTF-8');
if (defined('XRAY_NEPASAFFICHER_DEBUTNOMCACHE')) {
$displayed_name = str_replace (XRAY_NEPASAFFICHER_DEBUTNOMCACHE, '', $displayed_name);
if (!XRAY_NEPASAFFICHER_DEBUTNOMCACHE) {
$displayed_name = $displayed_name_org;
}
echo '<tr id="key-' . $sh . '" class=tr-', $i_list % 2, '>',
"<td class='td-0' style='position: relative'>

Loading…
Cancel
Save