<?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>Petra Link Factory &#187; php</title>
	<atom:link href="http://www.petralinkfactory.com/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.petralinkfactory.com</link>
	<description>Programar no es un hobby es una pasión</description>
	<lastBuildDate>Sun, 15 Jan 2012 09:14:58 +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>Herramientas de soporte on-line</title>
		<link>http://www.petralinkfactory.com/2009/11/15/herramientas-de-soporte-on-line/</link>
		<comments>http://www.petralinkfactory.com/2009/11/15/herramientas-de-soporte-on-line/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 16:29:36 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[soporte técnico]]></category>
		<category><![CDATA[eTicket]]></category>
		<category><![CDATA[Help Center Live]]></category>
		<category><![CDATA[osTicket]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/?p=114</guid>
		<description><![CDATA[En muchas ocasiones nos encontramos que tenemos que dar soporte técnico por los servicios que le prestamos a un determinado cliente, como la gestión del correo electrónico, el webmail, gestión de una web o una aplicación de escritorio que se &#8230; <a href="http://www.petralinkfactory.com/2009/11/15/herramientas-de-soporte-on-line/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En muchas ocasiones nos encontramos que tenemos que dar soporte técnico por los servicios que le prestamos a un determinado cliente, como la gestión del correo electrónico, el webmail, gestión de una web o una aplicación de escritorio que se haya desarrollado.</p>
<p>En este artículo vamos a ver 3 propuestas open source de software para dar soporte técnico, los anglosajones suelen llamar a estas herramientas ticket, se suport tickets.</p>
<h2>osTicket</h2>
<p>osTicket[1] tiene liciencia GNU, pero también podemos comprar soporte técnico especializado. Es muy fácil de instalar, mediante un aistente web. Si bien no soporta temas, se puede cambiar el aspecto de la aplicación mediante varios archivos CSS.</p>
<p>En cuanto a los tickets de soporte, el cliente no tiene por qué estar dato de alta en nuestra base de datos, muy útil cuando no sabemos la identidad de nuestros potenciales clientes, como una página web o un programa de libre distribución.</p>
<p>Si tu empresa es una pequeña pyme con varios programadores, se pueden asignar los tickets de soporte a uno u otro usuario de la aplicación.</p>
<p>Desde mi punto de vista, el único inconveniente que le veo que es que para traducirlo hay que retocar todo el contenido, aunque en los foros dicen en están trabajando para que en futuras versiones esto estará solucionado. En el propio foro he encontrado <a href="http://osticket.com/forums/archive/index.php/t-1822.html" target="_blank">traducciones que han hecho los usuarios al castellano</a> y uno que decía que lo tenía <a href="http://www.osticket.com/forums/showthread.php?t=2108" target="_blank">multidiomas</a>, pero no he probado ninguna de las dos opciones.</p>
<div id="attachment_115" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.petralinkfactory.com/wp-content/uploads/2009/11/osTicket.png"><img class="size-medium wp-image-115" title="osTicket" src="http://www.petralinkfactory.com/wp-content/uploads/2009/11/osTicket-300x224.png" alt="osTicket" width="300" height="224" /></a><p class="wp-caption-text">osTicket</p></div>
<h2>Help Center Live</h2>
<p>Help Center Live[2] es otro de éstos programas de gestion de incidencias. Desde mi punto de vista la interfaz no es muy bonita, y está basada en SMARTY, con lo que la modificación del tema ha de ser bastante compleja, en vez de ser XHTML y CSS. Es fácil de instalar, tiene un fichero de instalación que se encarga de crear todas las tablas en la base de datos.</p>
<p>Es un sistema multiidioma, un punto a su favoer, pero en español, los caracteres específicos en UTF8 no salen bien. Me imagino que será fácil arreglar este asunto, puesto que es muy probable que el problema sea por la codificación de los archivos que tengan los idiomas, pero no me he parado a revisar esto, puesto que la verdad es que no me ha gustado mucho este sistama ticker.</p>
<p>Otra cosa interesante que tiene este sistema es que nos permite hacer chat on-line con los clientes de manera sencilla, pero solo para usuarios registrados.</p>
<p>Permite realizar ticker de soporte para usuarios no registrados.</p>
<div id="attachment_116" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.petralinkfactory.com/wp-content/uploads/2009/11/hcl.png"><img class="size-medium wp-image-116" title="Help Center Live" src="http://www.petralinkfactory.com/wp-content/uploads/2009/11/hcl-300x224.png" alt="Help Center Live" width="300" height="224" /></a><p class="wp-caption-text">Help Center Live</p></div>
<h2>eTicket</h2>
<p>eTicket[3] está desarrollado bajo licencia GNU. En principio este está en inglés, pero gracias a que los mensajes están en un fichero de texto hay traducciones realizadas por los usuarios. En español la podemos encontrar en <a title="TraducciÃ³n al castella no de eTicket" href="http://blog.medialab.com.mx/2009/08/traduccion-eticket-support-1-7-3/" target="_blank">http://blog.medialab.com.mx/2009/08/traduccion-eticket-support-1-7-3/</a>. Hay que decir que no sé el por qué los correos que me envií al poner un ticket de soporte me llegaron en inglés, pero no sé si es que los textos están en la base de datos o en otro fichero que no es el de idiomas, con lo que esto habría que investigarlo un poco más.</p>
<p>La customización del sistio se hace mendiante temas CSS, pero por desgracia los creadores solo nos dan un tema de pruebas, con lo que no tenemos mucho donde poder inspirarnos.</p>
<p>No hace falta que los usuarios se den de alta para registrar tickets de soporte y los usuarios pueden adjuntar documentos al ticket, muy útil cuando le pides que te mande un pantallazo del error.</p>
<div id="attachment_117" class="wp-caption aligncenter" style="width: 301px"><a href="http://www.petralinkfactory.com/wp-content/uploads/2009/11/eticket.png"><img class="size-medium wp-image-117" title="eTicket en Castellano" src="http://www.petralinkfactory.com/wp-content/uploads/2009/11/eticket-291x300.png" alt="eTicket en Castellano" width="291" height="300" /></a><p class="wp-caption-text">eTicket en Castellano</p></div>
<p>El mayor inconveniente que tiene este sistema de Ticker es que llevan más de un año sin sacar otra versión, puesto que están inmersos en otros proyectos, me imagino que les habrá salido trabajo y hay que trabajar para vivir, y no les quedará mucho tiempo para terminarlo.</p>
<h3>Conclusión:</h3>
<p>Desde mi punto de vista, entre estos tres, tendría que ver las traducciones que hay del osTicket, puesto que es el que me da mejores sensaciones, sobre todo puesto que el equipo de trabajo sigue trabajando en él, que es el mayor problema del eTicket, que si bien es muy bueno y fácil de customizar tiene el problema que ya solo tiene el soporte de la comunidad del foro, ya que los desarrolladores están a otra cosa.</p>
<h3>Enlaces:</h3>
<p>[1] osTicket: <a title="ir al sitio web de osTicket" href="http://www.osticket.com/" target="_blank">http://www.osticket.com/</a></p>
<p>[2] Help Center Live: <a title="ir al sitio web de Help Center Live" href="http://www.helpcenterlive.com/" target="_blank">http://www.helpcenterlive.com<cite>/</cite></a></p>
<p>[3] eTicket: <a title="ir al sitio web de eTicket" href="http://www.eticketsupport.com/" target="_blank">http://www.eticketsupport.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2009/11/15/herramientas-de-soporte-on-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clientes Webmail en php</title>
		<link>http://www.petralinkfactory.com/2009/11/07/clientes-webmail-en-php/</link>
		<comments>http://www.petralinkfactory.com/2009/11/07/clientes-webmail-en-php/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 19:18:07 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[comparativa]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/?p=92</guid>
		<description><![CDATA[Cuando nos dedicamos a realizar webs para empresas, en muchas ocasiones, además llevamos la administración del dominio y esas cosas. Si por cuestiones económicas tenemos que alojar las webs de nuestros clientes en un mismo plan de hosting. En mucho &#8230; <a href="http://www.petralinkfactory.com/2009/11/07/clientes-webmail-en-php/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cuando nos dedicamos a realizar webs para empresas, en muchas ocasiones, además llevamos la administración del dominio y esas cosas. Si por cuestiones económicas tenemos que alojar las webs de nuestros clientes en un mismo plan de hosting. En mucho de estos planes de hosting que nos permiten multidominio. A esos clientes además les podemos dar servicio de correo electrónico, mediante IMAP o POP3.</p>
<p>El problema viene cuando uno de los clientes te pide que le des acceso al correo por webmail, en la mayoría de los casos le podemos decir que acceda por el acceso que nos suelen dar los proveedores del hosting, el problema es que queda poco profesional y además no es buena idea, el cliente se puede ir si le estas cobrando un precio mayor que el que pagues por tu hosting, que debe ser lo normal, ya que aprender a configurar y manejar las cosas hay que cobrarlas, pero la gente no entiende esto.</p>
<p>Bueno la solución es montar un cliente de Webmail para cada dominio que tengas alojado en tu cuenta.</p>
<p>En el mercado podemos encontrar varias opciones, yo voy a enseñaros 3, una totalmente gratuita y dos de pago, con versiones lite gratuitas.</p>
<h2>Rouncube</h2>
<p>Roundcube [1] es opensource. Escrito en php, necesita una conexión con una base de datos, nos permite conectarnos a MySQL, MS SQL-Server y SQLite. Yo lo he probado con MySQL, y va muy bien, es una buena opción si tienes un servidor web con pocas bases de datos y ya tienes muchas de ellas ocupadas.</p>
<p>La instalación es muy sencilla, solo hubo que configurar un fichero de configuración, donde se le indica la conexión con la base de datos y los datos del servidor de correo al que nos vamos a conectar.</p>
<p>Por último decir que el aspecto se puede modificar mediante CSS.</p>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 465px"><a href="http://www.petralinkfactory.com/wp-content/uploads/2009/11/roncecube.jpg"><img class="size-full wp-image-93 " title="roncecube" src="http://www.petralinkfactory.com/wp-content/uploads/2009/11/roncecube.jpg" alt="Rouncecube" width="455" height="326" /></a><p class="wp-caption-text">Rouncecube</p></div>
<h2>Afterlogic Webmail Lite</h2>
<p>Este cliente webmail es bantante sencillo de instalar, puesto que no hay que configurar ningún fichero, sino que tiene un asistente web bastante sencillo. Necesita MySQL o MS SQL Server, en la web también dice que funciona con Acces, pero me imagino que será para versión que hay en ASP.NET.</p>
<p>Tiene la posibilidad de temas, que el usuario puede cambiar, si desde el panel de administración principal lo habilitamos. Estos temas son fáciles de manipular y están en carpetas que nos permiten elimiar aquellos que no querramos que se muestren.</p>
<p>La versión de pago, nos permite utlizar un calendario, la posibilidad de utlizar varios dominios y versión para el móvil. Dicha versión cuesta 149$.</p>
<p style="text-align: left;">
<div id="attachment_94" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.petralinkfactory.com/wp-content/uploads/2009/11/afterlogic_webmail_lite.png"><img class="size-medium wp-image-94 " title="Afterlogic Webmail Lite" src="http://www.petralinkfactory.com/wp-content/uploads/2009/11/afterlogic_webmail_lite-300x225.png" alt="Afterlogic Webmail Lite" width="300" height="225" /></a><p class="wp-caption-text">Afterlogic Webmail Lite</p></div>
<p>Esta versión Lite funciona perfectamente en el navegador de los móviles con el Sistema Operativo Android.</p>
<p style="text-align: left;">
<h2>Atmail (@mail)</h2>
<p>Atmail[3] es uno de los correos que suelen utilizar los hosting para sus clientes, junto con Horde o con SqurryMail. Su interfaz es muy sencilla y fácil de manejar. La instalación es muy sencilla, mediante asistente web.</p>
<p>En mi servidor local tuve problemas para instalarlo, me daba errores de php, pero no me puse a investigar el por qué de los errores y cómo corregirlo, puesto que de las 3 opciones vistas en este post, este es el que menos me gusta.</p>
<p style="text-align: left;">
<div id="attachment_96" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.petralinkfactory.com/wp-content/uploads/2009/11/atmail.JPG"><img class="size-medium wp-image-96" title="@mail" src="http://www.petralinkfactory.com/wp-content/uploads/2009/11/atmail-300x175.jpg" alt="Pantalla del @mail" width="300" height="175" /></a><p class="wp-caption-text">Pantalla del @mail</p></div>
<p>Hay que decir que este gestor de correo funciona perfectamente con el navegador del Sistema Operativo Android. Y es uno de los que nos ofrece Powweb como gestión de correo Webmail, además de Horde[4] y de SquirrelMail<strong> </strong>[5], que de ellos no he hablado, pero es que no me gustan como gestores de correo.</p>
<h2>Conclusión</h2>
<p>Para mí el más fácil de manejar y de utilizar el es el Afterlogic Webmail Lite, cosa que ha hecho que se lo haya instalado ya a varios amigos, aunque el roundcube también es bastante bueno. El Atmail, como no lo he podido instalar, no puedo hablar de la instalación, pero como usuario de dicho webmail la verdad es que estoy contento. La verdad es que estos 3 gestores de webmail funcionan en mi navegador de Android (tengo el HTC Dream con Movistar), para mí no es muy importante que funcione con el móvil, ya que tengo el gestor de correo del propio sistema operativo, pero hay veces que vienen correos en codificaciones raras y necesito abrir el correo desde el webmail o desde el gestor de correo del ordenador, y ya me ha sacado mirar el correo desde el webmail de varios apuros.</p>
<p style="text-align: left;">
<h2>Enlaces</h2>
<p>[1] Roundcube: <a href="http://roundcube.net" target="_blank">http://roundcube.net</a></p>
<p>[2] Afterlogic Webmail Lite: <a href="http://www.afterlogic.com/products/webmail-lite" target="_blank">http://www.afterlogic.com/products/webmail-lite</a></p>
<p>[3] Atmail: <a href="http://atmail.org" target="_self">http://atmail.org</a></p>
<p>[4] Horde: <a href="http://www.horde.org/" target="_self">http://www.horde.org</a></p>
<p>[5] SquirrelMail: <a href="http://squirrelmail.org/" target="_blank">http://squirrelmail.org</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2009/11/07/clientes-webmail-en-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMS de tiendas on line</title>
		<link>http://www.petralinkfactory.com/2009/02/17/cms-de-tiendas-on-line/</link>
		<comments>http://www.petralinkfactory.com/2009/02/17/cms-de-tiendas-on-line/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 20:22:47 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[Comercio electrónico]]></category>
		<category><![CDATA[Sin categorí­a]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[comparativa]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/?p=69</guid>
		<description><![CDATA[En el mercado actual existen multitud de tiendas on-line para poder realizar venta on-line de nuestros productos. La mayoría están escritas en PHP y utilizan MySQL como motor de base de datos. En este artículo veremos una breve comparación de &#8230; <a href="http://www.petralinkfactory.com/2009/02/17/cms-de-tiendas-on-line/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En el mercado actual existen multitud de tiendas on-line para poder realizar venta on-line de nuestros productos.</p>
<p>La mayoría están escritas en PHP y utilizan MySQL como motor de base de datos. En este artículo veremos una breve comparación de las distintas que he visto.</p>
<h2>osCommerce</h2>
<p>La tienda on-line por excelencia, está disponible en casi toda la totalidad de los servidores compartidos para la autoinstalación, por su gran aceptación en el mercado de las tiendas on-line. Llevan varios años estancados en la versión 2.2, una pena, puesto que prometían que en la versión 3.0 iban a poner xhtml, temas y url amigables. Está un poco anticuada, pero la cantidad de plugins desarrollados nos permiten no saber programar y tener nuevas opcines, como pasarelas de pago de bancos, módulos para la gestión de la logística por compañías como UPS o FEDEC.</p>
<p>Personalmente a mi no me gusta mucho, he realizado ya varias tiendas on-line de forma privada y, por lo menos a mí, me parece muy complicado todo. Para tanta versatilidad como nos ofrece hay que dedicar mucho tiempo para insertar los productos de nuestra empresa. Programar sobre ella es muy tedioso, puesto que no hay chuletas, como las hay en otros CMS opensource, y hay que leer mucho código para hacer cualquier cosa.</p>
<h2>osCMax</h2>
<p>Esta en realialidad no es más que una extensión del osCommerce, de manera que nos permite hacer cosas que el osCommerce original no hace.</p>
<h2>ZenCart</h2>
<p>Bonita alternativa libre del osCommerce. Trae opciones que el osCommerce no posee, como temas montados sobre XHTML y url amigables (SEO URLs). Por lo que he leído es muy sencilla de montar. La lá¡stima es que no soporte plugins de terceros, o al menos como no la he trasteado bastante no los he encontrado.</p>
<h2>PrestaShop</h2>
<p>Esta nunca la había oído hasta que no me puse ha hacer este artículo, la verdad es que me ha sorprendido muchísimo. La demo se ve que es mucho más evolucionada que osCommerce, y que está muy trabajada en cuanto a usabilidad y diseño. Para aquellos que no sabéis programar es una gran opción, puesto que para que funcione vuestra tienda solo deberéis modificar un tema visual. Permite el uso de permalinks y urls amigables. Trae instalado un módulo para conectar directamente con google analitics, lo que nos permite tener un control de las búsquedas que se realizan sobre tu tienda y en qué lugar estás en dichas búsquedas, muy útil si quieres invertir en AdSense (se invierte en donde no estás arriba). La verdad es que si tengo tiempo hablaré en alguna otra ocasión de este CMS de venta on-line.</p>
<h2>Magneto</h2>
<p>Esta es una plataforma de venta on-line que nos permite poner varias tiendas en nuestro servidor. Por lo que he leí­do ha de estar instalada en un servidor dedicado, desconozco el por qué. Si entramos en la administración de la tienda de pruebas, podemos ver que además de tienda on-line trae su propio CMS que nos permite tener la web de nuestra empresa, sin tener que combinar productos como WordPress, Drupal o Joomla. Se ve muy usable, pero me hecha para atrás eso de que haya que instalarlo en un servidor dedicado y que no permita los plugins de terceros.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="403" valign="top"></td>
<td width="105" valign="top">osCommerce</td>
<td width="75" valign="top">osCMax</td>
<td width="72" valign="top">ZenCart</td>
<td width="86" valign="top">PrestaShop</td>
<td width="71" valign="top">Magneto</td>
</tr>
<tr>
<td width="403" valign="top">Multi-idiomas</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Multi-monedas</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Diseño de la tienda</td>
<td width="105" valign="top">Ficheros php</td>
<td width="75" valign="top">temas</td>
<td width="72" valign="top">temas</td>
<td width="86" valign="top">temas</td>
<td width="71" valign="top">temas</td>
</tr>
<tr>
<td width="403" valign="top">URLs amigables</td>
<td width="105" valign="top">No</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Control de Stock</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Envío de correos a los clientes</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Envíos masivos a los clientes para campañas de publicidad</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Personalización de productos</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Personalización de productos: Varias imágenes</td>
<td width="105" valign="top">No</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Personalización de productos: Inserción de Links</td>
<td width="105" valign="top">No</td>
<td width="75" valign="top">-</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">-</td>
</tr>
<tr>
<td width="403" valign="top">Poder instalar un certificado de Seguridad SSL</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">Sí</td>
</tr>
<tr>
<td width="403" valign="top">Soporte de Plugins de terceros</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">No</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">No</td>
</tr>
<tr>
<td width="403" valign="top">Instalación en servidor compartido</td>
<td width="105" valign="top">Sí</td>
<td width="75" valign="top">Sí</td>
<td width="72" valign="top">Sí</td>
<td width="86" valign="top">Sí</td>
<td width="71" valign="top">No</td>
</tr>
</tbody>
</table>
<h3>Enlaces:</h3>
<p>osCommerce: <a href="http://ww.oscommerce.com/">http://ww.oscommerce.com</a></p>
<p>ZenCart: <a href="http://www.zencart.com/">http://www.zencart.com</a></p>
<p>osCMax: <a href="http://www.oscdox.com/" target="_blank">http://www.oscdox.com</a></p>
<p>PrestaShop: <a href="http://www.prestashop.com/">http://www.prestashop.com</a></p>
<p>Magneto: <a href="http://www.magentocommerce.com/" target="_blank">http://www.magentocommerce.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2009/02/17/cms-de-tiendas-on-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear un tema para Moodle (I)</title>
		<link>http://www.petralinkfactory.com/2009/02/01/crear-un-tema-para-moodle-i/</link>
		<comments>http://www.petralinkfactory.com/2009/02/01/crear-un-tema-para-moodle-i/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 19:29:09 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[Diseño]]></category>
		<category><![CDATA[LCMS]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[Moodle]]></category>
		<category><![CDATA[Temas]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/?p=34</guid>
		<description><![CDATA[Una vez que ya se ha instalado el LCMS Moodle lo que debemos hacer es crear un tema para personalizar el Moodle a nuestro sitio web. Hay que decir que en la Web de Moodle hay un directorio con muchos &#8230; <a href="http://www.petralinkfactory.com/2009/02/01/crear-un-tema-para-moodle-i/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Una vez que ya se ha instalado el LCMS Moodle lo que debemos hacer es crear un tema para personalizar el Moodle a nuestro sitio web.</p>
<p>Hay que decir que en la Web de Moodle hay un directorio con muchos temas que pueden ser modificados libremente [1]. En esta serie de artí­culos vamos a ver como hacer un tema utilizando como base otro ya existente. Para ello lo que debemos hacer duplicar el tema `<strong>standard</strong>` y ponerle el nombre que deseemos, en mi caso será `<strong>plf</strong>`. Utilizamos el tema standard puesto que nos aseguraremos que va a funcionar correctamente, puesto que tendrá todos los ficheros necesarios del tema.</p>
<p>Dentro de la carpeta nos encontramos una serie de archivos:</p>
<ul>
<li><em>config.php</em>: Fichero de configuración del tema.</li>
<li><em>docstyles.php</em>: Fichero encargado de cargar los CSS, este fichero también puede contener sintaxis CSS.</li>
<li><em>favicon.ico</em>: Icono que queremos que se vea en nuestro navegador. El que viene por defecto es el logotipo de Moodle. Si quieres crear un favicon a partir de una imagen te recomiendo que lo hagas desde Dynamic Drive [2].</li>
<li><em>footer.html</em>: Fichero que contiene la platilla html del pie del sitio web.</li>
<li><em>gradient.jpg</em>: Este fichero contiene el degradado del tema standar. En mi caso no lo voy a utilizar y lo borraré.</li>
<li><em>header.html</em>: Fichero que contiene la plantilla html de la cabecera del sitio web.</li>
<li><em>meta.php</em>: Fichero en el que se pueden insertar tags metas para al cabecera.</li>
<li><em>README.html</em>: Fichero de información del tema.</li>
<li><em>rtl.css</em>: Fichero para estilo cuando la dirección del texto es de derecha a izquierda.</li>
<li><em>screenshot.jpg</em>: Fichero con un pantallazo del tema (Este fichero se cambiará al final de terminar el tema).</li>
<li><em>styles.php</em>: Fichero de configuración de los estilos.</li>
<li><em>styles_color.css</em>: Fichero para poner los colores de los estilos.</li>
<li><em>styles_fonts.css</em>: Ficheros para poner las fuentes de los estilos.</li>
<li><em>styles_ie6.css</em>: Ficheros para las cosas especí­ficas de Internet Explorer 6.0.</li>
<li><em>styles_ie7.css</em>: Ficheros para las cosas especí­ficas de Internet Explorer 7.0.</li>
<li><em>styles_layout.css</em>: Fichero de definición de los estilos.</li>
<li><em>styles_moz.css</em>: Fichero para las cosas especí­ficas de Mozilla Fire Fox.</li>
</ul>
<h3>Manos a la obra</h3>
<p>Lo perimero que tenemos que hacer es cambiar el fichero <strong>README.html</strong>, para poner el nombre de nuestro tema y la información que nos apetezca.</p>
<p>Lo segundo que haremos será modificar el favicon.ico (si es que querremos).</p>
<p>Bueno, ahora entramos en el Moodle y cambiamos el tema, para ello una vez que entramos como administrador de Moodle y nos dirigimos a <strong>Apariencia -&gt; Temas -&gt; Selector de Temas</strong> y seleccionamos nuestro tema. Como solo hemos cambiado el fichero README.html (para ver su contenido en el selector de temas podremos ver el enlace información) y favicon.ico, con lo que la apariencia será la misma que la del tema standard. Lo seleccionamos y empezaremos a cambiar las cosas.</p>
<p>En el siguiente artí­culo veremos cómo ir modificando los demás ficheros.</p>
<h3>Enlaces.</h3>
<p>[1] Temas de Moodle: http://moodle.org/mod/data/view.php?id=6552</p>
<p>[2] Dynamic Drive favicon generator: http://tools.dynamicdrive.com/favicon/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2009/02/01/crear-un-tema-para-moodle-i/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>html2pdf</title>
		<link>http://www.petralinkfactory.com/2008/09/28/html2pdf/</link>
		<comments>http://www.petralinkfactory.com/2008/09/28/html2pdf/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 19:14:42 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/blog/?p=19</guid>
		<description><![CDATA[De las librerÃ­as que se vieron en el anterior post, esta librerÃ­a es la que me parece mÃ¡s fÃ¡cil de utilizar. Lo primero que tenmos que hacer es descargarnos el fichero dese la web de la librerÃ­a [1]. El sitio &#8230; <a href="http://www.petralinkfactory.com/2008/09/28/html2pdf/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>De las librerÃ­as que se vieron en el anterior <a title="PDF en php" href="http://www.petralinkfactory.com/2008/09/08/pdf-en-php/" target="_blank">post</a>, esta librerÃ­a es la que me parece mÃ¡s fÃ¡cil de utilizar.</p>
<p>Lo primero que tenmos que hacer es descargarnos el fichero dese la web de la librerÃ­a [1]. El sitio estÃ¡ en FrancÃ©s, por lo que voy a poner el enlace directo de la descarga de la versiÃ³n actual a dÃ­a de hoy es la 3.13 [2].</p>
<p>Una vez que ya estÃ¡ descargado descomprimimos el contenido en un directorio.<a href="http://www.petralinkfactory.com/wp-content/uploads/2009/01/carpetas.jpg"><img class="aligncenter size-medium wp-image-26" title="Contenido de Zip" src="http://www.petralinkfactory.com/wp-content/uploads/2009/01/carpetas-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p style="text-align: center;">
<p style="text-align: left;">Nos encontramos con 4 directorios y 6 archivos, de aquÃ­ solo nos quedaremos con 3 directorios (<strong>_fpdf</strong>, <strong>_mypdf </strong>y <strong>languages</strong>) y con 3 ficheros (<strong>html2pdf.class.php</strong>, <strong>parsingHTML.class.php</strong> y <strong>styleHTML.class.php</strong>). Yo te recomiendo que guardes todo esto en un directorio dentro del directorio donde guardes los includes en tus proyectos, en mi caso es <strong>includes</strong>.</p>
<p style="text-align: left;">En este artÃ­culo voy a enseÃ±ar 3 ejemplos que son bastante censillos.</p>
<h3 style="text-align: left;">Ejemplo 1:</h3>
<p>Este ejemplo es muy sencillo, no es mÃ¡s que poner un texto y generar un PDF con dicho texto.</p>
<p>Lo primero que vamos a ver en este ejemplo son los tags especiales. Hay 3:</p>
<ul>
<li>page: con este tag delimitamos el contenido de una pÃ¡gina. En este indicamos el tipo de documento y los margenes left y top, el bottom y right no se pueden poner.
<pre>&lt;page backtop="10mm" backbottom="10mm" backleft="10mm"&gt; ... &lt;/page&gt;</pre>
<p>El contenido que hay dentro de este tag es lo que se muestra en la pÃ¡gina del PDF.<br />
Cuando insertes el cÃ³digo HTML recuerda que las propiedades las debes poner en el parametro style, como por ejemplo en una tabla, deberÃ­as poner &lt;table style=&#8221;width: 100%px; color: black;&#8221;&gt;</li>
<li>page_footer: Pie de pÃ¡gina. Esta etiquieta debe estar dentro de la etiqueta page y su contenido puede ser un html.</li>
<li>page_header: cabecera. Esta etiquieta debe estar dentro de la etiqueta page y su contenido puede ser un html.</li>
</ul>
<p><a href="http://www.petralinkfactory.com/ejemplos_html2pdf/ejemplo1.php" target="_blank">AquÃ­</a> puedes ver el fichero pdf generado en este primer ejemplo.</p>
<h3 style="text-align: left;">Ejemplo 2:</h3>
<p>En este caso el contenido de lo que vamos a mostrar lo vamos a recoger de una plantilla y sustituimos datos de dicha plantilla desde el cÃ³digo.</p>
<p><a href="http://www.petralinkfactory.com/ejemplos_html2pdf/ejemplo2.php" target="_blank">AquÃ­</a> puedes ver el fichero pdf generado en este primer ejemplo.</p>
<h3 style="text-align: left;">Ejemplo 3:</h3>
<p>En este Ãºltimo ejemplo lo que vamos a ver los distintos cÃ³digos de barras que puede sacar la librerÃ­a html2pdf.</p>
<p><a href="http://www.petralinkfactory.com/ejemplos_html2pdf/ejemplo3.php" target="_blank">AquÃ­</a> puedes ver el fichero pdf generado en este primer ejemplo.</p>
<h3>Documentos del artÃ­culo.</h3>
<p>Desde <a title="Descarga los ficheros" href="http://www.petralinkfactory.com/ejemplos_html2pdf.rar">aquÃ­</a> te puedes descargar todos los ficheros del artÃ­culo.</p>
<h3>Enlaces:</h3>
<p>[1] <a href="http://html2pdf.spipu.net/">http://html2pdf.spipu.net/</a></p>
<p>[2] http://prgm.spipu.net/?id=29&amp;download</p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2008/09/28/html2pdf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PDF en PHP</title>
		<link>http://www.petralinkfactory.com/2008/09/08/pdf-en-php/</link>
		<comments>http://www.petralinkfactory.com/2008/09/08/pdf-en-php/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 09:49:26 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[Sin categorí­a]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programación]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/blog/?p=10</guid>
		<description><![CDATA[En la actualidad me encuentro realizando una aplicaciÃ³n en PHP donde necesitamos sacar unos ficheros en php. En principio hay que decir que hay muchos componentes y librerÃ­as para hacer los PDFs en PHP, pero aquÃ­ solo me voy a &#8230; <a href="http://www.petralinkfactory.com/2008/09/08/pdf-en-php/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En la actualidad me encuentro realizando una aplicaciÃ³n en PHP donde necesitamos sacar unos ficheros en php.</p>
<p>En principio hay que decir que hay muchos componentes y librerÃ­as para hacer los PDFs en PHP, pero aquÃ­ solo me voy a centrar en hablar de las soluciones que he encontrado libres y darÃ© <em>mi opiniÃ³n</em> sobre el tema.</p>
<p>Antes de nada piensa quÃ© es lo que tienes que sacar en PDF, puesto que dependiendo de la forma que generas el PDF serÃ¡ mÃ¡s sencillo o mÃ¡s difÃ­cil de mantener la aplicaciÃ³n.</p>
<h3>RTF (Ritch Text Format)</h3>
<p>Lo ideal es utilizar ficheros RTF como plantilla, se pueden hacer desde un fichero de Microsoft Word o desde el Writer del OpenOffice.</p>
<p>La ventaja de esta tÃ©cnica de generar PDFs es que las plantillas RTFs son muy fÃ¡ciles de mantener, sÃ³lo hay que poner unos tags dentro del fichero, y como los RTFs son ficheros de texto, se pueden abrir desde PHP, guardarlos en una variable y cambiar lo que se quiera, para luego guardarlo en otro fichero RTF.</p>
<p>El problema de esta tÃ©cnica es que en PHP no hay componentes o clases que te permitan hacerlo desde el Apache, sin instalar software adicional, con lo que en los hosting compartidos esta opciÃ³n es inviable, o al menos yo no lo he encontrado (he buscado componentes de pago, pero los que encontrÃ© eran realmente caros y ya no me compensaban). La opciÃ³n econÃ³mica para hacer este caso es tener un hosting privado e instalar la OpenOffice y creo que unos paquetes especiales de la OpenOffice, para asÃ­ poder utilizar el Writer en modo consola y transformar el fichero RTF a PDF.</p>
<h3>FPDF [1]</h3>
<p>La FPDF (FreePDF) es una implementaciÃ³n gratuita de la PDFLib (que es de pago), aunque la PDFLib hoy en dÃ­a trae aÃ±adidos de seguridad del fichero PDF generado, como imposibilidad de copiar, de imprimir, cifrado, &#8230;</p>
<p>Esta es la librerÃ­a PHP principal que vamos a ver, puesto que las demÃ¡s que vamos a ver son librerÃ­as que heredan de ella, en algunos casos modifican un poco el cÃ³digo para optimizar o facilitar el uso de la extensiÃ³n de la librerÃ­a.</p>
<p>De todas las que he encontrado es la que mejor estÃ¡ documentada, aunque en todas las librerÃ­as se pueden encontrar un directorio con ejemplos.</p>
<p>En esta librerÃ­a para generar un PDF tenemos que programar el contenido del PDF.</p>
<p>Una de las ventajas de esta librerÃ­a es que como es de las mÃ¡s usadas, tiene una pagÃ­na donde podemos ver ejemplos de scripts para hacer funcionalidades que no estÃ¡n dentro de la librerÃ­a, la secciÃ³n Scripts de la web [2].</p>
<p>Por Ãºltimo, decir que aquellos que seais unos multiprogramadores como yo, hay una implementaciÃ³n de la libreria para ASP 3.0 [3]. Yo no la he probado, si alguien lo prueba por favor que me comente algo.</p>
<h3>HTML2PDF [4]</h3>
<p>Esta librerÃ­a es una extensiÃ³n de la FPDF, que nos permite poner como contenido del PDF un documento XHTML. Por desgracia la poca documentaciÃ³n que hay estÃ¡ en un foro en FrancÃ©s y todavÃ­a esta en desarrollo, puesto que hay muchos estilos de CSS que no los reconoce.</p>
<p>Es una buena alternativa a los RTFs cuando se quiere hacer una plantilla que va a ser modificada cada cierto tiempo, puesto que modificar un XHTML es muy sencillos con programas como el Adobe DreamWeaver o Microsoft Expresions, o incluso la Microsoft Office o la OpenOffice, aunque para estas dos Ãºltimas opciones necesitaremos retocar el cÃ³digo para adaptarlo al cÃ³digo que interpreta la clase.</p>
<p>Tiene pocos ejemplos, pero la verdad es que son suficientes para enseÃ±ar las cosas que hace esta librerÃ­a PHP.</p>
<h3>TCPDF [5]</h3>
<p>Sin dudas una de las mejores extensiones a la librerÃ­a FPDF. En su web encontramos una amplia documentaciÃ³n, ademÃ¡s es la librerÃ­a que tiene mÃ¡s ejemplos, un total de 36 ejemplos en el ZIP que nos descargamos desde la web. AdemÃ¡s de las cosas tÃ­picas que nos permiten todas las librerÃ­a que he encontrado (insertar cÃ³digo html, cabeceras, pies, &#8230;) nos permite crear CÃ³digos de barras para insertarlos en los documentos PDFs que vamos a mostrar. En algunas ocaciones esto es muy Ãºtil.</p>
<p>Una cosa que he visto que no he encontrado en otras librerÃ­as de PHP es que tiene soporte para incrustar JavaScript para la comprobaciÃ³n de datos de los formularios para los PDFs generados.</p>
<p>Por Ãºltimo decir que esta librerÃ­a soporta texto Unicode UTF8, con lo que nos permite realizar documentos PDFs en caracteres no indoeuropeos, como el Ã¡rabe, ruso o chino.</p>
<h3>mPDF [6]</h3>
<p>Esta librerÃ­a al igual que la anterior tambiÃ©n estÃ¡ muyÂ  bien documentada y en inglÃ©s. Esta librerÃ­a es una extensiÃ³n de la FPDF que soporta texto Unicode UFT-8, y estÃ¡ especializada en este aspecto. A primera vista, no la he probado todavÃ­a, es muy similar a la librerÃ­a anterior (TCPDF). Una de las cosas que mÃ¡s me han sorprendido es que esta librerÃ­a es la que mÃ¡s fuentes trae por defecto, de echo el fichero zip de todas las demÃ¡s librerÃ­as apenas llega a los 1Mb, esta librerÃ­a tienen un zip de 11Mb. Esta cantidad de Mb se deben a las fuentes y a los ejemplos, queÂ  tambiÃ©n tiene un motÃ³n de ejemplos.</p>
<h3>ConclusiÃ³n</h3>
<p>Hemos visto en este artÃ­culo una librerÃ­a y cuatro extensiones de Ã©sta. Cada una tiene sus ventajas y sus inconvenientes. En la medida de lo posible voy a intentar investigar un poco mÃ¡s de cada librerÃ­a e intentarÃ© hacer un artÃ­culo mÃ¡s en profundidad y cÃ³digo de las distintas librerias que hemos visto anteriormente. En la actualidad yo he utilizado la HTML2PDF, puesto que es la mÃ¡s sencilla desde mi punto de vista para trabajar con HTML, para el poco tiempo que he tenido para estudiar el funcionamiento de las librerÃ­as, si en vez de 2 dÃ­as hubiese tienido 2 Ã³ 3 semanas hubiera podido ver todas las posibilidades con mÃ¡s detenimiento, y a lo mejor hubirera podido seleccionar otra librerÃ­a, pero nunca se sabe, la verdad es que lo fÃ¡cil que es trabajar con la HTML2PDF es asombroso, pero tiene muy pocas fuentes de texto, o al menos las que vienen por defecto, repito que he tenido muy poco tiempo para investigar mÃ¡s.</p>
<h4>Enlaces:</h4>
<p>[1] FPDF: <a title="FPDF" href="http://www.fpdf.org" target="_blank">http://www.fpdf.org</a></p>
<p>[2] PÃ¡gina de Scripts de FPDF: <a title="SecciÃ³n de Scripts de FPDF" href="http://www.fpdf.org/es/script/index.php" target="_blank">http://www.fpdf.org/es/script/index.php</a></p>
<p>[3] ASP FPDF: <a title="ASP FPDF" href="http://www.aspxnet.it/public/default.asp" target="_blank">http://www.aspxnet.it/public/default.asp</a></p>
<p>[4] HTML2PDF: <a title="HTML2PDF" href="http://html2pdf.spipu.net/" target="_blank">http://html2pdf.spipu.net/</a></p>
<p>[5] TCPDF: <a title="TCPDF" href="http://www.tcpdf.org/" target="_blank">http://www.tcpdf.org/</a></p>
<p>[6] mPDF: <a title="mPDF" href="http://mpdf.bpm1.com/" target="_blank">http://mpdf.bpm1.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2008/09/08/pdf-en-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>URL Amigables (II)(php)</title>
		<link>http://www.petralinkfactory.com/2008/07/15/url-amigables-iiphp/</link>
		<comments>http://www.petralinkfactory.com/2008/07/15/url-amigables-iiphp/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 10:46:10 +0000</pubDate>
		<dc:creator>Valde</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[seo url]]></category>
		<category><![CDATA[url amigables]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.petralinkfactory.com/?p=7</guid>
		<description><![CDATA[Bueno con mÃ¡s de dos meses de retardo, voy a seguir con esta serie de artÃ­culos que tienen que ver con las URLs Amigables (en inglÃ©s SEO URLs). La razÃ³n ha sido que he estado trabajando a destajo para un &#8230; <a href="http://www.petralinkfactory.com/2008/07/15/url-amigables-iiphp/">Sigue leyendo <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bueno con mÃ¡s de dos meses de retardo, voy a seguir con esta serie de artÃ­culos que tienen que ver con las URLs Amigables (en inglÃ©s SEO URLs). La razÃ³n ha sido que he estado trabajando a destajo para un proyecto en el que estoy trabajando, en el que estoy aprendiendo mucho y ya irÃ© publicando las cosas que he ido aprendiendo.</p>
<p>Bueno vamos a lio con las URL Amigables.</p>
<p>Lo primero he de decir que dependiendo de si trabajamos en IIS o en Apache, en los ejemplos irÃ© mostrandolo.</p>
<p>En primer lugar decir que las pruebas las he desarrollado sobre Windows Vista Home Premium con el Servidor Web WampServer 2.0, aunque luego lo he probado en un Windows 2003 Server con IIS 6 y en Debian Linux con Apache 2.0 (en mi hosting de Powweb).</p>
<p>Si estamos en Apache lo primero que tenemos que hacer es crear un fichero <em><strong>.htaccess</strong></em> para poder redirigir las urls amigables a las pÃ¡ginas que corresponden, para ello recordamos que el artÃ­culo I se dice que vamos a utilizar esta pequeÃ±a chapuza.</p>
<p>En el fichero .htaccess escribiremos el siguiente texto.</p>
<pre><span style="color: #333333;">ErrorDocument 404 /urlAmigables/controllers/controller.php
</span></pre>
<p><span style="color: #000000;">Esta lÃ­nea que se introduce en el .htaccess significa que si genera el error 404 en el servidor (PÃ¡gina no encontrada) que se vaya a la url /urlAmigables/controllers/controller.php, Es en este fichero donde se va a hacer el procesado de la URL para luego ejecutar dentro las acciones pertinentes.</span></p>
<p>El llamar a esta pÃ¡gina controller.php tiene que ver puesto que esta idea se me ocurriÃ³ aprendiendo a utilizar las Frameworks de PHP, que para mi gusto estÃ¡n bien para hacer desarrollos pequeÃ±os, en desarrollos mÃ¡s grandes es mejor utilizar, desde mi punto de vista, herramientas propias.</p>
<p>En el fichero controller.php debemos introducir:</p>
<div class="igBar"><span id="lphp-2"><a href="#" onclick="javascript:showPlainTxt('php-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-2">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">&lt;?php</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$URLAmigable</span> = <a href="http://www.php.net/urldecode"><span style="color:#000066;">urldecode</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$_SERVER</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#FF0000;">'REQUEST_URI'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">//&nbsp; Como en el apache tengo varios sitios en el sito web localhost, tengo que quitar de la url</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// el sitio web sobre el que estoy trabajando.</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">//$URLAmigable = str_replace('/urlAmigables/', '', $URLAmigable);</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$URLAmigable</span> = <a href="http://www.php.net/substr"><span style="color:#000066;">substr</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$URLAmigable</span>, <span style="color:#CC66CC;color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">//&nbsp; Procesamos la URL Amigable para poder procesar el fichero.</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$Params</span> = <a href="http://www.php.net/split"><span style="color:#000066;">split</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'/'</span>, <span style="color:#0000FF;">$URLAmigable</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$controller</span> = <span style="color:#FF0000;">''</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/count"><span style="color:#000066;">Count</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$Params</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt; <span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$controller</span> = <span style="color:#0000FF;">$Params</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC66CC;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#93;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">else</span> <span style="color:#616100;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$URLAmigable</span> != <span style="color:#FF0000;">''</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#0000FF;">$controller</span> = <span style="color:#0000FF;">$URLAmigable</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#0000FF;">$strParams</span> = <a href="http://www.php.net/str_replace"><span style="color:#000066;">str_replace</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$controller</span> . <span style="color:#FF0000;">'/'</span>, <span style="color:#FF0000;">''</span>, <span style="color:#0000FF;">$URLAmigable</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#616100;">switch</span><span style="color:#006600; font-weight:bold;">&#40;</span><a href="http://www.php.net/strtolower"><span style="color:#000066;">strtolower</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$controller</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">case</span> <span style="color:#FF0000;">"modulo"</span> :</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">case</span> <span style="color:#FF0000;">"mÃ³dulo"</span> :</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">include</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'modulo.php'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#000000; font-weight:bold;">default</span>:</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/header"><span style="color:#000066;">header</span></a><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">''</span>, <span style="color:#000000; font-weight:bold;">true</span>, <span style="color:#CC66CC;color:#800000;">404</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">include</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'error404.php'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#616100;">break</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#000000; font-weight:bold;">?&gt;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>En el IIS en vez de poner el fichero .htaccess, hay que cambiar la url del error 404, si tienes acceso al IIS de tu servidor, deberÃ¡s acceder a Ã©l y luego en el sitio web cambiar las direcciones de error del 404 (por defecto vienen 3) y ponerlas a este fichero. Sino tienes acceso al IIS, seguro que tu servicio de hosting tiene en algÃºn lugar algÃºn sitio donde poder cambiar dicho fichero.</p>
<p>Pues ya estÃ¡ solo hace falta hacer el fichero de error para cuando se introducen direcciones que no son vÃ¡lidas (error404.php) y los ficheros de nuestras herramientas, en el ejemplo es modulo.php, que responde a las url amigables modulo1 y modulo2.</p>
<p>Puedes ver un ejemplo de esta forma de trabajar en <a href="http://urlamigables.petralinkfactory.com">http://urlamigables.petralinkfactory.com</a></p>
<p>Y te puedes descargar el ejemplo desde: <a href="http://urlamigables.petralinkfactory.com/urlamigables.zip">http://urlamigables.petralinkfactory.com/urlamigables.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.petralinkfactory.com/2008/07/15/url-amigables-iiphp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

