Kanecode permite usar AJAX para ejecutar remotamente secciones SmartHTML y usar el contenido HTML generado por ellas para modificar la página original. Por ejemplo, se puede usar para mostrar el contenido de una sección dentro de un DIV de forma dinámica. Para ello, es necesario activar la opción "Visible desde AJAX" en la sección que queramos mostrar.

556

Las principales funciones son:

eBDSection.show(url, callback)

Esta función permite llamar a una sección, página o zona de Kanecode, ejecutarla y devolver el código HTML resultante a una función de callback que se encargará de publicarla.

Un ejemplo de como llamar a una sección al pulsar sobre un enlace:

Con este ejemplo hemos conseguido que al pulsar sobre un enlace se despliegue el contenido de una sección sin necesidad de recargar la página, simplemente utilizando una capa como 'recipiente'.

Primero es necesario tener cargadas las librerias AjaxCaller, Util y Sections:

<script language="Javascript" src="/includes/ajax/ajaxCaller.js";></script>
<script language="Javascript" src="/includes/ajax/util.js"></script>
<script language="Javascript" src="/includes/ajax/sections.js"></script>

Desde Kanecode calculamos la URL del objeto a cargar, mediante la instrucción eBD:ENCRYPT, por ejemplo, para llamar a una sección podemos utilizar:

<ebd:ENCRYPT var="url" value="?idsection=<id_seccion>"/>

Los parámetros de eBDSection que podemos utilizar son:

  • idsection ID de la sección que se llama.
  • section Nombre de la sección. Se debe utilizar conjuntamente con los parámetros 'zone' o 'page', de lo contrario se considerará como una sección global.
?section=my_section&page=my_page
  • idpage ID de la página que se llama.
  • page Nombre de la página.
  • idzone ID de la zona que se llama. La función utilizará el DOCTYPE de la zona actual si no se especifica este parámetro.
  • zone Nombre de la zona. La función utilizará el DOCTYPE de la zona actual si no se especifica este parámetro.
  • full_name [1|0] Booleano que indica si se debe generar el contenido HTML completo, por ejemplo: para poder usar esa URL directamente en un IFRAME.

Para crear el enlace utilizamos:

<a href="javascript:eBDSection.show('<ebd:out value="$url"/>',callback);">SEE SECTION</a>

Este enlace llamará a una función, que hemos llamado 'callback' y que se encarga de recoger el HTML devuelto por el objeto llamado y publicarlo.

<script language="javascript">
function callback(html){
var obj=document.getElementById('my_div');
if (obj!=null)
{obj.innerHTML=html;}
}
</script>

Para que se muestra el resultado debemos tener un objeto que nos sirva para mostrar el resultado.

<div id="my_div"></div

Si en la URL encriptada, de eBDSection.show, añadimos el parámetro 'section_containers=1' forzaremos la inserción de los elementos contenedores.

Con este ejemplo hemos conseguido que al pulsar sobre un enlace se despliegue el contenido de una sección sin necesidad de recargar la página, simplemente utilizando una capa como 'recipiente'.

eBDSection.setDOMContent(dom_node, html)

Esta función es auxiliar a eBDSection, ya que esta usa setDOMContent para incrustar el HTML que recibe, además permite cargar todos los scripts en el HEAD, comprobando que no estén cargados previamente.

La carga de los STYLE las realiza en el propio DOM node.