<?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>Blog and Web &#187; PHP</title>
	<atom:link href="http://blogandweb.com/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogandweb.com</link>
	<description>Recursos para Blog y Web</description>
	<lastBuildDate>Tue, 08 Nov 2011 23:09:17 +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>Blackbox, barra de depuración para WordPress</title>
		<link>http://blogandweb.com/wordpress/blackbox-depuracion-wordpress/</link>
		<comments>http://blogandweb.com/wordpress/blackbox-depuracion-wordpress/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 13:02:57 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Optimización]]></category>
		<category><![CDATA[Plugins para WordPress]]></category>

		<guid isPermaLink="false">http://blogandweb.com/?p=3030</guid>
		<description><![CDATA[Uno de los problemas de la &#34;excesiva&#34; flexibilidad de WordPress es su alto consumo de recursos y si agregamos el uso de plugins de alto consumo o ineficientes –que no son pocos–, los problemas aparecen en poco tiempo. Blackbox es un plugin que intenta ayudar con este problema. Blackbox agrega una barra de depuración para [...]]]></description>
			<content:encoded><![CDATA[<p>Uno de los problemas de la &quot;excesiva&quot; flexibilidad de <a href="http://blogandweb.com/wordpress/">WordPress</a> es su <strong>alto consumo de recursos</strong> y si agregamos el uso de plugins de alto consumo o ineficientes –que no son pocos–, los problemas aparecen en poco tiempo. <strong>Blackbox</strong> es un plugin que intenta ayudar con este problema.</p>
<p><img class="aligncenter" title="blackbox-debug-bar" border="0" alt="blackbox-debug-bar" src="http://bw.imagenes.info/wp-content/uploads/2011/04/blackbox-debug-bar.png" width="560" height="300" /></p>
<p>Blackbox agrega una barra de depuración para el administrador con la siguiente información:</p>
<ul>
<li><strong>Globals</strong>. Cookies, Get, Post, Session y Server. </li>
<li><strong>Profiler</strong>. Perfilador de rendimiento para alguna sección indicada con: <code>apply_filters(&quot;debug&quot;, &quot;My new checkpoint&quot;);</code> </li>
<li><strong>SQL</strong>. Muestra el número de consultas totales y su tiempo de ejecución y también cada consulta con su respectivo tiempo de ejecución. Muy útil para encontrar consultas lentas y normalmente ineficientes. </li>
<li><strong>Errores</strong>. Muestras los errores y avisos en la ejecución, similar a habilitar <code>WP_DEBUG</code>. </li>
</ul>
<p>Con un poco e PHP y MySQL se pueden mejorar bastante estos indicadores y reducir el número de errores, lo que tiene como beneficio menor carga al servidor y mayor velocidad para el lector.</p>
<p>Un plugin sin duda útil para desarrolladores de themes y plugins.</p>
<p>Descargar: <a href="http://wordpress.org/extend/plugins/blackbox-debug-bar/">Blackbox debug bar</a>. / <a href="http://ditio.net/2011/01/29/wordpress-debug-bar-plugin-blackbox/">Miniguía de uso del autor</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/wordpress/blackbox-depuracion-wordpress/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Code Igniter: Trabajando con Vistas.</title>
		<link>http://blogandweb.com/php/code-igniter-vistas/</link>
		<comments>http://blogandweb.com/php/code-igniter-vistas/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 02:30:17 +0000</pubDate>
		<dc:creator>Jesus Yepes</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://blogandweb.com/?p=2796</guid>
		<description><![CDATA[Este artículo es una excelente colaboración de Jesus Yepes, segundo de la serie de artículos de introducción a Code Igniter. Bienvenidos a la segunda parte de nuestra introducción a Code Igniter. En la primera parte, vimos muy por encima qué es Code Igniter y cómo usarlo, cuales son sus características y modo de uso, qué [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="introduccion-code-igniter" border="0" alt="introduccion-code-igniter" src="http://bw.imagenes.info/wp-content/uploads/2010/07/introduccioncodeigniter.jpg" width="250" height="270" /></p>
<p><small>Este artículo es una excelente colaboración de <a href="http://blog.jesusyepes.com/">Jesus Yepes</a>, segundo de la serie de artículos de <strong>introducción a <a href="http://blogandweb.com/tag/code-igniter/">Code Igniter</a></strong>.</small></p>
<p>Bienvenidos a la segunda parte de nuestra <a href="http://blogandweb.com/php/introduccion-a-code-igniter-i/">introducción a Code Igniter</a>. En la primera parte, vimos muy por encima qué es <strong>Code Igniter</strong> y cómo usarlo, cuales son sus características y modo de uso, qué es MVC, cuales son los principales ficheros de Code Igniter para su configuración. En esta segunda parte, expondremos un par de ejemplos sobre<strong> cómo usar las vistas</strong>, cuándo, y cómo podemos hacer que el desarrollo de nuestra aplicación web sea más rápido gracias a estas. </p>
<h4>Empezamos, ¿qué es una vista?</h4>
<p>Las <strpmg>vistas</strong> se almacenarán en nuestro directorio<em> /application/views </em>de nuestro <a href="http://blog.jesusyepes.com/administracion-de-sistemas/el-servidor-web-perfecto-macos-mamp/">servidor local</a>. Las vistas son, básicamente, código html. Vamos a hacer un ejemplo, que simplemente llame a la vista <em>blogandweb.php</em> y muestre su contenido, que será simplemente &quot;Buenas, usuarios de blog and web!&quot;.</p>
<p><small><strong>Varias notas:</strong> nos vamos a crear un controlador, que será el que usemos por defecto, y lo llamaremos &quot;controlador&quot; (Revisa el <a href="http://blogandweb.com/php/introduccion-a-code-igniter-i/">primer capítulo</a> si tienes dudas, de todas formas, los controladores van en <em>application/controllers/</em>). El controller, <em>Controlador.php.</em></small></p>
<pre><code>class Controlador extends Controller {

function __construct()
{
parent::Controller();
}
function index()
{
$this-&gt;load-&gt;view('blogandweb');
}
}</code></pre>
<p>La vista, <em>blogandweb.php</em></p>
<pre><code>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Bienvenidos a blog and web!&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;Bienvenidos a blog and web!&lt;/h1&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>Una vez creados, nos iremos a <em>application/config/routes.php</em>, y estableceremos el controlador por defecto a “controlador”</p>
<pre><code>
$route['default_controller'] = &quot;controlador&quot;;
$route['scaffolding_trigger'] = &quot;&quot;;
</code></pre>
<p>Tal y como dijimos en el capítulo uno, cuando alguien entre directamente a nuestra web y no pida explícitamente qué controlador y qué método quiere ver, por defecto usaremos el controlador “controlador” y el método por defecto (vacío), es decir, la función index() de ese controlador. </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="code-igniter-hola-mundo" border="0" alt="code-igniter-hola-mundo" src="http://bw.imagenes.info/wp-content/uploads/2010/07/codeigniterholamundo.png" width="600" height="521" /> </p>
<p>El ejemplo no es muy útil, pero es un comienzo&#8230; </p>
<h4>Pasándole variables a nuestra vista</h4>
<p><span id="more-2796"></span></p>
<p>Vale, hagamos que la vista sea algo más dinámica. Digamos que tenemos el nombre del usuario en una variable, y que queremos mostrarlo en nuestra página. Para ello, tenemos el segundo parámetro de <code>$this-&gt;load-&gt;view()</code>. Un array. Todos los items de ese array, estarán <strong>disponibles en la vista</strong>, de forma que los podremos usar dónde queramos. <strong>El nombre de la variable, será el índice del array</strong>. Supongamos el siguiente código en el método index del controlador. </p>
<pre><code>
function index()
{
$data = array(
'usuario' =&gt; 'Jhon Locke',
'mensaje' =&gt; 'Has encontrado la escotilla!'
);
$this-&gt;load-&gt;view('blogandweb', $data);
}
</code></pre>
<p>y el siguiente para la vista <em>blogandweb.php</em></p>
<pre><code>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Bienvenidos a blog and web!&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;h1&gt;Buenas &lt;?php echo $usuario; ?&gt;, Bienvenidos a blog and web!&lt;/h1&gt;
&lt;p&gt;&lt;?php echo $mensaje; ?&gt;&lt;/p&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>Obtendríamos esto&#8230; </p>
<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="code-igniter-hola-mundo-2" border="0" alt="code-igniter-hola-mundo-2" src="http://bw.imagenes.info/wp-content/uploads/2010/07/codeigniterholamundo2.png" width="600" height="522" /> </p>
<p>Si por ejemplo, estuviéramos desarrollando un blog, pasaríamos a la <strong>vista</strong> todos los posts, y esta los recorrería y los mostraría. Pero dejemos este tipo de ejemplos para posteriores capítulos. </p>
<h4>Llamando a vistas dentro de las vistas</h4>
<p>Esto es una forma de dejar todo el código mucho mas claro. Vamos a usar una forma similar a la que usa <a href="http://blogandweb.com/wordpress/">WordPress</a>, es decir, WordPress tiene el “gordo” de la página, y desde este fichero, llama a otro que genera la cabecera, a otro que genera el sidebar, y a otro que genera el footer. Lo juntamos todo, y tenemos nuestra web. Vamos a hacer que nuestra <strong>vista</strong> tenga un poco.</p>
<p class="nota"><small><strong>Nota:</strong> No vamos a aplicar ningún estilo, no pretendo que la página luzca bien, pretendo que se entienda qué son y que ventajas tienen las vistas en Code Igniter.</small></p>
<pre><code>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Bienvenidos a blog and web!&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt; 

&lt;/head&gt;
&lt;body&gt;

&lt;ul id=&quot;menu&quot;&gt;
&lt;a href=&quot;#&quot;&gt;inicio&lt;/a&gt;
&lt;a href=&quot;#&quot;&gt;Una página&lt;/a&gt;
&lt;a href=&quot;#&quot;&gt;Otra página&lt;/a&gt;
&lt;/ul&gt;

&lt;h1&gt;Buenas &lt;?php echo $usuario; ?&gt;, Bienvenidos a blog and web!&lt;/h1&gt;
&lt;p&gt;&lt;?php echo $mensaje; ?&gt;&lt;/p&gt;

&lt;div id=&quot;lateral&quot;&gt;
&lt;p&gt;Estamos en el lateral.&lt;/p&gt;
&lt;p&gt;Contenido de prueba&lt;/p&gt;
&lt;/div&gt;

&lt;div id=&quot;footer&quot;&gt;
&lt;p&gt;Esto es el footer. Información de copyright y esas cosas&lt;/p&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>Así la página tiene algo más de chicha. Tiene un menú en la cabecera, el contenido, un sidebar, y el pié de página.</p>
<h4>Dinámico y fácil de mantener con Code Igniter</h4>
<p>Vamos a partir nuestro html en varias partes, de forma que podamos reutilizarlo en todas las páginas que vayamos creando. Por un lado, crearemos una <sstrong>vista</strong> para la cabecera, que será la encargada de mostrar la cabecera en sí, la apertura del documento html, título de la página y etiquetas meta. Por otro lado, tendremos el sidebar, que será el encargado de mostrar todo lo que saldrá en el lateral (imaginad un blog, pues las categorías, comentarios recientes, etc, etc.). Por último, el footer, que mostrará el pié de la página y el cierre del documento html. <em>header.php</em></p>
<pre><code>&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Bienvenidos a blog and web!&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt; 

&lt;/head&gt;
&lt;body&gt;

&lt;ul id=&quot;menu&quot;&gt;
&lt;a href=&quot;#&quot;&gt;inicio&lt;/a&gt;
&lt;a href=&quot;#&quot;&gt;Una página&lt;/a&gt;
&lt;a href=&quot;#&quot;&gt;Otra página&lt;/a&gt;
&lt;/ul&gt;

sidebar.php

&lt;div id=&quot;lateral&quot;&gt;
&lt;p&gt;Estamos en el lateral.&lt;/p&gt;
&lt;p&gt;Contenido de prueba&lt;/p&gt;
&lt;/div&gt;

footer.php

&lt;div id=&quot;footer&quot;&gt;
&lt;p&gt;Esto es el footer. Información de copyright y esas cosas&lt;/p&gt;
&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>y la vista principal (<em>blogandweb.php</em>), quedaría así:</p>
<pre><code>&lt;?php $this-&gt;load-&gt;view('header'); ?&gt;

&lt;h1&gt;Buenas &lt;?php echo $usuario; ?&gt;, Bienvenidos a blog and web!&lt;/h1&gt;
&lt;p&gt;&lt;?php echo $mensaje; ?&gt;&lt;/p&gt;

&lt;?php $this-&gt;load-&gt;view('sidebar'); ?&gt;

&lt;?php $this-&gt;load-&gt;view('footer'); ?&gt;</code></pre>
<p>Hemos llamado a otras <strong>vistas</strong> desde nuestra <strong>vista principal</strong>. También podríamos, desde el controlador, llamar a <strong>todas las vistas necesarias</strong>. Esto es indiferente, pero a mi me gusta más hacerlo como he explicado ya que me parece más claro y rápido que llamando a todas las vistas desde el controlador.</p>
<h4>El tercer parámetro de la llamada a la vista, ese gran desconocido</h4>
<p>Hemos visto que la llamada a una vista con <code>$this-&gt;load-&gt;view();</code> acepta dos parámetros. La <strong>vista</strong> que queremos cargar y un array que serán convertidas a variables y estarán disponibles en la vista. Pues bien, hay un tercero que por defecto es false, que indica si queremos <strong>devolver el código que genera la vista para almacenarlo en una variable</strong> y después hacer con él lo que creamos necesario. Por ejemplo: </p>
<pre><code>$html = $this-&gt;load-&gt;view('blogandweb', $data, TRUE);</code></pre>
<p>La variable <code>$html</code> tendría todo el código fuente, lo que hagamos con ella ya es otra cosa. Pues bien, hasta aquí el capítulo de las <strogn>vistas en Code Igniter</strong>. Espero que os haya sido ameno y que os sirva de algo. Como siempre, espero vuestros comentarios con dudas, sugerencias, lo que sea.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/php/code-igniter-vistas/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Introducción a Code Igniter</title>
		<link>http://blogandweb.com/php/introduccion-a-code-igniter-i/</link>
		<comments>http://blogandweb.com/php/introduccion-a-code-igniter-i/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 03:18:47 +0000</pubDate>
		<dc:creator>Jesus Yepes</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://blogandweb.com/?p=2780</guid>
		<description><![CDATA[Este artículo es una excelente colaboración de Jesus Yepes, a quien puedes leer en su blog. Recuerda que la invitación esta abierta para publicar tus artículos. En este pequeño post voy a hacer un breve repaso sobre las razones más importantes de usar un Framework para php, para realizar nuestros desarrollos de forma más rápida [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="introduccion-code-igniter" src="http://bw.imagenes.info/wp-content/uploads/2010/07/introduccioncodeigniter.jpg" border="0" alt="introduccion-code-igniter" width="250" height="270" /></p>
<p><small>Este artículo es una excelente colaboración de <a href="http://blog.jesusyepes.com/">Jesus Yepes</a>, a quien puedes leer en su blog. Recuerda que la invitación esta abierta para <a href="http://blogandweb.com/escribe-un-tutorial/">publicar tus artículos</a>.</small></p>
<p>En este pequeño post voy a hacer un breve repaso sobre las razones más importantes de usar un <strong>Framework para php</strong>, para realizar nuestros desarrollos de forma más rápida y eficiente (y por qué está de moda, todo hay que decirlo).</p>
<p>Lo primero que deberías hacer, es ver en qué posición estás. Un <strong>framework</strong> está pensado para gente que tiene un dominio, al menos medio, del lenguaje de programación en el que está hecho (en este caso <a href="http://blogandweb.com/php/">PHP</a>) y que quieren realizar sus proyectos de una forma más ordenada rápida. Si estás empezando con php este NO es el camino que debes seguir. Deberías empezar aprendiendo PHP “a pelo” para después elegir el mejor framework para tu caso.También es de agradecer estar familiarizado con el modelo de programación orientada a objetos en PHP.<br />
<span id="more-2780"></span></p>
<h4>¿Por qué Code Igniter?</h4>
<p>Cuando me picó el gusanillo de los frameworks en PHP, estuve buscando opiniones sobre cual usar. Obviamente, cada uno tiene sus preferencias, pero en algo que todos coinciden es que <strong>Code Igniter</strong> tiene una gran <strong>documentación</strong> y <strong>comunidad</strong>, requisito indispensable si estás empezando en este mundillo, ya que tarde o temprano tendremos alguna duda y a alguien le tendremos que preguntar&#8230; ¿no?</p>
<p>Además, <strong>Code Igniter</strong> es altamente extensible, es rápido, soporta PHP 4 (en la última versión estable, 1.7.2). Las futuras versiones no soportarán PHP 4, requerirán PHP 5 para funcionar.</p>
<p><strong>Code Igniter</strong> utiliza <em>MVC</em>, un estilo de programación en el que la aplicación está separada entres capas:</p>
<ul>
<li><strong>Modelo</strong>: Es el que procesa / obtiene los datos. Generalmente, lo usaremos sobre todo para gestionar la entrada y salida de los datos en nuestra base de datos.</li>
<li><strong>Vista</strong>: Llamada desde el controlador, es la que forma los datos para representarlos en pantalla. En Code Igniter ( y cualquier framework para web) es la que montará todo el código html).</li>
<li><strong>Controlador</strong>: Como su nombre indica, es el que “controla” que pasa en nuestra aplicación.Básicamente, y a grandes rasgos, un controlador recibe una petición, obtiene datos de un modelo, los procesa, y se los pasa a la vista para que los muestre de forma adecuada.</li>
</ul>
<p>Además, en Code Igniter tenemos <em>helpers, hooks y librerías</em>, pero de esto ya hablaremos más adelante. A grandes rasgos, los <em>helpers</em> son un conjunto de funciones agrupadas por funcionalidad, es decir, tenemos un <em>helper</em> para crear formularios, tenemos un <em>helper</em> para trabajar con fechas, etc. Las <em>librerías</em>, son clases. Tenemos librerías para <a href="http://blog.jesusyepes.com/codeigniter/problemas-al-enviar-emails-usando-la-libreria-nativa-de-code-igniter/">enviar emails</a>, tenemos librerías para validar los datos que nos llegan de un formulario, etc.</p>
<h4>Hola Mundo!</h4>
<p class="nota"><small><strong>Nota:</strong> Es necesario tener un servidor web que soporte php, instalado, configurado y funcionando. Para las pruebas, usaremos una máquina local con MAMP corriendo en MacOs.Puedes usar Wamp en windows, Mamp en mac o Mamp en linux, o puedes montar <a href="http://blog.jesusyepes.com/diseno-web/entorno-de-desarrollo-web-perfecto-en-mac-os-x/">Apache +PHP + MySQL</a> a mano.</small></p>
<p>Empezamos con una aplicación de ejemplo, dejémonos de rollos. Vamos a <a href="http://codeigniter.com">Codeigniter.com</a> y nos descargamos la última versión (1.7.2 a la hora de escribir esto). Una vez la descargamos, veremos que tenemos dos directorios: <em>System</em> y <em>user_guide</em>. La carpeta <em>user_guide</em> es la documentación que podemos encontrar en su web en formato HTML,no es necesario para que nuestra aplicación funcione.</p>
<p>La descargamos y descomprimimos en un directorio de accesible por nuestro servidor web.Tendremos el directorio <em>system</em> (que contiene el framework en sí), el directorio <em>application</em> que veis (está dentro de <em>system</em>, solo que yo lo muevo fuera para poder tenerlo todo más separado) y el archivo <em>index.php</em>, que es el encargado de poner en marcha todo el framework. El directorio <em>user_guide</em> y el archivo <em>license</em> los he borrado, por que no son necesarios para el uso del framework.</p>
<p><img class="aligncenter" title="code-igniter-directorios" src="http://bw.imagenes.info/wp-content/uploads/2010/07/codeigniterdirectorios.png" border="0" alt="code-igniter-directorios" width="600" height="349" /></p>
<p>Lo primero que debemos hacer es editar el fichero <em>application/config/config.php</em> y poner los datos de nuestro servidor, en el primero parámetro, <em>$config['base_url']=http://example.com/;</em> cambiando example.com por nuestra URL, en mi caso: <em>http://localhost/Sites/ci-baw/</em></p>
<p class="nota"><small><strong>Nota:</strong> Aseguraros de terminar siempre la url con: /</small></p>
<p>Ahora, accedemos a dicho directorio mediante nuestro explorador favorito (ni que decir, que para el desarrollo web, <a href="http://blogandweb.com/productos-google/extensiones-chrome-y-firefox-para-bloggers-y-desarrolladores/">Firefox + Firebug</a>)</p>
<p><img class="aligncenter" title="code-igniter-inicio" src="http://bw.imagenes.info/wp-content/uploads/2010/07/codeigniterinicio.png" border="0" alt="code-igniter-inicio" width="600" height="316" /></p>
<p>Podemos ver que todo ha salido bien. Nos sale una página por defecto, en la que nos dice que ha cargado la vista <em>welcome_message.php</em> y que corresponde al controlador <em>controllers/welcome.php</em>.</p>
<p>Bueno, vamos a entrar a ver el código, y a entender por que ha ejecutado el controlador <em>welcome</em> y como se ha cargado la vista.</p>
<p>Abrimos el archivo <em>applicattion/config/routes.php</em>:</p>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto; border-width: 0px;" title="code-igniter-welcome" src="http://bw.imagenes.info/wp-content/uploads/2010/07/codeigniterwelcome.png" border="0" alt="code-igniter-welcome" width="600" height="440" /></p>
<p>Veremos las siguientes líneas de código:</p>
<pre><code>$route['default_controller'] = "welcome";
$route['scaffolding_trigger'] = "";</code></pre>
<p>Eso le está diciendo a <strong>Code Igniter</strong> que el controlador, si no especificamos ninguno,será “<em>welcome</em>”. El parámetro <em>scaffolding_trigger</em> no lo veremos de momento.</p>
<p>Ahora, abrimos el fichero <em>application/controllers/welcome.php</em>.</p>
<pre><code>&lt;?php
class Welcome extends Controller {
function Welcome()
{
parent::Controller();
}

function index()
{
$this-&gt;load-&gt;view('welcome_message');
}
}</code></pre>
<p>Vamos a ver, el controlador se llama siempre igual que el nombre del fichero, pero con la primera en mayúscula, y debe extender siempre la clase <em>Controller</em>. Si declaramos un constructor (por que lo necesitemos), en PHP 4 <em>function Welcome()</em>, en PHP 5 <em>function__construct()</em>, lo primero que debemos hacer siempre dentro de dicho constructor es llamar al constructor de la clase padre, en este caso, <em>parant::Controller()</em>. El constructor lo definiremos cuando necesitemos asignar valores globales para toda la clase, o cargar librerías o <em>helpers</em> que los utilizaremos en toda la clase.</p>
<p>El método<em> index</em>, es el que se ejecuta si no hemos dicho lo contrario. Este método, lo único que hace es cargar una vista, ‘welcome_message’. Si abrimos el fichero <em>application/views/welcome_message.php</em> veremos que contiene el código que genera la página que hemos visto en nuestro explorador.</p>
<p>Ahora, a modo de ejemplo y para terminar, vamos a crear una función dentro del controlador <em>Welcome</em>.</p>
<pre><code>function hola_mundo()
{
echo 'Hola Mundo desde Code Igniter';
}</code></pre>
<p>Visitamos, dicha página con nuestro navegador, en mi caso vamos a:</p>
<pre><code>http://localhost/Sites/ci-baw/index.php/welcome/hola_mundo</code></pre>
<p class="nota"><small><strong>Nota:</strong> Ya veremos pronto como quitar el <em>index.php</em> de ahí en medio.</small></p>
<p>Y hasta aquí esta pequeña introducción, quizá demasiado abstracta, pero necesaria cuando se ve algo nuevo.</p>
<p>Espero vuestros comentarios y sugerencias para los siguientes posts sobre Code Igniter.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/php/introduccion-a-code-igniter-i/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Fechas más amigables en WordPress</title>
		<link>http://blogandweb.com/wordpress/fechas-amigables-wordpress-php/</link>
		<comments>http://blogandweb.com/wordpress/fechas-amigables-wordpress-php/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 09:22:30 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://blogandweb.com/?p=2773</guid>
		<description><![CDATA[La fecha en los artículos ayuda al lector a saber cuan fresca es la información y su contexto, en algunas temáticas es un dato imprescindible. El formato normal de una fecha, tipo &#34;6 de Junio de 2010&#34;, ya ofrece suficiente información, sin embargo, no es tan rápida de interpretar como una &#34;fecha relativa&#34; estilo &#34;Hace [...]]]></description>
			<content:encoded><![CDATA[<p>La <strong>fecha</strong> en los artículos ayuda al lector a saber cuan fresca es la información y su contexto, en algunas temáticas es un dato imprescindible. El formato normal de una fecha, tipo &quot;<em>6 de Junio de 2010</em>&quot;, ya ofrece suficiente información, sin embargo, no es tan rápida de interpretar como una &quot;fecha relativa&quot; estilo &quot;<em>Hace 10 minutos</em>&quot; o &quot;<em>Hace 10 días</em>&quot;.</p>
<p>Servicios como Facebook o Twitter usan este formato y <a href="http://blogandweb.com/wordpress/">WordPress</a> tiene una función sencilla para imprentarlo: <a href="http://codex.wordpress.org/Function_Reference/human_time_diff">human_time_diff()</a>.</p>
<p><strong>Actualización:</strong> También puedes ver como hacer <a href="http://blogandweb.com/javascript/fechas-amigables-blogger-javascript/">fechas amigables en Blogger</a></p>
<h4>Fechas amigables en WordPress</h4>
<p><strong>Para usarla en los posts</strong></p>
<p>Reemplaza la función que muestra la fecha en todos los archivos de tu theme por:</p>
<pre><code>&lt;?php echo 'Hace '.human_time_diff(get_the_time('U'), current_time('timestamp')); ?&gt;&lt;/a&gt;</code></pre>
<p>Las funciones que muestran la fecha en el post suelen ser: <code>the_date(), get_the_date(), the_time()</code> o <code>the_modified_date()</code> y suele encontrarse en los archivos: <em>single.php, index.php, archive.php, search.php</em> y <em>page.php</em>.</p>
<p><strong>Para comentarios:</strong></p>
<p>Reemplaza la función que muestra la fecha de los comentarios en el archivo <em>comments.php</em> o <em>functions.php</em> por:</p>
<pre><code>&lt;?php echo 'Hace '.human_time_diff(get_comment_time('U'), current_time('timestamp')); ?&gt;</code></pre>
<p>Y las funciones que suelen mostrar la fecha en los comentarios son: <code>comment_date(), get_comment_date(), comment_time()</code> y <code>get_comment_time()</code>.</p>
<p>Con esto se habilitan las fechas relativas tanto en entradas como comentarios. En lo personal, solo lo implementé en <em>single.php</em> y <em>functions.php</em>, para comentarios.</p>
<p><span id="more-2773"></span></p>
<h4>Función PHP para obtener el tiempo entre dos fechas</h4>
<p>La función que usa WordPress para mostrar el tiempo entre dos fechas en forma de texto es la siguiente:</p>
<pre><code>function human_time_diff( $from, $to = '' ) {
    if ( empty($to) )
        $to = time();
    $diff = (int) abs($to - $from);
    if ($diff &lt;= 3600) {
        $mins = round($diff / 60);
        if ($mins &lt;= 1)
            $since = __('1 minuto');
        else
            $since = sprintf( __('%s minutos'), $mins);
    } else if (($diff &lt;= 86400) &amp;&amp; ($diff &gt; 3600)) {
        $hours = round($diff / 3600);
        if ($hours &lt;= 1)
            $since = __('1 hora');
        else
            $since = sprintf( __('%s horas'), $hours );
    } elseif ($diff &gt;= 86400) {
        $days = round($diff / 86400);
        if ($days &lt;= 1)
            $since = __('1 d&amp;iacute;a');
        else
            $since = sprintf( __('%s d&amp;iacute;as'), $days );
    }
    return $since;
}</code></pre>
<p>Que puede usarse en cualquier otra aplicación <a href="http://blogandweb.com/php/">PHP</a> que recibe dos parámetros, correspondientes a las fechas de las que se desea conocer la diferencia en tiempo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/wordpress/fechas-amigables-wordpress-php/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Videotutoriales de PHP y MySQL</title>
		<link>http://blogandweb.com/php/videotutoriales-de-php-y-mysql/</link>
		<comments>http://blogandweb.com/php/videotutoriales-de-php-y-mysql/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 11:18:00 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[desarrolladores]]></category>
		<category><![CDATA[Diseño web]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Videotutoriales]]></category>

		<guid isPermaLink="false">http://blogandweb.com/php/videotutoriales-de-php-y-mysql/</guid>
		<description><![CDATA[PHP y MySQL son lenguajes pilares en el desarrollo web, y las bases, son de aprendizaje obligado para diseñadores, bloggers y por supuesto, programadores. Si estas en proceso de aprenderlo, los videotutoriales del programador chileno, Cesar Cancino te serán de gran ayuda. Hasta hoy son 8 videotutoriales que enseñan desde cero, la programación en PHP, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogandweb.com/php/"><strong>PHP</strong></a> y <strong>MySQL</strong> son lenguajes pilares en el desarrollo web, y las bases, son de aprendizaje obligado para diseñadores, bloggers y por supuesto, programadores. Si estas en proceso de aprenderlo, los videotutoriales del programador chileno, <a href="http://www.cesarcancino.com/cursos.php">Cesar Cancino</a> te serán de gran ayuda.</p>
<p>Hasta hoy son 8 videotutoriales que enseñan desde cero, la programación en PHP, consultas en MySQL y el vinculo entre ambas tecnologías. A destacar sobre <a href="http://blogandweb.com/php/videotutorial-de-php/">otros cursos de PHP</a> el sentido práctico y fácil de seguir.</p>
<p><strong>Videotutorial 1. </strong><a href="http://www.cesarcancino.com/videos.php?id=19">Conceptos fundamentales</a>:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="450" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8802569&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="600" height="450" src="http://vimeo.com/moogaloop.swf?clip_id=8802569&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>Videotutorial 2.</strong> <a href="http://www.cesarcancino.com/videos.php?id=20">Variables y formularios.</a></p>
<p><strong>Videotutorial 3.</strong> <a href="http://www.cesarcancino.com/videos.php?id=22">Estructuras condicionales</a>.</p>
<p><strong>Videotutorial 4.</strong> <a href="http://www.cesarcancino.com/videos.php?id=23">Ciclos</a>.</p>
<p><strong>Videotutorial 5.</strong> <a href="http://www.cesarcancino.com/videos.php?id=25">Arreglos.</a></p>
<p><strong>Videotutorial 6.</strong> <a href="http://www.cesarcancino.com/videos.php?id=26">Introducción a MySQL</a>.</p>
<p><strong>Videotutorial 7.</strong> <a href="http://www.cesarcancino.com/videos.php?id=27">Consultas MySQL</a>.</p>
<p><strong>Videotutorial 8.</strong> <a href="http://www.cesarcancino.com/videos.php?id=28">Conexión PHP-MySQL</a>.</p>
<p><strong>Videotutorial 9.</strong> <a href="http://www.cesarcancino.com/videos.php?id=29">Desarrollo de un sistema de noticias con PHP y MySQL</a>.</p>
<p>Un curso en línea bastante recomendado para seguir.<del datetime="2010-03-16T08:36:27+00:00"> Lastima no exista un RSS para suscribirse, pero siempre puedes consultar la <a href="http://www.cesarcancino.com/cursos.php">sección de cursos</a> del autor</del> Para seguir los nuevos tutoriales puedes suscribirte al <a href="http://www.cesarcancino.com/rss.php">feed RSS</a> del autor.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/php/videotutoriales-de-php-y-mysql/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Videotutorial de FireBug</title>
		<link>http://blogandweb.com/css/videotutorial-de-firebug/</link>
		<comments>http://blogandweb.com/css/videotutorial-de-firebug/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 21:10:25 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Diseño web]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Videotutoriales]]></category>

		<guid isPermaLink="false">http://blogandweb.com/css/videotutorial-de-firebug/</guid>
		<description><![CDATA[FireBug es una de las extensiones más potentes para diseñadores y programadores web. Te permite inspeccionar, depurar y escribir código directamente desde el navegador, por buscar una analogía, es como un editor wysiwyg de código, donde el código que modificas/escribes se refleja inmediatamente en el sitio web. Si quieres aprender a usar esta excelente herramienta, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>FireBug</strong> es una de las extensiones más potentes para diseñadores y programadores web. Te permite <strong>inspeccionar, depurar y escribir código</strong> directamente desde el navegador, por buscar una analogía, es como un editor wysiwyg de código, donde el código que modificas/escribes se refleja inmediatamente en el sitio web.</p>
<p>Si quieres aprender a usar esta excelente herramienta, en <a href="http://illasaron.com/upload/search/result?query=firebug&amp;search=buscar">Videotutoriales.com</a> están haciendo una serie de videotutoriales de lo más básico hasta cosas más particulares. Sino no usas FireBug es una buena introducción y sí ya lo usas, seguramente encontraras alguna función que no conocías.</p>
<p class="aligncenter"><embed src="http://blip.tv/play/gvAHgbSpAQA" type="application/x-shockwave-flash" width="600" height="450" allowscriptaccess="always" allowfullscreen="true"> </embed></p>
</p>
<p>Hasta el momento son tres los tutoriales:</p>
<ul>
<li><a href="http://illasaron.com/upload/video/2ece6835efb8ff1/01-Usando-Firebug-Primer-videotutorial-dedicado-al-depurador-20">01.- Usando Firebug. Primer videotutorial dedicado al depurador 2.0</a> </li>
<li><a href="http://illasaron.com/upload/video/d355ec3355d5887/-02-Curso-de-Firebug-Trabajar-con-la-Consola">02.- Curso de Firebug. Trabajar con la Consola.</a> </li>
<li><a href="http://illasaron.com/upload/video/46644cc6298ad70/-03-Curso-de-Firebug-Depurar-c%C3%B3digo-JavaScript">03.- Curso de Firebug. Depurar código JavaScript</a> (arriba) </li>
</ul>
<p>Desde mi punto de vista, una extensión <strong>indispensable</strong> para todo desarrollador web, pero también para el que esta incursionando en el diseño y la programación.</p>
<p><a href="http://getfirebug.com/">Descargar FireBug</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/css/videotutorial-de-firebug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Organiza y da formato a tu c&#243;digo autom&#225;ticamente</title>
		<link>http://blogandweb.com/css/organiza-y-da-formato-a-tu-cdigo-automticamente/</link>
		<comments>http://blogandweb.com/css/organiza-y-da-formato-a-tu-cdigo-automticamente/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 20:36:07 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[Formateador]]></category>
		<category><![CDATA[formato]]></category>
		<category><![CDATA[Organización]]></category>

		<guid isPermaLink="false">http://blogandweb.com/css/organiza-y-da-formato-a-tu-cdigo-automticamente/</guid>
		<description><![CDATA[Mantener un código con buen formato, con comentarios, identación y separando en lo posible cada lenguaje web son buenas prácticas para facilitar el mantenimiento de un sitio o una aplicación web. Sea un código que hicimos hace tiempo o aun peor, el código de otra persona, puede tornarse en un verdadero dolor de cabeza dar [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="formato-html-css-php" border="0" alt="formato-html-css-php" src="http://bw.imagenes.info/wp-content/uploads/2009/12/formatohtmlcssphp.jpg" width="600" height="401" /> </p>
<p>Mantener un código con buen formato, con comentarios, identación y separando en lo posible cada lenguaje web son buenas prácticas para facilitar el mantenimiento de un sitio o una aplicación web.</p>
<p>Sea un código que hicimos hace tiempo o aun peor, el código de otra persona, puede tornarse en un verdadero dolor de cabeza dar formato al código para entender mejor su lógica. La buena noticia es que existen herramientas para organizar el código de los principales lenguajes web:</p>
<h4><strong>HTML</strong></h4>
<p><strong>HTML Tidy</strong> es una versión en línea de la <a href="http://tidy.sourceforge.net/">librería Tidy</a>, que a partir de código HTML directo o de una URL da formato al código. Además de organizar el código, también hace algunas optimizaciones como agrupar div&#8217;s, unificar clases y separar el CSS del HTML.</p>
<p>Ir a <a href="http://flumpcakes.co.uk/css/html-tidy/">HTML Tidy</a>&#160;</p>
<h4><strong>CSS</strong></h4>
<p>A partir de la librería <a href="http://csstidy.sourceforge.net/">CSStidy</a>, en su momento monté <strong>CSS Óptimo</strong> para uso personal, pero después de darle un toque de diseño y traducirlo al español, creo que puede ser una herramienta útil para todos. Tiene la opción para formatear el código CSS de acuerdo a un grado de optimización seleccionado.</p>
<p>Muy útil para formatear CSS, pero más aun, para optimizarlo y reducir el peso de una hoja de estilos en más de un 30%.</p>
<p>Ir a <a href="http://blogandweb.com/cssoptimo/">CSS Óptimo</a></p>
<h4><strong>PHP</strong></h4>
<p><strong>Beautify PHP</strong> es una herramienta que a partir de un archivo PHP genera un código organizado y formateado, incluso codifica las imágenes para que no hagan una petición al servidor y se disminuya la carga del mismo.</p>
<p>Ir a <a href="http://www.beautifyphp.com/">Beautify PHP</a> / vía <a href="http://www.kabytes.com/programacion/herramienta-para-organizar-el-codigo-php/">kabytes</a></p>
<p><small>Fotografía de <a href="http://www.flickr.com/photos/kylehixson/">Kyle</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/css/organiza-y-da-formato-a-tu-cdigo-automticamente/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Auto-follow en Twitter para términos de búsqueda</title>
		<link>http://blogandweb.com/php/auto-follow-en-twitter-para-terminos-de-busqueda/</link>
		<comments>http://blogandweb.com/php/auto-follow-en-twitter-para-terminos-de-busqueda/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 11:28:19 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Auto-follow]]></category>
		<category><![CDATA[Script]]></category>

		<guid isPermaLink="false">http://blogandweb.com/?p=2274</guid>
		<description><![CDATA[Navegando por Snipplr, un sitio que recolecta cientos de snippets, me encontré con un script que me parece realmente interesante. El script se llama Twitter-autofollow y te permite seguir automáticamente a todas las personas que hayan mencionado un término específico en su Twitter. Por ejemplo, se podría usar para que automáticamente siga a todas las [...]]]></description>
			<content:encoded><![CDATA[<p>Navegando por <a href='http://snipplr.com/'>Snipplr</a>, un sitio que recolecta cientos de <a href='http://blogandweb.com/category/snippets/'>snippets</a>, me encontré con un script que me parece realmente interesante. El script se llama <a href='http://code.google.com/p/twitter-autofollow/'>Twitter-autofollow</a> y te permite <strong>seguir automáticamente</strong> a todas las personas que hayan mencionado un término específico en su <a href='http://twitter.com/blogandweb'>Twitter</a>. </p>
<p>Por ejemplo, se podría usar para que automáticamente siga a todas las personas que mencionen la URL de tu blog.</p>
<h4>El script</h4>
<p><strong>Descargar</strong>: <a href='http://twitter-autofollow.googlecode.com/files/twitter-auto-follow-v0.1.php'>twitter-auto-follow-v0.1.php</a> </p>
<h4>Uso</h4>
<p>Los variables que hay que definir son el usuario, la contraseña y el término de búsqueda de interés al inicio del script. </p>
<pre><code>// Datos de acceso de Twitter
$user = &quot;&quot;;
$pass = &quot;&quot;;
// T&eacute;rmino de b&uacute;squeda (ej. &quot;blogandweb&quot;)
$term = &quot;&quot;;</code></pre>
<p>Una vez definidas se sube el archivo a un servidor con soporte de PHP y se ejecuta accediendo directamente al archivo, por ejemplo, si lo subiste a la raíz de tu sitio y dejaste el mismo nombre de archivo:</p>
<pre><code>http://sitio.com/twitter-auto-follow-v0.1.php</code></pre>
<p>Esta es la ejecución manual, obviamente, de acuerdo a tu manejo de PHP podrías usarla como función para que se ejecute bajo ciertas condiciones o cada periodo de tiempo.</p>
<h4>Conclusión</h4>
<p>Creo que este script tiene potencial positivo en la promoción de una web o un producto, o en la vinculación de una marca con sus consumidores, sin embargo también puede caer en los límites del spam si se usa mal. Yo recomendaría que se use para términos muy específicos y usar los filtros de búsqueda de Twitter para llegar solo a personas que en verdad puedan estar interesadas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/php/auto-follow-en-twitter-para-terminos-de-busqueda/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Aprende como funciona un CMS creando uno muy simple</title>
		<link>http://blogandweb.com/php/aprende-como-funciona-un-cms-creando-uno-muy-simple/</link>
		<comments>http://blogandweb.com/php/aprende-como-funciona-un-cms-creando-uno-muy-simple/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 02:40:56 +0000</pubDate>
		<dc:creator>Ivan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[principiantes]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://blogandweb.com/?p=2001</guid>
		<description><![CDATA[Por medio de Informática Práctica, me entero de un muy interesante artículo para aquellos que estén interesados en la programación web: como crear tu propio CMS en PHP. El artículo está en inglés y sirve para aprender como funcionan de manera básica sistemas tan extendidos como WordPress, observando como interactúa PHP con MySQL. Como dice [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-2002" title="PHP para principiantes" src="http://bw.imagenes.info/wp-content/uploads/2009/01/phpbeginners.png" alt="PHP para principiantes" width="500" height="220" />Por medio de <a href="http://informatica-practica.net/wordpress/index.php/2009/01/29/construye-tu-propio-cms/">Informática Práctica</a>, me entero de un muy interesante artículo para aquellos que estén interesados en la programación web: <a href="http://css-tricks.com/php-for-beginners-building-your-first-simple-cms/">como crear tu propio CMS en PHP</a>.</p>
<p>El artículo <strong>está en inglés</strong> y sirve para aprender como funcionan de manera básica sistemas tan extendidos como WordPress, observando como <strong>interactúa PHP con MySQL</strong>. Como dice el autor: &#8220;no hace daño echar un vistazo bajo la capota y hacerse una idea de como funciona el sistema&#8221;.</p>
<p>El tutorial toca los siguientes temas:</p>
<ul>
<li>Crear una base de datos.</li>
<li>Conectar con una base de datos.</li>
<li>Mostrar un formulario con dos campos.</li>
<li>Guardar los datos del formulario en la base de datos.</li>
<li>Mostrar los datos que se han guardado.</li>
</ul>
<p>Un excelente artículo para <strong>ampliar conocimientos</strong> si estás interesado en ello y no vas más allá de colocar plugins en WordPress, y que puede llevar tan sólo unas pocas horas de aplicación. Ideal si estás <a href="http://blogandweb.com/php/videotutorial-de-php/">aprendiendo PHP,</a> de manera que puedas ir más allá de lo que allí se explica. Por cierto, se incluye un pequeño ZIP con los archivos ya creados como complemento.</p>
<p>Tutorial: <a href="http://css-tricks.com/php-for-beginners-building-your-first-simple-cms/">PHP for beginners: building your first simple CMS</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/php/aprende-como-funciona-un-cms-creando-uno-muy-simple/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Librosweb, más libros de derarrollo web y versiones pdf</title>
		<link>http://blogandweb.com/css/librosweb-mas-libros-de-derarrollo-web-y-versiones-pdf/</link>
		<comments>http://blogandweb.com/css/librosweb-mas-libros-de-derarrollo-web-y-versiones-pdf/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 06:27:51 +0000</pubDate>
		<dc:creator>Francisco</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Diseño]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Servicios web]]></category>

		<guid isPermaLink="false">http://blogandweb.com/2007/08/05/librosweb-mas-libros-de-derarrollo-web-y-versiones-pdf/</guid>
		<description><![CDATA[Hace un tiempo hablamos sobre librosweb un interesante proyecto para traducir libros de desarrollo web y ofrecerlos de forma gratuita. Y ahora nos traen dos libros nuevos que son: Introducción a AJAX Introducción a JavaScript Y versiones más amigables para imprimir y leer, revisadas y terminadas de los 3 libros que ya disponían: Symfony, la [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo hablamos sobre <a href="http://blogandweb.com/2007/05/23/libros-de-desarrollo-web-gratis/" title="Libros de desarrollo web gratis">librosweb</a> un interesante proyecto para traducir libros de desarrollo web y ofrecerlos de forma gratuita. Y ahora nos traen dos libros nuevos que son:</p>
<ul>
<li><a href="http://www.librosweb.es/ajax/index.html" title="Libro: Introducción a AJAX">Introducción a AJAX</a></li>
<li><a href="http://www.librosweb.es/javascript/index.html" title="Libro: Introducción a JavaScript">Introducción a JavaScript</a></li>
</ul>
<p>Y versiones más amigables para imprimir y leer, revisadas y terminadas de los 3 libros que ya disponían:</p>
<ul>
<li>Symfony, la guía definitiva &#8211; <a href="http://www.librosweb.es/symfony/pdf/symfony_guia_definitiva.pdf" title="PDF: Symfony, la guía definitiva">Descargar versión pdf (4 MB)</a>.</li>
<li>Introducción a CSS &#8211; <a href="http://www.librosweb.es/css/pdf/introduccion_css.pdf" title="PDF: Introducción a CSS">Descargar versión pdf (4 MB)</a>.</li>
<li>Introducción a XHTML &#8211; <a href="http://www.librosweb.es/xhtml/pdf/introduccion_xhtml.pdf" title="PDF: Introducción a XHTML">Descargar versión pdf (2 MB)</a>.</li>
</ul>
<p>Este tipo de proyectos son bastante enriquecedores para la web de habla hispana y habrá que estar atento a nuevo material en este sitio. Cada vez tenemos menos pretextos para aprender a programar y diseñar páginas web.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogandweb.com/css/librosweb-mas-libros-de-derarrollo-web-y-versiones-pdf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 2/45 queries in 0.039 seconds using disk: basic
Object Caching 627/729 objects using disk: basic
Content Delivery Network via bw.imagenes.info

Served from: blogandweb.com @ 2012-02-09 11:44:31 -->
