JMiur [E]

El tema de las tan mentadas mudanzas y los alojamientos inconstantes me provocó varios dolores de cabeza. Es que, dada la forma en que hago las cosas, no se trataba sólo de reubicar archivos y modificar los enlaces. Muchísimas entradas tienen scripts individuales que son los que uso como modelo o ejemplo para tal o cual cosa. No podrían agregarse a la plantilla porque lo único que se conseguiría es un volumen inmanejable de códigos que no son de uso corriente sino eventual, sólo se ejecutan en una entrada en particular. Para estos casos, no hay más remedio que usar archivos externos.

Cambiarlos de un sitio a otro es tedioso pero a esto le sumamos un segundo inconveniente, hay que editar esas entradas individuales y volverlas a publicar ¡Sólo encontrarlas ya es un problema!!!

Comencé a hacerlo y decidí detenerme porque pensé: "Ahora lo hago ¿y la próxima vez?" Ya van tres veces, esta debe ser la última.

Entonces, se me ocurrió que lo mejor era ... usar otro script ... combatir fuego con fuego.

La idea era esta. En lugar de tener que escribir algo como:
<script src="http://.../unScript.js"></script>
Tal vez fuera posible tener alguna clase de lista o índice y una fucnión que escribiera automáticamente el código ese en una entrada, diciéndole algo así como aquí va el script número 24. De esa manera, no habría que modificar jamás el post, bastaría cambiar esa lista.

Al grano. Lo que hice fue agregar un elemento HTML al inicio de la plantilla en esa sección especial que alguna vez comenté:
<b:section class='contenedorScripts' id='contenedorScripts'/>
Y allí coloco la función:
<script type="text/javascript">
function leerScript(cual) {
scriptLISTA=new Array(
// esta es la lista con las direcciones URL de los diferentes scripts en uso
0,"", // no lo uso
1,"http://.../unScript.js",
2,"http://.../otroScript.txt",
.......
49,"http://.../cualquierScript.txt"
);
regNum = cual * 2 +1;
document.write('<script src="' + scriptLISTA[regNum] + '"><\/script>');
}
</script>
Cada uno tiene la misma estructura: un número de orden correlativo, una coma y la dirección URL entre comillas. Terminan todas con una coma excepto la última que no debe tenerla.

En las entradas o donde se nos ocurra, podemos cargar el script de este modo:
<script>leerScript(unNumero);</script>
así que:
<script>leerScript(49);</script>
cargará el script que está alojado en http://.../cualquierScript.txt

De esta forma, si el archivo es modificado, ya sea en su contenido o en su ubicación, basta modificar la lista para que siga funcionando.

Una variante es la que me propuso Nico, en lugar de utilizar un array con una lista correlativa idenficada con números, usar variables con un nombre exclusivo, algo que puede ser útil si se trata de algunos pocos scripts. Por ejemplo:
<script type="text/javascript">
// primero definimos los nombres
var animcollapse = "http://.../unScript.js";
var emoticones = "http://.../otroScript.txt";

// luego la función
function leerScript(cual) {
document.write('<script src="' + cual + '"><\/script>');
}
</script>
Y si quisiéramos usar el script de emoticones, lo cargaríamos así:
<script>leerScript(emoticones);</script>
Sea cual sea el método, debe tenerse en cuenta que la función siempre debe estar antes que su llamada porque sino, no funcionará.

17 comentarios:

Manuel de la Fuente  

Ambas propuestas son muy buenas. Quizás podría aplicarse una combinación de ambas: una lista por nombres y un número antes de ellos para tenerla más ordenada.

Responder
Turko  

Por cierto, ahora se me ocurrió usar la variante de Nico, pero no para los scripts, si no para los Emoticones, ya que hoy Photobucket me retiró una imagen.

La cambié a imageshack, y con el mismo sistema, en un solo lugar reemplacé la URL de la imagen.

Así ya no tendré que modificar post por post.! :)

<script>leerImagen(smile);</script>

Responder
Unknown  

:P sabes que me cuesta analizar las entradas :P...incorporar a la plantilla como dices está muy bien!!!. Estuve mirando mis entradas antiguas, son un horror!!!, cuando empecé no había determinado la letra, encima ponía comics, en otras arial...un horror. No me pondré a corregir todo, seguramente dentro de un año diré, qué feo se veía en el 2009...besos!!!

Responder
Gem@  

Funciona perfecto :)

Responder
JMiur  

Manuel: da lo mismo cualquiera de ellas o combinarlas, mientras nos resulte sencillo organizarlas, cualquiera es válida.

Lo de los emoticones es una buena idea, Turko :)

Responder
Anahí  

Esto me parece más que genial, pero hay algo que no entiendo, JMiur: ¿sirve para los scripts que ya están en uso? Digo, si yo incluyo lightwindows en la lista, ¿tengo que modificar los posts que lo usan, les tengo que modificar la llamada en el post?
Gracias y saludos.

Responder
JMiur  

No, Anahí. Esto, sólo sirve apra reemplazar cosas como esta:

<script src="http://.../unScript.js"></script>

El resto no cambia.

Responder
Claudio - Poca Tinta  

Maestro esto es genialNo me queda mas que aplaudir yo estaba vinculando los scripts.txt de forma directa pero con esta lista queda mucho mejor.

Slds

Responder
JMiur  

Es lo que estoy usando, claudio, funciona muy bien y es muy cómodo.

Responder
Maverick Panditas  

Hola JMiur, tengo una duda que seguramente no tiene nada que ver con el tema de este post, pero no sabía dónde dejarlo, así que cuando lo leas, si gustas bórralo. Mi duda es si existe alguna de condicionar la aparición de un segmento del contenido de un post con el número de comentarios. Ejemplo: Que sólo cuando haya más de dos comentarios aparezca un texto que se haya oculto.
Gracias por anticipado sea cual sea la respuesta.

Responder
JMiur  

Que aparezca un texto dentro del post, no veo forma. Que aparezca debajo del post si, eso es posible.

Por el lugar dónde escribir, no te preocupes, da lo misco acá que en cualquier otra parte :D

Responder
Shark_Bloody  

JMuir, en otro comentario te pregunte por esta entrada que milagrosamente acabo de encontrar.

Necesito hacer algo parecido, tengo un widget que modifico demasiado seguido. Lo que cambia es una imagen que uso como fondo, la sintaxis seria mas o menos así:

<table><tbody><tr>

<td><a href="URL"><img src="URL" style="background: url(LA IMAGEN QUE CAMBIA) scroll Xpx Xpx"/></a></td>

[LA CELDA SE REPITE MUCHAS VESES]

</tr></tbody></table>

El problema es que cada ves que cambio la imagen tengo que modificar propiedad por propiedad

¿Hay alguna forma de utilizar este mismo método para cargar la url de la imagen de fondo?


PD: No se si el comentario anterior salio, si es asi te pido disculpas.

Responder
JMiur  

Tendría que entender un poco más la idea ¿Es porque style="background: url(LA IMAGEN QUE CAMBIA) scroll Xpx Xpx" se repite en muchas celdas de la tabla y debes cambair esa URL en varias líneas?

Si es así, más que un script te convendía usar una clase CSS. Deliro un poco :D

Supongamos que la imagen esa mide 200x100. Coloco esto en la celda:

<td><a class="enlaceTabla" href="URL"> </a></td>

Es un enlace sin imagen y sin texto. Ahora, defino esto:

a.enlaceTabla {
display: block;
width:200px;
height:100px;
background: url(LA IMAGEN QUE CAMBIA) scroll Xpx Xpx;
}

Hago que ese enlace vacio sea un rectángulo con un fondo.
De esa manera, cambio la URL de la imagen sólo en el CSS.

Responder
Shark_Bloody  

Si, es una excelente idea, sin embargo la descarte porque el código cambia en cada celda, cosa que olvide mencionar :$

celda 1 : style="background: url(LA IMAGEN QUE CAMBIA) scroll -16px 0px"

celda 2 : style="background: url(LA IMAGEN QUE CAMBIA) scroll -32px 0px"

y asi...

De momento lo solucione utilizando Yahoo Geocities, pero no me gusta depender demasiado de un alojamiento externo, porque si cambian la forma de guardar los archivos, chau a mi solución.

Espero me puedas dar una mano para encontrar una solución definitiva.

Responder
JMiur  

Pienso en voz alta y digo ¿si sólo cambia la posición del fondo podría hacer algo así?

<td><a class="enlaceTabla" href="URL" style="background-position: -16px 0;"> </a></td>

<td><a class="enlaceTabla" href="URL" style="background-position: -32px 0;"> </a></td>

........

Es decir, sigo creando la clase genérica donde está definida la imagen de fondo pero, sobrescribo con STYLE la posición de ese fondo en cada celda.

Responder
Shark_Bloody  

Exelente, me habia olvidado de esa propiedad. En verdad eres genial. :D

Responder
JMiur  

Me alegro que la idea sirviera :D

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR