web-dev-qa-db-fra.com

Génération de sitemap avec Codeigniter

J'ai besoin de générer un plan du site dans une application Codeigniter . J'ai trouvé quelques bibliothèques mais toutes sont obsolètes et ont des bogues.

Ai-je vraiment besoin d'une bibliothèque séparée pour cela?

Je veux connaître la meilleure façon de générer le plan du site dans Codeigniter .

19
bmrinal

Vous pouvez utiliser mon code:

contrôleurs/seo.php

Class Seo extends CI_Controller {

    function sitemap()
    {

        $data = "";//select urls from DB to Array
        header("Content-Type: text/xml;charset=iso-8859-1");
        $this->load->view("sitemap",$data);
    }
}

views/sitemap.php

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

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc><?= base_url();?></loc> 
        <priority>1.0</priority>
    </url>

    <!-- My code is looking quite different, but the principle is similar -->
    <?php foreach($data as $url) { ?>
    <url>
        <loc><?= base_url().$url ?></loc>
        <priority>0.5</priority>
    </url>
    <?php } ?>

</urlset>

ajouter une ligne à config/routes.php

$route['seo/sitemap\.xml'] = "seo/sitemap";

Désolé s'il y a des erreurs dans le code, je l'ai fait spécialement pour vous. S'il y a des erreurs, vous pouvez les corriger facilement en comprenant le principe.

55
roev

Doit définir l'en-tête:

<?php header('Content-type: text/xml'); ?>
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc><?= base_url();?></loc> 
        <priority>1.0</priority>
    </url>
    <!-- My code is looking quite different, but the principle is similar -->
    <?php foreach($data as $url) { ?>
    <url>
        <loc><?= base_url().$url ?></loc>
        <priority>0.5</priority>
    </url>
    <?php } ?>
</urlset>
13
r33s

J'ai écrit un modèle CodeIgniter qui vous a permis d'appeler des fonctions à partir d'un contrôleur de plan de site et de cracher le XML lorsque vous avez terminé d'alimenter le plan de site.

N'hésitez pas à jeter un œil et à réutiliser le modèle CodeIgniter:

https://github.com/alphabase/CodeIgniter-Sitemap-Generator

1
Gerard Nijboer