<?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>David Rojas &#187; CodeIgniter</title>
	<atom:link href="http://www.davidrojas.net/index.php/category/codeigniter/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidrojas.net</link>
	<description>Diseño y desarrollo web</description>
	<lastBuildDate>Thu, 07 Apr 2011 19:33:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Publicado CodeIgniter 2.0</title>
		<link>http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/</link>
		<comments>http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 21:45:34 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=896</guid>
		<description><![CDATA[Acaba de publicarse la esperada versión 2.0 de CodeIgniter. Para los que no hayan estado siguiendo su desarrollo, debido a ciertas disputas entre los miembros de la comunidad y los desarrolladores, motivadas principalmente por la lentitud en la incorporación de nuevas funcionalidades y los retrasos en la publicación de versiones, se decidió por parte de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/09/codeigniter_logo.png" alt="" title="codeigniter_logo" width="163" height="104" class="derecha alignright size-full wp-image-360" />Acaba de publicarse la esperada versión 2.0 de <a href="http://codeigniter.com/download.php">CodeIgniter</a>. Para los que no hayan estado siguiendo su desarrollo, debido a ciertas disputas entre los miembros de la comunidad y los desarrolladores, motivadas principalmente por la lentitud en la incorporación de nuevas funcionalidades y los retrasos en la publicación de versiones, se decidió por parte de Ellislab (la empresa que desarrolla CodeIgniter) separar CodeIgniter en dos ramas: <em>Core</em> y <em>Reactor</em>.</p>
<p>La versión <em>Core</em>, será de desarrollo más lento, y es la que usará Ellislab en sus productos comerciales.</p>
<p><em>Reactor</em> será la versión &#8220;community&#8221;, en la que los usuarios podrán enviar sus propuestas de mejora, y un equipo de responsables del proyecto las revisará para ser incluidas o no en futuras versiones del framework. </p>
<p>A todos los efectos, la versión a usar es la <em>Reactor</em>. Ésta es la que aparece oficialmente para descarga en la web (aunque ambas están disponibles) y la que Ellislab recomienda.<br />
<span id="more-896"></span><br />
Algunos de los cambios más importantes son:</p>
<ul class="bullets">
<li>Se ha eliminado la compatibilidad con PHP 4, ahora se requiere PHP 5.1</li>
<li>Añadida la protección CSRF en el <a href="http://codeigniter.com/user_guide/helpers/form_helper.html">form helper</a>.</li>
<li><a href="http://codeigniter.com/user_guide/general/drivers.html">Drivers</a>.</li>
<li><a href="http://codeigniter.com/user_guide/libraries/loader.html">Application packages</a>.</li>
<li>Se ha eliminado el uso de los plugins, en favor de los helpers.</li>
<li>Añadido <em>$route[‘404_override’]</em> para permitir manejar las páginas de error 404 por los controladores.</li>
<li>Se ha eliminado el <em>scaffolding</em>.</li>
<li>Soporte total de <a href="http://codeigniter.com/user_guide/general/urls.html">query strings</a>.</li>
<li>Nuevo sistema de <a href="http://codeigniter.com/user_guide/libraries/caching.html">caché</a>, con soporte para APC y memcache.</li>
<li>Compatibilidad con línea de comandos, para facilitar el uso del cron.</li>
</ul>
<p>Se ha quedado fuera la inclusión de una librería de autenticación, que era una de las características más demandadas y a mi parecer muy necesaria, pero parece ser que está planeado y se incluirá en futuras versiones cuando se encuentre la manera correcta de implementarlo.</p>
<p>Podeis ver <a href="http://codeigniter.com/news/codeigniter_2.0.0_released/">el anuncio oficial de Ellislab</a>, y <a href="http://codeigniter.com/downloads/">descargarlo aquí</a>.</p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Publicado%20CodeIgniter%202.0%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;t=Publicado%20CodeIgniter%202.0"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Publicado%20CodeIgniter%202.0&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0&amp;notes=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-896'), event, 'post-896')" onMouseOver="more(this,'post-896')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-896')" id="sociable-post-896" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;t=Publicado%20CodeIgniter%202.0"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0&amp;bodytext=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&title=Publicado%20CodeIgniter%202.0"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0&amp;annotation=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;t=Publicado%20CodeIgniter%202.0"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Publicado%20CodeIgniter%202.0&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;Title=Publicado%20CodeIgniter%202.0"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0&amp;selection=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;t=Publicado%20CodeIgniter%202.0&amp;s=Acaba%20de%20publicarse%20la%20esperada%20versi%C3%B3n%202.0%20de%20CodeIgniter.%20Para%20los%20que%20no%20hayan%20estado%20siguiendo%20su%20desarrollo%2C%20debido%20a%20ciertas%20disputas%20entre%20los%20miembros%20de%20la%20comunidad%20y%20los%20desarrolladores%2C%20motivadas%20principalmente%20por%20la%20lentitud%20en%20la%20inco"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;title=Publicado%20CodeIgniter%202.0&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fcodeigniter%2Fpublicado-codeigniter-2-0%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-896',true)" class="close">



		  <img onclick="hide_sociable('post-896',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Publicado CodeIgniter 2.0 - http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/codeigniter/publicado-codeigniter-2-0/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>URLs amigables en CodeIgniter: Controlador &#8216;catch-all&#8217;</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:46:45 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=661</guid>
		<description><![CDATA[Supongamos que estamos programando un CMS en CodeIgniter para integrarlo en nuestros proyectos, y queremos generar urls del estilo www.dominio.com/titulo-de-la-pagina. Una manera de enfocarlo sería por ejemplo crear un controlador Paginas con un método cargar, al que se le pasará como parámetro el título de la página en cuestión. De esta manera se llamaría a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/09/codeigniter_logo.png" alt="" title="codeigniter_logo" width="163" height="104" class="derecha alignright size-full wp-image-360" />Supongamos que estamos programando un CMS en CodeIgniter para integrarlo en nuestros proyectos, y queremos generar urls del estilo <em>www.dominio.com/titulo-de-la-pagina</em>. Una manera de enfocarlo sería por ejemplo crear un controlador <em>Paginas</em> con un método <em>cargar</em>, al que se le pasará como parámetro el título de la página en cuestión. De esta manera se llamaría a la url <em>www.dominio.com/paginas/cargar/titulo-de-la-pagina</em>. Para eliminar <em>/paginas/cargar/</em> de la url editaríamos el fichero <a href="http://www.codeignitor.com/user_guide/general/routing.html" title="Rutas en CodeIgniter">routing.php</a>.</p>
<p>Esto supone un problema: si añadimos una regla genérica a las rutas para redirigir cualquier url al controlador <em>paginas/cargar</em>, no funcionaría el resto de controladores de nuestra aplicación. Deberíamos añadir una regla para cada página o bien para cada controlador que tengamos, con lo cual perdemos dinamismo y nos obliga a editar el fichero de rutas con cada cambio.<br />
<span id="more-661"></span></p>
<h3>Extendiendo la librería Router</h3>
<p>Lo que nos interesa es un controlador &#8216;catch-all&#8217;, que capture cualquier texto de la url y lo procese siempre que no exista otro controlador con ese nombre. Para ello vamos a extender la librería de rutas creando un archivo <em>MY_Router.php</em> y guardándolo en <em>application/libraries/</em>. El método estándar para extender librerías es crear un archivo con el mismo nombre añadiendo el prefijo <em>MY_</em>. Aquí tenéis el código de <em>MY_Router.php</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> MY_Router <span style="color: #000000; font-weight: bold;">extends</span> CI_Router <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> MY_Router<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        parent<span style="color: #339933;">::</span><span style="color: #004000;">CI_Router</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> _validate_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$segments</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Comprueba que el controlador no existe</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">'controllers/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$segments</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span>EXT<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$segments</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;paginas&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;cargar&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$segments</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> parent<span style="color: #339933;">::</span>_validate_request<span style="color: #009900;">&#40;</span><span style="color: #000088;">$segments</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Como veis lo que hacemos es extender el método <em>_validate_request</em> de la librería <em>Router</em>, que es el que procesa los segmentos de nuestra url. En él comprobamos si el nombre del primer segmento de la url corresponde a un controlador existente, si no es así añadimos al array de segmentos nuestro controlador y método <em>paginas</em> y <em>cargar</em> y llamamos al método <em>_validate_request</em> de la librería Router original pasándole estos parámetros.</p>
<p>Finalmente nos queda crear el controlador <em>Paginas.php</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">class</span> Paginas <span style="color: #000000; font-weight: bold;">extends</span> Controller <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        	parent<span style="color: #339933;">::</span><span style="color: #004000;">Controller</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> cargar<span style="color: #009900;">&#40;</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    	<span style="color: #339933;">.....</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Dentro de la función <em>cargar</em>, <code>$title</code> contendrá el título de nuestra url, es decir el primer segmento que le pasamos: <em>www.dominio.com/titulo-de-la-pagina</em>. En dicha función lo gestionaremos como nos interese, siendo lo más lógico utilizar ese título como identificador de nuestra página y buscarla en la base de datos para mostrarla.</p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;t=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;notes=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-661'), event, 'post-661')" onMouseOver="more(this,'post-661')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-661')" id="sociable-post-661" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;t=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;bodytext=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;annotation=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;t=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;Title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;selection=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;t=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;s=Supongamos%20que%20estamos%20programando%20un%20CMS%20en%20CodeIgniter%20para%20integrarlo%20en%20nuestros%20proyectos%2C%20y%20queremos%20generar%20urls%20del%20estilo%20www.dominio.com%2Ftitulo-de-la-pagina.%20Una%20manera%20de%20enfocarlo%20ser%C3%ADa%20por%20ejemplo%20crear%20un%20controlador%20Paginas%20con%20un%20m%C3%A9"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;title=URLs%20amigables%20en%20CodeIgniter%3A%20Controlador%20%27catch-all%27&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Furls-amigables-en-codeigniter-controlador-catch-all%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-661',true)" class="close">



		  <img onclick="hide_sociable('post-661',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="URLs amigables en CodeIgniter: Controlador 'catch-all' - http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/urls-amigables-en-codeigniter-controlador-catch-all/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Videotutorial: Hooks y creación de librerías con Codeigniter</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 16:47:17 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=582</guid>
		<description><![CDATA[A petición popular he creado un último screencast sobre CodeIgniter. En él os voy a enseñar un par de conceptos importantes para extender la funcionalidad del framework: los hooks y la creación de librerias. Como ejemplo crearé un sistema muy simple de autenticación, con una librería que contendrá una función para hacer login y otra [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/12/codeigniter_screencast_hook.png" alt="codeigniter_screencast_hook" title="codeigniter_screencast_hook" width="163" height="104" class="derecha alignright size-full wp-image-583" />A petición popular he creado un último screencast sobre CodeIgniter. En él os voy a enseñar un par de conceptos importantes para extender la funcionalidad del framework: los hooks y la creación de librerias. Como ejemplo crearé un sistema muy simple de autenticación, con una librería que contendrá una función para hacer login y otra para logout, y un hook que se disparará cada vez que se ejecute cualquier controlador. Los <a href="http://codeigniter.com/user_guide/general/hooks.html">hooks</a> son una utilidad que nos permite llamar a una función en determinadas fases de la ejecución del framework, por ejemplo antes o después de ejecutar cualquier controlador, el constructor de éste, etc.</p>
<p>Podéis encontrar el resto de screencasts en la <a href="http://www.davidrojas.net/index.php/category/screencasts/" title="Videotutoriales de diseño, desarrollo web y codeigniter">página de videotutoriales</a>, o suscribiros al <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=326994250" title="Enlace a videopodcast de David Rojas en iTunes">podcast de iTunes</a>.<br />
<span id="more-582"></span><br />
<em class="linkem"><a href='http://www.davidrojas.net/wp-content/uploads/2009/12/5_hooks_y_creacion_de_librerias_en_codeigniter_archivos.zip' title="Código ejemplo hooks y creación de librerias CodeIgniter, sistema de login básico">Descargar ficheros con el código del ejemplo.</a></em></p>
<h3>Ver screencast (duración: 24:02)</h3>
<div class="video">
<embed src="http://blip.tv/play/hJIhgbrSYQA" type="application/x-shockwave-flash" width="490" height="397" allowscriptaccess="always" allowfullscreen="true"></embed>
</div>
<ul>
<li><a href="http://blip.tv/file/get/Davidrojas-5HooksYCreacinDeLibrerasConCodeIgniter793.mov" title="Descargar versión alta calidad">Descargar videotutorial en alta calidad &#8211; MOV (67 MB)</a></li>
<li><a href="http://blip.tv/file/get/Davidrojas-5HooksYCreacinDeLibrerasConCodeIgniter290.m4v" title="Descargar versión iPod/iPhone">Descargar videotutorial optimizado para iPod/iPhone &#8211; M4V (35 MB)</a></li>
</ul>
<p></p>
<p>&raquo; Advertencia: El audio está un poco desincronizado con el vídeo. En algunas partes apenas se nota, pero en otras sí, sobre todo por el final. De todas formas creo que se entienden bastante bien los conceptos, y como es un video largo no he creído necesario volverlo a grabar.</p>
<p>Y con este sí finalizo la serie de videos sobre CodeIgniter. Mi próximo screencast será sobre algo relacionado con CSS y frontend, así que os recomiendo que os sigáis pasando por aquí a todos los que estéis interesados en todos los aspectos del desarrollo web en general y no sólo en la programación pura de backend.</p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;t=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;notes=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-582'), event, 'post-582')" onMouseOver="more(this,'post-582')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-582')" id="sociable-post-582" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;t=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;bodytext=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;annotation=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;t=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;Title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;selection=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;t=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;s=A%20petici%C3%B3n%20popular%20he%20creado%20un%20%C3%BAltimo%20screencast%20sobre%20CodeIgniter.%20En%20%C3%A9l%20os%20voy%20a%20ense%C3%B1ar%20un%20par%20de%20conceptos%20importantes%20para%20extender%20la%20funcionalidad%20del%20framework%3A%20los%20hooks%20y%20la%20creaci%C3%B3n%20de%20librerias.%20Como%20ejemplo%20crear%C3%A9%20un%20sistema%20muy%20s"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;title=Videotutorial%3A%20Hooks%20y%20creaci%C3%B3n%20de%20librer%C3%ADas%20con%20Codeigniter&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-582',true)" class="close">



		  <img onclick="hide_sociable('post-582',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Videotutorial: Hooks y creación de librerías con Codeigniter - http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-hooks-y-creacion-de-librerias-con-codeigniter/feed/</wfw:commentRss>
		<slash:comments>78</slash:comments>
		</item>
		<item>
		<title>Manejo de errores en MySQL con CodeIgniter</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 08:24:11 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=503</guid>
		<description><![CDATA[Cuando tenemos un error conectando o realizando operaciones con la base de datos (MySQL) usando CodeIgniter, lo normal es que el sistema nos muestre un mensaje por defecto con el código, descripción y query ejecutado, tal que así: Esta página de error se puede personalizar editando la plantilla /errors/error_db.php en nuestra carpeta de la aplicación. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/12/codeigniter_mysql_errors.png" alt="codeigniter_mysql_errors" title="codeigniter_mysql_errors" width="163" height="104" class="derecha alignright size-full wp-image-530" />Cuando tenemos un error conectando o realizando operaciones con la base de datos (MySQL) usando CodeIgniter, lo normal es que el sistema nos muestre un mensaje por defecto con el código, descripción y query ejecutado, tal que así:</p>
<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/12/error_db_ci.png" alt="error_db_ci" title="error_db_ci" width="280" height="144" class="alignright size-full wp-image-533" /></p>
<p>Esta página de error se puede personalizar editando la plantilla <em>/errors/error_db.php</em> en nuestra carpeta de la aplicación. El problema es que este mensaje se mostrará en lugar de nuestra vista o en medio de ella, y además se mostrará siempre a menos que desactivemos la opción de debug de la base de datos, y si lo hacemos nuestra aplicación fallará silenciosamente, no tenemos forma de capturar este error y realizar las operaciones que nos convengan, lo cual sería especialmente útil cuando hacemos peticiones ajax.</p>
<p>Para solucionar esto existen dos métodos no documentados en la clase DB que nos permite capturar el mensaje de error y el número:<br />
<em class="bold">$this->db->_error_message()</em> y <em class="bold">$this->db->_error_number()</em>.<br />
<span id="more-503"></span></p>
<p>Estos métodos son envoltorios de las funciones <em>mysql_error()</em> y <em>mysql_errno()</em> de php. En la documentación de mysql podemos encontrar el <a href="http://dev.mysql.com/doc/refman/5.1/en/error-handling.html" title="listado errores mysql">listado de códigos de errores</a> que nos devuelve <em>mysql_errno()</em> (y por lo tanto <em>$this->db->_error_number()</em>), por si nos interesa realizar distintas operaciones según el tipo de error ocurrido.</p>
<p>Como ejemplo os mostraré una forma sencilla de gestionar estos mensajes de error:</p>
<p>En primer lugar debemos desactivar el debug de la base de datos poniendo la opción <em class="bold">$db['default']['db_debug']</em> a <em class="bold">FALSE</em> en el archivo <em>/config/database.php</em>.</p>
<p>Después en nuestro método del modelo, tras el query a la BD podemos poner:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span>_error_message<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">return</span> <span style="color: #000088;">$data</span><span style="color: #339933;">;</span></pre></div></div>

<p>En el controlador recogeremos esta variable devuelta y la pasaremos a la vista, y en la parte de la vista que nos interese pondremos:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$error</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;div class=&quot;error&quot;&gt;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$error</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;/div&gt;'</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>De la misma manera podemos manejar los errores vía ajax devolviendo esta variable codificada con <em>json</em> en nuestro controlador y gestionándola en el javascript de la vista.</p>
<p>Finalmente, ante la avalancha de peticiones espero volver en breve con un último videotutorial sobre CodeIgniter.</p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;t=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;notes=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-503'), event, 'post-503')" onMouseOver="more(this,'post-503')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-503')" id="sociable-post-503" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;t=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;bodytext=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;annotation=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;t=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;Title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;selection=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;t=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;s=Cuando%20tenemos%20un%20error%20conectando%20o%20realizando%20operaciones%20con%20la%20base%20de%20datos%20%28MySQL%29%20usando%20CodeIgniter%2C%20lo%20normal%20es%20que%20el%20sistema%20nos%20muestre%20un%20mensaje%20por%20defecto%20con%20el%20c%C3%B3digo%2C%20descripci%C3%B3n%20y%20query%20ejecutado%2C%20tal%20que%20as%C3%AD%3A%0D%0A%0D%0A%0D%0A%0D%0AEsta%20p%C3%A1g"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;title=Manejo%20de%20errores%20en%20MySQL%20con%20CodeIgniter&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fmanejo-de-errores-en-la-base-de-datos-con-codeigniter%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-503',true)" class="close">



		  <img onclick="hide_sociable('post-503',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Manejo de errores en MySQL con CodeIgniter - http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/manejo-de-errores-en-la-base-de-datos-con-codeigniter/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Videotutorial: CRUD con scaffolding, rendimiento y unit testing en Codeigniter</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 17:31:51 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=466</guid>
		<description><![CDATA[Para terminar la serie de screencasts sobre CodeIgniter voy a mostraros algunos componentes interesantes que tiene el framework, como el scaffolding para hacer CRUD y las librerías benchmark y unit testing. Estas librerías son muy útiles cuando desarrollemos aplicaciones complejas en las que necesitemos medir el rendimiento y hacer pruebas unitarias, y nos pueden ayudar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/08/codeigniter_screencast.png" alt="codeigniter_screencast" title="codeigniter_screencast" width="163" height="104" class="derecha alignright size-full wp-image-261" />Para terminar la serie de screencasts sobre CodeIgniter voy a mostraros algunos componentes interesantes que tiene el framework, como el scaffolding para hacer CRUD y las librerías <a href="http://codeigniter.com/user_guide/libraries/benchmark.html" title="User Guide: Benchmark">benchmark</a> y <a href="http://codeigniter.com/user_guide/libraries/unit_testing.html" title="User Guide: Unit Testing">unit testing</a>. Estas librerías son muy útiles cuando desarrollemos aplicaciones complejas en las que necesitemos medir el rendimiento y hacer pruebas unitarias, y nos pueden ayudar a depurar errores y encontrar bloques que necesitemos optimizar. Sobre el scaffolding, es conveniente utilizarlo sólo en la fase de desarrollo, ya que el uso de la palabra secreta no proporciona la seguridad suficiente para poder usarlo en producción.</p>
<p>Podéis encontrar el resto de screencasts en la <a href="http://www.davidrojas.net/index.php/category/screencasts/" title="Videotutoriales de diseño, desarrollo web y codeigniter">página de videotutoriales</a>, o suscribiros al <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=326994250" title="Enlace a videopodcast de David Rojas en iTunes">podcast de iTunes</a>.<br />
<span id="more-466"></span><br />
<em class="linkem"><a href="http://www.davidrojas.net/wp-content/uploads/2009/11/4_crud_rendimiento_unit_test_codeigniter_archivos.zip" title="Código ejemplo controlador scaffolding, benchmark, unit test">Descargar ficheros con el código del ejemplo.</a></em></p>
<h3>Ver screencast (duración: 11:29)</h3>
<div class="video">
<embed src="http://blip.tv/play/hJIhgbHXdwA" type="application/x-shockwave-flash" width="490" height="397" allowscriptaccess="always" allowfullscreen="true"></embed>
</div>
<ul>
<li><a href="http://blip.tv/file/get/Davidrojas-4CRUDConScaffoldingRendimientoYUnitTestingConCodeIgnite281.mov" title="Descargar versión alta calidad">Descargar videotutorial en alta calidad &#8211; MOV (32 MB)</a></li>
<li><a href="http://blip.tv/file/get/Davidrojas-4CRUDConScaffoldingRendimientoYUnitTestingConCodeIgnite191.m4v" title="Descargar versión iPod/iPhone">Descargar videotutorial optimizado para iPod/iPhone &#8211; M4V (17 MB)</a></li>
</ul>
<p></p>
<p>Por último recomendaros que os paséis por el <a href="http://aliviana.com/foro/">foro de CodeIgniter en Español</a>, donde podréis encontrar multitud de recursos sobre este framework.</p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;t=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;notes=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-466'), event, 'post-466')" onMouseOver="more(this,'post-466')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-466')" id="sociable-post-466" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;t=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;bodytext=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;annotation=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;t=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;Title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;selection=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;t=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;s=Para%20terminar%20la%20serie%20de%20screencasts%20sobre%20CodeIgniter%20voy%20a%20mostraros%20algunos%20componentes%20interesantes%20que%20tiene%20el%20framework%2C%20como%20el%20scaffolding%20para%20hacer%20CRUD%20y%20las%20librer%C3%ADas%20benchmark%20y%20unit%20testing.%20Estas%20librer%C3%ADas%20son%20muy%20%C3%BAtiles%20cuando%20de"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;title=Videotutorial%3A%20CRUD%20con%20scaffolding%2C%20rendimiento%20y%20unit%20testing%20en%20Codeigniter&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-466',true)" class="close">



		  <img onclick="hide_sociable('post-466',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Videotutorial: CRUD con scaffolding, rendimiento y unit testing en Codeigniter - http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/screencast-crud-con-scaffolding-rendimiento-y-unit-testing-en-codeigniter/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Videotutorial: Ajax con Jquery en Codeigniter</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 06:11:01 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=374</guid>
		<description><![CDATA[En este screencast voy a mostraros un sencillo ejemplo de cómo utilizar jQuery para cargar contenido mediante ajax en CodeIgniter. El código está basado en el ejemplo del primer video &#8220;Introducción a CodeIgniter&#8221;, así que os recomiendo que le echéis un vistazo primero si no lo habéis hecho ya. Vamos a modificar ese código para [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/09/codeigniter_screencast_jque.png" alt="codeigniter_screencast_jque" title="codeigniter_screencast_jquery" width="163" height="104" class="derecha alignright size-full wp-image-376" />En este screencast voy a mostraros un sencillo ejemplo de cómo utilizar jQuery para cargar contenido mediante ajax en CodeIgniter. El código está basado en el ejemplo del primer video <a href="http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/" title="Videotutorial: Introducción a CodeIgniter">&#8220;Introducción a CodeIgniter&#8221;</a>, así que os recomiendo que le echéis un vistazo primero si no lo habéis hecho ya. Vamos a modificar ese código para que liste sólo los títulos de las entradas, y al hacer click en un título se cargue debajo el contenido de la entrada.</p>
<p>Este es el tercer videotutorial de la serie CodeIgniter, podéis encontrarlos todos en la <a href="http://www.davidrojas.net/index.php/category/screencasts/" title="Videotutoriales de diseño, desarrollo web y codeigniter">página de screencasts</a>, o suscribiros al <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=326994250" title="Enlace a podcast de David Rojas en iTunes">podcast de iTunes</a>.<br />
<span id="more-374"></span><br />
<em class="linkem"><a href="http://www.davidrojas.net/wp-content/uploads/2009/09/3_ajax_con_jquery_en_codeigniter.zip">Descargar ficheros con el código del ejemplo.</a></em></p>
<h3>Ver screencast (duración: 11:21)</h3>
<div class="video">
<embed src="http://blip.tv/play/hJIhgaLNRgA" type="application/x-shockwave-flash" width="490" height="397" allowscriptaccess="always" allowfullscreen="true"></embed>
</div>
<ul>
<li><a href="http://blip.tv/file/get/Davidrojas-3AjaxConJqueryEnCodeIgniter659.mp4" title="Descargar versión alta calidad">Descargar videotutorial en alta calidad &#8211; MP4 (47 MB)</a></li>
<li><a href="http://blip.tv/file/get/Davidrojas-3AjaxConJqueryEnCodeIgniter994.m4v" title="Descargar versión iPod/iPhone">Descargar videotutorial optimizado para iPod/iPhone &#8211; M4V (37 MB)</a></li>
</ul>
<p></p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;t=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;notes=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-374'), event, 'post-374')" onMouseOver="more(this,'post-374')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-374')" id="sociable-post-374" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;t=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;bodytext=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;annotation=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;t=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;Title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;selection=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;t=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;s=En%20este%20screencast%20voy%20a%20mostraros%20un%20sencillo%20ejemplo%20de%20c%C3%B3mo%20utilizar%20jQuery%20para%20cargar%20contenido%20mediante%20ajax%20en%20CodeIgniter.%20El%20c%C3%B3digo%20est%C3%A1%20basado%20en%20el%20ejemplo%20del%20primer%20video%20%22Introducci%C3%B3n%20a%20CodeIgniter%22%2C%20as%C3%AD%20que%20os%20recomiendo%20que%20le%20ec"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;title=Videotutorial%3A%20Ajax%20con%20Jquery%20en%20Codeigniter&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-ajax-con-jquery-en-codeigniter%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-374',true)" class="close">



		  <img onclick="hide_sociable('post-374',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Videotutorial: Ajax con Jquery en Codeigniter - http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-ajax-con-jquery-en-codeigniter/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
<enclosure url="http://blip.tv/file/get/Davidrojas-3AjaxConJqueryEnCodeIgniter659.mp4" length="49920346" type="video/mp4" />
<enclosure url="http://blip.tv/file/get/Davidrojas-3AjaxConJqueryEnCodeIgniter994.m4v" length="39013354" type="video/mp4" />
		</item>
		<item>
		<title>Publicado CodeIgniter 1.7.2</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 18:38:12 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=348</guid>
		<description><![CDATA[Hace unos días se liberó la versión 1.7.2 de CodeIgniter, que podéis descargar aquí. Sus principales mejoras, además de un buen número de bugs corregidos, son: Compatibilidad con PHP 5.3.0. Añadida la clase Cart Class. Ciertas mejoras en el Form helper. Añadida función is_php() para comparar versiones de PHP. Modificada la función show_error() para permitir [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/09/codeigniter_1.7.2.png" alt="codeigniter_1.7.2" title="codeigniter_1.7.2" width="163" height="104" class="derecha alignright size-full wp-image-368" />Hace unos días se liberó la <a href="http://codeigniter.com/news/codeigniter_v1.7.2_released/" title="CodeIgniter 1.7.2">versión 1.7.2 de CodeIgniter</a>, que podéis <a href="http://codeigniter.com/download.php" title="Descargar CodeIgniter 1.7.2">descargar aquí</a>. Sus principales mejoras, además de un buen número de bugs corregidos, son:</p>
<ul class="bullets">
<li>Compatibilidad con PHP 5.3.0.</li>
<li>Añadida la clase <a href="http://codeigniter.com/user_guide/libraries/cart.html" title="documentación sobre la nueva Cart Class">Cart Class</a>.</li>
<li>Ciertas mejoras en el <a href="http://codeigniter.com/user_guide/helpers/form_helper.html" title="Form helper">Form helper</a>.</li>
<li>Añadida función <a href="http://codeigniter.com/user_guide/general/common_functions.html" title="Common functions CodeIgniter">is_php()</a> para comparar versiones de PHP.</li>
<li>Modificada la función <a href="http://codeigniter.com/user_guide/general/errors.html" title="Función show_error">show_error()</a></em> para permitir enviar códigos de respuesta HTTP.</li>
</ul>
<p>Lo más interesante que veo es la compatibilidad con PHP 5.3 (sobre todo desde que MacOS X Snow Leopard viene con esta versión de serie), y la nueva clase Cart. Esta clase es útil para programar una tienda virtual, ya que proporciona una interfaz sencilla para crear y actualizar un carrito de la compra. Aunque ya se rumoreaba desde hace tiempo que se iba a incluir esta clase, se esperaba para la versión 2.0, ya que es raro que introduzcan librerías nuevas en versiones menores.</p>
<p>Cuando tenga un hueco espero en breve seguir con mi serie de <a href="http://www.davidrojas.net/index.php/category/screencasts/" title="Video tutoriales CodeIgniter">video tutoriales de CodeIgniter</a>.</p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Publicado%20CodeIgniter%201.7.2%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;t=Publicado%20CodeIgniter%201.7.2"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Publicado%20CodeIgniter%201.7.2&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2&amp;notes=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-348'), event, 'post-348')" onMouseOver="more(this,'post-348')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-348')" id="sociable-post-348" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;t=Publicado%20CodeIgniter%201.7.2"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2&amp;bodytext=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&title=Publicado%20CodeIgniter%201.7.2"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2&amp;annotation=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;t=Publicado%20CodeIgniter%201.7.2"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Publicado%20CodeIgniter%201.7.2&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;Title=Publicado%20CodeIgniter%201.7.2"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2&amp;selection=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;t=Publicado%20CodeIgniter%201.7.2&amp;s=Hace%20unos%20d%C3%ADas%20se%20liber%C3%B3%20la%20versi%C3%B3n%201.7.2%20de%20CodeIgniter%2C%20que%20pod%C3%A9is%20descargar%20aqu%C3%AD.%20Sus%20principales%20mejoras%2C%20adem%C3%A1s%20de%20un%20buen%20n%C3%BAmero%20de%20bugs%20corregidos%2C%20son%3A%0D%0A%0D%0ACompatibilidad%20con%20PHP%205.3.0.%0D%0AA%C3%B1adida%20la%20clase%20Cart%20Class.%0D%0ACiertas%20mejoras%20en"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;title=Publicado%20CodeIgniter%201.7.2&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fpublicado-codeigniter-1-7-2%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-348',true)" class="close">



		  <img onclick="hide_sociable('post-348',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Publicado CodeIgniter 1.7.2 - http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/publicado-codeigniter-1-7-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Videotutorial: Creación y validación de formularios con Codeigniter</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 20:35:23 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=319</guid>
		<description><![CDATA[En este video tutorial voy a enseñaros cómo crear formularios en CodeIgniter con ayuda del helper form y validarlos de manera sencilla mediante la librería form_validation. Este es el segundo videotutorial de la serie CodeIgnitor, podéis encontrarlos todos en la página de screencasts, o suscribiros al podcast de iTunes. Descargar ficheros con el código del [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/08/codeigniter_screencast_form.png" alt="codeigniter_screencast_form" title="codeigniter_screencast_form" width="163" height="104" class="derecha alignright size-full wp-image-335" />En este video tutorial voy a enseñaros cómo crear formularios en CodeIgniter con ayuda del <a href="http://codeigniter.com/user_guide/helpers/form_helper.html" title="CodeIgniter User Guide: form helper">helper form</a> y validarlos de manera sencilla mediante la librería <a href="http://codeigniter.com/user_guide/libraries/form_validation.html" title="CodeIgniter User Guide: form_validation library">form_validation</a>.</p>
<p>Este es el segundo videotutorial de la serie CodeIgnitor, podéis encontrarlos todos en la <a href="http://www.davidrojas.net/index.php/category/screencasts/" title="Videotutoriales de diseño, desarrollo web y codeigniter">página de screencasts</a>, o suscribiros al <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=326994250" title="Enlace a podcast de David Rojas en iTunes">podcast de iTunes</a>.<br />
<span id="more-319"></span><br />
<em class="linkem"><a href='http://www.davidrojas.net/wp-content/uploads/2009/08/2_creacion_y_validacion_formularios_codeigniter_archivos.zip'>Descargar ficheros con el código del ejemplo.</a></em></p>
<h3>Ver screencast (duración: 20:51)</h3>
<div class="video">
<embed src="http://blip.tv/play/hJIhgZm3CQA" type="application/x-shockwave-flash" width="490" height="397" allowscriptaccess="always" allowfullscreen="true"></embed>
</div>
<ul>
<li><a href="http://blip.tv/file/get/Davidrojas-2CreacionYValidacionDeFormulariosConCodeIgniter755.mov" title="Descargar versión alta calidad">Descargar videotutorial en alta calidad &#8211; MOV (60 MB)</a></li>
<li><a href="http://blip.tv/file/get/Davidrojas-2CreacionYValidacionDeFormulariosConCodeIgniter211.m4v" title="Descargar versión iPod/iPhone">Descargar videotutorial optimizado para iPod/iPhone &#8211; M4V (32 MB)</a></li>
</ul>
<p></p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;t=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;notes=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-319'), event, 'post-319')" onMouseOver="more(this,'post-319')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-319')" id="sociable-post-319" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;t=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;bodytext=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;annotation=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;t=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;Title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;selection=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;t=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;s=En%20este%20video%20tutorial%20voy%20a%20ense%C3%B1aros%20c%C3%B3mo%20crear%20formularios%20en%20CodeIgniter%20con%20ayuda%20del%20helper%20form%20y%20validarlos%20de%20manera%20sencilla%20mediante%20la%20librer%C3%ADa%20form_validation.%0D%0A%0D%0AEste%20es%20el%20segundo%20videotutorial%20de%20la%20serie%20CodeIgnitor%2C%20pod%C3%A9is%20encon"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;title=Videotutorial%3A%20Creaci%C3%B3n%20y%20validaci%C3%B3n%20de%20formularios%20con%20Codeigniter&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-319',true)" class="close">



		  <img onclick="hide_sociable('post-319',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Videotutorial: Creación y validación de formularios con Codeigniter - http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/screencast-tutorial-creacion-y-validacion-de-formularios-con-codeigniter/feed/</wfw:commentRss>
		<slash:comments>63</slash:comments>
<enclosure url="http://blip.tv/file/get/Davidrojas-2CreacionYValidacionDeFormulariosConCodeIgniter755.mov" length="63277630" type="video/quicktime" />
<enclosure url="http://blip.tv/file/get/Davidrojas-2CreacionYValidacionDeFormulariosConCodeIgniter211.m4v" length="33760800" type="video/mp4" />
		</item>
		<item>
		<title>Videotutorial: Introducción a Codeigniter</title>
		<link>http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/</link>
		<comments>http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 11:29:42 +0000</pubDate>
		<dc:creator>David Rojas</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Screencasts]]></category>

		<guid isPermaLink="false">http://www.davidrojas.net/?p=254</guid>
		<description><![CDATA[Hoy os presento mi primer videotutorial (screencast) sobre el framework MVC de PHP CodeIgniter. Existen cantidad de recursos en inglés sobre este framework, pero casi nada en español, así que he grabado esta breve introducción para demostrar su potencia y sencillez. Podéis descargar aquí los ficheros con el código del ejemplo. Ver screencast Además de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.davidrojas.net/wp-content/uploads/2009/08/codeigniter_screencast.png" alt="codeigniter_screencast" title="codeigniter_screencast" width="163" height="104" class="derecha alignright size-full wp-image-261" />Hoy os presento mi primer videotutorial (screencast) sobre el framework <abbr title="Model Vista Controlador">MVC</abbr> de PHP CodeIgniter. Existen cantidad de <a href="http://codeigniter.com/tutorials/" title="screencasts CodeIgniter en inglés" rel="nofollow">recursos en inglés</a> sobre este framework, pero casi nada en español, así que he grabado esta breve introducción para demostrar su potencia y sencillez.<br />
<span id="more-254"></span><br />
Podéis <em class="linkem"><a href="http://www.davidrojas.net/wp-content/uploads/2009/08/introduccion_codeigniter_archivos.zip" title="descargar archivos ejemplo">descargar aquí los ficheros con el código del ejemplo</a></em>.</p>
<h3>Ver screencast</h3>
<div class="video">
<embed src="http://blip.tv/play/hJIhgZbzPgA" type="application/x-shockwave-flash" width="490" height="397" allowscriptaccess="always" allowfullscreen="true"></embed>
</div>
<p>Además de la versión flash, tenéis el video disponible a través de <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=326994250" title="Videotutoriales de diseño y desarrollo web">iTunes</a> o en descarga directa en dos formatos:</p>
<ul>
<li><a href="http://blip.tv/file/get/Davidrojas-1IntroduccinACodeIgniter129.mov" title="Descargar versión alta calidad">Descargar videotutorial en alta calidad &#8211; MOV (50 MB)</a></li>
<li><a href="http://blip.tv/file/get/Davidrojas-1IntroduccinACodeIgniter190.m4v" title="Descargar versión iPod/iPhone">Descargar videotutorial optimizado para iPod/iPhone &#8211; M4V (31 MB)</a></li>
</ul>
<p></p>
<p>Podéis ver el resto de videotutoriales en la <a href="http://www.davidrojas.net/index.php/category/screencasts/" title="Screencasts sobre desarrollo web en español">página de screencasts</a>.<br /></p>
<!-- Start Sociable --><div class="sociable"><div class="sociable_tagline">Compartir:</div><ul class='clearfix'><li><a title="Twitter" class="option1_16" style="background-position:-144px -16px" rel="nofollow" target="_blank" href="http://twitter.com/intent/tweet?text=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter%20-%20http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F%20(via%20@sociablesite)"></a></li><li><a title="Facebook" class="option1_16" style="background-position:-48px 0px" rel="nofollow" target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;t=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter"></a></li><li><a title="email" class="option1_16" style="background-position:-80px 0px" rel="nofollow" target="_blank" href="https://mail.google.com/mail/?view=cm&fs=1&to&su=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&body=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&ui=2&tf=1&shva=1"></a></li><li><a class="option1_16" style="cursor:pointer;background-position:-64px 0px" rel="nofollow" title="Add to favorites - doesn't work in Chrome"  onClick="javascript:AddToFavorites();"></a></li><li><a title="Delicious" class="option1_16" style="background-position:-16px 0px" rel="nofollow" target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;notes=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li><a style="cursor:pointer" rel="nofollow" onMouseOut="fixOnMouseOut(document.getElementById('sociable-post-254'), event, 'post-254')" onMouseOver="more(this,'post-254')"><img style='padding-top: 0;margin-top:-2px' src='http://www.davidrojas.net/wp-content/plugins/sociable/images/more.png'></a></li></ul><div onMouseout="fixOnMouseOut(this,event,'post-254')" id="sociable-post-254" style="display:none;">   

    <div style="top: auto; left: auto; display: block;" id="sociable">



		<div class="popup">

			<div class="content">

				<ul><li style="heigth:16px;width:16px"><a title="Myspace" class="option1_16" style="background-position:0px -16px" rel="nofollow" target="_blank" href="http://www.myspace.com/Modules/PostTo/Pages/?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;t=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="LinkedIn" class="option1_16" style="background-position:-144px 0px" rel="nofollow" target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;source=David+Rojas+Dise%C3%B1o+y+desarrollo+web&amp;summary=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li style="heigth:16px;width:16px"><a title="Digg" class="option1_16" style="background-position:-32px 0px" rel="nofollow" target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;bodytext=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li style="heigth:16px;width:16px"><a title="Reddit" class="option1_16" style="background-position:-64px -16px" rel="nofollow" target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="StumbleUpon" class="option1_16" style="background-position:-112px -16px" rel="nofollow" target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Google Bookmarks" class="option1_16" style="background-position:-96px 0px" rel="nofollow" target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;annotation=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li style="heigth:16px;width:16px"><a title="HackerNews" class="option1_16" style="background-position:-128px 0px" rel="nofollow" target="_blank" href="http://news.ycombinator.com/submitlink?u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;t=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="MSNReporter" class="option1_16" style="background-position:-176px 0px" rel="nofollow" target="_blank" href="http://reporter.es.msn.com/?fn=contribute&amp;Title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;URL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;cat_id=6&amp;tag_id=31&amp;Remark=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li style="heigth:16px;width:16px"><a title="BlinkList" class="option1_16" style="background-position:0px 0px" rel="nofollow" target="_blank" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;Title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter"></a></li><li style="heigth:16px;width:16px"><a title="Sphinn" class="option1_16" style="background-position:-96px -16px" rel="nofollow" target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F"></a></li><li style="heigth:16px;width:16px"><a title="Posterous" class="option1_16" style="background-position:-32px -16px" rel="nofollow" target="_blank" href="http://posterous.com/share?linkto=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;selection=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li style="heigth:16px;width:16px"><a title="Tumblr" class="option1_16" style="background-position:-128px -16px" rel="nofollow" target="_blank" href="http://www.tumblr.com/share?v=3&amp;u=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;t=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;s=Hoy%20os%20presento%20mi%20primer%20videotutorial%20%28screencast%29%20sobre%20el%20framework%20MVC%20de%20PHP%20CodeIgniter.%20Existen%20cantidad%20de%20recursos%20en%20ingl%C3%A9s%20sobre%20este%20framework%2C%20pero%20casi%20nada%20en%20espa%C3%B1ol%2C%20as%C3%AD%20que%20he%20grabado%20esta%20breve%20introducci%C3%B3n%20para%20demostrar%20su%20p"></a></li><li style="heigth:16px;width:16px"><a title="Google Reader" class="option1_16" style="background-position:-112px 0px" rel="nofollow" target="_blank" href="http://www.google.com/reader/link?url=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;title=Videotutorial%3A%20Introducci%C3%B3n%20a%20Codeigniter&amp;srcURL=http%3A%2F%2Fwww.davidrojas.net%2Findex.php%2Fdesarrollo-web%2Fscreencast-introduccion-al-framework-php-codeigniter%2F&amp;srcTitle=David+Rojas+Dise%C3%B1o+y+desarrollo+web"></a></li></ul>			

			</div>        

		  <a style="cursor:pointer" onclick="hide_sociable('post-254',true)" class="close">



		  <img onclick="hide_sociable('post-254',true)" title="close" src="http://www.davidrojas.net/wp-content/plugins/sociable/images/closelabel.png">

		  </a>

		</div>

	</div> 

  </div></div><div class='sociable' style='float:none'><ul class='clearfix'><li id="Twitter_Counter"><a href="https://twitter.com/share" data-text="Videotutorial: Introducción a Codeigniter - http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/ (via #sociablesite)" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/" class="twitter-share-button" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></script></li><li id="Facebook_Counter"><iframe src="//www.facebook.com/plugins/like.php?href=http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/&send=false&layout=button_count&show_faces=false&action=like&colorscheme=light&font" scrolling="no" frameborder="0" style="border:none; overflow:hidden;height:32px;width:100px" allowTransparency="true"></iframe></li><li id="Google_+"><g:plusone annotation="bubble" href="http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/" size="medium"></g:plusone></li><li id="LinkedIn_Counter"><script src="http://platform.linkedin.com/in.js" type="text/javascript"></script><script type="IN/Share" data-url="http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/" data-counter="right"></script></li><li id="StumbleUpon_Counter"><script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/"></script></li></ul></div><!-- End Sociable -->]]></content:encoded>
			<wfw:commentRss>http://www.davidrojas.net/index.php/desarrollo-web/screencast-introduccion-al-framework-php-codeigniter/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
<enclosure url="http://blip.tv/file/get/Davidrojas-1IntroduccinACodeIgniter129.mov" length="54311692" type="video/quicktime" />
<enclosure url="http://blip.tv/file/get/Davidrojas-1IntroduccinACodeIgniter190.m4v" length="32379948" type="video/mp4" />
		</item>
	</channel>
</rss>

