jueves, 11 de marzo de 2010

Cambiar las entradas de manera dinámica - Vagabundia


Cambiar las entradas de manera dinámica



JMiur 


El hecho que Blogger no disponga de un alojamiento de archivos mínimo para sus usuarios nos provoca más de un problema; sobre todo, porque si bien existen otros servicios que pueden usarse, estos suelen tener problemas, circunstanciales o permanentes y, más de una vez, nos hemos visto en la necesidad de trasladar información de un lado a otro como nómadas 2.0.

Editar algunos posts es molesto, editar cien una tortura; si hay más ... garantía segura de internación en un neuropsiquiátrico.

Cuando elegimos un servicio para alojar archivos, sería bueno que verificáramos que tipo de dirección URL nos dará para esos archivos ya que, dependiendo de eso, podremos redireccionarlos de uno a otro servidor de manera sencilla, sin tener que editar cada entrada.

No importa tanto la dirección en si misma, puede ser larga o corta, lo importante es que podamos identificarlas fácilmente y que contenga el nombre del archivo.

Unos ejemplos.

esta es la dirección que provee Fileden:
http://www.fileden.com/files/XXXX/X/XX/XXXXXX/nombrearchivo

esta es la dirección que provee Google Sites:
https://sites.google.com/site/XXXXXXX/Home/nombrearchivo

esta es la que nos da el no-sabe-si-difunto Google Pages Creator:
http://XXXXXXX.googlepages.com/nombrearchivo

Lo mismo pasa con los servicios que alojan imágenes como Photobucket:
http://XXX.photobucket.com/albums/XXX/XXXXXXX/nombrearchivo

o las carpetas de SkyDrive:
http://XXXXXXX.skydrive.live.com/browse.aspx/CARPETA

Por el contrario, en el caso de SkyDrive, Picasa o el mismo Blogger, las URLs a los archivos varian aún cuando estén en "la misma carpeta" de la misma cuenta o, como en el caso de ImageShack, se le agregan caracteres aleatorios al final del nombre del archivo. Peor aún, sitios como DivShare o TynyPic generan direcciones crípticas:
http://www.divshare.com/playlist/611439-da0
http://XXX.tinypic.com/2m0adu.jpg

Siempre que tengamos alojados los archivos en servidores que nos brinden direcciones amigables como las primeras, podremos redireccionar esos archivos de manera sencilla utilizando JavaScript. Por ejemplo, imaginemos que (tal como ocurrió) mis archivos de descarga estuvieran en esta dirección:
http://XXXXXXX.googlepages.com/nombrearchivo
y luego de algún colpaso los hubiera subido a este otro servicio:
http://www.fileden.com/files/XXXX/XX/X/XXXXXXX/nombrearchivo

Para redireccionarlos, debería cambiar la primera parte de la URL y mantener el nombre intacto así que podría crear una función y colocarla antes de </head>:
<script type='text/javascript'>
//<![CDATA[
function redirArchivos(idPOST) {
var divVerificar = "post-" + idPOST;
var contenido = document.getElementById(divVerificar);
if(contenido!=null) {
var listaEnlaces = contenido.getElementsByTagName("a");
if(listaEnlaces.length>0){
for(var i=0; i<listaEnlaces.length; ++i) {
enlace = listaEnlaces[i].href;
// leo los primeros 31 caracteres de cada enlace
if(enlace.substring(0,31)=="http://XXXXXXX.googlepages.com/"){
// cambio la dirección y dejo el mismo archivo
enlace = "http://www.fileden.com/files/XXXX/XX/X/XXXXXXX/" + enlace.substring(31);
// y re-escribo la nueva dirección en el enlace
listaEnlaces[i].href = enlace;
}
}
}
}
}
//]]>
</script>
Sólo faltaría llamar a la función y eso lo podemos hacer en el LOOP de Blogger:
<div class='post-body' expr:id='&quot;post-&quot; + data:post.id'>
<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<script type='text/javascript'>redirArchivos(&#39;<data:post.id/>&#39;);</script>
Claro, la vida sería más sencilla si Blogger nos diera unos miserables megas para alojar archivos ...

Con el mismo criterio, podríamos resolver más cosas, problemas como el que se hablaba en la última entrada con el reproductor de Goear. Allí, el tema no pasaba por cambair al dirección URL sino adosarle un parámetro extra. Cambiar esto:

http://www.goear.com/files/external.swf?file=357e31b

por esto:

http://www.goear.com/files/external.swf?file=357e31b&autoplay=0

Usamos una función nueva para detectar, ya no el enlace sino la etiqueta EMBED y adosarle al parámetro SRC, el dato que falta:
<script type='text/javascript'>
//<![CDATA[
// ADOSAR &AUTOPLAY A GOEAR
function rewriteGOEAR(idPOST) {
var divVerificar = "post-" + idPOST;
var contenido = document.getElementById(divVerificar);
var listaObjetos = contenido.getElementsByTagName("embed");
if(listaObjetos.length>0){
for(var i=0; i<listaObjetos.length; ++i) {
url = listaObjetos[i].src;
url = url + "&autoplay=0";
listaObjetos[i].src = url;
}
}
}

//]]>
</script>
Ahora, nos falta que se ejecute la función y al igual que en los casos anteriores, buscamos las entradas y la llamamos:
<div class='post-body' expr:id='&quot;post-&quot; + data:post.id'>
<p><data:post.body/></p>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<script type='text/javascript'>rewriteGOEAR(&#39;<data:post.id/>&#39;);</script>
De este modo, los códigos de los posts se modificarán de manera dinámica sin que tengamos que editarlos uno por uno.
JMiur 14
Sí. Se podría hacer. En ese caso, más que cambair el enlace imagino que lo que quieres cambiar es la imagen para que apunte a la nueva

function redirImagen(idPOST) {
var divVerificar = "post-" + idPOST;
var contenido = document.getElementById(divVerificar);
if(contenido!=null) {
var listaImagenes = contenido.getElementsByTagName("img");
if(listaImagenes.length>0){
for(var i=0; iredirImagen(&#amp;39;<data:post.id/>&#39;);</script>

Todo esto dicho un poco en el aire ya que no sé cuál es el ejemplo concreto.

Lo que sí te aconsejo es, para evitar esos problemas, usar el CSS. Por ejemplo si estás colcoando algo así:

<a href="xxxxxxxxxxxx">
<img src="MI_IMAGEN">
</a>

en el fututo, puedes cambairlo así:

<a class="ejempo" href="xxxxxxxxxxxx"></a>

y usar este tipo de regla de estilo en la palntilla:

a.ejemplo {
display:block;
background: transparent url(MI_IMAGEN) no-repeat left top;
width: ANCHOpx;
height; ALTOpx;
}

y de ese modo, cualquier cambio, sólo deberías hacerlo en la platilla una vez para que se aplicara a todas las entradas donde usaras ese tipo de enlaces.



















TABLA - FUENTES - FONTS


SOUV2BalaramScaGoudyFOLIO 4.2Biblica Font








free counters


Disculpen las Molestias




TABLA - INFORMÁTICA - UTILIDADES

No hay comentarios:

Publicar un comentario

Correo Vaishnava