Changeset 39801 in spip-zone


Ignore:
Timestamp:
Aug 12, 2010, 11:03:37 AM (9 years ago)
Author:
real3t@…
Message:

Meilleur title pour les liens vers les documents :
Intitulé du document (ou à défaut : Document), type, poids et langue (voir http://permalink.gmane.org/gmane.comp.web.spip.zone/19110)

Location:
_plugins_/accessibilite
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/accessibilite/accessibilite_pipelines.php

    r39797 r39801  
    22
    33function accessibilite_pre_liens($texte){
    4         // uniquement dans le public
    5         //if (test_espace_prive()) return $texte;
     4        define(_ACCESSIBILITE_CONSERVER_BULLE, false);
    65        $regs = $match = array();
    76        // pour chaque lien
    87        if (preg_match_all(_RACCOURCI_LIEN, $texte, $regs, PREG_SET_ORDER)) {   
    98                foreach ($regs as $reg) {
    10                         // si le lien est de type raccourcis "doc40"
     9                        // Attributs du lien (texte, bulle, lang)
     10                        $intitule = traiter_raccourci_lien_atts($reg[1]);
     11                        // si le lien est de type raccourcis "doc40"                   
    1112                        $type = typer_raccourci($reg[4]);
    1213                        if ($type[0] == 'document') {
    1314                                // Rechercher la taille du Doc dont l'id est dans $type[2]
    1415                                $row = sql_fetsel(
    15                                         array('taille', 'spip_types_documents.titre'),
     16                                        array('spip_documents.titre as T1', 'taille', 'spip_types_documents.titre as T2'),
    1617                                        array('spip_documents', 'spip_types_documents'),
    1718                                        array('id_document='.$type[2], 'spip_documents.extension=spip_types_documents.extension')
    1819                                        );
    19                                 $title = (strpos($reg[0], '|') ? ' - ':'|')
    20                                         . $row['titre']
    21                                         . ' (' . taille_en_octets($row['taille']) . ')';
    22                                 $lien = substr_replace($reg[0], $title, strpos($reg[0], '->'), 0);
     20                                $textelien = ($intitule[0]) ? $intitule[0]:$row['T1'];
     21                                $langue = ($intitule[2]) ? '{'.$intitule[2].'}':'';
     22                                // Si pas de titre pour le doc, remplacer par "Document"
     23                                $titredoc = ($row['T1']) ? $row['T1']:_T('info_document');
     24                                // Quand un title est spécifie il doit etre plus plus long que l'intitule
     25                                // car les lecteurs d'ecran lisent le plus long des deux
     26                                $title = ((($intitule[1]) && _ACCESSIBILITE_CONSERVER_BULLE) ? $titredoc. ' – ' .$intitule[1]:$titredoc) // Le texte du lien + Nom du doc
     27                                        . ' – ' . $row['T2'] // Le type du doc
     28                                        . ' (' . taille_en_octets($row['taille']) . ')' // sa taille
     29                                        . (($intitule[2]) ? ' ('.traduire_nom_langue($intitule[2]).')':''); // La langue presente dans le lien (malheureusement, info non disponible dans la table spip_documents)
     30                               
     31                                // Rebatir le raccourcis typo du lien avec les informations modifiees
     32                                $lien = '['. $textelien . '|'. $title .$langue .'->'. $reg[4] .']';
    2333                                $texte = str_replace($reg[0], $lien, $texte);
    2434                        }
  • _plugins_/accessibilite/plugin.xml

    r39797 r39801  
    77        </auteur>
    88        <version>
    9         0.5
     9        0.6
    1010        </version>
    1111        <etat>
Note: See TracChangeset for help on using the changeset viewer.