<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TolerantX&#039;s Blog</title>
	<atom:link href="http://tolerantx.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tolerantx.com</link>
	<description>Y sin embargo se mueve</description>
	<lastBuildDate>Mon, 08 Mar 2010 15:39:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>1er Cardiomaratón 2010</title>
		<link>http://tolerantx.com/2010/03/08/1er-cardiomaraton-2010/</link>
		<comments>http://tolerantx.com/2010/03/08/1er-cardiomaraton-2010/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 04:59:11 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Cardiomaraton]]></category>
		<category><![CDATA[Desfibrilacion]]></category>
		<category><![CDATA[RCP]]></category>
		<category><![CDATA[Record Guinnes]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=295</guid>
		<description><![CDATA[El cardiomaratón se efectuará en Guadalajara en el estadio Jalisco, el evento es gratuito y pretende enseñar al público cosas como RCP Básico, Desfibrilación y RCP Avanzado, el cardiomaratón se llavará a cabo el día domingo 21 de marzo de 9:00 am a 2:00 pm.
Por cierto pretenden romper Récord Guinness del Cardiomaratón más concurrido.
Cito textualmente [...]]]></description>
			<content:encoded><![CDATA[<p>El cardiomaratón se efectuará en Guadalajara en el estadio Jalisco, el evento es gratuito y pretende enseñar al público cosas como RCP Básico, Desfibrilación y RCP Avanzado, el cardiomaratón se llavará a cabo el día domingo 21 de marzo de 9:00 am a 2:00 pm.</p>
<p>Por cierto pretenden romper Récord Guinness del Cardiomaratón más concurrido.</p>
<p>Cito textualmente la introducción de su página web</p>
<blockquote>
<h2>1er Cardiomaraton</h2>
<p>La Universidad de Guadalajara, el Centro Universitario de Ciencias de  la Salud y el Laboratorio de Cardiología te invitan a aprender a salvar  vidas. ¿Cómo? Pues aprendiendo RCP (Reanimación Cardiopulmonar). No  sólo en caso de infarto sino también en otros casos en dónde está en  peligro la vida, como en atragantamiento, ahogamiento, hipotermia, entre  otras situaciones especiales.</p></blockquote>
<p>Para más información y registrarte visita la página web <a href="http://www.cardiomaraton.com/" target="_blank">www.cardiomaraton.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2010/03/08/1er-cardiomaraton-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enviar formulario sin recargar la página con Zend Framework y JQuery.</title>
		<link>http://tolerantx.com/2010/03/02/enviar-formulario-sin-recargar-la-pagina-con-zend-framework-y-jquery/</link>
		<comments>http://tolerantx.com/2010/03/02/enviar-formulario-sin-recargar-la-pagina-con-zend-framework-y-jquery/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 21:57:33 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Guardar]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=163</guid>
		<description><![CDATA[Cuando se están manejando formularios con PHP guardando los datos en algún gestor de base de datos como MySQL llega a surgir la duda de cómo guardar dichos datos utilizando Ajax (JQuery en éste caso) para evitarnos el refresco de pantalla y poder seguir haciendo uso del sistema sin este pequeño (o grande) retraso.
Primero que [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando se están manejando formularios con PHP guardando los datos en algún gestor de base de datos como MySQL llega a surgir la duda de cómo guardar dichos datos utilizando Ajax (JQuery en éste caso) para evitarnos el refresco de pantalla y poder seguir haciendo uso del sistema sin este pequeño (o grande) retraso.</p>
<p>Primero que nada utilizaré Zend Framework, JQuery y MySQL como gestor de base de datos. Para éste ejemplo empezaremos creando una base de datos sencilla llamada clientes donde única y exclusivamente guardaremos el nombre (para no hacer tan extenso ésto).<span id="more-163"></span></p>
<p>Muy bien para crear nuestra tabla primeramente debemos tener creada la base de datos, puedes utilizar phpmyadmin o la línea de comandos, como más te agrade, de todas maneras adjunto el código de la creación de la base de datos como también de la tabla.</p>
<pre name="code" class="sql">CREATE DATABASE `prueba`;

CREATE TABLE `prueba`.`clientes` (
  `id_cliente` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `cliente` VARCHAR( 100 ) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci;
</pre>
<p>Si te fijas la base de datos la llamé prueba y la tabla la llamé cliente con dos campos, id_cliente y cliente.<br />
No entraré en detalles en creación de controladores, modulos, vistas, en nuestro árbol de directorios de Zend Framework.</p>
<p>Creo el módulo (application/models/Clientes.php) con un método llamado getClientes, éste método nos devolverá posteriormente los clientes guardados en la base de datos:</p>
<pre name="code" class="php">&lt;?php

class Clientes extends Zend_Db_Table
{
    protected $_name = 'clientes';

    public function getClientes()
    {
        $c = new Clientes();
        $c_select = $c-&gt;select()-&gt;order('cliente');

        return $c-&gt;fetchAll($c_select);
    } // end getClientes

}
</pre>
<p>El controlador lo llamaré Clientes así que queda de la siguiente manera (application/controllers/ClientesController.php):</p>
<pre name="code" class="php">&lt;?php

class ClientesController extends Zend_Controller_Action
{

    public function init()
    {
        $this-&gt;initView();
        $this-&gt;view-&gt;baseUrl = $this-&gt;_request-&gt;getBaseUrl();
    }

    public function indexAction()
    {
        Zend_Loader::loadClass('Clientes');
        $c = new Clientes();
        $this-&gt;view-&gt;clientes = $c-&gt;getClientes();

    } // end indexAction()

}

?&gt;
</pre>
<p>El método init nos arroja la variable baseUrl, la cual utilizaremos para la llamada de archivos en nuestra vista, como también tiene la acción index y hace una consulta a nuestra base de datos clientes (getClientes) como lo mencionamos anteriormente y dicha consulta la podremos ver en nuestra vista.</p>
<p>Aquí quedaría nuestra vista (application/views/scripts/clientes/index.phtml):</p>
<pre name="code" class="xhtml">&lt;script type="text/javascript" language="javascript" src="&lt;?php echo $this-&gt;baseUrl;?&gt;/public/scripts/jquery.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" language="javascript" src="&lt;?php echo $this-&gt;baseUrl;?&gt;/public/scripts/guardarCliente.js"&gt;&lt;/script&gt;
&lt;form action="" name="form1" id="form1" method="post"&gt;
    &lt;label&gt;Cliente: &lt;/label&gt;&lt;div id="div_cliente"&gt;
        &lt;select name="cliente" id="cliente"&gt;
            &lt;?php foreach ($this-&gt;clientes as $cliente) : ?&gt;
            &lt;option value="&lt;?php echo $cliente-&gt;id_cliente; ?&gt;"&gt;&lt;?php echo $cliente-&gt;cliente; ?&gt;&lt;/option&gt;
            &lt;?php endforeach; ?&gt;
        &lt;/select&gt;
    &lt;/div&gt;
&lt;/form&gt;

&lt;div id="form_ajax"&gt;
    &lt;form name="guardar_cliente"&gt;
        &lt;p&gt;Cliente:&lt;/p&gt;
        &lt;input type="text" name="nombre_cliente" id="nombre_cliente" value="" /&gt;
        &lt;input type="submit" name="submit" value="Guardar" id="guardarCliente" /&gt;
    &lt;/form&gt;
&lt;/div&gt;
</pre>
<p>En el código anterior hemos agregado la libreria de JQuery que la puedes descargar de Aquí y además el archivo agregarCliente que se encargará de hacer la petición AJAX del guardado del cliente. Este archivo quedaría como lo siguiente (public/scripts/agregarCliente.js):</p>
<pre name="code" class="javascript">$(function() {

    // bloqueamos la tecla enter para que no recargue la página
    $('#form_ajax').bind('keypress', function(e) {
        if (e.keyCode == 13) return false;
    });

    $('#guardarCliente').click(function() {

        var nombre_cliente = $('#nombre_cliente').val();
        var baseUrl = '/prueba';
        var dataString = 'nombre_cliente=' + nombre_cliente;

        $.ajax(
        {
            async: true,
            dataType: 'html',
            type: 'POST',
            contentType: 'application/x-www-form-urlencoded',
            url: baseUrl + '/clientes/guardar-cliente/',
            data: dataString,
            beforeSend: function(data){
                    $('#div_cliente').html('&lt;label&gt;Cargando...&lt;/label&gt;');
            },
            success: function(requestData){
                    $('#div_cliente').html(requestData);
            },
            error: function(requestData, strError, strTipoError){
                    alert('Error ' + strTipoError +': ' + strError);
            },
            complete: function(requestData, exito){
            }
        });

        $('#nombre_cliente').val('');
        return false;
    });
});
</pre>
<p>Ten en cuenta el atributo url de $.ajax ( url: baseUrl + &#8216;/clientes/guardar-cliente/&#8217;) ya que es en donde se ejecuta el script del lado del servidor (PHP) que guardará finalmente nuestro cliente.<br />
La variable baseUrl de nuestro archivo javascript igualmente hace referencia al directorio en el que se encuentra nuestro sistema dentro de nuestro servidor web.</p>
<p>Por último volvemos a modificar nuestro controlador, agregando la acción guardar-cliente y nuestro archivo application/controllers/ClientesController.php será el siguiente:</p>
<pre name="code" class="php">&lt;?php

class ClientesController extends Zend_Controller_Action
{

    public function init()
    {
        $this-&gt;initView();
        $this-&gt;view-&gt;baseUrl = $this-&gt;_request-&gt;getBaseUrl();
    }

    public function indexAction()
    {
        Zend_Loader::loadClass('Clientes');
        $c = new Clientes();
        $this-&gt;view-&gt;clientes = $c-&gt;getClientes();

    } // end indexAction()

    public function guardarClienteAction()
    {
    if ($this-&gt;getRequest()-&gt;isXmlHttpRequest()) { //Detectamos si es una llamada AJAX

        $this-&gt;_helper-&gt;viewRenderer-&gt;setNoRender();
        Zend_Loader::loadClass('Clientes');
        $c = new Clientes();

        // agregamos el estado
        $cliente = $this-&gt;_request-&gt;getPost('nombre_cliente');

        $cliente_data = array ('cliente' =&gt; $cliente);
        $c-&gt;insert($cliente_data);

        // consulta de la nueva lista de clientes
        $clientes = $c-&gt;getClientes();
        if (count($clientes) &gt; 0) {

            echo '&lt;select name="cliente" id="clienteo"&gt;';
            foreach($clientes as $cl):
                $selected = '';
                if ($cl-&gt;cliente == $cliente) { $selected = 'selected="selected"'; }
                echo '&lt;option value="'.$cl-&gt;id_cliente.'" '.$selected.'&gt;'.$cl-&gt;cliente.'&lt;/option&gt;';
            endforeach;
            echo '&lt;/select&gt;';

        } // end if (count($clientes) &gt; 0)

     } // end if ($this-&gt;getRequest()-&gt;isXmlHttpRequest())

    } // end guardarClienteAction

}

?&gt;
</pre>
<p>Y listo ya tienes tu modulo clientes el cual te lista los clientes ya existentes y desde la misma página podrás agregar más sin necesidad de recargar la página como lo hace un formulario normal.</p>
<p>Cabe destacar que yo lo realicé con el Zend Framework, pero si se analiza el código es bastante simple y puede aplicarse sin éste, pero eso ya les toca a ustedes hacerlo.</p>
<p>Cualquier aportación o comentario serán bien recibidos <img src='http://tolerantx.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2010/03/02/enviar-formulario-sin-recargar-la-pagina-con-zend-framework-y-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Buzz</title>
		<link>http://tolerantx.com/2010/02/10/google-buzz/</link>
		<comments>http://tolerantx.com/2010/02/10/google-buzz/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 17:03:05 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=203</guid>
		<description><![CDATA[Hoy ingresando a mi cuenta de correo me encuentro con la novedad del nuevo servicio que google está ofreciendo, Google Buzz, se asemeja a servicios tipo twitter donde puedes actualizar tu estatus, compartir, fotos, videos etc.
Pudiera parecer otro servicio más sin mucha novedad pero tiene detrás a google apostando por entrar cada vez más al [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy ingresando a mi cuenta de correo me encuentro con la novedad del nuevo servicio que google está ofreciendo, Google Buzz, se asemeja a servicios tipo twitter donde puedes actualizar tu estatus, compartir, fotos, videos etc.</p>
<p>Pudiera parecer otro servicio más sin mucha novedad pero tiene detrás a google apostando por entrar cada vez más al mundo de las redes sociales, veremos como le va.</p>
<p>Entren a la siguiente liga para más información <a href="http://buzz.google.com" target="_blank">buzz.google.com</a></p>
<p>Y adjunto un video donde muestra lo que es Buzz.</p>
<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/yi50KlsCBio&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/yi50KlsCBio&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2010/02/10/google-buzz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Editar enlaces/links del Widget Meta en Wordpress 2.9.1</title>
		<link>http://tolerantx.com/2010/01/26/editar-enlaceslinks-del-widget-meta-en-wordpress-2-9-1/</link>
		<comments>http://tolerantx.com/2010/01/26/editar-enlaceslinks-del-widget-meta-en-wordpress-2-9-1/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 02:00:55 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[widget meta]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=180</guid>
		<description><![CDATA[Primero que nada la versión del wordpress no necesariamente tiene que ser la mencionada, puede que funcione en versiones anteriores, para ésta fecha la versión más actual es la 2.9.1.
Pues bien empecemos, para modificar el widget meta porque por default maneja enlaces que en lo particular no los quiero, vease la siguiente imagen:
Primero que nada [...]]]></description>
			<content:encoded><![CDATA[<p>Primero que nada la versión del wordpress no necesariamente tiene que ser la mencionada, puede que funcione en versiones anteriores, para ésta fecha la versión más actual es la 2.9.1.</p>
<p>Pues bien empecemos, para modificar el widget meta porque por default maneja enlaces que en lo particular no los quiero, vease la siguiente imagen:<a href="http://tolerantx.files.wordpress.com/2010/01/11.jpg"><img class="aligncenter size-medium wp-image-196" title="Blog" src="http://tolerantx.files.wordpress.com/2010/01/11.jpg?w=300" alt="" width="300" height="193" /></a></p>
<p><span id="more-180"></span>Primero que nada tendremos que editar el archivo que se encuentra en la ruta wp-includes/default-widgets.php y nos ubicamos por ahí de la línea 295 lo cual verían algo como ésto.<a href="http://tolerantx.files.wordpress.com/2010/01/3.jpg"><img class="aligncenter size-medium wp-image-185" title="Codigo a quitar" src="http://tolerantx.files.wordpress.com/2010/01/3.jpg?w=300" alt="" width="300" height="57" /></a></p>
<p><a href="http://tolerantx.files.wordpress.com/2010/01/4.jpg"><img class="aligncenter size-medium wp-image-186" title="Codigo eliminado" src="http://tolerantx.files.wordpress.com/2010/01/4.jpg?w=300" alt="" width="300" height="40" /></a></p>
<p>Simplemente borramos/editamos los enlaces que no nos gusten y en mi caso quito los tres que marco a continuación para quedar de la siguiente manera.<a href="http://tolerantx.files.wordpress.com/2010/01/5.jpg"><img class="aligncenter size-medium wp-image-187" title="Blog final" src="http://tolerantx.files.wordpress.com/2010/01/5.jpg?w=300" alt="" width="300" height="194" /></a></p>
<p>Y listo, para ello si agregamos el widget a nuestro blog ya no aparecerán esas ligas <img src='http://tolerantx.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , por cierto también en algunos temas ponen dicho widget por default, si aún haciendo lo anterior no funciona necesitan editar el archivo sidebar.php que se encuentra en la ruta &#8220;wp-content/themes/tu_tema/&#8221; pero eso ya te toca a tí modificarlo <img src='http://tolerantx.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.roxoroxo.com/wp/2010/01/27/bienvenido/">Roxoroxo</a></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 366px; width: 1px; height: 1px;">Simplemente</div>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2010/01/26/editar-enlaceslinks-del-widget-meta-en-wordpress-2-9-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome Beta en Ubuntu 9.10</title>
		<link>http://tolerantx.com/2009/12/11/google-chrome-beta-en-ubuntu-9-10/</link>
		<comments>http://tolerantx.com/2009/12/11/google-chrome-beta-en-ubuntu-9-10/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 21:28:28 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=175</guid>
		<description><![CDATA[Pues a ver que tal funciona por acá.

]]></description>
			<content:encoded><![CDATA[<p>Pues a ver que tal funciona por acá.</p>
<p style="text-align: center;"><a href="http://tolerantx.files.wordpress.com/2009/12/google_chrome1.png"><img class="size-medium wp-image-177 aligncenter" title="google_chrome" src="http://tolerantx.files.wordpress.com/2009/12/google_chrome1.png?w=300" alt="Google Chrome Beta en Ubuntu 9.10" width="300" height="187" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2009/12/11/google-chrome-beta-en-ubuntu-9-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personaliza tu usuario de facebook</title>
		<link>http://tolerantx.com/2009/06/22/personaliza-tu-usuario-de-facebook/</link>
		<comments>http://tolerantx.com/2009/06/22/personaliza-tu-usuario-de-facebook/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 20:20:18 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[usuario]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=157</guid>
		<description><![CDATA[Pues ya hace unos días, no sé exactamente cuántos, Facebook lanzó la posibilidad de personalizar el nombre de usuario de tu perfil, para hacer esto solamente diríjete a http://www.facebook.com/username/
Y si quieres saber más detalles sobre ésto da click aquí.
]]></description>
			<content:encoded><![CDATA[<p>Pues ya hace unos días, no sé exactamente cuántos, Facebook lanzó la posibilidad de personalizar el nombre de usuario de tu perfil, para hacer esto solamente diríjete a <a href="http://www.facebook.com/username/" target="_blank">http://www.facebook.com/username/</a></p>
<p><a href="http://www.facebook.com/help.php?page=897" target="_blank">Y si quieres saber más detalles sobre ésto da click aquí.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2009/06/22/personaliza-tu-usuario-de-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Feeds (Fuente Web)</title>
		<link>http://tolerantx.com/2009/06/22/web-feeds-fuente-web/</link>
		<comments>http://tolerantx.com/2009/06/22/web-feeds-fuente-web/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 20:08:36 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=155</guid>
		<description><![CDATA[Si no sabes que es un web feed has click aquí.
¿Qué cliente de web feeds usas? yo en lo personal uso Google Reader, no entraré en detalles de por qué uso éste y no otro, simplemente me parece práctico y funciona a la perfección.
Como todos los días suelo revisar mis feeds para ver las actualizaciones [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.wikipedia.org/wiki/Fuente_web" target="_blank">Si no sabes que es un web feed has click aquí.</a></p>
<p>¿Qué cliente de web feeds usas? yo en lo personal uso Google Reader, no entraré en detalles de por qué uso éste y no otro, simplemente me parece práctico y funciona a la perfección.</p>
<p>Como todos los días suelo revisar mis feeds para ver las actualizaciones que han ocurrido a los sitios a los cuales quiero &#8220;seguir&#8221;, y me ha surgido la duda de cuales tienen ustedes y que tan frencuente los revisan, yo en lo personal tengo de los sitios como:<span id="more-155"></span></p>
<ul>
<li> eluniversal.com.mx (me gusta estar informado <img src='http://tolerantx.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</li>
</ul>
<ul>
<li>esdebian.org</li>
<li>espaciolinux.com</li>
<li>ubuntips.com.ar</li>
<li>vivalinux.com.ar</li>
<li>slashdot.org</li>
<li>elsyreyes.com</li>
<li>bolsadeideas.cl</li>
</ul>
<p>Entre otros, pero los principales son esos, ¿cuáles tienen ustedes que me puedan recomendar?, desde culturales, ocio, hasta geeks.</p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2009/06/22/web-feeds-fuente-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Consiganación?</title>
		<link>http://tolerantx.com/2009/02/25/%c2%bfconsiganacion/</link>
		<comments>http://tolerantx.com/2009/02/25/%c2%bfconsiganacion/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 20:13:55 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Ocio]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=148</guid>
		<description><![CDATA[Pues bueno una más a los errores en anuncios que nos encontramos en la calle  

Aquí un acercamiento  

]]></description>
			<content:encoded><![CDATA[<p>Pues bueno una más a los errores en anuncios que nos encontramos en la calle <img src='http://tolerantx.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p><a href="http://farm4.static.flickr.com/3338/3309994368_65da9bce6b_o.png"><img class="alignnone" title="Consiganacion1" src="http://farm4.static.flickr.com/3338/3309994368_fb89fb042f_m.jpg" alt="" width="240" height="130" /></a></p>
<p>Aquí un acercamiento <img src='http://tolerantx.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://farm4.static.flickr.com/3499/3309993620_fde69bc819_o.png"><img class="alignnone" title="Consiganacion2" src="http://farm4.static.flickr.com/3499/3309993620_ce50bbb9ef_m.jpg" alt="" width="240" height="148" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2009/02/25/%c2%bfconsiganacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>La responsabilidad de las universidades</title>
		<link>http://tolerantx.com/2009/02/23/la-responsabilidad-de-las-universidades/</link>
		<comments>http://tolerantx.com/2009/02/23/la-responsabilidad-de-las-universidades/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 15:57:43 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[Informática]]></category>

		<guid isPermaLink="false">http://tolerantx.com/?p=145</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/oO7zvH-MP5M&#038;fs=1" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed src="http://www.youtube.com/v/oO7zvH-MP5M&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2009/02/23/la-responsabilidad-de-las-universidades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paginar resultados con Zend_Paginator</title>
		<link>http://tolerantx.com/2008/09/29/paginar-resultados-con-zend_paginator/</link>
		<comments>http://tolerantx.com/2008/09/29/paginar-resultados-con-zend_paginator/#comments</comments>
		<pubDate>Tue, 30 Sep 2008 04:51:10 +0000</pubDate>
		<dc:creator>TolerantX</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Paginación]]></category>
		<category><![CDATA[Zend Frame]]></category>

		<guid isPermaLink="false">http://blog.tolerantx.com/?p=88</guid>
		<description><![CDATA[Tengo poco incursionando en el Zend Framework y tuve la necesidad, como casi siempre, de paginar las consultas de la base de datos, investigando me di cuenta de que ZF ya cuenta con ésta característica y me puse manos a la obra.
Primero que nada el árbol de mi sistema lo tengo de la siguiente manera:

App

application

controllers
models
views


library

Zend


public

images
scripts
styles





Si [...]]]></description>
			<content:encoded><![CDATA[<p>Tengo poco incursionando en el Zend Framework y tuve la necesidad, como casi siempre, de paginar las consultas de la base de datos, investigando me di cuenta de que ZF ya cuenta con ésta característica y me puse manos a la obra.</p>
<p>Primero que nada el árbol de mi sistema lo tengo de la siguiente manera:<span id="more-111"></span></p>
<ul>
<li>App
<ul>
<li>application
<ul>
<li>controllers</li>
<li>models</li>
<li>views</li>
</ul>
</li>
<li>library
<ul>
<li>Zend</li>
</ul>
</li>
<li>public
<ul>
<li>images</li>
<li>scripts</li>
<li>styles</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Si eres nuevo como yo aquí está una excelente guia para iniciar <a href="http://ajaxcode.net/descargas/Desarrollo_Aplicaciones_ZendFramework.pdf" target="_blank">Desarrolo de aplicaciones con Zend Framework</a> o bien <a href="http://framework.zend.com/docs/screencasts" target="_blank">Multimedia: Tutorial Screencasts</a> (éste último videos en inglés).</p>
<p>Primero cargamos las clases que necesitamos en el Bootstrap (archivo de arranque de configuración):</p>
<p>En mi caso hice una tabla llamada productos donde contiene una columna llamada &#8220;nombre_producto&#8221;, para esto agregamos nuestra tabla productos en la carpeta models/Productos.php con lo siguiente:</p>
<pre name="code" class="php">&lt;?php
class Producto extends Zend_Db_Table
{
	protected $_name = 'productos';
}
?&gt;</pre>
<p>Creamos nuestro controlador en application/controllers/indexController.php y quedaría de la siguiente manera:</p>
<pre name="code" class="php">&lt;?php
class IndexController extends Zend_Controller_Action
{
	public function indexAction()
	{
	Zend_Loader::loadClass('Producto');
	$producto = new Producto();

	// obtenemos la página actual
	$page = $this-&gt;_getParam('page', 1);
	// número de registros a mostrar por página
	$registros_pagina = 20;
	// número máximo de páginas a mostrar en el paginador
	$rango_paginas = 10;

	$productos = $producto-&gt;fetchAll()-&gt;toArray();

	$paginador = Zend_Paginator::factory($productos);
	$paginador-&gt;setItemCountPerPage($registros_pagina)
			  -&gt;setCurrentPageNumber($page)
			  -&gt;setPageRange($rango_paginas);

	$this-&gt;view-&gt;productos = $paginador;
	}
}
?&gt;</pre>
<p>Creamos el archivo en el cual se mostrará nuestra información en application/views/index/index.phtml:</p>
<pre name="code" class="php">&lt;?php
echo $this-&gt;paginationControl($this-&gt;productos,
	'Sliding',
	'index/pagination/pagination_control.phtml');
?&gt;
&lt;table&gt;
&lt;tr&gt;
	&lt;td&gt;Nombre Producto&lt;/td&gt;
&lt;/tr&gt;
&lt;?php foreach($this-&gt;productos as $producto): ?&gt;
&lt;tr&gt;
	&lt;td&gt;&lt;?php echo $producto['nombre_producto']; ?&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;?php endforeach; ?&gt;</pre>
<p>Por último añadimos el pagination control, yo lo coloqué en application/views/index/pagination/pagination_control.phtml, <a href="http://framework.zend.com/manual/en/zend.paginator.usage.html#zend.paginator.usage.rendering.example-controls" target="_blank">aquí</a> puedes encontrar otros dos tipos o bien crear el tuyo propio:</p>
<pre name="code" class="php">&lt;?php
if ($this-&gt;pageCount): ?&gt;
&lt;div class="paginationControl"&gt;
&lt;!-- Previous page link --&gt;
&lt;?php if (isset($this-&gt;previous)): ?&gt;
  &lt;a href="&lt;?php echo $this-&gt;url(array('page'
  	=&gt; $this-&gt;previous)); ?&gt;"&gt;&lt; Previous&lt;/a&gt; | &lt;?php else: ?&gt;
  &lt;span class="disabled"&gt;&lt; Previous&lt;/span&gt; |
&lt;?php endif; ?&gt;

&lt;!-- Numbered page links --&gt;
&lt;?php foreach ($this-&gt;pagesInRange as $page): ?&gt;
  &lt;?php if ($page != $this-&gt;current): ?&gt;
    &lt;a href="&lt;?php echo $this-&gt;url(array('page'
      =&gt; $page)); ?&gt;"&gt;&lt;?php echo $page; ?&gt;&lt;/a&gt; |
  &lt;?php else: ?&gt;
    &lt;?php echo $page; ?&gt; |
  &lt;?php endif; ?&gt;
&lt;?php endforeach; ?&gt;

&lt;!-- Next page link --&gt;
&lt;?php if (isset($this-&gt;next)): ?&gt;
  &lt;a href="&lt;?php echo $this-&gt;url(array('page'
  =&gt; $this-&gt;next)); ?&gt;"&gt;Next &gt;&lt;/a&gt;
&lt;?php else: ?&gt;
  &lt;span class="disabled"&gt;Next &gt;&lt;/span&gt;
&lt;?php endif; ?&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;</pre>
<p>Ésta entrada la hice basándome en la documentación oficial de <a href="http://framework.zend.com/manual/en/zend.paginator.html" target="_blank">Zend Framework</a>, espero les sea de utilidad <img src='http://tolerantx.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://tolerantx.com/2008/09/29/paginar-resultados-con-zend_paginator/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
