<?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 Profesional de Javier Seixas</title>
	<atom:link href="http://blogpro.javierseixas.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogpro.javierseixas.com</link>
	<description>Just another Javier Seixas&#039; Blogs site</description>
	<lastBuildDate>Thu, 20 Oct 2011 15:04:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Incluir tiempo estimado e imputado en las líneas de tareas en Feng Office</title>
		<link>http://blogpro.javierseixas.com/desarrollo-web/incluir-tiempo-estimado-e-imputado-en-lineas-de-tareas-en-feng-office/</link>
		<comments>http://blogpro.javierseixas.com/desarrollo-web/incluir-tiempo-estimado-e-imputado-en-lineas-de-tareas-en-feng-office/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 23:35:04 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Programas]]></category>
		<category><![CDATA[fengoffice]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/?p=183</guid>
		<description><![CDATA[Feng Office és una buena herramienta de gestión de proyects, open source y gratuita. Las herramientas gestoras de proyectos siempre tienen el inconveniente que no todas las funcionalidades se adaptan a la manera de trabajar de uno, sin embargo, gracias &#8230; <a href="http://blogpro.javierseixas.com/desarrollo-web/incluir-tiempo-estimado-e-imputado-en-lineas-de-tareas-en-feng-office/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a title="Feng Office Gestión de Projectos Open Source" href="http://http://www.fengoffice.com" target="_blank">Feng Office</a> és una buena herramienta de gestión de proyects, open source y gratuita. Las herramientas gestoras de proyectos siempre tienen el inconveniente que no todas las funcionalidades se adaptan a la manera de trabajar de uno, sin embargo, gracias a ser open source, se puede modificar para conseguirlo.</p>
<p>Una de las necesidades que tenía, era la de visualizar rápidamente y en cada tarea el tiempo estimado en esa tarea y el tiempo acumulado en el desarrollo de la misma, para poder valorar en mientras trabajo si estoy cumpliendo los plazos.</p>
<p><a href="http://blogpro.javierseixas.com/desarrollo-web/incluir-tiempo-estimado-e-imputado-en-lineas-de-tareas-en-feng-office/attachment/captura-3/" rel="attachment wp-att-184"><img class="aligncenter size-medium wp-image-184" title="Línea de tarea en Feng Office" src="http://blogpro.javierseixas.com/files/Captura-3-648x23.png" alt="Línea de tarea en Feng Office" width="648" height="23" /></a></p>
<p>A continuación voy a detallar los cambios que he realizado para visualizarlo. He trabajado sobre la versión de Feng Office 1.7.5.</p>
<p><span id="more-183"></span></p>
<h3>/application/models/projects_tasks/Project.Task.class.php</h3>
<p>Este archivo es el que se encarga de devolver los datos que posteriormente se cargan en cada línea de tarea. Tenemos que incluir los datos que nos interesa recuperar: el tiempo estimado y el tiempo imputado en las tareas.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li><span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span></li><li> <span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'t'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTitle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'wsid'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getWorkspacesIdsCSV</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'c'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCreatedOn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> instanceof DateTimeValue ? <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCreatedOn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTimestamp</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'cid'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCreatedById</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'isread'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getIsRead</span><span style="color: #009900;">&#40;</span>logged_user<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'otype'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getObjectSubtype</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span></li><li> <span style="color: #0000ff;">'est'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getTimeEstimate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// AÑADIDO</span></li><li> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<p>A continuación cargamos el tiempo imputado en las tareas, que se almacena en diferentes registros Timeslot. Recuperamos el tiempo en segundos.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li> <span style="color: #000088;">$ot</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getOpenTimeslots</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li> <span style="color: #666666; font-style: italic;">// AÑADIDO boc </span></li><li> <span style="color: #000088;">$timeslotsArray</span> <span style="color: #339933;">=</span> Timeslots<span style="color: #339933;">::</span><span style="color: #004000;">getTaskTimeslots</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> <span style="color: #000088;">$seconds</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span></li><li> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$timeslotsArray</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$timeslotsArray</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$ts</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000088;">$seconds</span> <span style="color: #339933;">+=</span> <span style="color: #000088;">$ts</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'ts'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getSeconds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;">&#125;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$seconds</span> <span style="color: #339933;">=</span> <span style="color: #990000;">round</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$seconds</span> <span style="color: #339933;">/</span> <span style="color: #cc66cc;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'acu'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$seconds</span><span style="color: #339933;">;</span> </li><li> <span style="color: #009900;">&#125;</span></li><li> <span style="color: #666666; font-style: italic;">// AÑADIDO eoc</span></li><li>&nbsp;</li><li> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$ot</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>/public/assets/javascript/og/tasks/main.js</h3>
<p>Este archivo se modifica para cargar en el objeto de javascript los datos obtenidos de la respuesta JSON. Modificamos la función ogTasksTask.prototype.setFromTdata.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>tdata<span style="color: #339933;">.</span>otype<span style="color: #009900;">&#41;</span> this<span style="color: #339933;">.</span>otype <span style="color: #339933;">=</span> tdata<span style="color: #339933;">.</span>otype<span style="color: #339933;">;</span> <span style="color: #b1b100;">else</span> this<span style="color: #339933;">.</span>otype <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li> <span style="color: #666666; font-style: italic;">// AÑADIDO boc</span></li><li> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>tdata<span style="color: #339933;">.</span>est<span style="color: #009900;">&#41;</span> this<span style="color: #339933;">.</span>est <span style="color: #339933;">=</span> tdata<span style="color: #339933;">.</span>est<span style="color: #339933;">;</span> <span style="color: #b1b100;">else</span> this<span style="color: #339933;">.</span>est <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span></li><li> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>tdata<span style="color: #339933;">.</span>acu<span style="color: #009900;">&#41;</span> this<span style="color: #339933;">.</span>acu <span style="color: #339933;">=</span> tdata<span style="color: #339933;">.</span>acu<span style="color: #339933;">;</span> <span style="color: #b1b100;">else</span> this<span style="color: #339933;">.</span>acu <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span></li><li> <span style="color: #666666; font-style: italic;">// AÑADIDO eoc</span></li><li><span style="color: #009900;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>/public/assets/javascript/og/tasks/drawing.js</h3>
<p>Este archivo se encarga de imprimir todo el código html.</p>
<p><!--DEVFMTCODE--><pre class="devcodeblock" title="PHP"><div class="devcodeoverflow"><ol><li>&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #339933;">.</span>append<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;/span&gt;&lt;/td&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> <span style="color: #009900;">&#125;</span></li><li>&nbsp;</li><li> <span style="color: #666666; font-style: italic;">// AÑADIDO boc</span></li><li> sb<span style="color: #339933;">.</span>append<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;td style=&quot;font-size:10px;padding-left:6px;padding-right:3px&quot;&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> <span style="color: #000000; font-weight: bold;">var</span> estimateTimeString <span style="color: #339933;">=</span> <span style="color: #0000ff;">'estimate'</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">':&amp;nbsp;'</span> <span style="color: #339933;">+</span> task<span style="color: #339933;">.</span>est<span style="color: #339933;">;</span></li><li> sb<span style="color: #339933;">.</span>append<span style="color: #009900;">&#40;</span>estimateTimeString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> sb<span style="color: #339933;">.</span>append<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&amp;nbsp;-&amp;nbsp;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> <span style="color: #000000; font-weight: bold;">var</span> reportedTimeString <span style="color: #339933;">=</span> <span style="color: #0000ff;">'accumulated'</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">':&amp;nbsp;'</span> <span style="color: #339933;">+</span> task<span style="color: #339933;">.</span>acu<span style="color: #339933;">;</span></li><li> sb<span style="color: #339933;">.</span>append<span style="color: #009900;">&#40;</span>reportedTimeString<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> sb<span style="color: #339933;">.</span>append<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;/td&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li> <span style="color: #666666; font-style: italic;">// AÑADIDO eoc</span></li><li>&nbsp;</li><li> <span style="color: #666666; font-style: italic;">//Draw time tracking</span></li><li> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>drawOptions<span style="color: #339933;">.</span>show_time<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p>
<h3>Conclusiones</h3>
<p>Una vez visto es relativamente sencillo conseguir la información. Para ir un poco más allá y mejorar la nueva funcionalidad, se podría hacer que el texto incluido &#8220;estimate&#8221; y &#8220;accumulated&#8221; fuese traducible a otros idiomas. También se podría pulir presentando el tiempo de manera más legible, como horas y minutos y no únicamente en minutos, o también que si el tiempo imputado supera el estimado que el texto salga en color rojo. Otra posibilidad sería incluir la opción para que el usuario decida si quiere mostrar esta información o no.</p>
<p>Por lo que sé ahora mismo, la única manera de incluir todo esto es tocando el core de la aplicación.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/desarrollo-web/incluir-tiempo-estimado-e-imputado-en-lineas-de-tareas-en-feng-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugins para escribir código en WordPress</title>
		<link>http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/</link>
		<comments>http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 11:56:40 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[Análisis]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[comparativa]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=46</guid>
		<description><![CDATA[Los que somos programadores y queremos compartir nuestros escritos con el resto de la comunidad, necesitamos un buen plugin para escribir el código en WordPress.&#160; Al final he encontrado dos que me han parecido bastante buenos, y que parecen funcionar &#8230; <a href="http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Los que somos programadores y queremos compartir nuestros escritos con el resto de la comunidad, necesitamos un buen plugin para escribir el código en WordPress.&nbsp; Al final he encontrado dos que me han parecido bastante buenos, y que parecen funcionar con la versión 3.2.1 de WordPress.</p>
<p><span id="more-46"></span></p>
<h2>Prettify GC Syntax Highlighter</h2>
<p>Un plugin bastante correcto y fácil de usar. Se pueden resaltar las líneas que deseemos, lo cual puede ser bastante práctico en ocasiones. El resultado en el post se presenta así:</p>
<p><a href="http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/attachment/sample_prettify-gc_coding/" rel="attachment wp-att-146"><img class="size-full wp-image-146 aligncenter" title="Ejemplo de código con Prettify GC" src="http://blogpro.javierseixas.com/files/sample_prettify-gc_coding.png" alt="Ejemplo de código con Prettify GC" width="648" height="217" /></a></p>
<p><strong>Cosas buenas:</strong></p>
<ul>
<li>Fácil de usar</li>
<li>Agradable en el post</li>
<li>Multitud de lenguajes</li>
<li>Numera las líneas</li>
<li>Permite cambiar el número inicial de la numeración de lineas, y destacar lineas concretas</li>
</ul>
<p><strong>Cosas malas:</strong></p>
<ul>
<li>Es necesario escribir el código desde el visor HTML del post</li>
<li>No permite tabular durante la escritura</li>
<li>No tiene coloreado específico para PHP</li>
<li>Da algunos problemas de codificación y no acaba de saber interpretar &#8220;&lt;&#8221; o=&#8221;" li=&#8221;"&gt; <!--"--></li>
</ul>
<p>Enlace a <a title="Prettify GC Syntax Highlighter: Plugin WordPress para edición de código" href="http://wordpress.org/extend/plugins/prettify-gc-syntax-highlighter/" target="_blank">Prettify GC Syntax Highlighter</a>.</p>
<h2>DevFormatter</h2>
<p>La principal ventaja respecto al anterior es que añade un icono en el FCKeditor que abre una ventana modal donde escribir el código.</p>
<p><a href="http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/attachment/screenshot-devformatter-edit-button/" rel="attachment wp-att-148"><img class="aligncenter size-full wp-image-148" title="Botón en FCKeditor de DevFormatter" src="http://blogpro.javierseixas.com/files/screenshot-devformatter-edit-button.png" alt="Botón en FCKeditor de DevFormatter" width="399" height="29" /></a></p>
<p><a href="http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/attachment/screenshop-devformatter-edit-panel/" rel="attachment wp-att-147"><img class="aligncenter size-full wp-image-147" title="Panel de edición de DevFormatter" src="http://blogpro.javierseixas.com/files/screenshop-devformatter-edit-panel.png" alt="Panel de edición de DevFormatter" width="500" height="552" /></a></p>
<p>Además, el modo de presentar el código también es agradable. Sin embargo, a mí personalmente no me gusta cómo maqueta el código en el post una vez publicado, ya que si eliges enumerar las líneas, si posteriormente quieres copiar el código manualmente (seleccionando el texto) también te selecciona los números de las líneas, con lo cual es un rollo cuando pegas lo copiado, ya que tienes que eliminar esas líneas. Aunque para intentar solventar este problema, tiene un botón para copiar todo el código en el portapapeles.</p>
<p><a href="http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/attachment/sample_devformatter_coding/" rel="attachment wp-att-145"><img class="size-full wp-image-145 aligncenter" title="Ejemplo de Código con DevFormatter" src="http://blogpro.javierseixas.com/files/sample_devformatter_coding.png" alt="Ejemplo de Código con DevFormatter" width="646" height="246" /></a></p>
<p><strong>Cosas buenas:</strong></p>
<ul>
<li>Icono en el FCKeditor para escribir el código</li>
<li>Multitud de lenguajes</li>
<li>Numera líneas</li>
<li>Tiene una opción para copiar el código publicado</li>
</ul>
<p><strong>Cosas malas:</strong></p>
<ul>
<li>No permite tabular el código. Es necesario usar espacios</li>
<li>Una vez escrito el código no se puede volver a abrir una ventana modal para editarlo. Hay que ir al visor HTML del FCKeditor</li>
<li>Si queremos copiar el código publicado en el post, seleccionando el texto, también coje las letras, con lo cual hace incómodo reutilizarlo.</li>
</ul>
<p>Enlace a <a title="DevFormatter: Plugin WordPress para edición de código" href="http://wordpress.org/extend/plugins/devformatter/" target="_blank">DevFormatter</a>.</p>
<h3>Conclusiones</h3>
<p>Estos son los dos plugins que yo he probado, principalmente porqué he visto que ambos están actualizados hasta la versión de WordPress 3.2.1. ¿Cuál elegir de los dos? Eso como todo depende de las manías de cada uno. Yo actualmente estoy utilizando DevFormatter, aunque me mata el tema de los números de las líneas, y hecho de menos poder resaltar algunas líneas como hace Prettify GC. Sin embargo, el primero me parece un plugin más pulido, ya que Prettify parece que da algunos problemas al escribir algunos símbolos.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/wordpress/wordpress-mu-wordpress-multiidioma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netvibes en modo reader</title>
		<link>http://blogpro.javierseixas.com/internet/netvibes-en-modo-reader/</link>
		<comments>http://blogpro.javierseixas.com/internet/netvibes-en-modo-reader/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 17:13:21 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[Programas]]></category>
		<category><![CDATA[netvibes]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/?p=97</guid>
		<description><![CDATA[Llevo utilizando Netvibes como lector de RSS desde 2006.  Con el tiempo fui añadiendo cada blog que me interesaba, y los iba clasificando por pestañas, hasta alcanzar a tener más de 20 de ellas, con más 450 canales diferentes en &#8230; <a href="http://blogpro.javierseixas.com/internet/netvibes-en-modo-reader/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Llevo utilizando Netvibes como lector de RSS desde 2006.  Con el  tiempo fui añadiendo cada blog que me interesaba, y los iba clasificando  por pestañas, hasta alcanzar a tener más de 20 de ellas, con más 450  canales diferentes en total.  Y Netvibes, lo que había sido un modo  práctico de información y de mantenerse al tanto de las novedades, se  había descontrolado y se había convertido en un cajón de sastre donde  seguía las 4 pestañas más interesantes y deja de contar. Hasta que hayé el modo reader.</p>
<p><span id="more-97"></span></p>
<p>Me fijé en la opción de la parte superior donde había una especie de botón deslizante con la palabra <em>giny </em>a un lado y <em>reader </em>al otro. Deslicé el botón hacia reader, y&#8230; ¡¡¡voilà!!!</p>
<p>El diseño cambió totalmente, y se convirtió en un listado de  noticias. Una manera comodísima de ver todo lo publicado en todas mis  pestañas en un única pantalla, clasificado por días, y mostrándome una  manera muy fácil y visual todo lo nuevo. Y ya me he olvidado de tener  que ir cambiando de pestañas para leer. Aunque también existe un menú  lateral donde se puede filtrar la información visualizando sólo en la  lista los canales de esa pestaña, si lo deseo.</p>
<p><a rel="attachment wp-att-90" href="http://blogpro.javierseixas.com/?attachment_id=90"><img class="aligncenter size-medium wp-image-90" title="Listado en Netvibes reader" src="http://blogpro.javierseixas.com/files/pantallas-netvibes-reader-648x401.jpg" alt="Pantallazo Netvibes reader" width="648" height="401" /></a></p>
<p>Otra opción que me ha gustado es la de &#8220;Leer más tarde&#8221;, donde puedo  marcar algunas noticias que me han interesado pero que ahora no tengo  tiempo de leer. Después es tan fácil como seleccionar la opción del menú  &#8220;Leer más tarde&#8221; y tengo en la lista únicamente las marcadas con este  motivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/internet/netvibes-en-modo-reader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugins compatibles con WordPress MU</title>
		<link>http://blogpro.javierseixas.com/wordpress/plugins-compatibles-wordpress-mu/</link>
		<comments>http://blogpro.javierseixas.com/wordpress/plugins-compatibles-wordpress-mu/#comments</comments>
		<pubDate>Sun, 28 Dec 2008 11:55:56 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress mu]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=48</guid>
		<description><![CDATA[Hace relativamente pocas semanas que estoy trabajando con WordPress MU y cada vez me gusta más. Uno de los principales inconvenientes es la compatibilidad con los plugins hechos para WordPress. Yo he probado unos cuantos, y quiero compartirlos: Sociable WordPress &#8230; <a href="http://blogpro.javierseixas.com/wordpress/plugins-compatibles-wordpress-mu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hace relativamente pocas semanas que estoy trabajando con WordPress MU y cada vez me gusta más. Uno de los principales inconvenientes es la compatibilidad con los plugins hechos para WordPress. Yo he probado unos cuantos, y quiero compartirlos:</p>
<p><span id="more-48"></span></p>
<ul>
<li><a href="http://yoast.com/wordpress/sociable/" target="_blank">Sociable</a></li>
<li><a href="http://fairyfish.net/2007/09/12/wordpress-23-related-posts-plugin/" target="_blank">WordPress Related Posts</a></li>
<li>All in One SEO Pack</li>
<li><a href="http://ideasilo.wordpress.com/2007/04/30/contact-form-7/">Contact Form 7</a></li>
<li><a href="http://avi.alkalay.net/2006/11/google-maps-plugin-for-wordpress.html" target="_blank">Inline Google Maps</a></li>
<li><a href="http://alexrabe.boelinger.com/?page_id=80" target="_blank">NextGEN Gallery</a></li>
</ul>
<p>También quiero dejar algunos plugins que me han dado problemas:</p>
<ul>
<li>Multi-level Navigation Plugin</li>
</ul>
<p>A medida que vaya probando iré actualizando la lista.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/wordpress/plugins-compatibles-wordpress-mu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TwitterFox: Twitter en el Firefox</title>
		<link>http://blogpro.javierseixas.com/programas/twitterfox-twitter-en-el-firefox/</link>
		<comments>http://blogpro.javierseixas.com/programas/twitterfox-twitter-en-el-firefox/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 16:45:51 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[Programas]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=66</guid>
		<description><![CDATA[Una de las cosas que me impiden estar al tanto de Twitter es que nunca me acuerdo de entrar en la web. Pero poco a poco me voy metiendo en el mundillo y voy descubriendo diferentes herramientas para interactuar con &#8230; <a href="http://blogpro.javierseixas.com/programas/twitterfox-twitter-en-el-firefox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Una de las cosas que me impiden estar al tanto de Twitter es que nunca me acuerdo de entrar en la web. Pero poco a poco me voy metiendo en el mundillo y voy descubriendo diferentes herramientas para interactuar con él. La última es <a title="Descargar TwitterFox" href="https://addons.mozilla.org/en-US/firefox/addon/5081" target="_blank">TwitterFox</a>, un plugin de Firefox que te permite acceder a tu Twitter desde un icono en el navegador. Útil y rápido. Permite ver tu Twitter, las respuestas a tus posts y los mensajes director. Lo recomiendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/programas/twitterfox-twitter-en-el-firefox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter en el turismo 2.0</title>
		<link>http://blogpro.javierseixas.com/internet/twitter-turismo-20/</link>
		<comments>http://blogpro.javierseixas.com/internet/twitter-turismo-20/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 00:15:41 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Opinión]]></category>
		<category><![CDATA[red social]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=53</guid>
		<description><![CDATA[Hoy he asistido a la segunda edición del cava&#38;twitts donde se trataba el tema del turismo 2.0. No es un tema que hoy por hoy me apasione ni me afecte directamente, y menos desde el punto de vista en que &#8230; <a href="http://blogpro.javierseixas.com/internet/twitter-turismo-20/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoy he asistido a la segunda edición del <a href="http://www.cavaandtwitts.com/cavatwitts-y-turismo-20-el-13-de-noviembre/" target="_self">cava&amp;twitts</a> donde se trataba el tema del turismo 2.0. No es un tema que hoy por hoy me apasione ni me afecte directamente, y menos desde el punto de vista en que se ha tratado, que ha sido la visión más bien comercial, de branding y de marketing. Pero ha sido muy interesante escuchar opiniones de gente del mundillo, tanto de agencias, como de intermediarios o de hoteles. Sin embargo, durante una parte muy extensa del debate se ha puesto sobre la mesa el papel que juegan en este asunto las redes sociales, concretamente twitter.</p>
<p><span id="more-53"></span></p>
<p>Yo no estaba muy enterado sobre el tema. No sabía que atrápalo tenía su <a title="Twitter de atrápalo" href="http://twitter.com/atrapalo" target="_blank">twitter</a>, ni conocía el tipo de uso que las empresas daban a esta herramienta. Por lo que he escuchado y luego he podido ver al llegar a casa, utilizan twitter como plataforma para hacer llegar a sus subscriptores las ofertas que publiquen. Básicamente como un canal rss. En el caso de atrápalo, en twitter publican algunos mensajes con links y otros mensajes con enlaces a los posts que publican en su <a title="Blog de atrápalo" href="http://atrapalopuntoblog.com/" target="_blank">blog</a>.</p>
<p>Por las explicaciones que he escuchado, el objetivo de la empresa con un twitter es que el usuario-cliente esté informado de todo el movimiento que genera dicha empresa: promociones, información &#8220;de interés&#8221;, novedades&#8230; A primera vista no parece mala idea.</p>
<p><a href="http://www.albertbarra.com/" target="_blank">Albert Barra</a>, uno de los ponentes de la conferencia, explica en la web de su empresa la opción de apostar por twitter en <a href="http://www.hoteljuice.com/un-canal-de-difusion-de-ofertas-de-hotel-gratuito" target="_blank">este artículo</a>. Estos argumentos han surgido en el debate de hoy, y tras pensarlo un rato considero que puede ser un sistema ineficiente, barato sí, pero ineficiente.</p>
<p>Yo no sé qué cantidad de usuarios pueden estar interesados en recibir en su lector rss este tipo de noticias, pero yo no me subscribiría a un canal así. He estado apuntado a la newsletter de ryanair y de lastminute por si alguna vez recibía alguna oferta interesante pero me desuscribí porque al final me dí cuenta de que tal y como llegaban a mi buzón las eliminaba, porque la actividad que me ofrecen, viajar, la realizo una vez al año, dos como mucho. ¿Qué sentido tiene para mí recibir todas las ofertas si voy a ignorar el 99,5% de ellas? ¿Y qué probabilidades hay de que elija una del 0,5% restante? Con un canal rss me pasaría lo mismo. No me interesa saber qué ofertas hay para Praga cuando me faltan 7 meses para irme de vacaciones.</p>
<p>Cabe decir que este es mi caso particular. Quizá haya otro tipo de usuario que sí esté más interesado en viajar, o sea &#8220;fan&#8221; de un hotel y a la que vea una oferta le guste irse. También tiene que ser un perfil de persona relativamente acomodada económicamente porque estamos hablando de un sector que no es barato. No conozco cifras, pero desde la ignorancia me pregunto cuantos internautas responden a este perfil.</p>
<p>Por otro lado, es indiscutible que utilizando twitter para los empresarios hay muy poco perder y algo que ganar. El tema está en saber qué audiencia puede tener esta vía de comunicación, que yo creo que poca, y qué porcentaje de esta audiencia se convierte en cliente. Twitter es una herramienta nueva y se abre un periodo de evolución. Con el tiempo se irá definiendo en qué estrategias será útil y cuales no. Esta reflexión la lanzó con otras palabras Silvia Carreño en el cava&amp;twitts. Reflexión con la que estoy muy de acuerdo.</p>
<p>El turismo es un tipo de ocio que la gente suele disfrutar de forma muy puntual y creo que un canal rss no atiende a las necesidades del público. Creo que para el turismo 2.0 debe utilizarse la mayor característica de internet: encontrar lo que buscas cuando lo buscas. Creo que esta es un poco la tendencia. Ya lleva tiempo pasando con la televisión por internet. TV3 permite ver las emisiones de programas de la cadena en 3alaCarta. Cuando me apetece ver un programa lo busco y lo encuentro. Es el mismo modelo que para viajar. Cuando quiero viajar busco y encuentro.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/internet/twitter-turismo-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reestructuración de mi Blog: blogPro</title>
		<link>http://blogpro.javierseixas.com/internet/reestructuracion-blog-blogpro/</link>
		<comments>http://blogpro.javierseixas.com/internet/reestructuracion-blog-blogpro/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 23:08:30 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[javierseixas.com]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Tras descubrir WordPress MU he decidido reestructurar mi blog y dividirlo en dos blogs independientes. Uno con mi vertiente profesional, para tratar temas sobre programación, desarrollo, wordpress, que pueden tener un interés más general, y en castellano, para que pueda &#8230; <a href="http://blogpro.javierseixas.com/internet/reestructuracion-blog-blogpro/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tras descubrir WordPress MU he decidido reestructurar mi blog y dividirlo en dos blogs independientes. Uno con mi vertiente profesional, para tratar temas sobre programación, desarrollo, wordpress, que pueden tener un interés más general, y en castellano, para que pueda llegar a un número mayor de público. Y por el otro lado tendré un blog personal, donde pueda opinar y reflexionar sobre temas más generales como la política, internet, o cualquier otra cosa.</p>
<p><span id="more-1"></span></p>
<p>Ambas vertientes están muy diferenciadas y pueden tener públicos muy diferentes. Además, tras decidir escribir mis posts sobre programación en castellano, para ganar posibles lectores, mi blog se convertía en un blog bilingüe. No tengo nada en contra del bilingüismo, convivo con él cada día y me enorgullece ser bilingüe, pero este hecho podía perjudicar la audiencia que pudiera tener. Para mucha gente puede resultar raro navegar y llegar a un post en castellano rodeado de palabras en catalán. La separación también me permitirá mejorar el SEO del blog y de cada post en particular porque podré indicar la lengua en que fue escrito.</p>
<p>Por otro lado, prefiero la separación por temática, ya que mi web está dividida en estos dos ámbitos. El blog estava en la sección personal pese a que muchos de los posts que escribía no tenían nada que ver con mi vida personal.</p>
<p>Bienvenido a mi blogPro.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/internet/reestructuracion-blog-blogpro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consejos para iniciarse en WordPress</title>
		<link>http://blogpro.javierseixas.com/wordpress/consejos-para-iniciarse-en-wordpress/</link>
		<comments>http://blogpro.javierseixas.com/wordpress/consejos-para-iniciarse-en-wordpress/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 16:37:32 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[consejos]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=3</guid>
		<description><![CDATA[Ya hace más de un año y medio que instalé mi primer WordPress, y sólo fue el primero de tantos. Les cambiaba el theme, los personalizaba, les instalaba plugins, pero no ha sido hasta hace poco que me he adentrado &#8230; <a href="http://blogpro.javierseixas.com/wordpress/consejos-para-iniciarse-en-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ya hace más de un año y medio que instalé mi primer WordPress, y sólo fue el primero de tantos. Les cambiaba el theme, los personalizaba, les instalaba plugins, pero no ha sido hasta hace poco que me he adentrado más a fondo en el interesante mundo del WordPress. Un proyecto en <a href="http://grapa.ws" target="_blank">Grapa</a> me obligó a investigar en todas las posibilidades que ofrecia el sistema para poder cumplir con las necesidades del site: Listar páginas como secciones y subsecciones, listar posts del blog en estas páginas, cambiar la estructura de la web para que el propio blog no sea la página de entrada, llamar a otras bases de datos, listar una categoría de blog como si fuese una sección aparte, etc.</p>
<p>Quiero dejar brevemente algunos consejos que puede le sirvan a más de uno:</p>
<ol>
<li>Conocer los <a href="http://codex.wordpress.org/Template_Tags" target="_blank">template tags</a> de wordpress: En estas funciones se esconde gran parte de la flexibilidad y el potencial del motor. Sería una locura empollárselos para conocerlos todos a la primera, pero tener una idea de todas las posibilidades es muy recomendable.</li>
<li>Conocer plugins: Tan o más importante como lo primero es esto segundo. Los plugins dan posibilidades incontables a un WordPress. Puede ser algo arriesgado ya que muchas instalaciones de plugin pueden ser incompatibles entre ellas, o pueden no funcionar como se espera, pero son la clave del potencial de WordPress.</li>
<li>Conocer algunos truquillos: Por ejemplo, si cambias la configuración del sistema para que la home sea una página normal, <a href="http://codex.wordpress.org/Creating_a_Static_Front_Page" target="_self">no puedes nombrar este archivo home.php</a>, ya que provoca una irregularidad en el sistema y deja de funcionar correctamente. Todos estos truquillos te los da la experiencia, y están explicados dentro de los <a href="http://codex.wordpress.org/" target="_blank">codex de wordpress</a>.</li>
</ol>
<p>Éstos son sólo algunos puntos que a mí me han ayudado para personalizar este wordpress. Probablemente haya algunos otros consejos que sirvan para iniciarse. ¿Alguien tiene alguno más?</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/wordpress/consejos-para-iniciarse-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conexión a más de una BD en WordPress</title>
		<link>http://blogpro.javierseixas.com/wordpress/conexion-a-mas-de-una-bd-en-wordpress/</link>
		<comments>http://blogpro.javierseixas.com/wordpress/conexion-a-mas-de-una-bd-en-wordpress/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 17:41:24 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[bases de datos]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=5</guid>
		<description><![CDATA[Recientemente me he encontrado con un inconveniente adaptando un WordPress. En un página necesitaba conectar con una Base de Datos diferente de la de wordpress, es decir, hacer dos conexiones simultáneas a Bases de Datos diferentes. Para conectarme a la &#8230; <a href="http://blogpro.javierseixas.com/wordpress/conexion-a-mas-de-una-bd-en-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recientemente me he encontrado con un inconveniente adaptando un WordPress. En un página necesitaba conectar con una Base de Datos diferente de la de wordpress, es decir, hacer dos conexiones simultáneas a Bases de Datos diferentes. Para conectarme a la BD Lo hice de la forma clásica utilizando las funciones <em>mysql_connect()</em>, <em>mysql_select_db()</em>, <em>mysql_close()</em> y ningún problema, hasta que quise llamar a la función wp_list_pages() en el footer, que me daba error. Tras varias pruebas me di cuenta que esto se debía a que al conectar con una segunda Base de Datos, la conexión con la BD de WordPress se cerraba. Buscando en internet, encontré cómo resolverlo en <a href="http://turmsegler.net/20080129/separate-db-connection-for-wordpress-plugins/" target="_blank">Separate DB connection for WordPress plugins</a>.</p>
<p>La solución es muy sencilla. Se trata de establecer el cuarto parámetro <em><span class="methodparam"><tt>$new_link</tt></span></em> a true en la función mysql_connect(). De este modo se establece un nuevo enlace con la BD y mantiene el de WordPress.</p>
<p><code><strong>$connection</strong> = mysql_connect('localhost', 'mysql_user', 'mysql_password', true);</code></p>
<p>Posteriormente, cuando se quiera ejecutar una consulta utilizando este enlace se tiene que especificar:</p>
<p><code>$result = mysql_query('SELECT * FROM table', <strong>$connection</strong>);</code></p>
<p>Y siempre es recomendable cerrar la conexión:</p>
<p><code>mysql_close(<strong>$connection</strong>);</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/wordpress/conexion-a-mas-de-una-bd-en-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Menú desplegable en WordPress</title>
		<link>http://blogpro.javierseixas.com/wordpress/menu-desplegable-wordpress/</link>
		<comments>http://blogpro.javierseixas.com/wordpress/menu-desplegable-wordpress/#comments</comments>
		<pubDate>Sat, 25 Oct 2008 10:13:04 +0000</pubDate>
		<dc:creator>Javier Seixas</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[suckerfish]]></category>

		<guid isPermaLink="false">http://blogpro.javierseixas.com/blogs/?p=9</guid>
		<description><![CDATA[Actualmente estoy adaptando un WordPress para un cliente de Grapa, y teníamos la necesidad de mostrar el menú de páginas en la parte superior y que tuviese un mouseover que mostrase las subsecciones de cada página — posteriormente me he &#8230; <a href="http://blogpro.javierseixas.com/wordpress/menu-desplegable-wordpress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Actualmente estoy adaptando un WordPress para un cliente de <a href="http://grapa.ws" target="_blank">Grapa</a>, y teníamos la necesidad de mostrar el menú de páginas en la parte superior y que tuviese un <em>mouseover</em> que mostrase las subsecciones de cada página — posteriormente me he enterado que esto se llama suckerfish o dropdown y que se &#8220;estandarizó&#8221; con <a href="http://www.alistapart.com/articles/dropdowns/" target="_blank">este post</a> —. Sabía que se podía hacer porque ya había visto varios blogs que lo hacían, pero hacerlo fue relativamente más fácil de lo que pensaba porque encontré un plugin que lo hace automáticamente y el cual quiero recomendar.</p>
<p>El plugin se llama <a href="http://pixopoint.com/suckerfish-wordpress-plugin/" target="_blank">Suckerfish WordPress Dropdown Menu</a>. Es muy interesante porque permite editar hasta 6 tipus de submenús diferentes: llamando a categorías, páginas, etc. El mismo plugin utiliza las funciones de wordpress como wp_list_pages() o wp_list_categories() para hacer las llamadas a la BD.</p>
<p>Luego además es personalizable con un CSS que se modifica desde la misma administración de WordPress. De hecho, lo más entretenido del plugin es personalizarlo para que se adapte al diseño que tu quieres, pero quitando eso es muy fácil. Y otra cosa realmente importante es que se ve bien en Internet Explorer 6.</p>
<p><span id="more-9"></span></p>
<p>En mi caso, hice un pequeño cambio en el plugin que quiero comentar por si a alguien le sirve: Antes de instalar el plugin mostraba el menú llamando a la función <a href="http://codex.wordpress.org/wp_list_pages" target="_blank">wp_list_pages()</a> y le ponía una serie de parámetros para que no me mostrara una página:</p>
<p><code>&lt;?php<br />
wp_list_pages("exclude=3")<br />
?&gt;</code></p>
<p>Pero posteriormente cuando instalé el plugin, el parámetro dejó de hacer efecto, me mostraba todas las páginas.</p>
<p><code>&lt;?php<br />
suckerfish("exlucude=3")<br />
?&gt;</code></p>
<p>Así que entré en el archivo <strong>ryans_suckerfish.php</strong> del plugin e hice las siguientes modificaciones:</p>
<p>En la línea 45 donde se define la función suckerfish añadí un parámetro <strong>$params</strong> (un cadena de texto con los argumentos tal y como los describre el <a href="http://codex.wordpress.org/Template_Tags/wp_list_pages" target="_blank">codex de wordpress</a>):</p>
<p><code>function suckerfish(<strong>$params</strong>) {</code></p>
<p>Y en la linea 49, donde se llama a la función wp_list_pages añadí el mismo parámetro.</p>
<p><code>if (get_option('suckerfish_menuitem1') == 'Pages') {wp_list_pages(<strong>$params</strong>);}</code></p>
<p>¡Y voilà! ¡Listo lo que quería! Es un parchecito un poquito cutre, pero cumple lo que necesitaba.</p>
<p>Cabe destacar que después de hacer todos estos cambios vi que había una versión más nueva del suckerfish para wordpress: <a href="http://pixopoint.com/multi-level-navigation/" target="_blank">Multi-level navigation plugin</a>. Quizá en otro post hable de él.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogpro.javierseixas.com/wordpress/menu-desplegable-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

