Mostrando entradas con la etiqueta webmasters. Mostrar todas las entradas
Mostrando entradas con la etiqueta webmasters. Mostrar todas las entradas

jueves, 27 de junio de 2013

Cómo crear un sitemap con CodeIgniter 2 para enviarlo a Google Webmasters Tools

Para crear un sitemap en formato xml con CodeIgniter 2, para enviarlo a google, necesitamos de los siguientes pasos.

Paso 1: Modificar el archivo routes.php, ubicado en la carpeta config

El cual se encuentra en la carpeta config/. Agregamos una nueva línea al arreglo:

            $route['sitemap.xml'] = 'sitemap/index';
        

Paso 2: Crearemos entonces el controlador sitemap.php

            <?php

            class Sitemap extends CI_Controller
            {

                public function __construct()
                {
                    parent::__construct();
                }

                public function index()
                {
                    # este helper se puede cargar en el archivo autoload.php
                    # para evitar cargarlo cada vez
                    $this->load->helper('url');

                    $this->load->model('sitemap_model');

                    $view_data['vw_content'] = $this->sitemap_model->get_articulos();

                    $this->load->view('sitemap_view', $view_data);
                }

            }
        

Paso 3: Creamos el modelo sitemap_model.php

            <?php

            class Sitemap_model extends CI_Model
            {

                public function __construct()
                {
                    parent::__construct();

                    # esta librería se puede cargar desde el archivo autoload.php
                    # para evitar cargarlo cada vez
                    $this->load->database();
                }

                public function get_articulos()
                {
                    $this->db
                            ->select('articulo_id, alias, modificado')
                            ->from('articulos')
                            ->where('activo', 1)
                            ->order_by('articulo_id')
                    ;

                    $query = $this->db->get();

                    return $query->result();
                }

            }
        

En nuestro ejemplo, vamos a suponer que la estructura de la tabla es como la siguiente:

Paso 4: Creamos la vista sitemap_view.php

            <?php ob_start(); ?>
            <?php echo '<?xml version="1.0" encoding="UTF-8"?>'."\n"; ?>
            <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
                <url>
                    <loc><?php echo base_url(); ?></loc>
                    <priority>1.0</priority>
                </url>

                <!-- Sitemap de mi blog.com -->
                <?php foreach ($vw_content as $url) : ?>
                <url>
                    <loc><?php echo base_url() . 'index.php/blog/articulos/' . $url->articulo_id . '/' . $url->alias . '/'; ?></loc>
                    <lastmod><?php echo substr($url->modificado, 0, 10); ?></lastmod>
                    <changefreq>monthly</changefreq>
                    <priority>0.5</priority>
                </url>
                <?php endforeach; ?>
            </urlset>
            <?php ob_end_flush(); ?>
        

Paso 5: Probar tu sitemap ejecutando (por ejemplo) http://localhost/ci2/index.php/sitemap.xml

¡Listo! Si todo salió bien pueder ver el codigo fuente generado y verás un archivo .xml bien formado, el cual estará listo para enviarlo a Google en su página de herramientas para Webmasters.

Datos personales

Mi foto
Podrás encontrar códigos recursos y artículos sobre PHP, JavaScript, jQuery, MooTools, Ajax, CSS, HTML, UML, RUP, AUP, XP (eXtreme Programming), Six-Sigma, CMMI, FrameWorks, Zend Framework, Magento, CodeIgniter, CakePHP, Joomla 1.5, Doctrine, Active Record, ORM, POO, MVC, MySql, PostgreSql. Este espacio está destinado a ayudar y compartir un poco de lo mucho que he recibido de la comunidad en la Red.