IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fichier sitemap dynamique avec une regex et la technique "du renard boiteux"


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 110
    Points : 236
    Points
    236
    Par défaut Fichier sitemap dynamique avec une regex et la technique "du renard boiteux"
    Salut à tous !
    -> la technique "du renard boiteux", c'est moi qui l'ai inventée, étant autodidacte, en général je me débrouille tout seul ...

    Alors voilà ce que j'ai essayé de faire :

    J'ai une interface back-end où on enregistre des produits.

    Lors d'un enregistrement, une portion de code est ajoutée à mon sitemap afin de référencer le produit.

    Je procède comme ceci :

    Au tout début le sitemap (vide) avec un commentaire "ADDS"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <!-- ADDS -->
    </urlset>
    Lors d'un enregistrement de produit, je remplace <!-- ADDS -->
    par ma nouvelle entrée de sitemap + <!-- ADDS --> (à la fin)
    cf:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
        // RECORD IN SITEMAP
     
        // specify timezone un-bug in my server
        $timezone = new DateTimeZone('Europe/Paris');
        $date = new DateTime(null, $timezone);
        $timestamp = intval($date_prod);
        $date->setTimestamp($timestamp);
        $date_format = $date->format('Y-m-d');
     
        // OPEN sitemap by file_get_contents($file);
        $path = '../sitemap.xml';
        $sitemap = file_get_contents($path);
     
        // FORMAT THE TITLE IN CORRECT URL
        $format_title =  res::suppr_accents($titre);
     
        // ID of the product (got before)
        $id = $rec_and_return_id;
     
        // contruct the new entry for sitemap
        $insert_in_sitemap = "<!-- PROD-ID-".$id." -->
        <url>
        <loc>https://".$_SERVER['SERVER_NAME']."/Bracelet/".$format_title."/".$id."-".$date_prod."</loc>
        <lastmod>".$date_format."</lastmod>
        <changefreq>weekly</changefreq>
        <priority>1.0</priority>
        </url>
        <!-- END-PROD-ID-".$id." -->
        <!-- ADDS -->";
     
        // DO THE DUST
        $insert_in_sitemap_pre_reg = preg_replace("/\s\s+|\t/", "", $insert_in_sitemap);
     
        // replace the comm. ADDS by new entry on the str. $sitemap
        $insert_in_sitemap = str_replace('<!-- ADDS -->', $insert_in_sitemap_pre_reg, $sitemap);
     
        // PUT the new sitemap
        $record_sitemap = file_put_contents($path, $insert_in_sitemap);
    Alors là je crie ma joie , ça fonctionne !

    Je me dis alors, je refait l'inverse pour supprimer cette entrée au sitemap quand on supprime un produit, (simple, basique )

    dans ma fonction suppr_prod($id)
    je n'ai qu'à placer une regex qui me cherche
    <!-- PROD-ID-".$id." --> Et tout ce qu'il y au millieu <!-- END-PROD-ID-".$id." -->
    et je remplace par rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sitemap_replaced = preg_replace("/<!-- PROD-ID-".$id." -->.*<!-- END-PROD-ID-".$id." -->/", "", $sitemap);
    // et je ré-enregistre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // PUT the new sitemap
    $record_new_sitemap = file_put_contents($path, $sitemap);
    Mais voilà après quelques heures devant le regex tester et ayant trouvé la bonne formule (magique) dans celui-ci, mon entrée
    dans le sitemap n'est pas effacée ...

    Je me retrouve obligé de faire un appel supplémentaire à la base de donnée avec l'id du produit,
    de reconstruire une string identique à mon entrée avec les infos récoltées, de refaire tout un formatting ...

    Bref, ça fonctionne, très bien même MAIS c'est la technique "du renard boiteux" ... c'est vilain et ça m'oblige de refaire un appel à la base,
    ce que je trouve stupide et énergivore, d'autant plus que j'ai construit mon système pour me servir uniquement de l'ID du
    produit ...

    Merci de m'éclairer de vos réponses !

    Raf

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Bonjour,

    Essaie le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $record_new_sitemap = file_put_contents($path, $sitemap_replaced);
    à la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $record_new_sitemap = file_put_contents($path, $sitemap);

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    Généralement le renard, même quand il boite, est plutôt un animal malin à qui il ne viendrait pas à l'idée de modifier un fichier xml avec la technique dite d'Ysengrin, c'est à dire comme si c'était un fichier texte lambda, à coup de fonctions de manipulation de chaînes et de regex.

    Un renard que j'ai bien connu m'a dit un jour d'utiliser DOMDocument et les autres classes associées pour lire, éditer, puis enregistrer les fichiers xml. Avec ça, plus besoin de mettre des commentaires comme repère et même plus besoin des fonctions file_get_contents/file_put_contents puisque DOMDocument à des méthodes pour lire et enregistrer les fichiers:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // ajout d'une page
    $dom = new DOMDocument;
    $dom->load($path);
     
    $ns = 'http://www.sitemaps.org/schemas/sitemap/0.9';
     
    $urlElt = $dom->createElementNS($ns, 'url');
    $urlElt->appendChild($dom->createElementNS($ns, 'loc', $location));
    $urlElt->appendChild($dom->createElementNS($ns, 'lastmod', $lastModification));
    $urlElt->appendChild($dom->createElementNS($ns, 'changefreq', $changeFrequency));
    $urlElt->appendChild($dom->createElementNS($ns, 'priority', $priority));
     
    $dom->documentElement->appendChild($urlElt);
     
    $dom->save($path);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    // suppression d'une page avec l'id
    $dom = new DOMDocument;
    $dom->load($path);
     
    $ns = 'http://www.sitemaps.org/schemas/sitemap/0.9';
     
    foreach ($dom->getElementsByTagNameNS($ns, 'loc') as $locNode) {
        $locID = strrchr($locNode->nodeValue, '/');
        $locID = substr($locID, 1, strpos($locID, '-') - 1);
     
        if ( $locID === $id ) {
            $dom->documentElement->removeChild($locNode->parentNode);
            break;
        }
    }
     
    $dom->save($path);
    Ceci étant dit, reconstruire intégralement ton fichier sitemap à partir de la base de données n'a rien de si échevelé dans la mesure où ce n'est pas une opération qu'on fait toutes les 5 minutes.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 110
    Points : 236
    Points
    236
    Par défaut
    Salut Pascal, salut Knack's !

    Merci de votre attention et de vos réponses,
    pour répondre au premier, le code fournit en ex. a sûrement une erreur, le code en interne fonctionne, mais merci de ta lecture aiguisée !

    Alors pour répondre à Knack's, oui effectivement c'est plus propre, c'est ce que je recherchais,
    j'avais vu cette fonction DOMDocument dans des histoires de parsage de sites web et j'avais pris cette fonction pour du JS ...
    Avec le fatigue et le fait de jongler en permanence entre les deux, je finit par confondre les langages.

    Bon je suis heureux de rencontrer une nouvelle fonctionnalité PHP (qui semble être insondable ) que je ne connaissait pas,
    je vais m'enquérir de la documentation afin de bien cerner ton code, que je comprend déjà bien ce que tu y fait (en parlant bien français)
    et je te remercie beaucoup de m'avoir fait progresser un peut plus de part ta connaissance !

    Alors, doc. recoding et je reviendrais vers vous pour un feed back.

    P.S: alors pour à chaque fois refaire des appels à la DB, oui, mais en fait ça serait trop énergivore dans mon cas :
    l'utilisateur peut rapidement créer, supprimer des produits,je construit un système de boutique en ligne (oui, je suis un peut fou ...)
    il y a pas mal d'étapes déjà dans le record des produits (upload des images redimensionnées à la volée, record des nouvelles images etc...)
    alors pour que ça ne rame pas trop j'avais pas envie à cette étape de re-parcourir toute la table "produits" pour reconstruire un xml tout frais
    mais ton exemple est nickel il me semble, je pars étudier cette fonction.

    Merci !

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Concernant tes inquiétudes énergivores, ce n'est pas une requête sur une base de données qui doit t'inquiéter, les bases de données sont conçues pour traiter des requêtes. Si réellement cela consomme des ressources c'est l'indexation de la base de données qu'il faut sans doute revoir. Normalement l'écriture d'un fichier sur le disque est plus énergivore qu'une requête en base pour récupérer une liste d'articles.

    D'autre part tu peux très bien ne construire ton fichier sitemap que lorsqu'un moteur de recherche va venir le lire, ça m'étonnerais que ça dépasse une fois par jour (à moins que ta boutique ça soit celle de la fnac).
    Tu peux par exemple pour cela faire une redirection avec apache de sitemap.xml vers le fichier php de ton choix qui se chargera de générer un sitemap actualisé.

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 110
    Points : 236
    Points
    236
    Par défaut
    Salut,
    "Tu peux par exemple pour cela faire une redirection avec apache de sitemap.xml vers le fichier php de ton choix qui se chargera de générer un sitemap actualisé.",

    -> c'est pas une mauvaise idée, tu as raison,
    concrètement ta redirection tu la fait au niveau de .htaccess ?
    qui pointe vers built_sitemap.php -> et là un code qui génère le code du sitemap après construction depuis la base de donnée ?

    Oui, je vais garder cette idée sous le coude, ici effectivement je voulais avoir un aperçu direct de l'opération générée,
    voir si mes url étaient correctement reformatées, si tout était bien généré comme il faut ...

    Bon, en même temps ça ne me fait pas de mal de me plonger dans la doc PHP sur une fonction que je ne connaissait pas.
    Je suis donc parti sur l'idée de Knack's.

    Après si tu veux jeter un coup d'oeuil sur la structure de ma base produit, je prend toute critique
    (elle n'auras pas la même config. à la fin car les catégories seront dynamiques)
    ladite base :
    Nom : A PROD SQL.JPG
Affichages : 226
Taille : 246,3 Ko

    Bon voilà, je vais doucement, je travaille sur mes propres fonds sur ce projet (c'est à dire largement en dessous du seuil de pauvreté!)
    avec tous les sociaux qui me cassent les couillent (et oui pour toucher le rsa il faut être capable d'endurer le pire: humiliations, contrôles,
    pressions pour un retour à l'emploi salarié, et j'en passe ...)
    alors que je suis en auto-entreprise et que je paye mes fu**ing taxes dès que j'ai un euro qui rentre ...
    N'ayant rien à foutre de l'argent et n'en désirant pas, ce qui m'intéresse c'est de créer, le plus proprement possible,
    un beau programme qui sera facile à employer (je me suis largement pris la tête avec prestashop, oscomm., tomato, etc..)
    et en open source, ça aussi ces putains de sociaux ils ne le comprennent pas
    ("c'est pour revendre après ? c'est ça ?") - Non, co...asse ! C'est juste pour que je kiffe ma vie mais ça, ça t'échappe !
    -> bon ok , je suis pas du matin ...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    perso, je génère ou re-génère le sitemap en admin, à chaque modification d'un menu, article, produit,...
    (bref : tout ce qui génère des pages et URLs, nécessaires au sitemap).
    La génération du sitemap est ponctuelle, et maitrisée.

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Oui c'est une autre possibilité, générer le fichier en admin. On peut aussi le générer une fois par jour avec une tâche cron par exemple. On n'est limité que par son imagination

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 75
    Points : 190
    Points
    190
    Par défaut
    Citation Envoyé par oooopppp Voir le message
    Salut,
    -> c'est pas une mauvaise idée, tu as raison,
    concrètement ta redirection tu la fait au niveau de .htaccess ?
    qui pointe vers built_sitemap.php -> et là un code qui génère le code du sitemap après construction depuis la base de donnée ?
    Tu as plusieurs possibilités :
    - faire la redirection dans htaccess pour sitemap.xml
    - utiliser l'erreur 404 en déclarant dans htaccess un fichier php à appeler en cas d'erreur 404, et ensuite générer un fichier sitemap si c'est sitemap.xml qui a généré l'erreur 404 (tu peux avec cette méthode gérer plein de "situations" 404 plus intelligemment que d'afficher une simple erreur)
    - si tu utilises une architecture MVC tu peux tout simplement déclarer une route pour sitemap.xml
    - etc

  10. #10
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 110
    Points : 236
    Points
    236
    Par défaut
    Salut, alors la solution à Knack's fonctionne à merveille,
    je l'ai un peut modifiée :
    il faut inclure en premier la balise déclarative xml
    dans le sitemap.xml et au moins la balise <urlset />
    (j'ai pas vérifier avec et sans l'url, donc je la place quoiqu’il arrive, ça ne semble pas importuner PHP)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset>
    ensuite j'ai largement recopié le code de Knack's avec une petite adaptation pour le "pretty print" du xml,
    ça prouve que j'ai au moins parcouru la doc. !
    il faut que je l'étudie encore, ça pourrait être pratique pour le formatage d'e-mails ...
    Donc,

    insertion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // ADD PRODUCT TO SITEMAP
        $dom = new DOMDocument;
        $path = '../sitemap.xml';
        $dom->load($path);
     
        // FORMAT THE TITLE IN CORRECT URL
        $format_title =  res::suppr_accents($titre);
        $location = 'https://'.$_SERVER['SERVER_NAME'].'/Bracelet/'.$format_title.'/'.$rec_and_return_parent_id.'-'.$date_prod;
     
        $ns = 'http://www.sitemaps.org/schemas/sitemap/0.9';
     
        $urlElt = $dom->createElementNS($ns, 'url');
        $urlElt->appendChild($dom->createElementNS($ns, 'loc', $location));
        $urlElt->appendChild($dom->createElementNS($ns, 'lastmod', $date_format));
        $urlElt->appendChild($dom->createElementNS($ns, 'changefreq', 'weekly'));
        $urlElt->appendChild($dom->createElementNS($ns, 'priority', '1.0'));
     
        $dom->formatOutput = true;
        $dom->documentElement->appendChild($urlElt);
     
        $dom->save($path);
    et suppression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // OPEN sitemap file_get_contents($file);
              $path = '../sitemap.xml';
     
              // suppression d'une page avec l'id
              $dom = new DOMDocument;
              $dom->load($path);
     
              $ns = 'http://www.sitemaps.org/schemas/sitemap/0.9';
     
              foreach ($dom->getElementsByTagNameNS($ns, 'loc') as $locNode) {
                  $locID = strrchr($locNode->nodeValue, '/');
                  $locID = substr($locID, 1, strpos($locID, '-') - 1);
     
                  if ( $locID === $id ) {
                      $dom->documentElement->removeChild($locNode->parentNode);
                      break;
                  }
              }
     
              $dom->save($path);
    ça fonctionne comme un charme !, Encore merci à toi Knack's !

    Sinon, pour répondre à Pascal, là je vois pas trop comment gérer un xml depuis une erreur 404,
    du coup tu fais comment pour soumettre un sitemap à google par ex. dans le search console ?

    J'ai mis un petit gestionnaire d'erreur sur mon .htaccess comme ceci et il y a une page dédiée 404.php

    htaccess:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    # ERRORS
    # Determine if the request does not match an existing file or directory
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
     
    # If so, send the request to the applicable file, relative to this directory
    RewriteRule ^ %{ENV:BASE}404.php [L]
     
    ErrorDocument 404 /404.php
    ErrorDocument 500 /404.php
    #END ERRORS
    tu en penses quoi ?

    Merci pour vos commentaires aussi pertinents que constructifs !

    P.S: ça y'est je fait les tests sur la première version probablement en prod. au lever du jour
    (je viens de gérer les redirs DNS, le ssl, etc ...)
    Première version en production de Placido Shop ! (c'est historique !)
    -> Le Sacré Poignet (mon frère confectionne des bracelets)
    (heu, ben oui c'est vide, je suis parti sur une base propre, le frérot a du travail maintenant pour tout remplir ...)

    ... et ce samedi concert des Tagada Jones à la maison ,
    Je vais décompresser grave !

  11. #11
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 888
    Points : 6 632
    Points
    6 632
    Par défaut
    (j'ai pas vérifier avec et sans l'url, donc je la place quoiqu’il arrive, ça ne semble pas importuner PHP)
    xmlns="..." définit l'espace de nom (namespace) par défaut et toutes les balises enfants en héritent. Si tu ne le mets pas à urlset (la racine) et que tu utilises DOMDocument::createElementNS, c'est toutes les balises url qui en seront affublées. Les espaces de noms servent à identifier un contexte pour un nom de balise, ce qui du point de vu pratique permet par exemple d'utiliser plusieurs fois le même nom de balises mais dans des contextes différents dans un même document xml. D'un autre point de vue cela ajoute du sens.

  12. #12
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 110
    Points : 236
    Points
    236
    Par défaut
    Salut, merci pour tes explications supplémentaires.

    J'ai un peu de mal à appréhender les namespace, (j'ai pas tout pigé)
    je compte me mettre aux applications mobiles dans quelques temps et j'ai vu que ce langage y était largement employé,
    cette forme de structure de document est reprise aussi par angular il me semble.

    Bon je connais quand même xml dans ses grandes lignes, mais je ne suis pas un expert, c'est apparemment beaucoup utilisé en prog.
    de bas niveau pour afficher des vues (non ? )

    En tout cas un grand merci pour votre aide, je ne suis pas habitué à crier au secours à la moindre difficulté,
    je suis un peu gèné

    Donc ce système d'auto-sitemap fonctionne à merveille et le dev. de Placido Shop suit son cours,
    la prochaine étape que j'aurais dû programmer avant mais j'avais pas le temps,
    sera de programmer un système de production de catégories et sous-catégories + settings individuels ou collectifs des produits ainsi que leur
    rendu dans un menu de tri organisé en conséquence (là je vais tripper ! )

    Bon je suis pas trop inquiet, j'ai déjà dû, dans le passé, recréer un arbre logique avec pour seule indication l'id du parent, dans des séries
    de catégories - sous-catégories infinies (en bdd) ...

    Puis viendra l'auto-installeur final, avec nom de la base et mdp plus quelques petites settings d'affichage et de stylisation,
    tout en restant le plus intuitif et simple pour l'utilisateur final qui devrait pouvoir installer le système et l'utiliser sans
    rien piger aux technos du web !

    C'est quand même compliqué de faire simple !

    Un grand merci à vous !

    Raf

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Problème avec une ReGex
    Par Death83 dans le forum Langage
    Réponses: 9
    Dernier message: 27/07/2006, 21h27
  2. Comment créer un site immobilier dynamique avec une base de données ?
    Par Alain troverti dans le forum Général Conception Web
    Réponses: 14
    Dernier message: 07/07/2006, 21h57
  3. Problème avec une RegEx
    Par Death83 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 26/05/2006, 14h03
  4. [XSLT] Création de fichier XML dynamique avec PHP
    Par daninho dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 02/02/2006, 11h18
  5. Couleur de cellule XSL dynamique avec une variable
    Par Steff1985 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/10/2005, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo