Mostrando entradas con la etiqueta en bikertb. Mostrar todas las entradas
Mostrando entradas con la etiqueta en bikertb. Mostrar todas las entradas

miércoles, 13 de marzo de 2019

Notas sobre los mapas de rutas BikerTB versión 2019


Estructura del fichero índice

Fichero: indiceTracksMadrid.js
datos="\
003\taqua\t003-alameda-rascafria-pedrosillo-cerradillas-tejos-milenarios-an.kml\n\
004\tblack\t004-alcala-de-henares-quer.kml\n\
005\tblue\t005-alcala-de-henares-parque-de-los-cerros-anchuelo-villalbilla-.kml\n\
006\tfuchsia\t006-alcala-meco-quer-alovera-azuqueca.kml\n\
. . .
438\tBlueViolet\t438-via-verde-del-tajuna-completa-ida-y-vuelta.kml\
"


Opciones generales

var fullZoomNav = false; //true = zoom al navegador. Usar false para mapa incrustado en un post del blog.
var boundsAuto = false; //al iniciar mostrar el área ocupada por los tracks. Irrelevante si se muestra un solo track.
//Si boundsAuto = false, definir los coordenadas del área a mostrar al iniciar:
var Norte = 41.31908, Sur = 39.84523, Este = -2.56531, Oeste = -5.05096; //recomendable para mostrar más de 100 tracks.
var iniIcon = false; //mostrar permanentemente los iconos de inicio de los tracks.
var openBlog = "https://maparutasmtb.blogspot.com"; //para el botón "Ir al Blog"

Mostrar todas las rutas en una página dedicada

<a href="https://www.bikertb.es/nano/madrid.html">Mapa de rutas</a>

(Rutas para la DEMO tomadas de Nano Flojo)

Mostrar todas las rutas incrustadas en un post del blog

<script>
  var trackAlone='TODOS'; // TODOS = presentar todos los tracks
  document.write('<iframe width="828" height="680" allowfullscreen src="https://www.bikertb.es/nano/madrid.html?track='+trackAlone+'"></iframe>')
</script>


Mostrar una ruta en un post del blog

<script>
  var trackAlone='232'; // mostrar la ruta con referencia 232, esto es lo único que variaría de un post a otro.
  document.write('<iframe width="828" height="500" allowfullscreen src="https://www.bikertb.es/nano/madrid.html?track='+trackAlone+'"></iframe>')
</script>


Mostrar un selector de rutas en un post del blog

<iframe src="https://www.bikertb.es/nano/getSelect-Chosen.php" allowfullscreen frameborder="0" width="880" height="580"></iframe>

Nota: Esta vista necesita php en el servidor.



Demo: Mostrar un selector de rutas en un post del blog




Rutas para la DEMO tomadas de Nano Flojo.

Demo: Mostrar una ruta en un post


Ruta #232: La Jarosa


Ruta para la DEMO tomada de Nano Flojo.

Demo: Mostrar todas las rutas incrustadas en un post



Rutas para la DEMO tomadas de Nano Flojo.

jueves, 24 de octubre de 2013

Hack para handleOversize:drag en IE10


IE10

ShadoxboxDraggable1

ShadoxboxDraggable2b

El parámetro drag (options={"handleOversize":"drag"}) de Shadowbox, que presenta imágenes sin redimensionar, funciona en todos los navegadores excepto en Internet Explorer 10. El siguiente META en el HEAD soluciona el problema de forma temporal hasta que aparezca una versión de Shadowbox compatible.
<head>
<!-- INI Forzar compatibilidad de IE10 con IE9 para hacer funcionar "drag" en Shadowbox -->
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<!-- FIN Forzar compatibilidad de IE10 -->

27 de noviembre de 2013 - El problema ha sido corregido en Internet Explorer 11.

jueves, 25 de octubre de 2012

Dewplayer vía DOM


Катюша
Расцветали яблони и груши,
Поплыли туманы над рекой;
Выходила на берег Катюша,
На высокий берег, на крутой.
div donde insertaremos el código:
<div id="Katyusha" style="position:absolute;top:0px;left:0px;"></div>
Script en cualquier parte de la página:
<script type="text/javascript" language="JavaScript">
//<![CDATA[
  var encender = 0;
  var enlace1 = document.URL;
  var enlace2 = window.location.href;
// Autoplay si estamos en la página concreta:
  if ( (enlace1 || enlace2) == 'http://bikertb.blogspot.com/2012/09/Katyusha.html' ) { encender=1; }
  var codigoPlayer = "<object id='myObjID' width='200' height='20' name='dewplayer' type='application/x-shockwave-flash' data='http://www.dropbox.com/dewplayer.swf'><param name='wmode' value='transparent'><param name='flashvars' value='mp3=http://www.dropbox.com/Katyusha.mp3&autostart="+encender+"' /></object>"; 
// Modifico el código si el navegador es Internet Explorer:
  if ( /*@cc_on!@*/false ) {
      codigoPlayer = "<object id='myObjID' width='200' height='20' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'><param name='movie' value='http://www.dropbox.com/dewplayer.swf'><param name='wmode' value='transparent'><param name='flashvars' value='mp3=http://www.dropbox.com/Katyusha.mp3&autostart="+encender+"' /></object>"; }
// Inserto el código:
  document.getElementById("Katyusha").innerHTML = codigoPlayer;
//]]
</script>
Nota: A Internet Explorer (v9.0.10) no le gusta que construya el nodo <object> en el DOM elemento a elemento, por eso utilizo innerHTML para insertar el código en bloque.

jueves, 5 de abril de 2012

Imagen anclada a una palabra

Este procedimiento ancla una imagen a una palabra. Si redimensionamos la ventana del navegador, o cambiamos la resolución de la pantalla, la imagen fluirá atada a la palabra en un punto preciso, sin alterar la distribución del texto u otros elementos circundantes. Se utiliza en el blog para señalar las actualizaciones de ciertas páginas: El método es simple, consiste en variar adecuadamente los márgenes de la imágen. Veamos a el efecto paso a paso.
1
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
La caja verde a trazos es el contenedor general.
La caja azul contiene el texto de la palabra ANCLA y la imagen a anclar en ella.
La imagen se posiciona de forma normal a continuación de la palabra de anclaje:
ANCLA<img src="nube.png"> volutpat
2
Suspendisse enim elit, auctor rhoncus 5tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
La nube mide 86px de alto.
Añadimos margin-top:-86px; a la imagen para dejar que sea el texto el que establezca la distancia de interlineado.
3
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
La nube mide 90px de ancho.
Añadimos margin-left:-90px; a la imagen para desplazarla hacia la izquierda. El texto que estaba a continuación de la imagen tambien quedará desplazado el mismo número de píxeles.

He añadido transparencia adicional al fondo de la nube para que se vea la superposición sobre la palabra ANCLA.
3b
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
Si desplazásemos aun más la imagen hacia la izquierda, el texto sería arrastrado con ella solapándose con el texto previo.
margin-left:-110px; hace que las palabras ANCLA y volutpat también se solapen.
3c
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
Para el caso anterior añadimos 20px (110-90) margin-right:20px; al margen derecho de la imagen para rectificar la separación con la palabra volutpat.
4
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
Si es conveniente elevamos algunos pixeles la nube definiéndolos como margen inferior margin-bottom:5px; de la imagen.
5
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac
ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
La nube ya estaría correctamente anclada en ANCLA, pero como hemos visto casi desde el inicio, ha quedado desbordada de los contenedores por su parte superior. Si además la palabra ANCLA queda situada al comienzo de línea, la nube se desbordaría también por la izquierda.
6
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac
ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
Añadimos margin-top:30px;margin-left:50px; al contenedor del texto (recuadrado en azul). Si este contenedor no dispone del espacio conveniente, en este caso arriba y a su izquierda, la imagen corre el riesgo de quedar oculta o inconvenientemente desbordada sin solución.

Anulo la transparencia adicional de la nube y quito su fondo gris para ver el efecto final.
resultado
Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ANCLA volutpat fringilla. Cras et sapien ac ipsum volutpat fringilla.
Expando el ancho del contenedor general (recuadrado a trazos verdes) al 100% para que se pueda apreciar como fluye ANCLA y su nube al redimensionar el ancho del navegador.
En resumen:
<div id="Contenedor_General"><div id="Contenedor_Texto" style="margin-top:60px;margin-left:50px;">Suspendisse enim... ...sapien ac ANCLA<img style="margin-top:-86px; margin-left:-90px; margin-bottom:5px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-jjpNgJXvjgW_xyZR6JuwI3ojoYhtg-JvkeVBoHhy_Dwn3Va2MM7UboVO1UnXuxLG8EbNVV9wRDURc5OCMtxWy5dRqU08rObPOfuKvcrkzrQDV2wYFRbywKL4f6N1WwY2u4HNc-G8EZo3/s0/actualizado-18-abr-11.png" /> volutpat fringilla...</div></div>

(Tamaño de la imagen nube = 90*86px)

lunes, 19 de septiembre de 2011

Zoom de las imágenes v2


15 de octubre de 2011. Actualizo este post para indicar que Google ha incluido Lightbox activado por defecto para todos sus usuarios Blogger. Esto interfiere con Shadowbox, salvo que lo desactivemos en el apartado de configuración de nuestro blog:


Este es el segundo método que he usado para lograr el zoom de las imágenes, en los posts publicados a partir de julio de 2011, mientras que la utilidad BrightBox sigue funcionando de forma complementaria en los posts más antiguos. Ahora uso el JavaScript Shadowbox.js 3.0.3 de Michael J. I. Jackson ganando en opciones y estabilidad.

Shadowbox viene con unos cuantos archivos que he hackeado, primero por ser necesario para hacerlo funcionar en blogger, y segundo para activar un par utilidades.

Los archivos de Shadowbox que estoy usando son: la hoja de estilo shadowbox.css, el JavaScript shadowbox.js y las imágenes de control de los zoom loading.gif, close.png, next.png, previus.png, play.png y pause.png. También utilizo la librería json2.js para el hack que explico abajo. Todos ellos deben alojarse en un servidor externo a blogger, yo uso Google sites. Pero antes aplicaremos los hacks.
Es necesario indicar el path absoluto de las imágenes de control de los zoom, indicadas en el archivo shadowbox.css de hojas de estilo, para que Shadowbox funcione en Blogger. Añadir el resto de la URL donde están alojadas las imágenes, en rojo en el ejemplo siguiente:
#sb-loading-inner span{background:url(http://sites.google.com/shadowbox/loading.gif) no-repeat;padding-left:34px;display:inline-block;}
... ... ...
#sb-nav-close{background-image:url(http://sites.google.com/shadowbox/close.png);}
#sb-nav-next{background-image:url(http://sites.google.com/shadowbox/next.png);}
#sb-nav-previous{background-image:url(http://sites.google.com/shadowbox/previous.png);}
#sb-nav-play{background-image:url(http://sites.google.com/shadowbox/play.png);}
#sb-nav-pause{background-image:url(http://sites.google.com/shadowbox/pause.png);}
Este hack de Manfersite permite ajustar las opciones de Shadowbox de forma individual en cada una de las imágenes, objetos en realidad. Añadir el siguiente código en rojo a shadowbox.js
S.applyOptions=function(options) {
lastOptions=apply({}, S.options);
if (typeof options=="string")
try {
options=JSON.parse(options);
}
catch(e) {
// not valid JSON
}

apply(S.options,options);
};
Para asegurar el funcionamiento del hack anterior en versiones de navegadores no muy recientes, es necesario añadir la librería json2.js al conjunto de archivos de Shadowbox.
Este hack (en rojo) al principio del archivo shadowbox.js protege el origen de Shadowbox haciendo que solo funcione si es llamado desde el blog BikerTB:
if(window.location.host!="bikertb.blogspot.com"){exit;}
/*
* Shadowbox.js, version 3.0.3
* http://shadowbox-js.com/
*
* Copyright 2007-2010, Michael J. I. Jackson
* Date: 2011-05-14 15:40:54 +0000
*/
(function(window,undefined){
var S={version:"3.0.3"};
var ua=navigator.userAgent.toLowerCase();
Hacks aplicados, ya podemos subir todos los archivos a un servidor, por ejemplo a Google Sites.
Ahora hay que llamar a los archivos, abajo señalados en rojo, desde la cabecera del blog. Además se pueden indicar varias opciones de funcionamiento, BikerTB tiene configuradas las siguientes, en azul:
<link href='http://sites.google.com/shadowbox/shadowbox.css' rel='stylesheet' type='text/css'/>
<script src='http://sites.google.com/shadowbox/json2.js' type='text/javascript'></script>
<script src='http://sites.google.com/shadowbox/shadowbox.js' type='text/javascript'></script>

<script type='text/javascript'>
Shadowbox.init({

continuous: true,
// paso automático de imágenes
slideshowDelay: 4,
// intervalo del paso
overlayOpacity: 0.8
// opacidad del fondo oscuro
});
</script>

</head>
En BikerTB Shadowbox se usa de las siguientes formas:
Para hacer zoom de una imágen individual:
<a title="Título que presentará la imágen" href="http://servidor.com/blog/imagenGrande.jpg" rel="shadowbox" >
<img src="http://servidor.com/blog/imagenPequena.jpg" /></a>


Para hacer zoom de varias imágenes consecutivas en carrusel:
<a title="Título que presentará la imágen 1" href="http://servidor.com/blog/imagenGrande.jpg" rel="shadowbox[grupo-1]" >
<img src="http://servidor.com/blog/imagenPequena.jpg" /></a>
<a title="Título que presentará la imágen 2" href="http://servidor.com/blog/imagenGrande.jpg" rel="shadowbox[grupo-1]" >
<img src="http://servidor.com/blog/imagenPequena.jpg" /></a>


Zoom de una imágen que solo se verá al activar un carrusel de imágenes:
<a title="Título que presentará la imágen N" href="http://servidor.com/blog/imagenGrande.jpg" rel="shadowbox[grupo-1]" ></a>


Zoom de los mapas. Estos no se redimensionan, siendo necesario mover la imágen para verla completamente:
<a title="Mueva la imágen con el ratón para verla completamente" href="http://servidor.com/blog/imagenGrande.jpg"
rel='shadowbox; options={"handleOversize":"drag"}'
><img src="http://servidor.com/blog/imagenPequena.jpg" /></a>
Referencias: |Google Sites|Manfersite|Librería json2.js|Web Shadowbox.js|
Hardcopy de la web Shadowbox.js a 5-jul-2011: [Home][Download][Support][Usage][Options][API][FAQ][Forum]

sábado, 16 de abril de 2011

Los Mapas de Rutas de BikerTB


Este post está obsoleto, corresponde a la v2.x del API que Google decidió cerrar. Actualmente (10-feb-2014) se utiliza otro código compatible con la v3.x de API.

El mapa de rutas de BikerTB está construido con el API de Google Maps controlado con JavaScript. Google lo permite utilizar gratuitamente bajo determinadas condiciones de licencia que puedes leer al solicitar la API Key, siendo imprescindible para hacerlo funcionar en tu página. Para solicitar la API Key necesitas tener cuenta en Google.

Los tracks estan definidos en ficheros KML que deberemos alojar en algún servidor, por ejemplo en Google Sites. Y se cargan mediante formularios HTML.
Código necesario en la plantilla del blog:
<script type="text/javascript" src="http://www.google.com/jsapi?key=PON_TU_GOOGLE_MAPS_API_KEY_AQUI"></script>
<script type="text/javascript">
    google.load('maps', '2.160');
    var map;
    var geoXml;
    
    function initialize() {
      map = new GMap2(document.getElementById("map"));
// Define la Latitud, Longitud para el centro de tu mapa y el nivel de zoom en la siguiente línea:
      map.setCenter(new GLatLng(45.512654,-4.490452), 5);
// La siguiente línea opcional activa el plugin Earth:
      map.addMapType(G_SATELLITE_3D_MAP);
      map.addMapType(G_PHYSICAL_MAP);
      var mapui = map.getDefaultUI();
      map.setUI(mapui);
      map.setMapType(G_PHYSICAL_MAP);
    }
    
    function loadKml(url) {
      map.clearOverlays();
      geoXml = new GGeoXml(url);
      map.addOverlay(geoXml);
      geoXml.gotoDefaultViewport(map);
    }
</script></head>
<body onload="initialize()" onunload="GUnload">
Crea tus ficheros KML con cada una de tus rutas o grupo de ellas y enlázalas en un post o mejor en una página estática.
Este es el código necesario con los enlaces apuntando a ficheros KML donde estarán descritas las rutas a representar:
<!-- Botones para los mapas de grupo -->
<div style="float:left;"><form id="kmlurl-group" ACTION="#" NAME=EnGrupo>
  <input type="button" onclick="document.SoloUna.reset();
      loadKml('http://ENLACE_A_TU_SITE/Todos-Centro.kmz'); return false;" value="Zona Madrid" />  
  <input type="button" onclick="document.SoloUna.reset();
      loadKml('http://ENLACE_A_TU_SITE/Todos-Alicante.kmz'); return false;" value="Zona Alicante" />
  <input type="button" onclick="document.SoloUna.reset();
      loadKml('http://ENLACE_A_TU_SITE/Todos-Essex.kmz'); return false;" value="Zona Essex" /></form></div><!-- Lista desplegable para los tracks individuales -->
<div><form id="kmlurl" ACTION="#" NAME=SoloUna><SELECT  style="margin: 2px 0 0 15px;" NAME="ruta" ONCHANGE="loadKml(document.SoloUna.ruta.value); return false;">
    <OPTION VALUE="">Rutas individuales:</OPTION>
    <OPTION VALUE="http://ENLACE_A_TU_SITE/ADF-Marmota-Batan.kmz">IBP 94BC: ADF - Puentes Batán y Marmota</OPTION>
    <OPTION VALUE="http://ENLACE_A_TU_SITE/mutxavista-maigmo.kmz">IBP 91BC: Mutxavista - Balcó d'Alacant</OPTION>
    <OPTION VALUE="http://ENLACE_A_TU_SITE/DehesaMoncalvillo.kmz">IBP 77AA: La Dehesa de Moncalvillo</OPTION>
    <OPTION VALUE="http://ENLACE_A_TU_SITE/sifones-jarama.kmz">IBP 74AA: Por el CYII: Los sifones del Jarama</OPTION>
</SELECT></form></div>
<div id="map" class="map" style="height:800px"></div>

lunes, 27 de diciembre de 2010

Posts expandibles


Son los índices que aparecen al solicitar el listado de posts [LOG] o [CHK] en el menú superior del blog de BikerTB. Permiten una navegación más ágil, pudiendose además expandir y contraer una o varias de las entradas de dicho índice al hacer click en la marca [+/-]

Sustituir el siguiente código de la plantilla del blog:
<b:includable id='main' var='top'>
<!-- posts -->
<div class='blog-posts hfeed'>
<b:include data='top' name='status-message'/>
<data:adStart/>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>
<b:include data='post' name='post'/>
Por este otro:
<b:includable id='PeekABooPost' var='post'>
<div class='post uncustomized-post-template'>
<table><tr>

<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
<td width='40px'>
<a expr:onclick='&quot;javascript:toggleIt(\&quot;&quot; + data:post.id + &quot;\&quot;);&quot;' href='javascript:void(0)' style='text-decoration:none' title='Expand/collapse this post'>[+/-]</a>
</td>

</b:if>
<td>
<h3 class='post-title'><a expr:href='data:post.url'><data:post.title/></a></h3>
</td>
</tr></table>

<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
<div class='post-body' expr:id='data:post.id' style='display:none'>
<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>

<b:else/>
<div class='post-body' expr:id='data:post.id' style='display:block'>
<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
</b:if>

</div>
</b:includable>

<b:includable id='main' var='top'>
<!-- posts -->
<div class='blog-posts hfeed'>
<b:include data='top' name='status-message'/>
<data:adStart/>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><data:post.dateHeader/></h2>
</b:if>

<b:if cond='data:blog.homepageUrl != data:blog.url'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:include data='post' name='PeekABooPost'/>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>

<b:include data='post' name='post'/>
</b:if>
Y añadir este pequeño JavaScript en la cabecera que hace expandirse y contraerse las entradas:
<script type='text/javascript'>
function toggleIt(id) {
post = document.getElementById(id);
if (post.style.display != &#39;none&#39;) {
post.style.display = &#39;none&#39;;
} else {
post.style.display = &#39;&#39;;
}
}
</script>

</head>
Si las entradas no se contraen/expanden es posible que falte alguna función. En este caso sustituir el JavaScript anterior por este otro:
<script type='text/javascript'>
// <![CDATA[
function toggleIt(id) {
post = document.getElementById(id);
if (post.style.display != 'none') {
post.style.display = 'none';
} else {
post.style.display = '';
}
}

function showFullPost(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost")
spans[i].style.display = 'inline';
if (spans[i].id == "readmore")
spans[i].style.display = 'none';
}
}

var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}

function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}

function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i < spans.length; i++) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") && (found == 0))
spans[i].style.display = 'none';
}
}

function commentDisplay(json) {
for (var i = 0; i < numcomments; i++) {
var entry = json.feed.entry[i];
var alturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
break;
}
}
alturl = alturl.replace("#", "#comment-");

if (entry.content) {
comment = entry.content.$t;
} else if (entry.summary) {
comment = entry.summary.$t;
}

var re = /<\S[^>]*>/g;
comment = comment.replace(re, "");
document.write('<a href="' + alturl + '">' + entry.author[0].name.$t + '</a> commented:<br/>');
if (comment.length < numchars)
document.write(comment + '<br/><br/>');
else
document.write(comment.substring(0, numchars) + '...<br/><br/>');
}
}
//]]>
</script>

</head>

martes, 17 de agosto de 2010

La cabecera de BikerTB


Zoom

La cabecera está basada en la plantilla estándar Blogger Sand Dollar de Jason Sutter ligeramente retocada.

La altura de la cabecera se ha modificado fijándose en 113px según se indica en el post Redimensionado de los elementos principales.

El título y subtítulo conservan el diseño original de la plantilla. No se ha variado la fuente, el color ni el tamaño.

ZoomGráfico del ciclista de madera pasando bajo la cubierta MTB. La cubierta se sacó de un catálogo online recortándola adecuadamente, creo recordar que era de las cubiertas que monté en ese momento, unas Specialized The Captain Control 2Bliss. El ciclista es parte de un montable que venden en "los chinos" y que alguien me regaló. La composición se grabó en una imágen con formato PNG y fondo transparente, fijándola en la esquina superior derecha del blog. Redimensiona la ventana del navegador para comprobar como la imágen permanece fija allí.

Este es el código de posicionamiento absoluto de la imágen insertado como se ve después de la etiqueta BODY:
<body>
<div><img style="POSITION: absolute; TOP: 0px; RIGHT: 40px; WIDTH: 530px; HEIGHT: 113px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUwNgAhiliVvNVhnuWnE7VX8GXw7p_fvxnzWuWm4G6C1gpMO0e0nbVgc0DakKuv4lpZqMYp8KTVZFpovpqzfB41muQuVnn4I75rQbHBlvhgQmDzOKGKBQU49jPObWN_SGe9p6w11aKIww/" /></div>
El menú de la cabecera sólo es codigo HTML en un gadget estándar de texto.
<div style="border-bottom: 1px dotted; color: rgb(224, 173, 18);" ><span style="font-weight: bold;"><span style="color: rgb(255, 0, 0);">· </span><a style="text-decoration: none;" href="http://bikertb.blogspot.com/">INICIO</a> <span style="color: rgb(255, 0, 0);">·</span> <a style="text-decoration: none;" href="http://bikertb.blogspot.com/search/label/%5BKDD%5D">[KDD] LLAMADAS</a> <span style="color: rgb(255, 0, 0);">·</span> <a style="text-decoration: none;" href="http://bikertb.blogspot.com/search/label/%5BLOG%5D">[LOG] CRÓNICAS</a> <span style="color: rgb(255, 0, 0);">· </span><a style="text-decoration: none;" href="http://bikertb.blogspot.com/search/label/%5BCHK%5D">[CHK] PRUEBAS</a> <span style="color: rgb(255, 0, 0);">·</span> <a style="text-decoration: none;" href="http://bikertb.blogspot.com/search/label/%5BQUE%5D">[QUE] EN COLA</a> <span style="color: rgb(255, 0, 0);">·</span> <a style="text-decoration: none;" href="http://bikertb.blogspot.com/p/enviar-un-mensaje-bikertb.html">CONTACTO</a> <span style="color: rgb(255, 0, 0);">·</span></span></div>

miércoles, 12 de mayo de 2010

Los pies de post


Adorno el pie de post metiéndolo en un recuadro blanco y delimitándolo por debajo con una línea de puntos naranja.

Añadir el siguiente código (en rojo) a la clase .post-footer
.post-footer {
padding:0px;
margin:0px;
color:$footercolor;
font-size:80%; padding:5px; /* Añado algo de espacio texto-borde */
background-color:#ffffff;
border-bottom-color:#e0ad12;
border-bottom-style:dotted;
border-bottom-width:1px;

}

Y además modifico la forma de presentación del número de comentarios en el pie de post sustituyendo el siguiente código en azul:
</span>
<span class='post-comment-link'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:if cond='data:post.allowComments'>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1<data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>
</b:if>
</span>
<span class='post--icons'>

Por el siguiente código en rojo:
</span>
<span class='post-comment-link'>
<b:if cond='data:blog.pageType != &quot;item&quot;'>
<b:if cond='data:post.allowComments'>
<b:if cond='data:post.numComments == 1'>1 Comentario
<b:else/><data:post.numComments/><data:top.commentLabelPlural/>
</b:if>
<a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>(VER LOS COMENTARIOS Y/O ESCRIBIR UNO)</a>

</b:if>
</b:if>
</span>
<span class='post--icons'>

lunes, 3 de mayo de 2010

Imágenes Picasa y sus thumbnails


POST OBSOLETO. El 11 de diciembre de 2011, Google modificó el funcionamiento de descarga de las imagenes en Picassa Web. Ahora se puede descargar un thumbnail en cualquier tamaño hasta un máximo de 1600px.

Una imágen subida a Picasa se reducirá a 1600px en su lado de mayor longitud, el lado más corto se reduce proporcionalmente. Si la imágen es GIF y mide más de 1600px, además se convertirá a PNG.

Picasa puede presentar 22 thumbnails que tienen el lado mayor en estos tamaños N:
32, 48, 64, 72, 94, 104, 110, 128, 144, 150, 160, 200, 220, 288, 320, 400, 512, 576, 640, 720, 800 y 1600 pixels.

Según mi criterio una foto se vería adecuadamente presentada en un tamaño máximo 800x600px. Los tamaños resultantes de los thumbnails en este caso serían:
32x24, 48x36, 64x48, 72x54, 94x70, 104x78, 110x82, 128x96, 144x108, 150x112, 160x120, 200x150, 220x165, 288x216, 320x240, 400x300, 512x348, 576x432, 640x480, 720x540 y 800x600 pixels.

En cualquier caso y siempre según mi criterio, la imágen no debería medir más de 600px de alto, a menos que tengamos un sistema de ajuste a la ventana del navegador (ver por ejemplo Zoom de las imágenes)

El path absoluto a cada thumbnail lo podemos obtener del path absoluto a la imágen, insertando sN/, justo antes del nombre de la imágen, donde N es uno de los valores indicados anteriormente:

Path absoluto a una imágen 800x600px subida a Picasa:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/
Path absoluto a los thumbnails:
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s32/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s48/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s64/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s72/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s94/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s104/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s110/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s128/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s144/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s150/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s160/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s200/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s220/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s288/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s320/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s400/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s512/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s576/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s640/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s720/800x600.gif
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s800/800x600.gif

El tamaño máximo que podríamos indicar será s1600:

https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQqUeHD6N7heqNe0i3pWznAv8P6jlMXm-JA_ttU1IuqVhR6Cy9oKGbrm6CY4wToqEVX-T9uedWSoecAX8Ay6Ggv3mRRJJ4NbQAyiI9kSyqas3z8hFaFTAs8zJUPottQI02j-RtERmuH6Q/s1600/800x600.gif

Si indicamos un tamaño s1600, la imágen será presentada en su tamaño máximo con el zoom de ajustar al tamaño de la ventana del navegador desactivado:

sábado, 24 de abril de 2010

Aviso pop-up asociado a un post

¡ Zona hostil para manazas !


Modificar el código de la plantilla puede ser perjudicial para el funcionamiento correcto de tu blog. Sólo deberías continuar si estás seguro de lo que estás haciendo.


Código para generar un aviso pop-up asociado a un determinado post. Se inicia con CSS y el usuario lo hace desaparecer con un pequeño JavaScript, por lo tanto es indetectable por los sistemas de protección anti-pop-up de los navegadores.
Agregar el siguiente código CSS (en rojo) a la plantilla del blog:
<style id='page-skin-1' type='text/css'><!--
.black_overlay{
display: block;
position: fixed;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background-color: black;
z-index:1001;
-moz-opacity: 0.8;
opacity:.80;
filter: alpha(opacity=80);
}
.white_content {
display: block;
position: fixed;
top: 25%;
left: 25%;
width: 50%;
height: 20%;
padding: 16px;
border: 16px solid orange;
background-color: white;
z-index:1002;
overflow: auto;
}

Agregar el siguiente código (en rojo) en el inicio del post:
<div id="light" class="white_content">¡ Zona hostil para manazas !<br />Modificar el código de la plantilla puede ser perjudicial para ... <a href="javascript:void(0)" onclick="document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'">Cerrar aviso</a></div><br /><div id="fade" class="black_overlay"></div>

viernes, 23 de abril de 2010

Zoom de las imágenes


El zoom al hacer click sobre las imágenes se consigue con el JavaScript BrighBox que hay que poner en la plantilla justo antes de la etiqueta de fin de cabecera.
<script src='http://sites.google.com/site/bikertb/ficheros-para-el-blog/BrightBox_v2.0_compressed2.js' type='text/javascript'></script>
</head>
El thumbnail (img) de la imagen debe estar encerrado en un ancla (a) con la propiedad onblur definida con el valor que aparece a continuación. El ancla debe apuntar a la imagen ampliada.
<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/_5SvLLd6obBo/ESRrptIEHNI/s0/Picos_de_Europa-DSC0574.JPG"><img src="http://lh5.ggpht.com/_5SvLLd6obBo/ESRrptIEHNI/s220/Picos_de_Europa-DSC0574.JPG" /></a>
Algunos editores blogger wysiwyg introducen el parámetro onblur con el valor adecuado de forma autómatica, si no ocurre esto, hay que ponerlo a mano.

Este es un pequeño hack que modifica el JavaScript, para que el caption de la imágen ampliada tenga 12pt y una fuente Verdana, Arial o Sans-serif (buscar el código en azul y sustituirlo por el rojo):
imageText.style.fontSize = parseInt(bottomBuffer * 0.3) + "px";

imageText.style.fontSize = parseInt(bottomBuffer * 0.2) + "px";imageText.style.fontFamily = "Verdana, Arial, Sans-serif";
Ejemplo de imagen ampliable:
Zoom

Puedes encontrar BrightBox en AI projects o coger el mío. No olvides abrir el código y customizarlo.


NOTA: Para las imágenes de los post posteriores a julio de 2011 se empezó a usar Shadowbox.

jueves, 22 de abril de 2010

Mantener un post siempre en cabeza


Hacer que un post sea siempre el primero en aparecer cuando nos conectemos a la home-page del blog es simple.
  1. Crea el post.
  2. Publícalo.
  3. Edítalo. En "Opciones de entrada" pon una fecha en el futuro.
  4. Vuelve a publicarlo.
El post se mantendrá siempre en primer lugar hasta que exista otro con una fecha posterior.


miércoles, 21 de abril de 2010

Blockquotes / citas textuales

Formato para blockquote de los post definido en la sección CSS de la plantilla.
.post blockquote {
margin: 10px 10px 6px 0px;
width: 50%;
background: transparent url(http://lh3.ggpht.com/_5SvLLd6obBo/quoleft.png) left top no-repeat;
float: left;
position: relative;
}
.post blockquote div {
padding: 0 48px;
background: transparent url(http://lh3.ggpht.com/_5SvLLd6obBo/quoright.png) right bottom no-repeat;
font: normal 80% /1.7em verdana, helvetica, sans-serif;
color: #5f5f5f;
text-align: justify;
}
Código html para el blockquote.
<blockquote cite="http://www.lipsum.com"><div>Quisque ... ... ...in massa.</div></blockquote>

Como se ve se usan dos imágenes (quoleft.png y quoright.png) para simular las comillas de apertura y cierre que tendremos que situar en algún sitio, por ejemplo en Picasa. La primera se posiciona de forma absoluta dentro del elemento blockquote, y la segunda está posicionada en la esquina inferior derecha como imágen de fondo de dicho elemento.

En el texto de ejemplo siguiente, el código html del blockquote se encuentra justo al terminar la frase en azul y antes de empezar la frase en naranja. Redimensiona la ventana del navegador para ver como fluye el texto alrededor del blockquote.


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lorem lacus, adipiscing vel volutpat ac, egestas id enim. Nulla elit felis, iaculis id interdum at, euismod at enim. Morbi eget mauris velit. Aliquam arcu neque, auctor in tempus ut, condimentum quis libero. Ut tellus lacus, rhoncus ac adipiscing ut, convallis a lectus. Praesent ut odio neque, sit amet lobortis ante. Vestibulum ac semper sem. Curabitur sed lacus ut magna lobortis luctus. Pellentesque turpis est, blandit eu aliquam in, accumsan eu urna. Nullam vel mi nec massa sagittis fermentum id in lectus. Quisque blandit posuere metus ut ultrices.

Cras justo nisi, vulputate non vulputate a, iaculis nec nunc. Nullam nec leo eget tellus facilisis sodales. Vivamus posuere varius libero, sit amet faucibus risus dapibus id. Nullam a laoreet orci. Suspendisse urna massa, pretium vestibulum scelerisque sit amet, dictum ac risus. Cras tempor dui enim. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Quisque quis purus sem, sed elementum metus. Curabitur vehicula lacinia risus ut vestibulum. Ut quis massa vel odio tincidunt blandit. Nam tempus purus quis elit tempor ut condimentum tortor imperdiet. Fusce purus erat, vehicula quis ornare et, fringilla nec augue. Curabitur convallis libero eget libero egestas id condimentum nibh vestibulum. Donec mollis fringilla congue. Nulla placerat suscipit felis, varius scelerisque dui euismod non. Nulla nulla leo, adipiscing a suscipit lobortis, cursus quis libero. Curabitur eget iaculis tortor. Pellentesque eget nunc et nisi sagittis rutrum id eget elit. In dui lacus, ornare eleifend sagittis sit amet, laoreet eget dolor. Ut enim augue, pellentesque ac faucibus vitae, varius in massa.
Nunc faucibus urna ut nisl porta vitae cursus massa dictum. Aenean nulla odio, placerat eu facilisis a, semper et sem. Ut placerat arcu ac augue lacinia lacinia quis sed tortor.

Sed euismod facilisis neque. Duis cursus, justo a imperdiet molestie, erat nibh malesuada orci, at lobortis diam quam quis leo. Phasellus blandit tristique purus, in varius urna pellentesque vel. Ut tempus consectetur massa eget euismod. Nulla facilisi. Morbi congue luctus ultrices. Nullam nibh sapien, tristique eu sagittis rhoncus, facilisis in orci.

Nunc venenatis, felis sit amet dictum consectetur, dolor nisi dignissim eros, sed molestie ante quam vel lacus. Phasellus varius molestie dolor, a tempus tellus ultricies sit amet. Suspendisse enim elit, auctor rhoncus tempus posuere, pulvinar vitae metus. Integer nec mi sit amet felis ultricies interdum. Curabitur laoreet pretium elit, eget commodo justo mollis in. Aenean laoreet dolor ac sapien pretium pellentesque. Cras et sapien ac ipsum volutpat fringilla. Mauris condimentum gravida massa, eu auctor ligula auctor vehicula. Morbi eu magna lorem. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed quam arcu, tempus ut fringilla varius, dignissim mattis ipsum. Fusce quis dui augue, at aliquet nunc. Donec ultricies augue nec lacus sollicitudin sit amet fringilla enim vestibulum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla facilisi. In vehicula dignissim tortor eu auctor. Morbi fringilla lacinia posuere. Praesent vitae ultricies lorem.

Pellentesque mollis, nunc a ullamcorper eleifend, tortor tellus rhoncus diam, eget pulvinar ligula mauris sed tortor. Nam sit amet nisi urna, quis tempor arcu. Ut sollicitudin venenatis commodo. Duis luctus nulla et massa viverra nec posuere massa ornare. Curabitur vel leo non est sollicitudin ultricies a sit amet neque. Nullam luctus placerat placerat. Vestibulum adipiscing, orci sed porttitor facilisis, lorem odio hendrerit justo, eu sodales velit felis in risus. Aliquam iaculis congue nulla, sit amet viverra odio tincidunt ac. Integer sollicitudin imperdiet neque varius vestibulum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras porttitor molestie elementum.

lunes, 19 de abril de 2010

Redimensionado de los elementos principales


Las dimensiones de la cabecera, zona de menús, zona de posts, etc., se definen en la plantilla del blog.
... ... ...
@media all {
div#main {
float:right;
width:73%; /* amplio el ancho de la zona de posts de 66% a 73% */
padding-top:30px;
padding-right:0;
padding-bottom:10px;
padding-left:1em;
border-left:dotted 1px #e0ad12;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
div#sidebar {
margin-top:20px;
margin-right:0px;
margin-bottom:0px;
margin-left:0;
padding:0px;
text-align:left;
float: left;
width: 24%; /* reduzco el ancho de la barra de menú de 31% a 24% */
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
}
... ... ...
#header {
height:113px; /* añado esta línea para fijar la altura de la cabecera */
padding-top:0px;
padding-right:0px;
padding-bottom:0px;
padding-left:0px;
margin-top:0px;
margin-right:0px;
margin-bottom:0px;
margin-left:0px;
border-bottom:dotted 1px #e0ad12;
background:#F5E39e;
}

domingo, 18 de abril de 2010

Efecto pelar esquina


Ficheros necesarios.
peel.js - JavaScript de carga
peel-large.swf - flash efecto desplegado
peeel-small.swf - flash efecto plegado
peel-ojo.jpg - imágen efecto plegado
peel-needs-you.jpg - imágen efecto desplegado

Blogger no deja guardar estos ficheros así que los situamos en otro servidor, por ejemplo en http://sites.google.com

Pero antes debemos modificar el script peel.js con los enlaces correctos (en rojo).
var jaaspeel = new Object();

jaaspeel.ad_url = escape('http://redmtb.wordpress.com'); /* <--página que aparecerá al hacer click sobre el desplegado */

jaaspeel.small_path = 'http://sites.google.com/site/bikertb/ficheros-para-el-blog/peel-small.swf';
jaaspeel.small_image = escape('http://sites.google.com/site/bikertb/ficheros-para-el-blog/peel-ojo.jpg');
jaaspeel.small_width = '100';
jaaspeel.small_height = '100';
jaaspeel.small_params = 'ico=' + jaaspeel.small_image;

jaaspeel.big_path = 'http://sites.google.com/site/bikertb/ficheros-para-el-blog/peel-large.swf';
jaaspeel.big_image = escape('http://sites.google.com/site/bikertb/ficheros-para-el-blog/peel-needs-you.jpg');
jaaspeel.big_width = '550';
jaaspeel.big_height = '550';

Agregamos el siguiente código (en rojo) a la plantilla del blog justo después de la etiqueta body.
<body>
<script src='http://sites.google.com/site/bikertb/ficheros-para-el-blog/peel.js' type='text/javascript'></script>

El buscador de BikerTB


El buscador de BikerTB es una pequeña customización del gadget "Cuadro de búsqueda" que podemos encontrar entre los disponibles.
Gadget de búsqueda Google


La presentación original del gadget en nuestra página sería esta:
diseño original


El siguiente código CSS (en rojo) customiza la caja de búsqueda tal y como aparece en BikerTB.
<style id='page-skin-1' type='text/css'><!--
.gsc-branding-text, .gsc-branding-img-noclear {
display:none;
}
input.gsc-search-button {
display:none;
}
input.gsc-input {
background: url(http://lh6.ggpht.com/_5SvLLd6obBo/TIqlsPhvm8I/buscar.gif) no-repeat;
background-color:#fff;
}
input.gsc-input:focus,input.gsc-input:hover {
background: #fff;
outline: none
}
Con este resultado:
Buscador BikerTB

Y el siguiente código CSS (en rojo) hace una customización alternativa.
<style id='page-skin-1' type='text/css'><!--
.gsc-branding-text, .gsc-branding-img-noclear {
display:none;
}
input.gsc-search-button {
color: #FFF;
background: #FF55AA;
border: 1px solid #ff0084;
}
input.gsc-input {
border: 2px solid #D8FFEB !important;
}
Mostrandose así:
diseño opcional

Donde:
gsc-branding-text - Define la presentación del texto "con la tecnología de"
gsc-branding-img-noclear - Controla la imágen "Google"
input.gsc-search-button - Define el botón de búsqueda.
input.gsc-input - Define el formato de la caja de búsqueda.