source: spip-zone/tags/skiplink-1/insere_skiplink.php

Last change on this file was 28525, checked in by cedric@…, 13 years ago

[24806] n'est pas une bonne solution :

  • le pipeline affichage_final est un pipe non cache, appele a chaque hit,

il faut donc veiller a ne pas charger son calcul

  • l'insertion a la main par le webmestre est faite pour 2 raisons possibles
    • optimisation des performance
    • prendre la main pour maitriser la place et le rendu

avec [24806] tous les avantages de l'insertion manuelle sont perdus :

  • la perf reste degradee par plusieurs regexp calculee dans tous les cas
  • le webmestre se fait imposer le lien vers le moteur de recherche meme si il n'en veut pas

On revert en vertu du principe KISS

File size: 1.0 KB
Line 
1<?php
2
3# inserer les liens dans la page
4function skiplink_affichage_final(&$page) {
5        // ne pas se fatiguer si pas HTML
6        if (!$GLOBALS['html']
7          OR strpos($page, 'id="raccourcis"') # pas deux fois, au cas ou !
8        )
9                return $page;
10
11        if (!function_exists('recuperer_fond')) include_spip('public/assembler');
12        $recherche_existe = (preg_match(',<input.*?name[ ]*=[ ]*"recherche".*?>,i', $page) == 1 ? 'oui' : 'non');
13        $raccourcis = recuperer_fond('raccourcis', array('lang'=>$GLOBALS['spip_lang'], 'recherche'=>$recherche_existe));
14        preg_match(',<body\b.*?>,i', $page, $regs);
15 
16        if ($regs)
17                $page = substr_replace($page, $raccourcis, (strpos($page, $regs[0]) + strlen($regs[0])), 0);
18        $remonter = recuperer_fond('remonter', array('lang'=>$GLOBALS['spip_lang']));
19        $ancre_basse = recuperer_fond('ancre_basse', array('lang'=>$GLOBALS['spip_lang']));
20        preg_match(',<\/body\b.*?>,i', $page, $regs);
21        if ($regs)
22                $page = substr_replace($page, $ancre_basse, strpos($page, $regs[0]), 0);
23
24        return $page;
25}
26
27?>
Note: See TracBrowser for help on using the repository browser.