[Zope-es] Javascript en Plone

tono josedavid18 en hotmail.com
Jue Mayo 22 10:00:59 CEST 2008


Santiago disculpa mi ignorancia pero no soy capaz de conseguirlo. 

Tengo el siguiente código, que funciona perfectamente (lo acabo de probar en explorer y en mozilla), pero no consigo insertarlo, ni directamente en el main template, ni tampoco a través de portal_javascript. 

Te dejo el código a ver si puedes echarme un cable. 

Un saludo. 

<html>
<head>
<!-- PRIMER PASO: Copiar dentro del tag HEAD -->
<style type="text/css">
#divNewsCont{position:absolute; width:350; height:150; overflow:hidden; top:260; left:140; clip:rect(0,350,150,0); visibility:hidden}
#divNewsText{position:absolute; top:0; left:0}
</style>

<script type="text/javascript" language="JavaScript">
/*
Thomas Brattli 
*/
// Courtesy of SimplytheBest.net (http://simplythebest.net/info/dhtml_scripts.html)
function checkBrowser(){
 this.ver=navigator.appVersion
 this.dom=document.getElementById?1:0
 this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
 this.ie4=(document.all && !this.dom)?1:0;
 this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
 this.ns4=(document.layers && !this.dom)?1:0;
 this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
 return this
}
bw=new checkBrowser()

lstart=100
loop=true
// Velocidad
speed=40
pr_step=1

function makeObj(obj,nest){
    nest=(!nest) ? '':'document.'+nest+'.'
 this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
   this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
 this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
 this.newsScroll=newsScroll;
 this.moveIt=b_moveIt; this.x; this.y;
    this.obj = obj + "Object"
    eval(this.obj + "=this")
    return this
}
function b_moveIt(x,y){
 this.x=x;this.y=y
 this.css.left=this.x
 this.css.top=this.y
}
function newsScroll(speed){
 if(this.y>-this.scrollHeight){
  this.moveIt(0,this.y-pr_step)
  setTimeout(this.obj+".newsScroll("+speed+")",speed)
 }else if(loop) {
  this.moveIt(0,lstart)
  eval(this.obj+".newsScroll("+speed+")")
   }
}
function newsScrollInit(){
 oNewsCont=new makeObj('divNewsCont')
 oNewsScroll=new makeObj('divNewsText','divNewsCont')
 oNewsScroll.moveIt(0,lstart)
 oNewsCont.css.visibility='visible'
 oNewsScroll.newsScroll(speed)
}
onload=newsScrollInit;
</script>
</head>

<body>
<!-- SEGUNDO PASO: Copiar dentro del tag BODY -->
<div id="divNewsCont">
<div id="divNewsText">
<p><font face="Arial" size="3"><b>Scroll de noticias:</b></font><br><br>
<font face="Arial" size="2"><b>Por Thomas Brattli</b> - Un excelente script que nos permite desplazar texto por nuestras páginas.<br></font></p>
<p>
<font face="Arial" size="2">
<b>Descargá ScriptMaster</b> - El mayor compilado de scripts en la red!<br></font></p>
<p><font face="Arial" size="3"><b><i>
<A HREF="http://www.webtutorial.com.ar">CLICK AQUI PARA DESCARGAR EL PROGRAMA!</a></b></i></font></p>
</div>
</div>
</body>
</html>


From: Santiago Videla 
Sent: Thursday, May 22, 2008 4:28 AM
To: Lista de discusión sobre Zope en castellano 
Subject: Re: [Zope-es] Javascript en Plone


Hola


2008/5/21 tono <josedavid18 en hotmail.com>:

  Estoy programando en directamente en el ZMI, concretamente modificando el main template. Lo que quiero es que aparezcan noticias en el portal y para eso estoy intentando copiar algún código desde internet que funcione.

Con lo que yo te decia en el otro mail es para que no tengas que modificar el main_template

Si lo unico que necesitas es agregar el javascript para que este disponible, lo que tenes que hacer es desde cualquier otro template que use la macro "master" definida en el main_template, incluir tus js en el slot que corresponda.

Al definir una macro (i.e: master en el main_template), adentro de la macro se pueden definir slots (i.e: javascript_head_slot en la macro master)

Luego, un template cualquiera que use la macro "master" puede (o no) "rellenar" los slots definidos. Cuando el zpt haga su magia, cada cosa se va a ubicar donde corresponda.


Por otro lado esta el portal_javascript tool. Es una herramienta del Plone Site para registrar recursos js (hay una similar para css). Simplemente anda a la tool en el ZMI, abajo de toda la lista, hay un formulario bien simple. En el ID pone el nombre de tu archivo js. Luego, en la carpeta custom subi tu archivo js y si no me fallan los calculos :P , deberias tener tu libreria disponible desde cualquier pagina plone

Haciendo con los slots, incluis la liberira js en cada template que la quieras usar

suerte y puede que no sea todo exacto, avisa cualquier problema que tengas


 

  La versión de mi zope/plone es 2.5.1.

  No estoy desarrollando ningún producto, simplemente intento que exista un noticiario en todas las páginas. 

  No sé que más información darte.

  Un saludo y muchas gracias Santiago.


  From: Santiago Videla 
  Sent: Wednesday, May 21, 2008 7:44 AM
  To: Lista de discusión sobre Zope en castellano 
  Subject: Re: [Zope-es] Javascript en Plone


  Buenas


  2008/5/20 tono <josedavid18 en hotmail.com>:

    He probado el siguiente código y si funciona, pero las indicaciones de Santiago no soy capaz de ponerlas en marcha.

  Alguna error en particular? o simplemente no anda :P ?

  Quizas te pueda ayudar con un poco mas de informacion, en que version de zope/plone estas? Estas desarrollando algun producto Archetype ? Estas programando en el ZMI con zpt ?


  saludos



    <html>
    <head>
    <!-- PRIMER PASO: Copiar dentro del tag HEAD -->
    <style type="text/css">
    #divNewsCont{position:absolute; width:350; height:150; overflow:hidden; top:260; left:140; clip:rect(0,350,150,0); visibility:hidden}
    #divNewsText{position:absolute; top:0; left:0}
    </style>

    <script type="text/javascript" language="JavaScript">
    /*
    Thomas Brattli 
    */
    // Courtesy of SimplytheBest.net (http://simplythebest.net/info/dhtml_scripts.html)
    function checkBrowser(){
     this.ver=navigator.appVersion
     this.dom=document.getElementById?1:0
     this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
     this.ie4=(document.all && !this.dom)?1:0;
     this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
     this.ns4=(document.layers && !this.dom)?1:0;
     this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
     return this
    }
    bw=new checkBrowser()

    lstart=100
    loop=true
    // Velocidad
    speed=40
    pr_step=1

    function makeObj(obj,nest){
        nest=(!nest) ? '':'document.'+nest+'.'
     this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
       this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;
     this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
     this.newsScroll=newsScroll;
     this.moveIt=b_moveIt; this.x; this.y;
        this.obj = obj + "Object"
        eval(this.obj + "=this")
        return this
    }
    function b_moveIt(x,y){
     this.x=x;this.y=y
     this.css.left=this.x
     this.css.top=this.y
    }
    function newsScroll(speed){
     if(this.y>-this.scrollHeight){
      this.moveIt(0,this.y-pr_step)
      setTimeout(this.obj+".newsScroll("+speed+")",speed)
     }else if(loop) {
      this.moveIt(0,lstart)
      eval(this.obj+".newsScroll("+speed+")")
       }
    }
    function newsScrollInit(){
     oNewsCont=new makeObj('divNewsCont')
     oNewsScroll=new makeObj('divNewsText','divNewsCont')
     oNewsScroll.moveIt(0,lstart)
     oNewsCont.css.visibility='visible'
     oNewsScroll.newsScroll(speed)
    }
    onload=newsScrollInit;
    </script>
    </head>

    <body>
    <!-- SEGUNDO PASO: Copiar dentro del tag BODY -->
    <div id="divNewsCont">
    <div id="divNewsText">
    <p><font face="Arial" size="3"><b>Scroll de noticias:</b></font><br><br>
    <font face="Arial" size="2"><b>Por Thomas Brattli</b> - Un excelente script que nos permite desplazar texto por nuestras páginas.<br></font></p>
    <p> 

    <font face="Arial" size="2">

    <b>Descargá ScriptMaster</b> - El mayor compilado de scripts en la red!<br></font></p>
    <p><font face="Arial" size="3"><b><i>
    <A HREF="http://www.webtutorial.com.ar">CLICK AQUI PARA DESCARGAR EL PROGRAMA!</a></b></i></font></p>
    </div>
    </div>
    </body>
    </html>

    Un saludo.


    From: Administrador 
    Sent: Tuesday, May 20, 2008 2:51 PM
    To: Lista de discusión sobre Zope en castellano 
    Subject: Re: [Zope-es] Javascript en Plone


    Sólo por si acaso... ¿antes de nada has comprobado que el código JavaScript funciona correctamente en alguna página fuera de Plone?
    Yo lo acabo de probar fuera de Plone y al menos a bote pronto a mí tampoco me hizo nada (aunque tampoco me he puesto demasiado a ello).


    El 20/05/2008, a las 13:04, tono escribió:


      Disculpad mi ignorancia, pero estoy intentando introducir un código javascript en plone y lo he intentado de dos formas. El código es para que aparezca un portlet de noticias móviles.
       
      1 FORMA QUE HE INTENTADO:
       
      He copiado el código en el main template: (antes de /head), el código es el siguiente:
       
      <script language="JavaScript1.2">
      // ancho
      var marqueewidth=450
      // alto
      var marqueeheight=80
      // velocidad
      var speed=1
      // contenido del scroll
      var marqueecontents='<font face="Arial" size="2">Lo que veremos en este artículo, es un simple JavaScript para realizar un Scroll cada un determinado lapso de tiempo. En él, se pueden incluir <a href="http://www.webexperto.com" target="_blank">enlaces</a>, imágenes, <strong>textos en negrita</strong>, en fin, cualquier <em>código html</em>.<br>Es ideal para mostrar novedades o noticias sobre un sitio o tema en especial.</font>'
      if (document.all)
      document.write('<marquee direction="up" scrollAmount='+speed+' style="width:'+marqueewidth+';height:'+marqueeheight+'">'+marqueecontents+'</marquee>')
      function regenerate(){
      window.location.reload()
      }
      function regenerate2(){
      if (document.layers){
      setTimeout("window.onresize=regenerate",450)
      intializemarquee()
      }
      }
      function intializemarquee(){
      document.cmarquee01.document.cmarquee02.document.write(marqueecontents)
      document.cmarquee01.document.cmarquee02.document.close()
      thelength=document.cmarquee01.document.cmarquee02.document.height
      scrollit()
      }
      function scrollit(){
      if (document.cmarquee01.document.cmarquee02.top>=thelength*(-1)){
      document.cmarquee01.document.cmarquee02.top-=speed
      setTimeout("scrollit()",100)
      }
      else{
      document.cmarquee01.document.cmarquee02.top=marqueeheight
      scrollit()
      }
      }
      window.onload=regenerate2
      </script>
       
       
      pero me da error de etiqueta y no encuentro cual es la que falta.
       
      2) He creado un archivo .js con el código en mi máquina y lo he subido al portal añadiendo un nuevo "file" y luego lo he llamado en el main template de la siguiente forma:
       
      <script language="JavaScript" src ="archivo.js"> </script>
       
      pero no hace nada.
       
      Disculpad por si realmente esta pregunta es algo absurda, pero no encuentro mucha información al respecto en google.
       
      Gracias. José David._______________________________________________
      Zope-es mailing list
      Zope-es en aditel.org
      http://listas.aditel.org/listinfo/zope-es





----------------------------------------------------------------------------


    _______________________________________________
    Zope-es mailing list
    Zope-es en aditel.org
    http://listas.aditel.org/listinfo/zope-es

    _______________________________________________
    Zope-es mailing list
    Zope-es en aditel.org
    http://listas.aditel.org/listinfo/zope-es




  -- 
  Santiago Videla
  www.revolucionesweb.com.ar
  http://www.linkedin.com/in/svidela

  Sigue la mata dando de que hablar siempre abajo y a la izquierda donde el pensamiento que se hace corazón resplandece con la palabra sencilla y humilde que l en s tod en s somos. 


------------------------------------------------------------------------------


  _______________________________________________
  Zope-es mailing list
  Zope-es en aditel.org
  http://listas.aditel.org/listinfo/zope-es

  _______________________________________________
  Zope-es mailing list
  Zope-es en aditel.org
  http://listas.aditel.org/listinfo/zope-es




-- 
Santiago Videla
www.revolucionesweb.com.ar
http://www.linkedin.com/in/svidela

Sigue la mata dando de que hablar siempre abajo y a la izquierda donde el pensamiento que se hace corazón resplandece con la palabra sencilla y humilde que l en s tod en s somos. 


--------------------------------------------------------------------------------


_______________________________________________
Zope-es mailing list
Zope-es en aditel.org
http://listas.aditel.org/listinfo/zope-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: /archivos/zope-es/attachments/20080522/e6c6287a/attachment-0001.htm


Más información sobre la lista de distribución Zope-es