Aller au contenu

ste

Hubmaster
  • Compteur de contenus

    167
  • Inscrit(e) le

  • Dernière visite

Messages postés par ste

  1. Bonsoir,

    enfin, je viens de comprendre (et donc de me mettre) au fameux couple XML-PHP.

    J'ai donc créée (dans l'immédiat - histoire de m'y exercer) une class PHP pour parser du XML !

    J'aurais 2 questions, svp :

    -1- dans ma fichier xml, j'ai comme attribut sur certaines balises 'xml:lang' pour la déclaration correspondante...

    Hors, quand je cherche à récupérer la valeur de mon tableau $attribs["XML:LANG"], j'ai une valeur vide retournée ! Alors qu'elle est affectée... dans mon fichier xml.

    Cette valeur ne peut-être lue parce qu'elle correspond à une déclaration xml native ?

    -2- dans mon fichier xml, j'ai un élément title dont le but (évident !) est de correspondre à l'élément title de la future page html !...

    Pour l'instant, le temps de mon test, histoire de vérifier que mon parser fonctionne, je le laisse tourner ainsi... mais mon désir est de pouvoir capturer cet élément pour le déclarer autrement, à part... pourriez-vous m'aiguiller et me donner une idée de comment le réaliser ?

    (certainement à retourner dans une function que je pourrais appeler aprés... !?)

    Le fichier xml : http://dev.stephane-huc.net/test/Ad-Myre_project.xml

    Quant à ma class PHP :

    <?php
    class parser_xml {
       var $abbr;
       var $parser;
       var $owner;
       var $file;
       var $link;
       var $elementStarter;
       var $elementEnder;
       
       function parser_xml($file) {
           $this->verif_file($file);
           
           $this->elementStarter = array (
               "DOC" =>    "<div id=\"project\">",
               "NAME" =>   "<h2",
               "TITLE" =>  "<title>",
               "P" =>      "<p>",
               "BOLD" =>   "<strong>",
               "ABBR" =>   "<acronym",
               "CHAPTER" =>        "<h3>",
               "LIST" =>   "<ul>",
               "ITEM" =>   "<li>",
               "DEFINITION" =>     "<dl>",
               "DEFTITLE" =>      "<dt>",
               "DEFITEM"=>        "<dd>",
               "IT" =>     "<em>",
               "LINK" =>   "<a",
               "BR" =>     "<br",
           );
           
           $this->elementEnder = array (
               "DOC" =>    "</div>",
               "NAME" =>   "</h2>",
               "TITLE" =>  "</title>",
               "P" =>      "</p>",
               "BOLD" =>   "</strong>",
               "ABBR" =>   "</acronym>",
               "CHAPTER" =>        "</h3>",
               "LIST" =>   "</ul>",
               "ITEM" =>   "</li>",
               "DEFINITION" =>     "</dl>",
               "DEFTITLE" =>      "</dt>",
               "DEFITEM"=>        "</dd>",
               "IT" =>     "</em>",
               "LINK" =>   "</a>",
               "BR" =>     " />",
           );
       }
       
       function verif_file($file) {
           $this->owner = fileOwner("index.php");
           
           if(file_exists($file) && is_file($file) && is_readable($file)
               && (fileOwner($file) == $this->owner))
               $this->file = $file;
       }
       
       function first_element($parser, $name, $attribs) {
           
           if($name == "NAME") {
               $this->name = $this->elementStarter[$name];
               
               if(!empty($attribs["ID"])) {
                   $this->name .= " id=\"";
                   $this->name .= $attribs["ID"];
                   $this->name .= "\"><a name=\"";
                   $this->name .= $attribs["ID"];
                   $this->name .= "\"></a";
               }
               
               $this->name .= ">";
               
               echo $this->name;
           }
           elseif($name == "LINK") {
               $this->link = $this->elementStarter[$name];
               $this->link .= " hreflang=\"";
               $this->link .= $attribs["XML:LANG"];
               $this->link .= "\" href=\"";
               $this->link .= $attribs["XLINK:HREF"];
               $this->link .= "\" title=\"";
               $this->link .= $attribs["XLINK:TITLE"];
               $this->link .= "\"";
               $this->link .= ">";
               
               echo $this->link;
           }
           elseif( $name == "ABBR") {
               $this->abbr = $this->elementStarter[$name];
               $this->abbr .= " lang=\"";
               $this->abbr .= $attribs["XML:LANG"];
               $this->abbr .= "\" title=\"";
               $this->abbr .= $attribs["DEF"];
               $this->abbr .= "\"";
               $this->abbr .= ">";
               
               echo $this->abbr;
           }
           else echo $this->elementStarter[$name];
       }
       
       function end_element($parser, $name) {

    echo $this->elementEnder[$name];
       }
       
       function display_text($parser, $data) {
    echo $data;
       }
       
       function manager_smart($parser, $cible, $data) {
           switch (strtolower($cible)){
    case "php":
               eval($data);
               break;
           }
       }
       
       function manager_ref_ext($parser, $openEntityNames, $base, $systemId, $publicId) {
           if (!empty($systemId)) {
               if (!$analyze = new parser_xml($systemId)) {
                   printf("Could'nt to open the element %s not at %s\n", $openEntityNames, $systemId);
     return false;
               }

               $analyze->parser();
               return true;
           }
       }
       
       function parser() {
           $this->parser = xml_parser_create_ns();
           xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, true);
           xml_set_object($this->parser, &$this);
           xml_set_element_handler($this->parser, "first_element", "end_element");
           xml_set_character_data_handler($this->parser, "display_text");
           xml_set_processing_instruction_handler($this->parser, "manager_smart");
           xml_set_external_entity_ref_handler($this->parser, "manager_ref_ext");

           if (!($fp = _AT_fopen($this->file, "r"))) die("Could'nt to open this XML $file");
           
           while ($data = fread($fp, 4096)) {
               if ( !xml_parse( $this->parser, $data, feof($fp) ) ) {
                   die( sprintf( "Error XML %s at the line: %d\n\n",
                       xml_error_string(xml_get_error_code( $this->parser ) ),
                       xml_get_current_line_number( $this->parser) ) );
               }
           }
           fclose($fp);
           
           xml_parser_free($this->parser);
       }
    }
    ?>

  2. Précision :

    Après test, et compréhension, la présence du signe - dans l'url, fait que ca "merdouille"...

    Mon fichier .htaccess est pourtant écrit ainsi :

    Options +FollowSymlinks
    RewriteEngine on
    RewriteBase /
    RewriteRule ^diapo(/?)$ index.php [L]
    RewriteRule ^diapo\/?([a-zA-Z0-9\_]+)\/?$ index.php?rep=$1 [L]
    REwriteRule ^diapo\/?([a-zA-Z0-9\_]+)\/?([a-zA-Z0-9\_]+)\/?$ index.php?rep=$1&dsp=$2 [L]

    Qu'est ce qui me manque ?

  3. bonjour,

    je soumets à part, ici, mon pb d'erreur 404...

    Sur mon site de dev diapo, j'ai ce problème que je n'arrive pas à résoudre.

    De temps à autre, MSIE retourne une erreur 404 quand on clique sur une miniature pour la visualiser en grand (là, où d'autres browsers n'ont pas de soucis et affichent : Mozilla, Opera, Lynx) ...

    qu'est-ce qui pourrait l'empêcher de voir des "pages" que les autres "voient" ?

    (d'autant que, le comportement est vraiment aléatoire : un coup, sur telles, il lit, un coup, il ne lit plus !)

  4. Ceci dit, un texte ne comportant que les caractères ASCII peut être considéré comme UTF-8 ou iso-8859-1 sans distinction.

    Tout le soucis est là...

    Si le caractère est un caractère accentué, encodé en ISO-8859 et non UTF-8, bonjour les hyeroglyphes :blush: !

    Je vais étudier ta solution...

  5. Denis, ton cyberlecteur a besoin d'un sérieux coup de main, côté réflexion sur tes propos !

    L'attribut longdesc, je me suis expliqué dessus ; mon approche n'est peut être pas si mauvaise, bien que différente, je l'avoue (mais j'ai l'habitude d'avoir une vision "faussée" en rapport avec ce que l'on considére la norme ... mais bon, ce n'est pas l'endroit pour m'expliquer...).

    (En rapport avec ce que dit Yobiwan : "Je pense que tu en as presque trop fait " <=> c'est justement, souvent le rapport, ce qui me parait normal est souvent trop pour autrui.)

    Je reviens à toi Denis :

    Avec les syles désactivés, il n'y a pas d'indications que l'on passe sur des liens cliquables avec les photos...

    (...)

    De même, en désactivant les couleurs, on perd les seules informations nous explicitant les liens (comme ceux-ci ne sont pas soulignés ou ne changent lpus sur mouseover, on perd l'indication de leur état)

    (...)

    en désactivant les images, les alt deviennent très difficiles à lire à cause des bordures en pointillés.

    Et la bordure naturelle sur les images quand elles sont des hyperliens, elles-mêmes...

    sans parler du curseur qui change naturellement ... tout en oubliant pas le survol nommant la valeur de l'attribut alt...

    Sans la couleur activée, les liens qui ont été actifs deviennent violets, ceux qui n'ont pas été cliqués restent bleus. On perd comment l'indication de l'état ?!

    Quant à ta remarque sur les attibuts 'alt' difficile à lire, je me pose la question, si le fait que j'ai un théme sur mozilla, ne me permet pas d'être embété comme tu le parais. (bien que théoriquement, non) ?

    Sincérement, je ne te comprends pas !

    Peux-tu me faire des captures écran, que j'assimile ton propos, stp !?!

    A ceci, ton propos me semble juste :

    ton menu pour les liens suivants et précédents compte aussi deux puces pour les caractères [ et ] ce qui me semble questionnable

    En effet, cela ne l'est certainement pas ... et, je me suis posé la question, bien que je me demande aussi en quoi cela pourrait être "faux" !

    Pour finir, avec cela :

    comment je fais pour revenir au début du caroussel lorsque je suis en plein dedans ? Je n'ai pas remarqué de liens me permettant de revenir au tout début.

    Alors, là, tu me troubles sérieusement...

    Parles-tu de revenir en haut de page ou de revenir à l'index général (la page d'entrée) ?

    Car, si c'est de la page d'entrée, il y a bel et bien l'indication "Sortir du Diaporama 'XYZ'" qui permet d'y revenir... Par contre, il n'est peut être pas au bon endroit du code source !?!

    Si c'est d'un lien "Top", que tu me questionnes, il est vrai, je l'ai oublié : à émettre ?

    Quant à mon problème d'Erreur 404, perceptible sous IE, je sèche vraiment !

    Car, même si Lynx le signale aussi, il n'y a que IE qui plante...

    Quelle pourrait être la raison ?

  6. je ne vois pas trop l'interet de detecter l'encodage pour un script php, de toute façon tu ne peux qu'inclure des fichiers que tu possède donc normalement tu connais l'encodage...c'est surtout pour les navigateurs que c'est utile, et dans ce cas là les balises meta sont utiles.

    Justement, si je pose la question, c'est que j'y ai un intérêt...

    Et, justement, pour l'explication, je développe en ce moment un "produit"...

    normalement, avec des fichiers txt en encodage UTF-8, mais il permet l'intégration de fichiers qui ne sont pas miens...

    Hors, je ne peux être sûr que l'utilisateur final, créera et fera l'effort d'un encodage similaire !

    D'où la raison de ma question !?!

  7. Bonjour ste,

    Pourquoi utilises-tu la balise <map> alors qu'il n'y a pas de <area> ?

    J'avoue ne pas comprendre.

    Je préfèrerai "Description détaillée de la photo"

    plutôt que "Longue description de la photo"

    Mais je ne comprends pas trop ton utilisation des longsdc non plus, puisque le texte s'affiche directement sous la photo.

    Et sur le plan puremment visuel, il serait mieux de décoller ton contenu des bords de la page.

    Elo all,

    Monique :

    - Pourquoi utilisez l'élèment map dans ce contexte ?!

    La directive 13.6 te répondra mieux que moi :

    Groupez les liens apparentés, les identifiez, et tant que les navigateurs web ne le font pas, fournir un moyen de contourner le groupe...

    Et la technique envisagée par le W3C est celle-ci !

    There are several ways to allow users to bypass groups of links (as users with vision do when they see the same set on each page):

        * Include a link that allows users to skip over the set of navigation links.

        * Provide a style sheet that allows users to hide the set of navigation links.

        * Use the HTML 4.01 MAP element to group links, then identify the group with the "title" attribute.

    In the future, user agents may allow users to skip over elements such as navigation bars.

    Dont la traduction française pourrait être :

    Il y a différentes façons de permettre à l'utilisateur de contourner les groupes de liens (...) :

        * Inclure un lien qui permet aux utilisateurs de saute le "set" des liens de navigations

        * Fournir une feuille de style qui permette aux utilisateurs de cacher le "set" des liens de navigations

        * Utiliser l'élèment HTML 4.01 MAP pour grouper les liens, et les identifier avec l'attribut "title".

    Dans le futur, les agents utilisateurs (ie: autrement dit, browsers web, à ce jour...) permettront aux utilisateurs de passer par dessus des élèments telles que les barres de navigations.

    C'est apparemment un détail, qui passe à côté de beaucoup de monde ;)

    - le "Description détaillée de la photo" me parait plus correcte aussi... bien vu, monique, merci...

    - l'usage de longdesc : en fait, j'ai pensé à deux choses, au niveau usage !

    Comme j'ai intégré la gestion (des fichiers .txt s'ils existent), j'ai écrit l'attibut longdesc de l'image pointant vers ce texte qui est remonté (s'il existe bien sûr !)

    De, même que j'ai intégré l'élèmen link correspondant en tant que lien alternatif qui pointe directement vers la source brute de ces fichiers texte (quand elles existent !)

    Mais, j'ai très bien pu me tromper...

    -décoller légèrement : vi d'autant, que moi aussi, cela me génait un peu !

    - l'Error 404, je viens de découvrir cela sous IE... et, je ne comprends pas encore pourquoi !?! D'autant que Mozilla "affiche".

    Pour info, sous Lynx, j'ai l'erreur qui s'affiche pendant deux, trois secondes, mais il arrive à m'afficher le contenu, c'est vraiment étonnant !!!

    Une idée ?!

  8. Une question, somme toute très bête :

    Peut-on détecter l'encodage d'un fichier en PHP ?

    ou Comment savoir que tel fichier est écrit en UTF-8, en ISO-8859-x, en "Windows" ???

    S'il est possible de forcer l'encodage en paramètre, par exemple : la function htmlentities(), c'est que la détection se fait, puisqu'il existe aussi des fonctions utf8_***

    Alors comment est-il possible avant de lire un fichier de connaître son encodage ?!

  9. Le côté obscure de ton diaporama ---> J'espère que personne se servira de tes photos qui me semblent être tout de même perso (plus maintenant)  :wacko:

    Merci de tes compliments... cest toujours appréciable !

    T'inquiète pas pour les photos. Ca fait un moment qu'elles sont diffusées sur le net.

    En effet, la première mouture de ce diaporame est sur famille.stephane-huc.net.

    Quant à cette nouvelle mouture, j'ai revu le code PHP, le code html ; je l'ai pensé pour être multilingue, et surtout accessible... c'est pour cette raison, que j'aimerais un retour de la communauté, avant de diffuser les sources de manière organisée.

    Ce que je veux prouver, c'est qu'il est possible de créer un tel "objet" et de le rendre accessible au plus grand nombre, et là j'entends par accessible, toutes les définitions sous-jacentes !

    Hormis le fait, que je connaisse quelques "failles" (tels les titres de pages qui ne changent pas selon le contexte; mais je vais y remédier...) ; je ne suis pas trop sûr de mon concept au niveau de l'usage des "clés" en relation avec les accesskeys et autres relations id !...

    Bref, c'est pour ces raisons, et bien plus encore, que je souhaite un retour "éclairé" !!!

  10. Elo,

    je suis en train de bosser sur un diaporama (il devrait être bientôt diffusé !) web...

    J'aimerais que ceux qui s'y connaissent vraiment bien côté accessibilité me disent où sont ses défauts... car je tente à le rendre AAA (Ayayaye ;) ). Avis aux lecteurs d'écran, et autres "texteurs"...

    Je l'ai conçu pour qu'il soit conforme XHTML 1.0, CSS3... et ai pensé à beaucoup de choses. Mais, ce soir, je m'y perds un peu...

    http://devghs.stephane-huc.net

    P.S. : Pour voir des exemples de "Longue Description" :

    - Exemple sur Photo

    - Exemple sur Vidéo

    Un autre avis que le mien risque de m'être profitable ! ;)

  11. Pour enfoncer le clou un peu plus, on peut dire qu'au jour d'aujourd'hui: il n'existe pas de menu déroulant accessible.

    Bon, alors, là, j'aimerais comprendre...

    SVP, penchez vous un peu sur cela : Accessible Website Menu qui se targue justement d'être en JS, W3C Compliant en rapport avec l'XHTML, le CSS, et ... WAI-AAA !

    UDM is the world's first  fully-featured and  accessible DHTML menu!

    Alors, ce menu javascript est-il ou n'est-il pas conforme (et non compatible ;) ) :?:

    P.S. : Ce n'est pas la première fois que je le donne sur le forum, de même que ce n'est pas la première fois que j'entends dire "ca n'existe pas"... alors, svp, éclairez ma lanterne ! :1eye:

  12. dans spip, et certains sites en CSS, on voit ce code (ou se rapprochant de celui la) :

    <div id="accessibilite" title="">
    <ul>
     <li><a href="#recherche" title="">Aller à la recherche</a></li>
     <li><a href="#navigation" title="">Aller au menu de navigation</a></li>
     <li><a href="#contenu" title="">Aller au texte</a></li>
    </ul>

    </div>

    A quoi ca sert de mettre des liens interne envoyant vers les parties recherches, parties menu ou autres (avec le css, c'est souvent invisible, mais si on enleve la feuille, on voit les liens ...

    Merci de votre explication :)

    Nico.

    C'est ce qu'on appelle le menu d'accessibilité...

    C'est un menu, dit de contournement ; autrement dit, il permet d'aller directement là où l'on veut dans la page, aux élèments ciblés correspondant.

    Cette "astuce", en accessibilité web, existe pour permettre de naviguer plus rapidement, avec les navigateurs web non graphiques (dits textuels), avec les navigateurs web d'assistance à public handicapé technique ou physique... bien évidement, c'est viable pour les navigateurs web graphique, aussi !

    Il permet donc le choix dès le début de page d'aller soit sur le contenu de texte, soit au menu, soit (dans ce cas...) sur le formulaire 'Recherche'. Pour être correct, il lui faut les attributs 'accesskey' et 'tabindex' intégrés dans l'élément 'a'.

    En espérant avoir été clair ;):D

  13. <Nudrema_> SciTE en UTF-8, il rajoute les caractères de contrôle au début ?
    <yann_> il peut
    <yann_> utf-8 cookie le fait pas,  utf-8 tt court le fait
    <yann_> tu sélectionne cki te va le mieux :)

    C'est dans File > Encoding, donc :)

    Nudrema,

    merci à toi !

    Je retiens l'info qui t'es donné par Yann (que je connais un peu d'ailleurs...), ce qui m'évite de jeter Scite :D;)B)

  14. Quant à l'attribut qui manque c'est ptet name mais chuis pas certain.

    En effet ... c'est bien cela ; sois-en sûr !

    Allez une autre recommandation utile et importante à retenir :

    Créer ton formulaire pour qu'il soit accessible selon la recommandation WAI du W3C :

    Une page à lire : Utilisation des formulaires

    Bon, je sais, je tatille, je tatille...

    Mais, cela te permettra à créer des formulaires qui soient corrects, accessibles.

    (intégration des éléments legend, label, select, et autres attibuts id, tabindex, etc...)

    Allez, courage ;)

    P.S : bien heureux du coup de main :D

  15. Donc, en résumé,

    - Qu'utilises-tu comme éditeur ?

    - Existe-t-il une option pour désactiver l'ajout de ces caractères de contrôle ?

    - Si oui, sont-ils activés ?

    Ok, je comprends mieux le problème...

    J'use de Scite de Scintilla !

    Je vais essayer de voir cette problèmatique... et de trouver comment desactiver cette "fonctionnalité" !

    J'ai carrément téléchargé UniRed... et ai compris la différence, puis j'ai réécrit tous les fichiers incriminés. Je n'ai plus d'erreur.

    Que d'erreurs qui pourraient être évitées si .... tsss. :evil:

    Enfin, bref, merci à tous !

    Bonne nuit B)

  16. <?xml version="1.0" encoding="UTF-8"?>

    Peut-être à voir du côté de la génération de la page, une erreur PHP ?

    En effet, je les ai déjà aperçu en rapido, car parfois au chargement de la page, ils apparaissent pour disparaître dans la seconde qui suit, et quand je fais un "view source", je ne trouve rien...

    Ct tu as fait ? (je vais plus avoir de cheveux, moi !)

  17. Ai-je fait une erreur ou TEXTAERA (en majuscule uniquement pour le besoin du post !  :)  ) n'est pas reconnu ??

    Boonsoir,

    eh bien, si je ne me trompe pas, tu fais une mauvaise utilisation de l'élément textarea ... cet élèment fait partie d'un formulaire, et donc n'a pas à être là où tu le places...

    Un petit tour sur cette définition te permettra de comprendre en quoi !

    Sans oublier qu'il te manque un attribut important dedans... mais là je te laisse chercher un peu ;)

  18. Pour l'erreur 3 par contre, c'est tout simplement qu'un <map> ne doit pas se balader tout seul.

    il doit être, comme c'est précisé, à l'intérieur de la balise "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del".

    ++

    Pour cela, je viens de le régler...

    Te remercie ;):D

  19. Enfin, ca y est j'ai trouvé ! :D

    En fait, l'erreur s'insérait dans mon tableau dimensionnel ! <_<

    Pour la petite explication celui-ci est créé ainsi :

    $file = file("locales/$lg/ext_img"); // où $lg = "fr", déclarée précédement
    foreach($file as $v) {
    if(!ereg("#", $v)) $extImg[] = strToLower(trim($v));
    }
    unSet($v,$file);

    ce que j'y avais oublié est l'integration de la function trim ! :wacko:

    Une fois accomplie, la comparaison devenait juste. :1eye:

  20. bonjour, all,

    je suis sur une phase de test...

    j'ai une image, je récupére son extension !

    j'ai un tableau dimensionnel qui contient le nom des extensions acceptées.

    <?php 
    $ext = "jpg";

    $extImg = array( "gif", "jpg", "jpeg", "png");
    ?>

    je veux comparer mon extension récupérée et vérifier qu'elle correspond bien à une des valeurs dans mon tableau dimensionnel.

    <?
    echo "\$ext is '$ext'";
           
    foreach($extImg as $v) {
      echo "'$v',";
    }
    unSet($v);

    if(!empty($ext) && in_array($ext, $extImg)) echo "so good !";
    ?>

    Je ne comprends pas pourquoi la condition if ne s'exécute pas, alors que la foreach me renvoie bien les valeurs en echo, et l'echo de $ext est correct aussi !

    Une idée ?

  21. l'essentiel, c'est que ce soit bien codé et que ça fonctionne...

    En effet ...

    Et, j'espère que CrakJ n'aura pas craqué avec tout cela, et qu'il sera se servir des liens et de nos recommandations diverses pour créer son fameux switcher ; car, rappelons-le, c'est quand même le but de son approche !

  22. Bref, c'est un truc de geek (très rigolo, je le répète).

    Bon, j'arrête d'intervenir dans ce sujet : au fil de mes messages, je deviens de plus en plus sceptique  :blink:

    Sûr, que tu vas nous les démotiver, là...

×
×
  • Créer...