![]() | Page Flip Blue Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Template Love Cat’s Blue Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Black Brown Theme 1 Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Black Brown Theme 2 Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Red Dark Theme Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Flor Laranja Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Menina Jeans Demo online: VER Descargar: 4shared.com Información y detalles: VER |
![]() | Charmoso Demo online: VER Descargar: 4shared.com Información y detalles: VER |
REFERENCIAS:>Dicas e Templates Mamanunes
Avatares y problemas con emoticones |
El tema de los avatares en los comentarios me ha provocado un problema indeseado. Si bien no es algo usual, como podría repetirse, quisiera mostrar la forma en que lo he solucionado.
Se trata de los emoticones en los comentarios y se me ocurre que esta modificación también podría ayudar en otros casos donde el truco no funciona porque interfiere con el formulario u otros elementos agregados.
El script, lo que hace es leer un sector específico del blog y buscar una serie de textos. Si los encuentra, los cambia por cierta imagen. Por ejemplo, si encuentra :D cambia esos dos caracateres por una imagen como esta. El problema surge cuando esos caracteres son parte de un código, al cambiarlos se produce alguna clase de resultado indeseado.
Si bien es cierto que esas combinaciones de caracteres no son usuales, el nuevo código de los avatares podría llegar a contenerlos, es raro pero es posible. De los cientos que he chequeado sólo ocurrió con uno pero, aún así, ese es suficiente para trastocar una página.
El script es sencillo pero requiere de un dato, el ID del bloque a verificar y cambiar. En un principio el sector a cambiar era el identificado como comments, luego, cuando se agregaron los formularios incrustados hubo que limitar ese bloque así que se usaba comments-block, ahora, hay que limitarlo aún más y verificar sólo el contenido del comentario pero, esa etiqueta no tiene un ID:
Se trata de los emoticones en los comentarios y se me ocurre que esta modificación también podría ayudar en otros casos donde el truco no funciona porque interfiere con el formulario u otros elementos agregados.
El script, lo que hace es leer un sector específico del blog y buscar una serie de textos. Si los encuentra, los cambia por cierta imagen. Por ejemplo, si encuentra :D cambia esos dos caracateres por una imagen como esta. El problema surge cuando esos caracteres son parte de un código, al cambiarlos se produce alguna clase de resultado indeseado.
Si bien es cierto que esas combinaciones de caracteres no son usuales, el nuevo código de los avatares podría llegar a contenerlos, es raro pero es posible. De los cientos que he chequeado sólo ocurrió con uno pero, aún así, ese es suficiente para trastocar una página.
El script es sencillo pero requiere de un dato, el ID del bloque a verificar y cambiar. En un principio el sector a cambiar era el identificado como comments, luego, cuando se agregaron los formularios incrustados hubo que limitar ese bloque así que se usaba comments-block, ahora, hay que limitarlo aún más y verificar sólo el contenido del comentario pero, esa etiqueta no tiene un ID:
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>Así que, lo primero que haremos será agregarle uno, usando el número que le asigna Blogger para identificarlos e inmediatamente después llamaremos a la función de JavaScript para que lo verifique y lo cambie:
<p expr:id='"combody-" + data:comment.anchorName'><data:comment.body/></p> <script type='text/javascript'> cual = "combody-" + "<data:comment.anchorName/>"; emoticonComentario(cual); </script>
Por último, deberíamos eliminar el script anterior y agregar el nuevo antes de </head> condicionándolo para que sólo se cargue en las páginas individuales:
<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
//<![CDATA[
function emoticonComentario(cual) {
if(!document.getElementById) {return;}
bodyText = document.getElementById(cual);
cualTexto = bodyText.innerHTML;
// ....... AQUI NADA CAMBIA
bodyText.innerHTML = cualTexto;
}
//]]>
</script>
</b:if>
Blogger: Un poco más sobre los avatares |
Es una pena pero Blogger tiene la costumbre de complicar lo sencillo y aquí está otra vez, ofreciendo la posibilidad que se vean los avatares de los comentaristas pero, haciéndolo de tal modo que hay que tomar un curso ascelerado en la NASA para hacer que funcionen y se vean correctamente en muchas plantillas.
Los problemas básicos son dos; el primero es que el nuevo juguete tiene una serie de definiciones de CSS predefinidas, demasiadas propiedades ya que, lo razonable era que no tuvieran ninguna y que cada uno usara esa imagen como le viniera en gana pero, para Blogger, DEBEN tener un borde gris, medir 35x35 y estar a la izquierda ¿Por qué? Nadie sabe pero, es la ley.
Los problemas básicos son dos; el primero es que el nuevo juguete tiene una serie de definiciones de CSS predefinidas, demasiadas propiedades ya que, lo razonable era que no tuvieran ninguna y que cada uno usara esa imagen como le viniera en gana pero, para Blogger, DEBEN tener un borde gris, medir 35x35 y estar a la izquierda ¿Por qué? Nadie sabe pero, es la ley.

/* estas son las propiedades por defecto */
#comments-block .avatar-image-container img {
border:1px solid #CCCCCC;
float:right;
}
#comments-block .avatar-image-container.avatar-stock img {
border-width:0;
padding:1px;
}
#comments-block .avatar-image-container {
height:37px;
left:-45px;
position:absolute;
width:37px;
}
#comments-block.avatar-comment-indent {
margin-left:45px;
position:relative;
}
#comments-block.avatar-comment-indent dd {
margin-left:0;
}
iframe.avatar-hovercard-iframe {
border:0 none;
height:9.4em;
margin:0.5em;
padding:0;
width:25em;
}
Para personalizar ese sector, debemos sobrescribir esas definiciones así que es conveniente agregar el estilo después de <body>, entre etiquetas <style> y <style>.
¿Es posible posicionarlo a nuestro gusto?
Sí. Me parece que lo ideal sería adaptar los márgenes y eliminar la posición absoluta. Por ejemplo, así, podría ponerse a la derecha:
Sí. Me parece que lo ideal sería adaptar los márgenes y eliminar la posición absoluta. Por ejemplo, así, podría ponerse a la derecha:
#comments-block.avatar-comment-indent {margin-left: 0;}
#comments-block .avatar-image-container {float: right; position: static;}¿Es posible quitarle el borde o cambiarlo por otro?
Sí. De esta manera:
Sí. De esta manera:
#comments-block .avatar-image-container img {border: none;}¿Es posible cambiar el tamaño de los avatares?
Sí. Aunque no podemos cambiar el ancho y el alto de la imagen en si misma, podemos valernos del CSS para establecer valores mínimos; de este modo, por ejemplo, los mostramos de 45x45:
Sí. Aunque no podemos cambiar el ancho y el alto de la imagen en si misma, podemos valernos del CSS para establecer valores mínimos; de este modo, por ejemplo, los mostramos de 45x45:
#comments-block .avatar-image-container img {min-height: 45px; min-width: 45px;}Y si quisiéramos lo contrario, usaríamos otras propeidades; por ejemplo, los mostramos de 24x24:
#comments-block .avatar-image-container img {max-height: 24px; max-width: 24px;}Incluso, si el tamaño nos parece correcto, convendría usar min-height y min-width siempre porque he visto que ciertos avatares no se muestran bien; por algún motivo, se ven rectangulares y no cuadrados.
El segundo problema molesto que vi es que si el comentarista no se identifica a través de una cuenta de Blogger, lo que se muestra es un ícono pero, vaya uno a saber por qué motivo, ese ícono no es de 35x35 sino de 16x16 así que queda un espacio vacio. Para resolver esto, podríamos usar un truco.
La etiqueta IMG admite estilos CSS, uno de ellos es background (fondo) y normalmente lo usaríamos para darle un color de fondo si es transparente o enmarcarla de alguna manera; pero background tambien admite colocar una imagen de fondo. Claro, por lo general esto sería una tontera ya que no lo veríamos nunca pero, en este caso, podría ayudarnos ya que Blogger genera dos códigos diferentes, uno cuando se usan sus cuentas y otro para el resto de los ingresos.
La etiqueta IMG admite estilos CSS, uno de ellos es background (fondo) y normalmente lo usaríamos para darle un color de fondo si es transparente o enmarcarla de alguna manera; pero background tambien admite colocar una imagen de fondo. Claro, por lo general esto sería una tontera ya que no lo veríamos nunca pero, en este caso, podría ayudarnos ya que Blogger genera dos códigos diferentes, uno cuando se usan sus cuentas y otro para el resto de los ingresos.
<div class="avatar-image-container vcard">
....... avatares de 35x35 .......
</div>
<div class="avatar-image-container avatar-stock">
....... íconos de 16x16 .......
</div>
Usando esos datos, podemos utilizar otra imagen personal que sea el fondo y ocultar la imagen del ícono:
#comments-block .avatar-image-container.avatar-stock img {display:none;}
#comments-block .avatar-image-container.avatar-stock {background:transparent url(URL_imagen) no-repeat 50% 50%;}Algo similar ocurre con algunos avatares que parecen no mostrarse por, vaya uno a saber qué motivo, podemos agregarle un fondo a la imagen por si esta no se muestra:
#comments-block .avatar-image-container img {background: transparent url(URL_IMAGEN) no-repeat 50% 50%;}Como un ejemplo genérico, estas son las propiedades que he aplicado:
#comments-block.avatar-comment-indent {
margin-left: 0;
}
#comments-block .avatar-image-container {
float: left;
height: 49px;
position: static;
width: 49px;
}
#comments-block .avatar-image-container img {
background:#234 url(URL_noimage.gif) no-repeat 50% 50%;
border: 1px solid #456;
display: block;
float: none;
min-height: 45px;
min-width: 45px;
padding: 2px;
}
#comments-block .avatar-image-container.avatar-stock {
background: #234 url(URL_noavatar.gif) no-repeat 50% 50%;
border: 1px solid #456;
}
#comments-block .avatar-image-container.avatar-stock img {
display: none;
}
img.delayLoad {
max-height: 45px;
max-width: 45px;
min-height: 45px;
min-width: 45px;
}Seguramente, hay muchas otras maneras de llegar al mismo resultado o que deben ser aplicadas en casos particulares así que sería bueno que las compartiéramos a ver si podemos sacarle jugo a estos regalitos sin morir en el intento.

Software Freedom Day |

El Día de la Libertad de Software (Software Freedom Day en inglés) es un evento mundial para promover el uso de software libre. Establecido en el año 2004, desde el 2006 se ha decidido que se celebrará el tercer sábado de cada mes de septiembre.
Software libre implica libertad:
Software libre implica libertad:

- libertad de usar el programa con cualquier propósito;
- libertad de estudiar su funcionamiento y adaptarlo a nuestras necesidades
- libertad de distribuir copias
- libertad de mejorarlo y hacer públicas esas mejoras
Cuanto más gente resista, más gente va a ser Libre,
y más gente va a ser libre para ser Libre.
Fundación Software Libre América Latina (español | portugués | ingles
y más gente va a ser libre para ser Libre.
Fundación Software Libre América Latina (español | portugués | ingles
REFERENCIAS:Sin Miedo
Blogger: Avatares en los comentarios |
Ayer, Blogger anunciaba que ya estaba disponible una nueva mejora, la posibilidad de mostrar el avatar de los usuarios en los comentarios, algo que hacía tiempo se lograba mediante un truco que dejó de funcionar y es probable que haya muchos que no se hayan dado cuenta que existe ya que solemos manipular esa parte de la plantilla.
La imagen a mostrar es la que hayamos agregado a nuestro perfil (Escritorio | Ver perfil | Editar perfil | Editar foto) si es que hemos agregado alguna, el ícono de Blogger si no subimos ninguna
, el ícono de OpenId si se está usando ese método de ingreso
o una imagen en blanco si es un usuario anónimo o utiliza su dirección URL.
Para que esto funcione, primero que nada deberemos verificar que en la Configuración | Comentarios, esté marcada la casilla correspondiente:
, el ícono de OpenId si se está usando ese método de ingreso
o una imagen en blanco si es un usuario anónimo o utiliza su dirección URL.Para que esto funcione, primero que nada deberemos verificar que en la Configuración | Comentarios, esté marcada la casilla correspondiente:
¿Mostrar imágenes de perfil en los comentarios? Sí No
Como elemento adicional, en la Vista Previa de los comentarios aparece un enlace Agregar foto para hacerlo directamente desde allí en caso de no tener ninguna.
Hasta acá todo es simple pero, lo complicado es que la mayoría de las plantillas no poseen el código necesario ya que es algo que sólo aparece en los blogs nuevos y, para colmo, probablemente hemos agregado mucha personalización en ese sector así que lo mejor es comenzar desde el código elemental.

<dl expr:class='data:post.avatarIndentClass' id='comments-block'>
<b:loop values='data:post.comments' var='comment'>
<a expr:name='"comment-" + data:comment.id'/>
<dt expr:class='"comment-author " + data:comment.authorClass' expr:id='data:comment.anchorName'>
<b:if cond='data:comment.favicon'>
<img expr:src='data:comment.favicon' height='16px' style='margin-bottom:-2px;' width='16px'/>
</b:if>
<a expr:name='data:comment.anchorName'/>
<b:if cond='data:blog.enabledCommentProfileImages'>
<data:comment.authorAvatarImage/>
</b:if>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/>
</dt>
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>
<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='data:comment.url' title='comment permalink'>
<data:comment.timestamp/>
</a>
<b:include data='comment' name='commentDeleteIcon'/>
</span>
</dd>
</b:loop>
</dl>
No va a ser sencillo explicar esto y de aquí en adelante hay que ser prudentes así que, ya mismo, antes de intentar nada, hay que guardar la plantilla y tener un backup. Mejor aún si todo se hace en un blog de pruebas con una copia de la plantilla original.
En las entradas Blogger y los comentarios 1 | 2 | 3 se habla del contador de comentarios y de una clase CSS para mostrar los comentarios pares e impares con fondos diferenciados. Ambas cosas siguen funcionando normalmente.
En las entradas Blogger y los comentarios 1 | 2 | 3 se habla del contador de comentarios y de una clase CSS para mostrar los comentarios pares e impares con fondos diferenciados. Ambas cosas siguen funcionando normalmente.

<dl expr:class='data:post.avatarIndentClass' id='comments-block'>
<!-- ponemos el contador a cero -->
<script type='text/javascript'>var contadorComentarios=0;</script>
<b:loop values='data:post.comments' var='comment'>
<!-- agregamos un bloque para darle un nombre único a cada comentario -->
<div class='' expr:id='data:comment.id'>
<a expr:name='"comment-" + data:comment.id'/>
<dt expr:class='"comment-author " + data:comment.authorClass' expr:id='data:comment.anchorName'>
<b:if cond='data:comment.favicon'>
<img expr:src='data:comment.favicon' height='16px' style='margin-bottom:-2px;' width='16px'/>
</b:if>
<a expr:name='data:comment.anchorName'/>
<b:if cond='data:blog.enabledCommentProfileImages'>
<data:comment.authorAvatarImage/>
</b:if>
<span class='autorcomentario'>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
</span>
<data:commentPostedByMsg/>
<!-- el código del contador -->
<span class='comentacontador'>
<a expr:href='"#comment-" + data:comment.id' title='Vinculo al comentario'>
<script type='text/javascript'>
contadorComentarios=contadorComentarios+1;
document.write(contadorComentarios)
</script>
</a>
</span>
</dt>
<dd class='comment-body'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p><data:comment.body/></p>
</b:if>
</dd>
<dd class='comment-footer'>
<span class='comment-timestamp'>
<a expr:href='"#comment-" + data:comment.id' title='comment permalink'><data:comment.timestamp/></a>
<b:include data='comment' name='commentDeleteIcon'/>
</span>
</dd>
<!-- establecemos la clase del comentario -->
<script type='text/javascript'>ContarC('<data:comment.id/>')</script>
</div>
</b:loop>
</dl>
Las definiciones CSS que controlan esto son cargadas por Blogger mismo así que si queremos modificarlas, deberemos sobrescribirlas agregando el estilo debajo de <body>. Estas son las propiedades por defecto:
#comments-block.avatar-comment-indent { /* es la lista completa DL */
margin-left: 45px; /* esto puede complicar la salida de los datos */
position: relative;
}
#comments-block.avatar-comment-indent dd { /* */
margin-left: 0;
}
#comments-block .avatar-image-container { /* el contenedor de las imágenes */
height: 37px;
left: -45px; /* aparentemente compensa el margen */
position: absolute;
width: 37px;
}
#comments-block .avatar-image-container img { /* las imágenes tienen un borde gris */
border: 1px solid #CCCCCC;
float: right;
}
#comments-block .avatar-image-container.avatar-stock img { /* cuando no hay imagen y se usan iconos normales */
border-width: 0;
padding: 1px;
}En lo personal, eliminé esos márgenes y la posición absoluta. Además, agregué un padding, un fondo y un borde en las imágenes porque sino, quedaban fuera del área de comentarios o simplemente no se veían:
#comments-block .avatar-image-container {
float: left;
position: static;
}
#comments-block.avatar-comment-indent {
margin-left: 0;
}#comments-block .avatar-image-container img {
background-color: #VALOR;
border: 1px solid #VALOR;
float: none;
padding: VALORpx;
}Sin duda, habrá mucho más que arreglar.
Mini Flash MP3 Player |
En Royalty free music hay una serie de reproductores MP3 que podemos descargar y utilizar en cualquier web.
Su principal característica es que son muy livianos, especialmente, dos de ellos:
Mini Flash mp3 Player ZIP
Single Track Flash mp3 Player ZIP
En ambos casos, para utilizarlos, debemos tener instalada la librería swfobject que podemos cargar directamente desde las APIs de Google, por ejemplo, escribiendo lo siguiente antes de </head>:
Su principal característica es que son muy livianos, especialmente, dos de ellos:
Mini Flash mp3 Player ZIP

Single Track Flash mp3 Player ZIP

En ambos casos, para utilizarlos, debemos tener instalada la librería swfobject que podemos cargar directamente desde las APIs de Google, por ejemplo, escribiendo lo siguiente antes de </head>:
<script src='http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js' type='text/javascript'/>
Y por último, alojar el archivo SWF en algún servidor como ImageShack, Fileden o Xoo Image.
En la página nos muestran la forma de utilizarlo agregando scripts pero yo perfiero usar la etiqueta OBJECT:
En la página nos muestran la forma de utilizarlo agregando scripts pero yo perfiero usar la etiqueta OBJECT:
<object data="URL_archivo_swf" width="75" height="30" type="application/x-shockwave-flash"> <param name="movie" value="URL_archivo_swf"/> <param name="flashvars" value="soundPath=URL_archivo_audio.mp3"/> <param name="wmode" value="transparent"/> <param name="allowScriptAccess" value="always"/> </object>
La diferencia entre uno y otro modelo es el SWF y su tamaño, en el segundo caso, debemos usar width="192" y height="67" pero, el resto de las opciones son iguales. Para usarlas, simplemente las agregamos al parámetro flashvars anteponiendo un carácter & o bien &:
soundPath es la dirección URL del archivo a ejecutar
overColor es el color en formato hexadecimal
playerSkin es el modelo a usar y hay cinco alternativas (por defecto es 1)
autoPlay establece si comenzará a ejecutarse al abrir la página (yes|no)
Un ejemplo:
soundPath es la dirección URL del archivo a ejecutar
overColor es el color en formato hexadecimal
playerSkin es el modelo a usar y hay cinco alternativas (por defecto es 1)
autoPlay establece si comenzará a ejecutarse al abrir la página (yes|no)
Un ejemplo:
value="soundPath=URL_archivo_audio.mp3&overColor=#FFFF00&playerSkin=4&autoPlay=yes"
Hay otros reproductores que permiten agregar listas de reproducción utilizando archivos XML pero, esto es complejo de hacer en Blogger ya que el SWF y la lista deben estar alojados en el mismo servidor:
Multiple Tracks Flash mp3 Player With Menu ZIP
Multiple Tracks Flash mp3 Player ZIP
Single Flash Loop Player ZIP
Mini Flash Loop Player ZIP
Multiple Tracks Flash mp3 Player With Menu ZIP

Multiple Tracks Flash mp3 Player ZIP

Single Flash Loop Player ZIP

Mini Flash Loop Player ZIP


Hablando de la propiedad Float |

Cuando a un elemento le agregamos la propiedad float, lo convertimos en un bloque pero con una característica especial: su ancho no ocupa el 100% del contenedor sino sólo el de su contenido pero, además, lo quitamos del orden natural de la página; de este modo, todo lo que lo rodea se moverá y se acomodará como pueda para hacerle lugar.













