Simple sitemaps in codeigniter
Creating sitemaps is a bit of a hassle for any site bigger than a couple of pages, especially where a database is involved. While working on a recent project I created a library for codeigniter which allows the simple creation of sitemaps either by manually adding pages which might be appropriate for a blog, or allowing the library to scan controllers and adding all pages defined by methods. Common search engines can also be notified.
A simple example of it in use is shown below:
//if you're using sparks
$this->load->spark('codeigniter-sitemaps/0.0.1')
$this->load->library('sitemaps');
//assuming a hypothetical posts_model
$posts = $this->posts_model->get_posts();
foreach ($posts AS $post)
{
$item = array(
"loc" => site_url("blog/" . $post->slug),
"lastmod" => date("c", strtotime($post->last_modified)),
"changefreq" => "hourly",
"priority" => "0.8"
);
$this->sitemaps->add_item($item);
}
// file name may change due to compression
$file_name = $this->sitemaps->build("sitemap_blog.xml");
$reponses = $this->sitemaps->ping(site_url($file_name));
You can download the spark from: http://getsparks.org/packages/codeigniter-sitemaps
Or get the code from my github: http://github.com/chemicaloliver/codeigniter-sitemaps
Simple documentation is included and should be self explanatory.
This library is based on work by Philipp Dörner 2010 http://signalkraft.com/google-sitemaps-for-codeigniter
Tags: PHP, Programming, scripting, web development
