Changeset 112695 in spip-zone
- Timestamp:
- Dec 9, 2018, 7:34:41 PM (2 years ago)
- Location:
- _plugins_/xray/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/xray/trunk/paquet.xml
r112676 r112695 2 2 prefix="xray" 3 3 categorie="outil" 4 version="0.20. 1"4 version="0.20.2" 5 5 etat="test" 6 6 compatibilite="[2.1.0;3.2.*]" -
_plugins_/xray/trunk/plugin.xml
r112676 r112695 9 9 <licence>GPL</licence> 10 10 <licence>PHP</licence> 11 <version>0.20. 1</version>11 <version>0.20.2</version> 12 12 <etat>test</etat> 13 13 <description> -
_plugins_/xray/trunk/xray_apc.php
r112676 r112695 142 142 $unser['texte'] = ajuste_longueur_html($unser['texte']); 143 143 } 144 return print_contexte($unser, 1); 145 } 146 147 function print_contexte($extra, $tostring=true) { 144 return joli_cache($unser, false); 145 } 146 147 function 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 } 175 function 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 148 180 $print=print_r($extra,1); 149 if ( is_array($extra)) {150 // On enlève 'Array( ' au début et ')' à la fin151 $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_5731a2e40776724746309c16569cac40158 // et [source] => plugins/paeco/squelettes/inclure/element/tag-rubrique.html159 $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 php166 $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 173 }174 return "[{$match[1]}] => </xmp><a title='{$title}'175 href='".generer_url_ecrire('xray', "SOURCE=$source")."'176 target='blank'><xmp>{$match[2]}</xmp> 🔗</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> 🔗</a><xmp>"; 213 }, 214 $print); 215 $print = preg_replace('/^ /m', '', $print); 216 return "<xmp>$print</xmp>";; 185 217 } 186 218 … … 196 228 } 197 229 198 function bouton_objet($objet, $id_objet, $ extra) {230 function bouton_objet($objet, $id_objet, $contexte) { 199 231 $objet_visible = $objet; 200 232 if ($objet == 'secteur') 201 233 $objet = 'rubrique'; 202 elseif (($objet == 'objet') and isset ($ extra['objet']))234 elseif (($objet == 'objet') and isset ($contexte['objet'])) 203 235 { 204 $objet_visible = $objet = $ extra['objet'];236 $objet_visible = $objet = $contexte['objet']; 205 237 }; 206 238 global $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' 215 240 style='float: right' 216 241 title=\"" . attribut_html(generer_info_entite($id_objet, $objet, 'titre', 'etoile')) . "\"> … … 359 384 . $_SERVER['SERVER_NAME'] 360 385 // 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']); 362 387 363 388 global $IMG_BASE; … … 1234 1259 <input type="hidden" name="OB" value="'.$MYREQUEST['OB'].'"> 1235 1260 <input type="hidden" name="exec" value="'.$MYREQUEST['exec'].'"> 1261 <input type="hidden" name="S_KEY" value="'.$MYREQUEST['S_KEY'].'"> 1236 1262 <b>Affichage extra:</b> 1237 1263 <select name=EXTRA onChange="form.submit()"> … … 1465 1491 and $data_success) { 1466 1492 $extra = null; 1467 $ print_contexte=true;1493 $jolif='joli_cache'; 1468 1494 if (is_array($data)) { 1469 1495 switch ($MYREQUEST['EXTRA']) { 1470 1496 case 'CONTEXTE': 1497 $jolif='joli_contexte'; 1471 1498 if (isset($data['contexte'])) 1472 1499 $extra = $data['contexte']; … … 1477 1504 case 'CONTEXTES_SPECIAUX': 1478 1505 if (isset($data['contexte'])) { 1506 $jolif='joli_contexte'; 1479 1507 $extra = $data['contexte']; 1480 1508 foreach (array( … … 1491 1519 1492 1520 case 'HTML_COURT' : 1493 $print_contexte = false;1494 1521 $extra = ajuste_longueur_html($data['texte']); 1495 1522 break; 1496 1523 1497 1524 case 'INFO_AUTEUR': 1525 $jolif='joli_contexte'; 1498 1526 if (isset($data['contexte'])) { 1499 1527 foreach (array( … … 1510 1538 1511 1539 case 'INFO_OBJET_SPECIAL': 1540 $jolif='joli_contexte'; 1512 1541 if (isset($data['contexte'])) { 1513 1542 $ki = 'id_'.XRAY_OBJET_SPECIAL; … … 1557 1586 } 1558 1587 } 1559 if ($print_contexte) 1560 $extra = print_contexte($extra, 1); 1588 $extra = $jolif($extra); 1561 1589 1562 1590 if ($extra) 1563 echo "<br> <xmp>$extra</xmp>";1591 echo "<br>".$extra."<br>"; 1564 1592 else 1565 1593 echo "<br>(rien)</br>"; … … 1607 1635 if ($data_success) { 1608 1636 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); 1611 1638 } else { 1612 1639 if (!apcu_exists($entry['info'])) -
_plugins_/xray/trunk/xray_options.php
r112673 r112695 3 3 // xray/xray_options.php 4 4 // 5 if (!defined('_ECRIRE_INC_VERSION')) return; 5 6 6 7 if (!defined('_ECRIRE_INC_VERSION')) return; … … 12 13 return; 13 14 15 // détecter (?) les vidages de caches yc car saturation de l'espace dispo 16 if (!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 21 function xray_marqueur_invisible($t) { 22 recuperer_fond('inclure/xray_marqueur_visible', array('what'=>'session','texte'=>$t)); 23 return ''; 24 } 14 25 15 26 global $Memoization; … … 25 36 }; 26 37 27 // détecter (?) les vidages de caches yc car saturation de l'espace dispo28 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.