<?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>Retrorock &#187; PHP</title>
	<atom:link href="http://retrorock.info/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://retrorock.info</link>
	<description>Reflexiones y Código por Wilbur Suero</description>
	<lastBuildDate>Sun, 01 Aug 2010 08:25:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Como correr multiples aplicaciones con una instalación de Codeigniter</title>
		<link>http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/</link>
		<comments>http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/#comments</comments>
		<pubDate>Sat, 31 Jul 2010 07:26:21 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=709</guid>
		<description><![CDATA[Por default se asume que vas a usar Codeigniter para manejar una sola aplicación, pero, debes saber que es posible correr varios sitios desde una misma instalación. Cada sitio tendrá su propio folder application, pero todos van a compartir el mismo folder system. Para que esto suceda debes mover la carpeta applications que viene por [...]


Related posts:<ol><li><a href='http://retrorock.info/2008/08/urls-limpias-con-codeigniter/' rel='bookmark' title='Permanent Link: URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/2008/06/codeigniter-a-primera-vista/' rel='bookmark' title='Permanent Link: CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
<li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Por default se asume que vas a usar Codeigniter para manejar una sola aplicación, pero, debes saber que es posible correr varios sitios desde una misma instalación.</p>
<p>Cada sitio tendrá su propio folder application, pero todos van a compartir el mismo folder system.</p>
<p>Para que esto suceda debes mover la carpeta applications que viene por default dentro del folder system al root de nuestra instalación.</p>
<p>Luego busca en el index.php que está en el root de la instalación la línea que tiene: <strong>$application_folder = &#8220;application&#8221;; </strong>Y sustituyelo por: <strong>$application_folder = &#8220;../application&#8221;;</strong></p>
<p>Ahora puedes copiar el folder application de system de nuevo al root de la instalación y renombrarlo a como quieras que se llame tu nueva aplicación. Cada aplicación debe tener su propio archivo index.php donde debes buscar la línea que tiene:  <strong>$system_folder = &#8220;system&#8221;;</strong> y sustituirla por: <strong>$system_folder = &#8220;../system&#8221;; </strong>y donde tiene: <strong>$application_folder = &#8220;application&#8221;;</strong> sustituirla por: <strong>$application_folder = &#8220;../admin&#8221;;</strong> <em>cambia admin por el nombre del folder donde tienes esta aplicación.</em></p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2008/08/urls-limpias-con-codeigniter/' rel='bookmark' title='Permanent Link: URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/2008/06/codeigniter-a-primera-vista/' rel='bookmark' title='Permanent Link: CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
<li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Detecta un request Ajax con PHP</title>
		<link>http://retrorock.info/2010/07/detecta-request-ajax-con-php/</link>
		<comments>http://retrorock.info/2010/07/detecta-request-ajax-con-php/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:34:49 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=701</guid>
		<description><![CDATA[Me gusta usar un solo script para los request AJAX y los request &#8220;normales&#8221; porque resulta en un solo archivo para actualizar y editar. Tener la capacidad de detectar que tipo de request recibimos es útil para determinar que tipo de contenido devolver en la respuesta. Por ejemplo, si es un request AJAX podríamos querer [...]


Related posts:<ol><li><a href='http://retrorock.info/2008/07/javascript-y-ajax-para-seo/' rel='bookmark' title='Permanent Link: Javascript y AJAX para SEO'>Javascript y AJAX para SEO</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Me gusta usar un solo script para los request AJAX y los request &#8220;normales&#8221; porque resulta en un solo archivo para actualizar y editar.</p>
<p>Tener la capacidad de detectar que tipo de request recibimos es útil para determinar que tipo de contenido devolver en la respuesta. Por ejemplo, si es un request AJAX podríamos querer devolver un JSON o un XML y si no lo es, podríamos devolver un HTML.</p>
<p>Una manera de detectar los request AJAX contrario a los requests que hacen un page-load full puede ser con el siguiente código PHP:</p>
<script src="http://gist.github.com/466824.js" type="text/javascript"></script>
<p><strong>$_SERVER['HTTP_X_REQUESTED_WITH']</strong> es la clave para verificar si es request fue hecho con AJAX o no, pero no todos los servidores proveen esta variable, así que tener otras pruebas adicionales sería importante.</p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2008/07/javascript-y-ajax-para-seo/' rel='bookmark' title='Permanent Link: Javascript y AJAX para SEO'>Javascript y AJAX para SEO</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2010/07/detecta-request-ajax-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programando CSS</title>
		<link>http://retrorock.info/2008/10/programando-css/</link>
		<comments>http://retrorock.info/2008/10/programando-css/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 18:14:49 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Experimentos]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://wilburhimself.com/?p=41</guid>
		<description><![CDATA[Uno de los trucos mas interesantes asociados con CSS es la habilidad de generar hojas de estilo utilizando funcionalidad en el lado del servidor. Yo lo he usado para cambiar imágenes de fondo en la cabecera de websites, para generar paletas de colores dependiendo de las preferencias del usuario, y para un montón de cosas [...]


Related posts:<ol><li><a href='http://retrorock.info/2009/12/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='Permanent Link: Imágenes para los posts en WordPress 2.9'>Imágenes para los posts en WordPress 2.9</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Uno de los trucos mas interesantes asociados con CSS es la habilidad de generar hojas de estilo utilizando funcionalidad en el lado del servidor. Yo lo he usado para cambiar imágenes de fondo en la cabecera de websites, para generar paletas de colores dependiendo de las preferencias del usuario, y para un montón de cosas mas.</p>
<p>Hay dos componentes para generar CSS con un lenguaje como PHP. El primero es poder incorporar la hoja de estilos en la pagina. Para eso usamos el <code>@import</code> de CSS:</p>
<pre lang="css">@import "backgrounds.php"</pre>
<p>No importa si el archivo importado es un CSS estático mientras el MIME type sea <code>text/css</code>. En PHP esto se logra con la funcion <code>header</code></p>
<pre lang="php">header("Content-type: text/css");</pre>
<p>El resto del archivo puede ser una combinación de bloques de PHP generando CSS o CSS estático, no importa.</p>
<p>Como había mencionado, uno de los usos de esta funcionalidad es cambiar la imagen de fondo en las cabeceras de las paginas, en esta ocasión lo vamos a ver cambiando la imagen de fondo de la pagina completa, para demostrar el uso de un CSS dinámico. Las imágenes van a estar en una carpeta y PHP va a seleccionar una de ellas aleatoriamente y creara las reglas de CSS necesarias para aplicarla al background de la pagina.</p>
<script src="http://gist.github.com/295523.js" type="text/javascript"></script>
<p>La aplicación genera un numero aleatorio entre 0 y el numero total de imágenes. Las imágenes están almacenadas en un <code>Array</code> y la imagen seleccionada es llamada con el numero aleatorio. <a href="http://retrorock.info/examples/patterns">Un ejemplo</a></p>
<p>La ventaja de esta técnica es que se pueden guardar las imágenes en una carpeta y dejar que la aplicación se encargue de seleccionar la imagen por ella misma.</p>
<p>Se puede usar esta técnica para seleccionar imágenes, colores, cambiar el tamaño de las fuentes, etc&#8230; La única limitante es mantener el CSS pequeño y rápido, no queremos que el CSS este lento y dure mucho cargando.</p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2009/12/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='Permanent Link: Imágenes para los posts en WordPress 2.9'>Imágenes para los posts en WordPress 2.9</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2008/10/programando-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>URLs limpias con Codeigniter</title>
		<link>http://retrorock.info/2008/08/urls-limpias-con-codeigniter/</link>
		<comments>http://retrorock.info/2008/08/urls-limpias-con-codeigniter/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 17:51:24 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Accesibilidad]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[Optimizacion]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://wilburhimself.com/?p=38</guid>
		<description><![CDATA[Estaba trabajando en una aplicación web para un cliente, un website inmobiliario. Luego de que todo estaba listo, funcionando perfecto en mi servidor local y en un servidor que uso para probar. Había un problema con las URLs en el servidor de Godaddy de mi cliente. Las requests estaban dando un error: &#8220;No input file [...]


Related posts:<ol><li><a href='http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/' rel='bookmark' title='Permanent Link: Como correr multiples aplicaciones con una instalación de Codeigniter'>Como correr multiples aplicaciones con una instalación de Codeigniter</a></li>
<li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
<li><a href='http://retrorock.info/2008/06/codeigniter-a-primera-vista/' rel='bookmark' title='Permanent Link: CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Estaba trabajando en una aplicación web para un cliente, un <a href="http://rm-re.com">website inmobiliario</a>. Luego de que todo estaba listo, funcionando perfecto en mi servidor local y en un servidor que uso para probar. Había un problema con las URLs en el servidor de Godaddy de mi cliente.</p>
<p>Las requests estaban dando un error: &#8220;No input file specified&#8221;, cosa que resolví poniendo &#8220;index.php&#8221; en el archivo de configuración. Pero quería remover el index.php de la URL.</p>
<p>Aquí hay un simple método para remover el &#8220;index.php&#8221; de las URLs en las aplicaciones en desarrolladas Codeigniter.</p>
<p>Hay que tener en cuenta que este método solo funciona para aplicaciones desarrolladas con Codeigniter, y aunque explica como quitar el &#8220;index.php&#8221; de las URLs, no quita la necesidad del archivo index.php, que es el <a href="http://en.wikipedia.org/wiki/Front_Controller_pattern">Front Controller</a>. Aunque index.php no aparezca en el URL debe estar presente el nivel del root de la aplicación.</p>
<p>Para que esto funcione debemos estar seguros de que nuestro Apache use el mod_rewite y que acepte configuraciones por medio de .htaccess, luego de estar seguros de esto debemos ejecutar los siguientes pasos:</p>
<ul>
<li>Crear un .htaccess para configurar el engine de escritura de URLs (rewrite engine)</li>
<li>Asignar un string vacio a <strong>$config['index_page']</strong> en el archivo config.php</li>
<li>Reiniciar el Apache y probar</li>
</ul>
<p><strong>1- Crear el archivo .htaccess</strong></p>
<p>Crea un nuevo archivo llamado .htaccess y colocalo en tu directorio web.<br />
<script src="http://gist.github.com/295519.js?file=.htaccess"></script><br />
<strong>2- Asignar un string vacio a </strong><strong>$config['index_page'] en el archivo config.php</strong></p>
<p>abre tu <em>system/application/config/config.php</em></p>
<p>busca la linea que asigna $config['index_page'], usualmente:</p>
<pre><code class="php">$config['index_page'] = 'index.php';</code></pre>
<p>y cambiala a:</p>
<pre><code>$config['index_page'] = '';</code></pre>
<p>Graba el archivo.</p>
<p><strong>3- Reiniciar el Apache y probar</strong></p>
<p>funciono??</p>
<p>Si no funciono, no te rindas, llenate de paciencia, prueba de nuevo todos los pasos y si aún así no funciona, postea en el <a href="http://codeigniter.com/forums/">foro</a> con todos los detalles de tu instalación.</p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2010/07/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/' rel='bookmark' title='Permanent Link: Como correr multiples aplicaciones con una instalación de Codeigniter'>Como correr multiples aplicaciones con una instalación de Codeigniter</a></li>
<li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
<li><a href='http://retrorock.info/2008/06/codeigniter-a-primera-vista/' rel='bookmark' title='Permanent Link: CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2008/08/urls-limpias-con-codeigniter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CodeIgniter a primera vista</title>
		<link>http://retrorock.info/2008/06/codeigniter-a-primera-vista/</link>
		<comments>http://retrorock.info/2008/06/codeigniter-a-primera-vista/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 05:42:02 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Codeigniter]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://wilburhimself.com/?p=22</guid>
		<description><![CDATA[He estado envuelto últimamente, durante todo el tiempo que tenía sin escribir aquí, en dos proyectos usando el Framework de PHP, Code Igniter. Siempre hé encontrado que los frameworks son rígidos, Codeigniter es todo lo contrario, que es lo que más me gusta. Se instala en un folder en el root de tu proyecto web, [...]


Related posts:<ol><li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
<li><a href='http://retrorock.info/2008/08/urls-limpias-con-codeigniter/' rel='bookmark' title='Permanent Link: URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/2009/07/moviendo-la-lgica-de-presentacin-de-los-views-en-codeigniter/' rel='bookmark' title='Permanent Link: Moviendo la lógica de presentación de los views en CodeIgniter'>Moviendo la lógica de presentación de los views en CodeIgniter</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>He estado envuelto últimamente, <em>durante todo el tiempo que tenía sin escribir aquí</em>, en dos proyectos usando el Framework de PHP, Code Igniter. Siempre hé encontrado que los frameworks son rígidos, Codeigniter es todo lo contrario, que es lo que más me gusta. Se instala en un folder en el root de tu proyecto web, provee un framework MVC, una amplia gama de helpers y una gran cantidad de documentación.</p>
<p>Codeigniter hace que muchas cosas sean automáticas, pero no todo, lo que también es bueno. Para mi ha sido muy claro donde van las cosas y como hacerlas para lograr lo que he querido. También a sido muy fácil integrar fragmentos de código que tenía guardados aquí y allá.</p>
<p>Me parece lo suficientemente maduro para producción, es rapido, facilita las cosas para desarrollar agilmente y tiene una gran <a title="CodeIgniter Forums" href="http://codeigniter.com/forums" target="_blank">comunidad de usuarios</a>, por lo que tengo planeado seguirlo usando para algunos proyectos que vienen por ahí, luego seguiré escribiendo sobre esto&#8230; y pronto pongo links a los proyectos.</p>


<p>Related posts:<ol><li><a href='http://retrorock.info/2009/05/codeigniter-google-analytics-y-codigo-reusable/' rel='bookmark' title='Permanent Link: CodeIgniter, Google Analytics y código reusable'>CodeIgniter, Google Analytics y código reusable</a></li>
<li><a href='http://retrorock.info/2008/08/urls-limpias-con-codeigniter/' rel='bookmark' title='Permanent Link: URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/2009/07/moviendo-la-lgica-de-presentacin-de-los-views-en-codeigniter/' rel='bookmark' title='Permanent Link: Moviendo la lógica de presentación de los views en CodeIgniter'>Moviendo la lógica de presentación de los views en CodeIgniter</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/2008/06/codeigniter-a-primera-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
