Cargando...
Menu Ver sumario






Sencilla galería de imágenes con miniaturas

28/10/2010
Para los que les gusta lucirse con los gráficos, ahí va un sistema con algo de JavaScript y por supuesto CSS, para formar una galería que incluye unas miniaturas con las que se podrá acceder a las distintas imágenes de la colección.



Primero de todo, instalamos el estilo. Todo el código que se facilita en esta entrada está redactado para incluirlo todo seguido en un gadget. Tras cada parte, las aclaraciones necesarias para hacer lo mismo pero en las entradas.
<style type="text/css">
#gallery { display: none; }
#jgal {padding:0;margin:0;list-style: none; width: 160px; }
#jgal li { opacity: .5;filter:alpha(opacity=50); float: left; display: block; width: 60px; height: 60px; background-position: 50% 50%; cursor: pointer; border: 3px solid #fff; outline: 1px solid #ddd; margin-right: 10px; margin-bottom: 10px; }
#jgal li img { position: absolute; top: 20px; left: 160px; display: none; }
#jgal li.active img { display: block; width:370px; }
#jgal li.active, #jgal li:hover { outline-color: #bbb; opacity: .99;filter:alpha(opacity=99);}
</style>

El display:none; del primer ID (#gallery) está pensado para evitar que las imágenes se vean completas antes de que se "monte" la galería (mientras se carga el código). En #jgal determinais el ancho del espacio destinado a las miniaturas; 160px en el ejemplo, para que se muestren en filas de a dos, porque hay que contar el ancho de la miniatura (60px) más los márgenes entre ellas. En #jgal li, fijais el tamaño de las miniaturas (60x60px). El left de #jgal li img es para desplazar la imagen grande que se va mostrando y que no se solape con las miniaturas. Hay más propiedades que sólo sirven para el estilo propiamente dicho, como la opacidad y los bordes, que podeis cambiar a vuestro gusto sin problemas.

Para el caso de querer publicar galerías en entradas, lo anterior hay que insertarlo antes de ]]></b:skin> para que esté disponible para todas las ocasiones y no tener que introducirlo manualmente en cada post. Previamente habrá que eliminar la primera y la última línea (etiquetas STYLE).

A continuación iría el script:

<script type="text/javascript">
//<![CDATA[
var gal = {
init : function() {
if (!document.getElementById || !document.createElement || !document.appendChild) return false;
if (document.getElementById('gallery')) document.getElementById('gallery').id = 'jgal';
var li = document.getElementById('jgal').getElementsByTagName('li');
li[0].className = 'active';
for (i=0; i<li.length; i++) {
li[i].style.backgroundImage = 'url(' + li[i].getElementsByTagName('img')[0].src + ')';
li[i].title = li[i].getElementsByTagName('img')[0].alt;
gal.addEvent(li[i],'click',function() {
var im = document.getElementById('jgal').getElementsByTagName('li');
for (j=0; j<im.length; j++) {
im[j].className = '';
}
this.className = 'active';
});
}
},
addEvent : function(obj, type, fn) {
if (obj.addEventListener) {
obj.addEventListener(type, fn, false);
}
else if (obj.attachEvent) {
obj["e"+type+fn] = fn;
obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
obj.attachEvent("on"+type, obj[type+fn]);
}
}
}
gal.addEvent(window,'load', function() {
gal.init();
});
//]]>
</script>

Básicamente, lo que hace es buscar si existe el ID gallery y capturar los distintos elementos de lista que pudieran existir en él. Esos elementos se mostrarán como miniaturas y una función controlará si se hace clic en ellos. En ese caso, al pulsado se le asignará la clase active y será visible en la zona de ampliación.

Al igual que con el estilo, esta parte se puede poner directamente en la plantilla si lo vamos a usar con frecuencia, en cuyo caso, las comillas dobles de la primera línea, tendrán que cambiarse a comillas simples. A diferencia de aquel, este se insertará antes de </head>.

Y para finalizar, la parte HTML. Independientemente de dónde hayamos puesto todo lo anterior, esto se tendrá que teclear justo dónde queremos que se muestre la galería. Si todo lo metimos en un gadget, a continuación. Se trata de una lista normal con id=gallery, metida dentro de un DIV con posición relativa para evitar efectos colaterales de otros posicionamientos pre-existentes.

<div style="position:relative;">
<ul id="gallery">
<li><img src="URL_IMAGEN1" alt="" /></li>
<li><img src="URL_IMAGEN2" alt="" /></li>
<li><img src="URL_IMAGEN3" alt="" /></li>
<li><img src="URL_IMAGEN4" alt="" /></li>
</ul>
</div>

En alt podeis poner el texto que querais relativo a cada imagen y asunto terminado.

Más información (en inglés) en David's kitchen.

Actualización: Un nuevo post para construir esto mismo pero con las miniaturas en la parte inferior de la imagen y así poder mostrar con un mayor tamaño la imagen principal.

Cambio de imagen con hover

26/10/2010
Este truquillo tiene diversas aplicaciones, aunque en un principio, sólo se trata de crear unas clases CSS, para que al pasar el puntero por una imagen, se pueda solapar otra por encima.

Esta sería la parte CSS común:

#contenedor {
position: relative;
}
.miniatura{
z-index: 1001;
text-decoration: none;
}
.miniatura img {
border: 0px;
}
.miniatura span {
position: absolute;
text-decoration: none;
visibility: hidden;
border: 0px;
top:0px;
left:0px;
}
.miniatura:hover span {
visibility: visible;
overflow:visible;
z-index: 1002;
}

La primera utilidad que se me ocurre es que haya dos imágenes iguales y la primera se muestre más pequeña para que el hover funcione a modo de ampliación de miniatura.


<div id="contenedor">
<a href="javascript:void(0);" class="miniatura">
<img src="URL_IMAGEN" alt="" style="width:100px;" />
<span><img src="URL_IMAGEN" alt=""/></span>
</a>
</div>

Lo único a destacar en este HTML es que las dos direcciones de imagen son idénticas (es la misma imagen), pero la primera incluye un WIDTH para forzar su menor tamaño. La segunda, en este caso y en los siguientes, siempre estará "rodeada" por un SPAN para provocar el efecto HOVER.

Otra forma de utilizar este CSS, sería para simular un rollover sin utilizar JavaScript.


El código HTML sería el mismo de antes, pero sin incluir ningún WIDHT y utilizando una segunda imagen, que en este caso era la misma pero invertida.

<div id="contenedor">
<a class="miniatura" href="javascript:void(0);">
<img alt="" src="URL_IMAGEN1" />
<span><img alt="" src="URL_IMAGEN2" /></span>
</a>
</div>

Podemos aprovechar este mismo codigo para mostrar una información adicional, complementaria o incluso un detalle, con respecto a la imagen base.



En esta ocasión, no ha sido necesario utilizar el WIDTH, puesto que las dos imágenes ya las hemos construido del tamaño que nos venía bien. No obstante, se podrían haber redimensionado como antes sin problemas.

Otra posiblidad más. Ahora sustituimos la segunda imagen por un texto y añadimos estilo al SPAN.


<div id="contenedor">
<a class="miniatura" href="javascript:void(0);">
<img alt="" src="URL_IMAGEN1" />
<span style="background:#ffffff;padding:10px;">Trichogaster Leeri. Procede de ríos de aguas tranquilas y densamente plantados de Malasia, Borneo y Sumatra. El macho tiene el cuerpo más rojo y sus aletas anal y dorsal alargadas.</span>
</a>
</div>

Para un efecto algo distinto, podeis cambiar en el CSS, los valores de TOP y LEFT, de manera que el segundo elemento, salga desplazado con respecto al vértice superior izquierdo del primero.


En fin, ahí queda la idea y que cada cual le de el uso que necesite. Y si se os ocurren más ¡no dudeis en comentarlo!

Nota: ¿Esto te viene bien Jaime? ;)

Otro servicio para entradas más populares

Desde este pasado verano, primero en Blogger Borrador y luego en Blogger "Normal", tenemos un nuevo gadget para poder mostrar las entradas más populares de nuestro blog. En esta entrada de El Escaparate podeis ver cómo instalarlos y en esta otra de Pizcos, cómo modificarlos para que el formato sea más acorde con vuestros gustos.

Sin embargo, nunca está de más tener otras alternativas que pueden sernos útiles en determinadas circunstancias y en este caso, entre otras, podemos contar con PostRank.

Poco hay que explicar sobre cómo conseguir el gadget, porque en la misma página principal ya nos indican los cuatro pasos a seguir para ello:

  1. Especificar la dirección del sitio
  2. Escoger el tema
  3. Seleccionar el número de entradas a mostrar
  4. Copiar el código

En el último paso, incluso se facilita un botón para trasladar automáticamente el código del gadget a nuestra barra lateral (sólo TypePad o Blogger).


Según vais ajustando cosas, podreis comprobar cómo quedará todo en la vista previa de la derecha.

Si todavia no os convence del todo y quereis cambiar el estilo general de la lista, sólo tendreis que seleccionar en Choose your theme la última opción, que viene a querer decir "sin estilo" y luego crear en vuestro CSS la clase .postrank-posts li con las opciones deseadas.


Google Analytics y las zonas calientes de tu sitio

21/10/2010
Si usais Google Analytics, tal y como parece que ya hacen el 58% de los sitios webs, quizás te sea útil un nuevo indicador que ahora puedes encontrar allí en fase beta. Se trata de la Analítica de la Página (In-Page Analytics).

Este conjunto de palabros tan extraño -al menos para mí- es sólo una forma de nombrar el sistema que te permite ver directamente sobre una réplica de tu página, las zonas dónde se puede clicar, unidas al porcentaje de clics que reciben cada una de ellas sobre el total de los que se han hecho en la página.


No es casual que Google incorpore esto a uno de sus servicios, como tampoco lo es que sea una de las mejores herramientas que existen para obtener analíticas de páginas webs, a pesar de ser gratuita. Recordamos que el principal negocio del emporio del buscador es la publicidad (Adsense) y cuanto mejor se presente esta, más beneficios para todos los implicados.

Es evidente que la principal utilidad es la de encontrar el sitio dónde los anuncios tienen más posibilidad de ser pinchados. Pero si no tienes publi, también puedes aprovechar esta herramienta para contrastar otros datos. En la imagen de arriba podeis ver, por ejemplo, qué categorías de la lista de etiquetas de este blog son las más visitadas. Con este sistema, resulta muy fácil visualizar eso de un simple vistazo, ahorrándonos el ir buceando por otro tipo de datos.



Como añadido, situando el cursor encima de cada burbuja podeis ver datos adicionales como el total de clicks o la rentabilidad del enlace si es que teneis unido este servicio a Adsense. Pero recordar que todavía es beta, por lo que los datos pueden ser todavía no muy fiables.

Más información en el blog de Google Analytics y en su servicio de ayuda (en inglés).

Actualización: Se me olvidó comentar que podeis encontrar esta utilidad  dentro del apartado Contenido, en el menú de la izquierda ;)



Datos de todo Twitter en tiempo real

18/10/2010
Precisamente por un tweet, hace un par de días que conocí de la existencia de GigaTweeter, un sitio que contabiliza en tiempo real, todos los tweets que se producen. Todos.

Su previsión actual es que en poco menos de 23 días (sobre el 11 de Noviembre), se alcanzarán los 30.000.000.000 de parloteos. Una auténtica burrada a la cual me pregunto si no llegaremos antes, precisamente retuiteando la direccion de esta web y sus cifras (¿efecto pigmalión?).

Evidentemente, esta página no tiene ninguna utilidad para el común de los mortales, pero se deja ver fácilmente y es una curiosidad más de las muchas que podemos encontrar por La Red. Hasta tenemos los tweets medios que se producen por segundo (más de mil) y una gráfica que distribuye ese dato por horas.


Bueno, quizás si sirve para algo útil, pero para eso tenemos que bucear un poquito más y meternos en la pestaña STREAM. Allí podremos colocar cualquier hashtag que queramos y seguir segundo a segundo cualquier tema a través de las publicaciones de estos pájaros de Twitter. Por cierto, curioso ver como el domingo, no cesaban los #ff de la gente a una velocidad de casi 4 por minuto. No entiendo nada ¿no debería ser #fs o follow sunday? O más fácil: esperar al viernes.


Sumarios automáticos. Casi definitivo.

14/10/2010
Desde hace aproximadamente un año, Blogger incorpora un sistema para crear sumarios de entradas (leer más; read more), de manera que podamos mostrarlas truncadas a discreción.  Personalmente nunca me ha gustado el sistema, porque si bien permitía realizar el corte en el punto exacto deseado, también obligaba a meter código extra post a post. Principalmente por este motivo, siempre he preferido los sumarios automáticos.

Sin embargo, este último sistema tiene unas cuantas carencias:
  • las entradas que sólo contenían una imagen o muy poco texto se quedan cojas con respecto a otras más extensas.
  • las imágenes en miniatura se mostraban deformadas si las originales no eran cuadradas.
  • en las páginas estáticas, las entradas se truncaban indebidamente
Estas y alguna cosilla extra más, son las que he pretendido solucionar con este nuevo código.

Ahora se comprobará la longitud del texto de la entrada y si es menor que el que queremos mostrar en los sumarios, simplemente no truncará la entrada y la mostrará completa. Asimismo si el post tiene sólo imágenes.

Por otra parte, en lugar de forzar el tamaño de la imagen que acompaña los resúmenes, lo que haremos será mostrar un recorte si la original es mayor que el recuadro que fijemos para los sumarios o un mosaico si es más pequeña. Y en ambos caso, la imagen también enlazará con el post.

Y ya que estábamos, también se aportan tres estilos (CSS) para elegir el que más os guste. Uno para situar la miniatura flotando con el texto (derecha o izquierda), otro para mostrar una imagen grande en la cabecera del resumen y un tercero para no mostrar imagen alguna.

Aunque un poco largos, sólo tenemos que generar dos trozos de código para que todo funcione. Seleccionamos la casilla Expandir plantillas de artilugios y en primer lugar insertamos el estilo y el script antes de </head>. Si ya estábamos usando este truco, antes de nada tendremos que eliminar el código del anterior script. Es fácil reconocerlo porque es muy similar. Este es el nuevo que se propone:


<!-- SUMARIOS AUTOMATICOS -->
<style type='text/css'>
.contemini {
position:relative;
width:125px;
height:125px;
float:right;
overflow:hidden;
margin:0px 0px 0px 10px;
border:1px solid #aaaaaa;
-webkit-box-shadow: 2px 2px 5px ;
-moz-box-shadow: 2px 2px 5px ;
box-shadow: 2px 2px 5px ;
background:#000000;
}
.miniaturas {
width:125px;
height:125px;
background: no-repeat scroll 50% 40% #eeeeee;
}
.leermas {
/* Las propiedades que gusteis para el enlace */
}
</style>

<script type='text/javascript'>
//<![CDATA[

function createSummaryAndThumb(pID,enlacetitulo){
var div = document.getElementById(pID);
var imgtag = "";
var img = div.getElementsByTagName("img");
var summ = sumario_noimg;

if(img.length>=1) {
imgtag = '<div class="contemini"><a href="' + enlacetitulo + '"><div class="miniaturas" style="background-image:url(' + img[0].src + ')"></a></div></div>';
summ = sumario_img;
}

var summary = removeHtmlTag(div.innerHTML,summ,imgtag,enlacetitulo);
div.innerHTML = summary;
}

function removeHtmlTag(strx,chop,imagen,enlace){
var original=strx;
if(strx.indexOf("<")!=-1) {
var s = strx.split("<");
for(var i=0;i<s.length;i++){
if(s[i].indexOf(">")!=-1){
s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
}
}
strx = s.join("");
}
if(strx.length<=chop) {
return original;
}
else {
chop = (chop < strx.length-1) ? chop : strx.length-2;
while(strx.charAt(chop-1)!=' ' && strx.indexOf(' ',chop)!=-1) chop++;
strx = strx.substring(0,chop-1);
var devolver = imagen + '<div>' + strx + '... (<a class="leermas" href="' + enlace+ '">Leer más</a>)</div>';
return devolver;
}
}

sumario_noimg = 380;
sumario_img = 255;
//]]>
</script>


Ahora, para que lo de los enlaces en las imágenes funcione y que no nos den la tabarra las páginas estáticas, localizamos <data:post.body/> y sustituimos esa variables por lo siguiente. Si teníamos otro código distinto para sumarios, lo sustituimos igual que antes.


<b:if cond='data:blog.pageType == &quot;item&quot;'>
<data:post.body/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<data:post.body/>
<b:else/>
<div expr:id='&quot;summary-&quot; + data:post.id'><data:post.body/></div>
<script type='text/javascript'>createSummaryAndThumb(&quot;summary-<data:post.id/>&quot;,&quot;<data:post.url/>&quot;);</script>
</b:if>
</b:if>


Ya podemos pinchar en Vista Previa y comprobar que todo funciona correctamente. Si estais en un blog de prueba (que es lo que deberíais hacer antes de meter nada nuevo en vuestro blog), a continuación podeis crear algunos posts extremos para ver el resultado: uno con poco texto, otro con poco texto y una imagen, una imagen sola...

¿Contentos con el sistema? Pues ahora las posibles configuraciones alternativas de estilo.

En la primera parte del primer código teneis todas las propiedades CSS. El alto y el ancho puede ser cambiado para aumentar/disminuir el tamaño de las miniaturas y sólo hay que tener en cuenta que hay que hacerlo simultáneamente en las dos clases (.contemini.miniaturas). También podeis cambiar los efectos de bordes y sombras (border, box-shadow), así como el fondo por defecto. Evidentemente, el float:right; podría ser un float:left; sin problemas; sólo habria que ajustar el margin para que se generará el espaciado con el texto en el lado contrario.

Si ya nos metemos en la parte del script, encontramos el texto "(Leer más)", que podemos cambiarlo por el que más nos guste. Al final del todo encontramos las variables que controlan el número de caracteres que queremos que se vean en los sumarios: sumario_noimg es para los posts sin imágenes (más caracteres) y sumario_img para el otro caso (con miniatura, menos caracteres).

Si quereis mostrar una gran imagen central (cuando la haya) encima del resumen de texto, entonces teneis que cambiar todo lo que está entre etiquetas STYLE por esto otro:


.contemini {
position:relative;
width:400px;
height:200px;
text-align:center;
margin:0px auto 10px;
overflow:hidden;
border:1px solid #aaaaaa;
-webkit-box-shadow: 2px 2px 5px ;
-moz-box-shadow: 2px 2px 5px ;
box-shadow: 2px 2px 5px ;
background:#000000;
}

.miniaturas {
width:400px;
height:200px;
background: 50% 50%;
/*Para que la imagen no se repita si es pequeña, incluir un no-repeat*/
}

.leermas {
/* Las propiedades que gusteis para el enlace */
}

Una vez más, podeis cambiar el tamaño de la miniatura y el resto de propiedades visuales.

Y para terminar, el estilo más fácil que es el que no mostrará ninguna miniatura en las entradas a resumir:


.contemini {
display:none;
}

.miniaturas {
}

.leermas {
/* Las propiedades que gusteis para el enlace */
}

Seguro que este último es el más os ha gustado ;)

Gadget. Caja de chat.

11/10/2010
No me gustan los chats en los blogs, porque para dejar mensajes en ellos creo que es suficiente con los comentarios de las entradas. Pero como cada uno tiene sus propias necesidades y algunos así lo habeis requerido en otras ocasiones, ahí va una forma muy fácil de insertar uno en vuestra barra lateral. Gracias a Nora González que nos lo pasó a través de nuestra página en Facebook y nos ahorró el trabajo de buscar uno de estos artilugios :D



Una de las webs que nos ofrecen el servicio en cuestión, es Cbox, el sitio del logo de arriba de la entrada. El único requisito es un registro previo, pero supongo que es para poder recuperar la contraseña o algo parecido porque realmente no se solicita posteriormente una activación mediante correo electrónico. Es decir, que parece que no comprueban la dirección de correo introducida.

Hay algunos servicios que son premium (o sea, de pago), pero con los que ofrecen gratis parece suficiente para lo que se necesita: configuración de alto, ancho, elección de plantillas, colores, número de mensajes a mostrar en el cuadro, colores, fuentes, definición máximo de caracteres, posibilidad de Captcha, configuración de fecha, smileys,...

Una vez todo a nuestro gusto, en el botón PUBLISH obtenemos el código que podremos incluir en un gadget tipo HTML/JavaScript.

Posteriores modificaciones no requieren en principio actualizar el código, salvo cuando el parámetro está marcado con un asterisco. En este último caso, habrá que volver a PUBLISH para conseguir el nuevo código y sustituirlo completamente por el anterior.

Ya podeis juguetear con la caja de ejemplo que he incluido en esta entrada... ¡pero no olvideis los comentarios! :D

URL's de tus amigos de Twitter y otras tonterías

08/10/2010
Simpática la tontería esta de Tyler Sticka.

Se trata de Tweet+, una API que busca en los feeds de aquellos que sigues en Twitter para mostrarte la dirección de su web. Es una forma de encontrar por dónde andan tus amigos.

La mayoría solemos poner en enlace a nuestro sitio en la configuración de nuestro perfil Twitter, pero quizás la aplicación busque en otro sitio o se le pueda sacar otra utilidad.

En la parte inferior de cada enlace encontrado, hay unos botones de suscripción a Google, Netvibes, Yahoo y RSS.

Pero no es esto lo único que podeis encontrar en la web de Tyler. En su portfolio hay otros trabajos suyos de diseño, de entre los que destacaría otra tontería: Ramps. Se trata de un jueguecito de habilidad flash, que como todos los de su calaña, terminan enganchándote.

En este caso tenemos que lograr que la pelotita llegue al cesto, ubicando adecuadamente una serie de estanterias o rampas. Ojo que aunque parece fácil, la cosa se complica con la llegada de los agujeros negros a partir del nivel 15.


Botones sociales en plantillas modificadas

06/10/2010
Hace ya un tiempo que Blogger puso un sistema "de serie" para poder mostrar fácilmente botones sociales con enlaces a Twitter, Facebook, Buzz... que permiten que un visitante pueda enviar fácilmente tus entradas a cualquiera de esos servicios, por correo o incluso publicar una referencia en otro blog Blogger.

La forma de que se muestren es simple. Hay que entrar por Diseño > Elementos de página > Entradas del blog > Editar y allí marcar la opción "Mostrar botones para compartir".


Sin embargo, como en otras ocasiones, las plantillas modificadas se pueden ver afectadas negativamente por estas innovaciones. No es que fastidien nada, no. Simplemente es que las novedades no se incorporan debidamente y los nuevos cacharritos pueden no funcionar.

El motivo es que estas nuevas líneas de código (no son otra cosa mas que eso, líneas de código) se añaden automáticamente al código general de una plantilla. Para ello, Blogger toma unas referencias que existen en las plantillas estándar que nos regala, pero que pueden no estar en otras que hemos modificado sustancialmente o que incluso hemos tomado de otros sitios. Así, cuando no encuentra esas referencias, no se inserta todo el código necesario y es cuando la cosa no termina bien.

La solución es entonces, incorporar manualmente lo que Blogger se haya podido comer y que en este caso concreto, suele ser la llamada mediante un include al correspondiente includable (o rutina) que realmente tiene el código del artilugio. En este caso...

<b:include data='post' name='shareButtons'/>


Este tipo de botones van normalmente en el pie del post, por lo que habrá que insertar el código dentro del DIV formateado con la clase post-footer, aunque realmente podeis poder la llamada en cualquier otro sitio que seais capaces de identificar en vuestra plantilla.



En la mayor parte de los casos, con insertar esa simple línea los problemas se solucionan, pero si aún así los botones siguen sin verse en tu blog, todavía puedes intentar algo más. Se trataría de insertar, además del anterior, también el código completo del artilugio, o sea, el includable que contiene la rutina.

Sería este y puede ir detrás o delante de cualquier otro includable. Como referencia, en las plantillas clásicas viene justo antes de <b:includable id='backlinks' var='post'>. Suerte.


<b:includable id='shareButtons' var='post'>
<b:if cond='data:post.sharePostUrl'>
<a class='share-button sb-email' expr:href='data:post.sharePostUrl + &quot;&amp;target=email&quot;' expr:title='data:top.emailThisMsg' target='_blank'>
<span class='share-button-link-text'><data:top.emailThisMsg/></span></a>
<a class='share-button sb-blog' expr:href='data:post.sharePostUrl + &quot;&amp;target=blog&quot;' expr:onclick='&quot;window.open(this.href, &quot;_blank&quot;, &quot;height=270,width=475&quot;); return false;&quot;' expr:title='data:top.blogThisMsg' target='_blank'>
<span class='share-button-link-text'><data:top.blogThisMsg/></span></a>
<a class='share-button sb-twitter' expr:href='data:post.sharePostUrl + &quot;&amp;target=twitter&quot;' expr:title='data:top.shareToTwitterMsg' target='_blank'>
<span class='share-button-link-text'><data:top.shareToTwitterMsg/></span></a>
<a class='share-button sb-facebook' expr:href='data:post.sharePostUrl + &quot;&amp;target=facebook&quot;' expr:onclick='&quot;window.open(this.href, &quot;_blank&quot;, &quot;height=430,width=640&quot;); return false;&quot;' expr:title='data:top.shareToFacebookMsg' target='_blank'>
<span class='share-button-link-text'><data:top.shareToFacebookMsg/></span></a>
<a class='share-button sb-buzz' expr:href='data:post.sharePostUrl + &quot;&amp;target=buzz&quot;' expr:onclick='&quot;window.open(this.href, &quot;_blank&quot;, &quot;height=415,width=690&quot;); return false;&quot;' expr:title='data:top.shareToBuzzMsg' target='_blank'>
<span class='share-button-link-text'><data:top.shareToBuzzMsg/></span></a>
</b:if>
</b:includable>

Gimp un magnífico editor de imágenes gratuito

04/10/2010
Si lo puedes tener gratis, ¿por qué complicarte? Gimp es un conocido programa de edición de imágenes, cuyas características más importantes son que es gratuito y de código abierto.

Ya sé que no he descubierto la pólvora, pero seguro que entre mi clientela, todavía hay quién piensa que para tener un buen editor, hay que gastarse pasta o andar pirateando por ahí.

Originalmento sus siglas correspondían a General Image Manipulation Program (Programa de manipulación general de imágenes), aunque como se distribuye con licencia copyleft (copia permitida) y se ajusta al proyecto GNU, actualmente su página refleja que GIMP es el acrónimo de GNU Image Manipulation Program.

Inicialmente pensado para Unix, hoy día podeis encontrar en su página de descargas, versiones para GNU/Linux and UNIX, Microsoft Windows o Apple Mac OS.

No tiene prácticamente nada que envidiar a otros editores comerciales y sólo es cuestión de ponerse a currar con él para descubrir todas sus posibilidades. Como con cualquier programa que comenzamos a utilizar por primera vez, lo interesante es aprender su manejo para aprovechar al máximo sus recursos.

En la propia página oficial podeis encontrar muchos tutoriales, así  como en la sección para hispanoparlantes. También podeis encontrar otras webs que se dedican a recopilar trucos, pinceles (brushes), complementos... como por ejemplo Todo Gimp.


Desplegar parcialmente una tabla

01/10/2010
Como siempre, seguro que hay otra manera de hacer esto, pero la que se presenta aquí es la única que se me ha ocurrido para contestar a JAIME. La cosa consiste en tener una tabla oculta parcialmente y poder desplegar esa parte pulsando un botón.

El problema reside en introducir un ID unívoco en parte de la tabla, para poder luego ocultar o desplegar esa parte mediante un script. Todo esto sin fastidiar el código que forma la tabla y que requiere de todos su TR, TD y sus cierres, en perfecto orden y sin interferencias de otros códigos.

La chapucilla que se me ha ocurrido en esta ocasión es construir dos tablas, presentarlas juntas como si fueran una y meter toda la que quedará inicialmente oculta en un DIV que sí podrá llevar una ID sin problemas.

Para empezar contruimos el script que hace que podamos ocultar cosas mediante una clase determinada. A través de su ID se podrá cambiar la clase para que se muestre/oculte. Como es habitual, todo esto irá antes de </head>

<style type="text/css">
.ver {display:block;}
.nover {display:none;}
</style>
<script type="text/JavaScript">
function vernover(identificacion){
var menu = document.getElementById(identificacion);
if(menu.className == 'ver'){
menu.className = 'nover';
} else {
menu.className = 'ver';
}
}
</script>


Actualización: Lo anterior sería el código para colocar en un POST, no en la plantilla. Para que este código lo admita Blogger en la susodicha, tendreis que cambiar las comillas dobles (") por simples (') y las simples por &quot;.

A continuación construimos nuestras tablas dónde se quieran poner, con el procedimiento habitual:

<table class="ejemplo"><tbody>
<tr><td>CONTENIDO</td><td>CONTENIDO</td><td>CONTENIDO</td></tr>
<tr><td>CONTENIDO</td><td>CONTENIDO</td><td>CONTENIDO</td></tr>
</tbody></table>

<div id="tablainferior" class="nover">
<table class="ejemplo"><tbody>
<tr><td>CONTENIDO</td><td>CONTENIDO</td><td>CONTENIDO</td></tr>
<tr><td>CONTENIDO</td><td>CONTENIDO</td><td>CONTENIDO</td></tr>
<tr><td>CONTENIDO</td><td>CONTENIDO</td><td>CONTENIDO</td></tr>
<tr><td>CONTENIDO</td><td>CONTENIDO</td><td>CONTENIDO</td></tr>
</tbody></table>
</div>

Redactando el código uno a continuación del otro, las dos tablas aparecerán como una sola. A la segunda le hemos añadido mediante un DIV, un ID que en el ejemplo es tablainferior y este mismo identificador será el que utilicemos en el botón, mediante una llamada al JavaScript que hemos visto en primer lugar (vernover):

<a href="javascript:vernover('tablainferior');">Plegar/Desplegar</a> parte inferior tabla


Plegar/Desplegar parte inferior tabla 1

CONTENIDOCONTENIDOCONTENIDO
CONTENIDOCONTENIDOCONTENIDO
CONTENIDOCONTENIDOCONTENIDO
CONTENIDOCONTENIDOCONTENIDO
CONTENIDOCONTENIDOCONTENIDO
CONTENIDOCONTENIDOCONTENIDO

Para formatear la tabla anterior, hemos utilizado el siguiente CSS:

table.ejemplo {
width:300px;
margin:0px auto;
text-align:center;
}
table.ejemplo tbody tr td {
margin:5px;
padding:5px;
border:1px solid #000000;
background:#cccccc;
}

También podríamos hacer lo mismo con alguna librería de efectos. Por ejemplo con scriptaculous:


Plegar/Desplegar parte inferior tabla 2

CONTENIDOCONTENIDOCONTENIDO
CONTENIDOCONTENIDOCONTENIDO
Recibe por correo las últimas publicaciones.
Teclea tu dirección.


No rights reserved
NINGUN DERECHO RESERVADO
...aunque se agradece un enlace. Si crees que algo aquí vulnera los derechos de otro, mándanos un correo.

El botón que
no hace nada
El botón que no hace nada

Ir Arriba