<?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; Programación</title>
	<atom:link href="http://retrorock.info/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://retrorock.info</link>
	<description>Reflexiones y Código por Wilbur Suero</description>
	<lastBuildDate>Sat, 03 Mar 2012 05:45:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Como utilizar los comentarios de Facebook en WordPress</title>
		<link>http://retrorock.info/facebook-comments-wordpress/</link>
		<comments>http://retrorock.info/facebook-comments-wordpress/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 14:53:54 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Comentarios]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=970</guid>
		<description><![CDATA[En estas líneas voy a escribir sobre como usar los comentarios de facebook (Facebook Comments) en un website construido con WordPress sin la necesidad de instalar un plugin para lograrlo. Con esta explicación se pueden implementar los comentarios de Facebook en cualquier website, y es precisamente por eso que quería hacer notar como instalar los [...]
Related posts:<ol>
<li><a href='http://retrorock.info/como-comparto-desde-twitter-con-mis-amigos-de-facebook/' rel='bookmark' title='Como comparto desde Twitter con mis amigos de Facebook'>Como comparto desde Twitter con mis amigos de Facebook</a></li>
<li><a href='http://retrorock.info/usando-los-shortcodes-de-wordpress/' rel='bookmark' title='Usando los Shortcodes de WordPress'>Usando los Shortcodes de WordPress</a></li>
<li><a href='http://retrorock.info/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='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>En estas líneas voy a escribir sobre como usar los comentarios de facebook (<a href="http://developers.facebook.com/docs/reference/plugins/comments/">Facebook Comments</a>) en un website construido con WordPress sin la necesidad de instalar un plugin para lograrlo.</p>
<p>Con esta explicación se pueden implementar los comentarios de Facebook en cualquier website, y es precisamente por eso que quería hacer notar como instalar los comentarios de Facebook sin el uso de un plugin, porque cada CMS tiene una manera distinta de implementar los comentarios, así que quise explicar como implementarlos en cualquier CMS de una forma parecida.</p>
<h3>Paso 1 &#8211; Crear una applicación de Facebook.</h3>
<p><img class="alignnone size-large wp-image-972" title="Screen shot 2012-01-03 at 3.04.32 PM" src="http://retrorock.info/wp-content/uploads/2012/01/Screen-shot-2012-01-03-at-3.04.32-PM-472x193.png" alt="" width="472" height="193" /></p>
<p>Lo primero es crear una aplicación de Facebook para que represente a tu website. Esto se puede hacer en el <a href="https://developers.facebook.com/apps">centro de desarrolladores de Facebook</a>. Haz click en <strong>+ Crear Nueva Aplicación</strong> y entra el nombre de tu website, selecciona que aceptas los <a href="https://developers.facebook.com/policy" target="_blank">Facebook Platform Policies</a> y continúa.</p>
<p><img class="alignnone size-large wp-image-973" title="Screen-shot-2012-01-03-at-3.11" src="http://retrorock.info/wp-content/uploads/2012/01/Screen-shot-2012-01-03-at-3.11-472x142.jpg" alt="" width="472" height="142" /></p>
<p>Una vez la App está creada vas a ser redirigido a una pantalla donde se pueden editar las propiedades de tu app. Ahora mismo no tienes que editar nada, solo hacer click en el link de <strong>Website </strong>y copiar la App ID. Este ID lo vas a utilizar posteriormente para indentificar a quienes pueden moderar los comentarios en tu website.</p>
<h3>paso 2 &#8211; Añadir el Facebook Javascript SDK a WordPress</h3>
<p>Ahora hay que agregar el <a href="http://developers.facebook.com/docs/reference/javascript/">Facebook Javascript SDK</a> al template de WordPress. Agrega el código  a continuación en el <strong>header.php</strong> justo antes de la etiqueta &lt;/body&gt; y sustituye el App ID que está en la linea 5 por el del paso anterior.</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;!-- Facebook JavaScript SDK --&gt;
&lt;div id=&quot;fb-root&quot;&gt;&lt;/div&gt;
&lt;script&gt;
window.fbAsyncInit = function() {
FB.init({appId: '141109849335437', status: true, cookie: true,
xfbml: true});
};

(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
&lt;/script&gt;
&lt;!-- End Facebook JavaScript SDK --&gt;
</pre>
<h3>paso 3 &#8211; Agregando las herramientas de moderación</h3>
<p>Mientras editas el &lt;head&gt; &#8230; &lt;/head&gt; pega el código a continuación y sustituye de nuevo el App ID por el que copiaste en el paso 1. Esta etiqueta del Open Graph le dice a Facebook que asocie este website con la app especificada.</p>
<pre class="brush: xml; title: ; notranslate">&lt;!-- Facebook Open Graph Tags --&gt;
&lt;meta property=&quot;fb:app_id&quot; content=&quot;141109849335437&quot;/&gt;
&lt;!-- End Facebook Open Graph Tags --&gt;</pre>
<h3>Paso 4 &#8211; Agregando el plugin de comentarios</h3>
<p>Ya que has agregado el Javascript SDK al header de tu template, lo próximo que debes hacer es agregar el <a href="http://developers.facebook.com/docs/reference/plugins/comments/">facebook comments plugin</a> al archivo <strong>comments.php</strong></p>
<p>Yo opté por eliminar los comentarios de WordPress de mi template, pero no tienes que hacer lo mismo, lo comentarios de Facebook y los de WordPress pueden co-existir.</p>
<p>Para agregar los comentarios a tu template crea o sustituye el archivo <strong>comments.php</strong> por el siguiente código:</p>
<pre class="brush: php; title: ; notranslate">

&lt;div id=&quot;comments&quot;&gt;

&lt;?php if ( comments_open() ) : ?&gt;
 &lt;div id=&quot;fbcomments&quot;&gt;
 &lt;div id=&quot;fb-root&quot;&gt;&lt;/div&gt;
 &lt;script src=&quot;http://connect.facebook.net/es_ES/all.js#xfbml=1&quot;&gt;&lt;/script&gt;
 &lt;fb:comments href=&quot;&lt;?php the_permalink(); ?&gt;&quot; width=&quot;630&quot; num_posts=&quot;10&quot; &gt;&lt;/fb:comments&gt;
 &lt;/div&gt;
 &lt;?php endif; ?&gt;

&lt;/div&gt;
</pre>
<p>Estas líneas van a verificar que los comentarios estén abiertos para esta entrada antes de insertar el código de los comentarios de Facebook.  Se pueden cambiar la cantidad de comentarios (num_posts) y el ancho (width) para que cumpla con tus necesidades.</p>
<h3>paso 5 &#8211; Comprobar los comentarios</h3>
<p>Si ejecutaste todos los pasos anteriores correctamente, puedes dirgirte a una entrada cualquiera tu blog y bajar hacia donde están los comentarios y ver algo como esto:</p>
<p><img class="alignnone size-large wp-image-988" title="comment-box" src="http://retrorock.info/wp-content/uploads/2012/01/comment-box-472x114.png" alt="" width="472" height="114" /></p>
<p>Asumiendo que estás logueado en Facebook cuando haces esto deberías ver una opción para agregar comentario, vista del moderador y otra para editar las configuraciones, si no, debes verificar que la app Id del paso 1 están puestas correctamente en el header.</p>
<p>Para moderar los comentarios dirigete al <a href="http://developers.facebook.com/tools/comments">Facebook comments moderation tool</a></p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/como-comparto-desde-twitter-con-mis-amigos-de-facebook/' rel='bookmark' title='Como comparto desde Twitter con mis amigos de Facebook'>Como comparto desde Twitter con mis amigos de Facebook</a></li>
<li><a href='http://retrorock.info/usando-los-shortcodes-de-wordpress/' rel='bookmark' title='Usando los Shortcodes de WordPress'>Usando los Shortcodes de WordPress</a></li>
<li><a href='http://retrorock.info/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='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/facebook-comments-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Templates para páginas según el path en Drupal 7</title>
		<link>http://retrorock.info/templates-para-paginas-segun-el-path-en-drupal-7/</link>
		<comments>http://retrorock.info/templates-para-paginas-segun-el-path-en-drupal-7/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 01:51:24 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drupal 7]]></category>
		<category><![CDATA[PHPTemplate]]></category>
		<category><![CDATA[Theming]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=928</guid>
		<description><![CDATA[Muchas veces queremos un template diferente para una página o una sección de nuestro website, con esta técnica podemos tener una dirección como: example.com/portafolio y que nos de el chance de tener un template específicamente para esa dirección, algo como page&#8211;portafolio.tpl.php Para que esto sea posible, debemos implementar el hook_preprocess_page y agregar las sugerencias de [...]
Related posts:<ol>
<li><a href='http://retrorock.info/asegurando-drupal-contenido/' rel='bookmark' title='Asegurando Drupal &#8211; Contenido'>Asegurando Drupal &#8211; Contenido</a></li>
<li><a href='http://retrorock.info/asegurando-drupal-cuentas/' rel='bookmark' title='Asegurando Drupal &#8211; Cuentas'>Asegurando Drupal &#8211; Cuentas</a></li>
<li><a href='http://retrorock.info/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='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>Muchas veces queremos un template diferente para una página o una sección de nuestro website, con esta técnica podemos tener una dirección como:</p>
<p><strong>example.com/portafolio</strong></p>
<p>y que nos de el chance de tener un template específicamente para esa dirección, algo como</p>
<p><strong>page&#8211;portafolio.tpl.php</strong></p>
<p>Para que esto sea posible, debemos implementar el hook_preprocess_page y agregar las sugerencias de templates antes de pasarlo al theme system de Drupal.</p>
<p>Así se hacía en Drupal 6:</p>
<script src="http://gist.github.com/887951.js" type="text/javascript"></script>
<p>Así se hace en Drupal 7:</p>
<script src="http://gist.github.com/887953.js" type="text/javascript"></script>
<p>Las diferencias son claras! Bueno, quizas no tanto, pero las diferencias si son importantes, por ejemplo:</p>
<ul>
<li>Antes los nombres de los templates utilizaban un solo  guión &#8211; para separar las palabras, ahora usan dos guiones<strong> &#8211;</strong></li>
<li>Cuando definimos el nombre del archivo que vamos a sugerir como template sustituimos el guión por dos underscores __ el theme system se encarga de traducir esto a &#8212; en el nombre del archivo.</li>
<li>Antes agregabamos la sugerencia a <strong>$vars['template_files']</strong> ahora lo hacemos a <strong>$vars['theme_hook_suggestions']</strong></li>
</ul>
<p>Cabe recordar que este código va en el template.php de nuestro Theme.</p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/asegurando-drupal-contenido/' rel='bookmark' title='Asegurando Drupal &#8211; Contenido'>Asegurando Drupal &#8211; Contenido</a></li>
<li><a href='http://retrorock.info/asegurando-drupal-cuentas/' rel='bookmark' title='Asegurando Drupal &#8211; Cuentas'>Asegurando Drupal &#8211; Cuentas</a></li>
<li><a href='http://retrorock.info/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='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/templates-para-paginas-segun-el-path-en-drupal-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Usando los Shortcodes de WordPress</title>
		<link>http://retrorock.info/usando-los-shortcodes-de-wordpress/</link>
		<comments>http://retrorock.info/usando-los-shortcodes-de-wordpress/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 23:55:05 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Shortcodes]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=897</guid>
		<description><![CDATA[Los shortcodes son un feature muy poderoso y a mi parecer poco utilizado de WordPress.  Imagina que pudieras agregar un anuncio de adsense o una lista de posts de una categoría dentro de un post. Los shortcodes hacen eso y más y definitivamente van a lograr que tu vida desarrollando themes de WordPress  sea más [...]
Related posts:<ol>
<li><a href='http://retrorock.info/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='Imágenes para los posts en WordPress 2.9'>Imágenes para los posts en WordPress 2.9</a></li>
<li><a href='http://retrorock.info/miniposts-en-wordpress/' rel='bookmark' title='Miniposts en WordPress'>Miniposts en WordPress</a></li>
<li><a href='http://retrorock.info/facebook-comments-wordpress/' rel='bookmark' title='Como utilizar los comentarios de Facebook en WordPress'>Como utilizar los comentarios de Facebook en WordPress</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Los shortcodes son un feature muy poderoso y a mi parecer poco utilizado de WordPress.  Imagina que pudieras agregar un anuncio de adsense o una lista de posts de una categoría dentro de un post.</p>
<p>Los shortcodes hacen eso y más y definitivamente van a lograr que tu vida desarrollando themes de WordPress  sea más fácil.</p>
<h3>Un ejemplo</h3>
<p><script src="https://gist.github.com/738468.js?file=twitter-links.php"></script></p>
<p>Con este código podemos agregar un link a nuestro perfil de Twitter en nuestros posts escribiendo [twitter-link]</p>
<h3>Un ejemplo mejor, Posts</h3>
<p>Ya que podemos agregar este tipo de funcionalidad a nuestra edición de posts, vamos a hacer algo un poco más interesante, crear un shrotcode que nos permita integrar una lista de posts de una categoría determinada en nuestros posts, por ejemplo:</p>
<p><script src="https://gist.github.com/738468.js?file=functions.php"></script></p>
<p>&#8230; esto podemos usarlo asi:</p>
<p>[category-posts category="programacion" num="5"]</p>
<p>Y en su lugar va a aparecer una lista de posts de la categoría <a href="http://retrorock.info/category/programacion/">programación</a> dentro de nuestro post.</p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/imagenes-para-los-posts-en-wordpress-29/' rel='bookmark' title='Imágenes para los posts en WordPress 2.9'>Imágenes para los posts en WordPress 2.9</a></li>
<li><a href='http://retrorock.info/miniposts-en-wordpress/' rel='bookmark' title='Miniposts en WordPress'>Miniposts en WordPress</a></li>
<li><a href='http://retrorock.info/facebook-comments-wordpress/' rel='bookmark' title='Como utilizar los comentarios de Facebook en WordPress'>Como utilizar los comentarios de Facebook en WordPress</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/usando-los-shortcodes-de-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Construyendo un Front Controller en PHP</title>
		<link>http://retrorock.info/construyendo-front-controller-en-php/</link>
		<comments>http://retrorock.info/construyendo-front-controller-en-php/#comments</comments>
		<pubDate>Sun, 28 Nov 2010 18:26:44 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Design Patterns]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=741</guid>
		<description><![CDATA[Un front controller maneja todos los request en una aplicación web y está estructurado usualmente en dos partes, el request handler, que es donde se interpretan los parametros y se ejecuta la segunda parte, el command hierarchy que es el comando o acción que debe ejecutar la aplicación, tambien conocido como Page controller. En las [...]
Related posts:<ol>
<li><a href='http://retrorock.info/detecta-request-ajax-con-php/' rel='bookmark' title='Detecta un request Ajax con PHP'>Detecta un request Ajax con PHP</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Un <strong>front controller</strong> maneja todos los request en una aplicación web y está estructurado usualmente en dos partes, el <strong>request handler,</strong> que es donde se interpretan los parametros y se ejecuta la segunda parte, el<strong> command hierarchy</strong> que es el comando o acción que debe ejecutar la aplicación, tambien conocido como <strong>Page controller</strong>.</p>
<p>En las aplicaciones con PHP el esquema más comun es tener un archivo index.php y decida que acción tomar dependiendo de los parametros GET que reciba.</p>
<p><img class="alignnone size-full wp-image-790" title="Front Controller Simple" src="http://retrorock.info/wp-content/uploads/2010/11/frontcontroller1.gif" alt="" width="472" height="503" /></p>
<p>Esta imagen representa una forma bien sencilla de Front Controller, donde el archivo index.php recibe el nombre del script que va a cargar en el variable $_GET['page'].  Los scripts (actions) están almacenadas en el folder pages.</p>
<p>Todo el que ha usado PHP por más de dos horas ha implementado de una manera u otra un page controller, aunque sea usando un if/else para ver si un formulario se envio.</p>
<p>En este ejemplo, el <strong>page controller</strong> es <strong>about.php. </strong>Podría tener un código como este:</p>
<p><script src="https://gist.github.com/719095.js?file=about_front.php"></script></p>
<h2><strong>Una estructura más organizada</strong></h2>
<p>Podemos tomar ventaja de la lógica que podemos realizar cuando estamos manejando el request HTTP para organizar mejor el codigo de nuestra aplicación.</p>
<p>Podemos separar la presentación de la logica guardando los page controllers y los templates en directorios distintos, Que los page controllers decidan que templates utilizar en cada request.</p>
<p>Se puede mejorar incluso la estructura de las URL&#8217;s enviando todos los requests al archivo index.php con un .htaccess. El archivo index.php (front controller) se va a encargar de llamar las acciones necesarias.</p>
<p><script src="https://gist.github.com/719095.js?file=.htaccess"></script></p>
<p>Para comenzar a organizar mejor el código de la aplicacion, vamos a crear un directorio con el nombre <strong>controllers</strong>, donde vamos a guardar todos los page controllers de la aplicacion. Luego creamos otro directorio con el nombre de <strong>views </strong>donde vamos a guardar todos los templates.</p>
<p><strong>Usando $_SERVER['QUERY_STRING']</strong></p>
<p>Si tenemos una URL como<strong> http://example.com/about</strong> $_SERVER['QUERY_STRING'] va a ser <strong>about</strong>, una como <strong>http://example.com/about/us</strong> va a ser <strong>about/us</strong>, lo que nos da una pista de como podemos usar la URL para definir la estructura de un request a nuestra aplicación. Nuestro front controller ahora va a decidir que page controller llamar y que accion o metodo ejecutar y que parametros aplicar a este llamado, todo dependiendo de la URL.</p>
<p>Esta vez el código del front controller luce así:</p>
<p><script src="https://gist.github.com/719095.js?file=index.php"></script></p>
<p>Línea por línea el front controller ahora hace lo siguiente:</p>
<ul>
<li>Toma el QUERY_STRING y lo parte donde hay un / usando la función explode que lo convierte en un array.</li>
<li>Toma el primer elemento del array y lo usa como controller, si está vacío usa el default &#8216;home&#8217;.</li>
<li>Toma el segundo elemento del array y lo usa como action, si está vacío usa el default &#8216;index&#8217;.</li>
<li>Toma los elementos restantes para paserselos como parametros al action.</li>
<li>Incluye el controller desde el directorio controllers.</li>
<li>por último ejecuta el action.</li>
</ul>
<p>El controller about tiene este código:</p>
<p><script src="https://gist.github.com/719095.js?file=about_controller.php"></script></p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/detecta-request-ajax-con-php/' rel='bookmark' title='Detecta un request Ajax con PHP'>Detecta un request Ajax con PHP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/construyendo-front-controller-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como correr multiples aplicaciones con una instalación de Codeigniter</title>
		<link>http://retrorock.info/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/</link>
		<comments>http://retrorock.info/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/urls-limpias-con-codeigniter/' rel='bookmark' title='URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/codeigniter-a-primera-vista/' rel='bookmark' title='CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
<li><a href='http://retrorock.info/construyendo-front-controller-en-php/' rel='bookmark' title='Construyendo un Front Controller en PHP'>Construyendo un Front Controller en PHP</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/urls-limpias-con-codeigniter/' rel='bookmark' title='URLs limpias con Codeigniter'>URLs limpias con Codeigniter</a></li>
<li><a href='http://retrorock.info/codeigniter-a-primera-vista/' rel='bookmark' title='CodeIgniter a primera vista'>CodeIgniter a primera vista</a></li>
<li><a href='http://retrorock.info/construyendo-front-controller-en-php/' rel='bookmark' title='Construyendo un Front Controller en PHP'>Construyendo un Front Controller en PHP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Detecta un request Ajax con PHP</title>
		<link>http://retrorock.info/detecta-request-ajax-con-php/</link>
		<comments>http://retrorock.info/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/javascript-y-ajax-para-seo/' rel='bookmark' title='Javascript y AJAX para SEO'>Javascript y AJAX para SEO</a></li>
<li><a href='http://retrorock.info/construyendo-front-controller-en-php/' rel='bookmark' title='Construyendo un Front Controller en PHP'>Construyendo un Front Controller en PHP</a></li>
<li><a href='http://retrorock.info/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/' rel='bookmark' title='Como correr multiples aplicaciones con una instalación de Codeigniter'>Como correr multiples aplicaciones con una instalación de Codeigniter</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/javascript-y-ajax-para-seo/' rel='bookmark' title='Javascript y AJAX para SEO'>Javascript y AJAX para SEO</a></li>
<li><a href='http://retrorock.info/construyendo-front-controller-en-php/' rel='bookmark' title='Construyendo un Front Controller en PHP'>Construyendo un Front Controller en PHP</a></li>
<li><a href='http://retrorock.info/como-correr-multiples-aplicaciones-con-una-instalacion-de-codeigniter/' rel='bookmark' title='Como correr multiples aplicaciones con una instalación de Codeigniter'>Como correr multiples aplicaciones con una instalación de Codeigniter</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/detecta-request-ajax-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Envolviendo el código &#8211; jQuery Wrap()</title>
		<link>http://retrorock.info/envolviendo-el-cdigo-jquery-wrap/</link>
		<comments>http://retrorock.info/envolviendo-el-cdigo-jquery-wrap/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 23:51:40 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=550</guid>
		<description><![CDATA[Hace unos días tuve un reto con un layout en html, quería meter un div dentro de otro para posicionar unos elementos en forma de grid, lo cual es totalmente posible, no podía modificar la estructura html de ese grid, pero si podía insertar código javascript. Lo primero que pensé fué usar el metodo clone de jquery, crear [...]
Related posts:<ol>
<li><a href='http://retrorock.info/jquery-101/' rel='bookmark' title='jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
<li><a href='http://retrorock.info/mejores-faqs-con-jquery/' rel='bookmark' title='Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/menus-dropdown-con-jquery/' rel='bookmark' title='Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hace unos días tuve un reto con un layout en html, quería meter un div dentro de otro para posicionar unos elementos en forma de grid, lo cual es totalmente posible, no podía modificar la estructura html de ese grid, pero si podía insertar código javascript.<img title="Más..." src="http://retrorock.info/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>Lo primero que pensé fué usar el metodo <a href="http://docs.jquery.com/Manipulation/clone">clone</a> de jquery, crear el wrapper e insertar el objeto clonado ahí.</p>
<p>Pero investigué un poco más y conocí el <a href="http://docs.jquery.com/Manipulation/wrap">wrap</a> que se encarga de hacer justamente lo que necesitaba.</p>
<h3>Otras idéas &#8211; Pie de foto</h3>
<p>Tienes una colección de imágenes en en el html, todas tienen su debida descripción en el atributo alt.</p>
<p>Primero envuelves cada una de las imágenes en un div que vas a usar como el contenedor de la imagen y el pie de foto.</p>
<script src="http://gist.github.com/295561.js" type="text/javascript"></script>
<p>Puedes verlo funcionando en <a href="http://retrorock.info/examples/wrapped-footprint/">este ejemplo</a> (ver código  fuente)</p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/jquery-101/' rel='bookmark' title='jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
<li><a href='http://retrorock.info/mejores-faqs-con-jquery/' rel='bookmark' title='Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/menus-dropdown-con-jquery/' rel='bookmark' title='Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/envolviendo-el-cdigo-jquery-wrap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Mysql, Tunnels, SSH&#8230;</title>
		<link>http://retrorock.info/mysql-tunnels-ssh/</link>
		<comments>http://retrorock.info/mysql-tunnels-ssh/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 01:04:42 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=444</guid>
		<description><![CDATA[editado el 21 de marzo del 2010 con ideas de una respuesta en este foro. Si tenemos acceso a ssh podemos conectarnos a una base de datos remota usando: ssh -L8888:mydbhost.mydomain.com:3306 myshelluser@mydomain.com Luego te conectas a su servidor así: mysql -u mydbuser -p -h 127.0.0.1 -P 8888 Debes usar 127.0.0.1 en vez de localhost porque [...]
Related posts:<ol>
<li><a href='http://retrorock.info/python-26-mysql/' rel='bookmark' title='Python 2.6 &amp; Mysql'>Python 2.6 &#038; Mysql</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>editado el 21 de marzo del 2010 con ideas de una respuesta <a href="http://forum.dreamhosters.com/troubleshooting/46935-Tunneling-MySQL-over-SSH.htm">en este foro</a>.</p>
<p>Si tenemos acceso a ssh podemos conectarnos a una base de datos remota usando:</p>
<p>ssh -L8888:mydbhost.mydomain.com:3306 myshelluser@mydomain.com</p>
<p>Luego te conectas a su servidor así:</p>
<p>mysql -u mydbuser -p -h 127.0.0.1 -P 8888</p>
<p>Debes usar 127.0.0.1 en vez de localhost porque si no el servidor va a rechazarte la conexión.</p>
<p>Lo que muestra este post es como conectarse a una base de datos remota usando Windows, Putty, Mysql GUI Tools y Dreamhost.</p>
<p>El problema es que quisiera usar mysql query browser para conectarme a mi base de datos en Dremahost, pero el query browser solo acepta conecciones locales.</p>
<p>La solucion es hacer un tunel (<a href="http://en.wikipedia.org/wiki/Tunneling_protocol#SSH_tunneling">SSH Tunneling</a>) desde nuestra maquina hacia el servidor en Dreamhost y conectar el query browser a traves de ese tunel.</p>
<p><strong>Como se hace</strong></p>
<p>Despues de haber instalado Putty, introducimos los datos del servidor para iniciar una sesión por SSH a nuestro usando el puerto común :22</p>
<p><img class="alignnone size-full wp-image-445" title="screen" src="http://retrorock.info/wp-content/uploads/2009/12/screen.png" alt="screen" width="387" height="391" /></p>
<p>Antes de iniciar sesión vamos a hacer el tunel, para esto hay que seleccionar en la columna de la izquierda un PUTTY, ssh &gt; tunnels y vamos a asignar un puerto local (9999) al servidor de MySQL en Dreamhost.</p>
<p><img style="border: 0px initial initial;" title="screen2" src="http://retrorock.info/wp-content/uploads/2009/12/screen22.png" alt="screen2" width="463" height="442" /></p>
<p>Con esta confiuración cuando iniciemos sesión podemos abrir el Mysql Query Browser y conectarnos al puerto que le asignamos al servidor remoto.</p>
<p><img class="alignnone size-full wp-image-448" title="screen3" src="http://retrorock.info/wp-content/uploads/2009/12/screen3.png" alt="screen3" width="430" height="361" /></p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/python-26-mysql/' rel='bookmark' title='Python 2.6 &amp; Mysql'>Python 2.6 &#038; Mysql</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/mysql-tunnels-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mejores FAQ&#8217;s con jQuery</title>
		<link>http://retrorock.info/mejores-faqs-con-jquery/</link>
		<comments>http://retrorock.info/mejores-faqs-con-jquery/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 13:17:41 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[FAQ]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=431</guid>
		<description><![CDATA[Una forma de mostrar un FAQ o las preguntas frecuentes sin la necesidad de muchos divs y otras cosas superfluas. (Ver código fuente) Ejemplo Related posts: Envolviendo el código &#8211; jQuery Wrap() Loops en jQuery con .each() Menús Dropdown con jQuery
Related posts:<ol>
<li><a href='http://retrorock.info/envolviendo-el-cdigo-jquery-wrap/' rel='bookmark' title='Envolviendo el código &#8211; jQuery Wrap()'>Envolviendo el código &#8211; jQuery Wrap()</a></li>
<li><a href='http://retrorock.info/loops-en-jquery-con/' rel='bookmark' title='Loops en jQuery con .each()'>Loops en jQuery con .each()</a></li>
<li><a href='http://retrorock.info/menus-dropdown-con-jquery/' rel='bookmark' title='Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Una forma de mostrar un FAQ o las preguntas frecuentes sin la necesidad de muchos divs y otras cosas superfluas. (Ver código fuente)</p>
<p><a href="http://retrorock.info/examples/faq.html"><span style="text-decoration: none;">Ejemplo</span></a></p>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/envolviendo-el-cdigo-jquery-wrap/' rel='bookmark' title='Envolviendo el código &#8211; jQuery Wrap()'>Envolviendo el código &#8211; jQuery Wrap()</a></li>
<li><a href='http://retrorock.info/loops-en-jquery-con/' rel='bookmark' title='Loops en jQuery con .each()'>Loops en jQuery con .each()</a></li>
<li><a href='http://retrorock.info/menus-dropdown-con-jquery/' rel='bookmark' title='Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/mejores-faqs-con-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Loops en jQuery con .each()</title>
		<link>http://retrorock.info/loops-en-jquery-con/</link>
		<comments>http://retrorock.info/loops-en-jquery-con/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 03:44:41 +0000</pubDate>
		<dc:creator>wilburhimself</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://retrorock.info/?p=391</guid>
		<description><![CDATA[Viendo ejemplos de jQuery ultimamente, he visto que muchos programadores usan loops con while() o for() en sus scripts. No hay nada de malo en eso, pero debemos saber que .each() también puede hacer loop sobre arrays y objetos. Related posts: Menús Dropdown con jQuery Mejores FAQ&#8217;s con jQuery jQuery 101 (introducción)
Related posts:<ol>
<li><a href='http://retrorock.info/menus-dropdown-con-jquery/' rel='bookmark' title='Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
<li><a href='http://retrorock.info/mejores-faqs-con-jquery/' rel='bookmark' title='Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/jquery-101/' rel='bookmark' title='jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Viendo ejemplos de jQuery ultimamente, he visto que muchos programadores usan loops con <code>while() o for()</code> en sus scripts. No hay nada de malo en eso, pero debemos saber que <code>.each()</code> también puede hacer loop sobre arrays y objetos.</p>
<script src="http://gist.github.com/295540.js" type="text/javascript"></script>
<p>Related posts:<ol>
<li><a href='http://retrorock.info/menus-dropdown-con-jquery/' rel='bookmark' title='Menús Dropdown con jQuery'>Menús Dropdown con jQuery</a></li>
<li><a href='http://retrorock.info/mejores-faqs-con-jquery/' rel='bookmark' title='Mejores FAQ&#8217;s con jQuery'>Mejores FAQ&#8217;s con jQuery</a></li>
<li><a href='http://retrorock.info/jquery-101/' rel='bookmark' title='jQuery 101 (introducción)'>jQuery 101 (introducción)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://retrorock.info/loops-en-jquery-con/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

