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 .
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.
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>
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: