Pour avoir plusieurs ' sitemap ' efficaces

bg62bg62 Member
dans Plugins

Bonjour à tous :)
Pour les ' sitemap ' que PluXml peut gérer, nous avons, sitemap.php, pour le 'général ', puis celui des catégories, puis encore celui (et autres ) des éventuels commentaires ... mais il serait fort intéressant d'en avoir un qui puisse gérer également les images intégrées à un site.
sachant que :
- les images sont de plus en plus recherchées sur le Net et par les moteurs tels Google & autres, et par d'autres site genre Pinterest ...
- les 'fichiers' images peuvent avoir plusieurs extensions différentes
- sachant que les fichiers ' *.tb.jpg ' ne doivent pas être pris en compte (doublons,nombre,utilité,taille ...)
- selon le nombre d'images hébergées on risque aussi d'être amené à créé plusieurs 'sitemap' puis GG et autres recommandes certaines limites ...

-- >> Peut-on réussir à faire cela via un script en 'php' ou serait-il plus intéressant d'avoir un Nième plugin qui **pourrait gérer l'ensemble des sitemaps et de leurs paramètres, ainsi que leur inscription dans le fichiers 'robots.txt' **???

-->> vos avis ??
-->> du boulot pour les codeurs :)
amitiés
b. g.

Réponses

  • 1 mai modifié

    Bonsoir,

    Je ne sais pas trop ce que tu souhaite, mais on peut tenter de faire un sitemapImage à partir des images d'accroche dans un premier temps :

    Voici un exemple à partir du fichier sitemap.php de pluxml transposer en sitemapImage.php pour les images d'accroche des rubriques et articles: (noms des hooks aussi modifier pour éviter toutes interférences avec le sitemap.php classique.)

    <?php
        const PLX_ROOT = './';
        const PLX_CORE = PLX_ROOT .'core/';
    
        include(PLX_ROOT.'config.php');
        include(PLX_CORE.'lib/config.php');
    
        # On verifie que PluXml est installé
        if(!file_exists(path('XMLFILE_PARAMETERS'))) {
            header('Location: '.PLX_ROOT.'install.php');
            exit;
        }
    
        # On inclut les librairies nécessaires
        include(PLX_CORE.'lib/class.plx.date.php');
        include(PLX_CORE.'lib/class.plx.glob.php');
        include(PLX_CORE.'lib/class.plx.utils.php');
        include(PLX_CORE.'lib/class.plx.capcha.php');
        include(PLX_CORE.'lib/class.plx.erreur.php');
        include(PLX_CORE.'lib/class.plx.record.php');
        include(PLX_CORE.'lib/class.plx.motor.php');
        include(PLX_CORE.'lib/class.plx.plugins.php');
    
        # On impose le charset
        header('Content-Type: text/xml; charset='.PLX_CHARSET);
    
        # Creation de l'objet principal et lancement du traitement
        $plxMotor = plxMotor::getInstance();
    
        # Détermination de la langue à utiliser (modifiable par le hook : Index)
        $lang = $plxMotor->aConf['default_lang'];
    
        # Hook Plugins
        if(eval($plxMotor->plxPlugins->callHook('SitemapImageBegin'))) return;
    
        # chargement du fichier de langue
        loadLang(PLX_CORE.'lang/'.$lang.'/core.php');
    
        # On démarre la bufferisation
        ob_start();
        ob_implicit_flush(0);
    
        $plxMotor->prechauffage();
        $plxMotor->demarrage();
    
        # Entête XML
        echo '<?xml version="1.0" encoding="'.strtolower(PLX_CHARSET).'" ?>'."\n";
    ?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
        <?php
            # Les catégories
            foreach($plxMotor->aCats as $cat_num => $cat_info) {
                if($cat_info['active']==1 AND $cat_info['menu']=='oui' AND ($cat_info['thumbnail'] !='')AND ($cat_info['articles']!=0 OR $plxMotor->aConf['display_empty_cat'])) {
                    echo "<url>\n";
                    echo "\t\t<loc>".$plxMotor->urlRewrite("?categorie".intval($cat_num)."/".$cat_info['url'])."</loc>\n";
                    echo "\t\t<image:image>
                <image:loc>".$plxMotor->urlRewrite($cat_info['thumbnail'])."</image:loc>
            </image:image>\n";
                    echo "\t</url>";
                }
            }
            eval($plxMotor->plxPlugins->callHook('SitemapImageCategories')); # Hook Plugins
            # Les articles
            if($aFiles = $plxMotor->plxGlob_arts->query('/^[0-9]{4}.(?:[0-9]|home|,)*(?:'.$plxMotor->activeCats.'|home)(?:[0-9]|home|,)*.[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$/','art','rsort', 0, false, 'before')) {
                $plxRecord_arts = false;
                $array=array();
                foreach($aFiles as $k=>$v) { # On parcourt tous les fichiers
                    $array[ $k ] = $plxMotor->parseArticle(PLX_ROOT.$plxMotor->aConf['racine_articles'].$v);
                }
                # On stocke les enregistrements dans un objet plxRecord
                $plxRecord_arts = new plxRecord($array);
                if($plxRecord_arts) {
                    # On boucle sur nos articles
                    while($plxRecord_arts->loop()) {
                        $num = intval($plxRecord_arts->f('numero'));
                        if($plxRecord_arts->f('thumbnail') !='') {
                            echo "\n";
                            echo "\t<url>\n";
                            echo "\t\t<loc>".$plxMotor->urlRewrite("?article".$num."/".plxUtils::strCheck($plxRecord_arts->f('url')))."</loc>\n";
                            echo "\t\t<image:image>
                <image:loc>".$plxMotor->urlRewrite($plxRecord_arts->f('thumbnail'))."</image:loc>
            </image:image>\n";
                            echo "\t</url>";
                        }
                    }
                }
            }
            eval($plxMotor->plxPlugins->callHook('SitemapImageArticles')); # Hook Plugins
        ?>
    
    </urlset>
    <?php
    
        # Récuperation de la bufférisation
        $output = ob_get_clean();
    
        eval($plxMotor->plxPlugins->callHook('SitemapImageEnd')); # Hook Plugins
    
        # Restitution écran
        echo $output;
        exit;
    ?>
    

    À copier dans un fichier sitemapImage.php (ou du nom que vous voulez avec l'extension php) à la racine de votre site, il suffit alors de le declarer aux moteurs de recherches via robots.txt ou depuis un compte que vous avez dans votre moteur de recherche.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bg62bg62 Member
    2 mai modifié

    Super .... mais ...

    • SI tous les fichiers images du site portent un nom correct ..
    • serait-il possible d'aller rechercher tous les noms et extensions des images placées dans le dossier 'médias' ,(et ses x dossiers) ainsi que ceux qui sont dans 'photos' (... et ses x dossiers) ( sauf si le répertoire 'photos' est déjà scanné par la première commande qui elle scannerait tout dans le répertoire 'médias' )

    Autrement dit, ce que je voudrais c'est un script qui scanne tout ce qui se trouve dans le répertoire 'medias' (dossier dans lequel se trouvent toutes les images, autres dossiers et sous-dossiers et + ) (avec les conditions exprimées dans la question initiale telles que - les 'fichiers' images peuvent avoir plusieurs extensions différentes
    - il peut y avoir également d'autres sortes de fichiers que les moteurs prennent en compte comme les *.pdf
    - sachant que les fichiers ' *.tb.jpg ' ne doivent pas être pris en compte (doublons,nombre,utilité,taille ...
    - selon le nombre d'images hébergées on risque aussi d'être amené à créé plusieurs 'sitemap' puis GG et autres recommandes certaines limites ...)

    ....
    :)

  • 2 mai modifié

    Bonjour,

    Ce n'est pas aussi simple. Chacun organise l'arborescence de ses dossiers et où il stock ses images comme il veut. Les miniatures sont aussi optionnelles et peuvent mériter d'être indexées.

    Google et autre sont tout à fait capable de trouver les images , voir de les indexer et même de trouver des images identiques en tout ou partie d'un site à un autre.

    Le sitemap quant à lui est structurer de sorte qu'une ou plusieurs images sont associées à une page particulière, donnant ainsi un contexte pour le referencement, des mots clés extraits probablement de ces pages.

    Le plus logique pour gerer ce sitemap, serait peut-être de pouvoir lier une image avec une page ou un article particulier depuis la page médias en ajoutant un champ dans la config. Ou depuis les pages d'édition des articles et statistiques.

    A voir ce que d'autre en pense et si quelqu'un a déjà opté pour une solution.

    A vous les studios :)


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • griffongriffon Member

    Bonjour à tous,
    Ma modeste contribution concernant google et les images.
    Je crois (en tout cas quelques tests que j'ai faits vont dans ce sens) que pour les images, google les indexe automatiquement en utilisant le contenu de la balise alt associée à l'image dans le tag <src de l'image dans la page (il n'utiliserait pas la balise title, en tout cas selon mes tests).
    Et bien sûr les images en background non plus.
    Il faut s'assurer que le contenu du alt soit pertinent avec des mots précis.
    Donc pour moi un sitemap special image n'apporterait rien.

Connectez-vous ou Inscrivez-vous pour répondre.