Los menús son widgets a menudo imprescindibles para nuestras aplicaciones Tcl. El menú que mostramos a continuación es una simplificación de otro menú, con muchos más elementos, disponible en la librería de ejemplos de SpecTcl: una aplicación hecha en Tcl/Tk para hacer aplicaciones de un modo «visual», proporcionándonos herramientas para generar archivos Tcl muy rápidamente y ahorrándonos la tarea de escribir todo el código de los widgets. Podemos consultar los atributos de un widget y modificarlos de forma sencilla, y ver los cambios sin necesidad de cerrar la aplicación, además de muchas otras cosas.

Menú Tcl/Tk del ejemplo de más abajo

En otras anotaciones y ejemplos Tcl de este blog hemos usado el comando pack para «dibujar» los elementos en la pantalla. Nótese que en este ejemplo se usa el comando grid.

# Menú Tcl/Tk

# Contenedor del menú
set root «.»

# Elemento 1
###############
menubutton .mbOption
-indicatoron 1
-menu «.mbOption.m»
-relief raised
-textvariable mbOption_choice

# Hijo de Elemento 1
menu .mbOption.m
-background green
-tearoff 0

catch {
.mbOption.m configure
-font -*-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-*-*
}

# Hijos de Hijo de Elemento 1
.mbOption.m add radiobutton
-variable mbOption_choice
-label Artichoke
-underline 0

.mbOption.m add radiobutton
-variable mbOption_choice
-label {Brussel Sprout}
-underline 0

.mbOption.m add radiobutton
-variable mbOption_choice
-label Carrot
-underline 0

# Elemento 2
###############
menubutton .mbFruits
-menu «.mbFruits.fruitsMen»
-relief raised
-text Fruits

# Hijo de Elemento 2
menu .mbFruits.fruitsMen
-tearoff 0
catch {
.mbFruits.fruitsMen configure
-font -*-Helvetica-Bold-R-Normal-*-*-120-*-*-*-*-*-*
}

# Hijos de Hijo de Elemento 2
.mbFruits.fruitsMen add command
-command {puts Apple}
-label Apple
-underline 0

.mbFruits.fruitsMen add command
-command {puts Banana}
-label Banana
-underline 0

.mbFruits.fruitsMen add command
-command {puts Cucumber}
-label Cucumber
-underline 0

.mbFruits.fruitsMen add command
-command {puts Date}
-label Date
-underline 0

# Para representar el menu, geometry management
grid .mbOption -in $root -row 2 -column 1
grid .mbFruits -in $root -row 2 -column 2

# Comportamiento de la redimensión
grid rowconfigure $root 1 -weight 0 -minsize 30 -pad 0
grid rowconfigure $root 2 -weight 0 -minsize 30 -pad 0
grid columnconfigure $root 1 -weight 0 -minsize 30 -pad 0
grid columnconfigure $root 2 -weight 0 -minsize 30 -pad 0

# Opción seleccionada por defecto del Elemento 1
uplevel #0 set mbOption_choice Banana

Para la mayoría de ejercicios de Tcl/Tk guardamos el código en achivos de texto con la extensión .tcl  en la misma carpeta donde tengo la aplicación. Desarrollando un proyecto guardo los archivos Tcl en una carpeta del mismo nombre que el proyecto, y  creamos «versiones». Por ejemplo, la carpeta formulario_de_prueba podría contener los archivos formulario1.tcl, formluario2.tcl…. 

Para ejecutar nu script Tcl prefiero utilizar Wish y el comando source. Sobre todo porque me pongo «pistas» en el código, para probar que el flujo de información es correcto; hago que el ejercicio me devuelva resultados en consola con puts, una forma sencilla de hacer pequeñas comprobaciones. Para depurar los errores es mejor usar el comando catch. Algunas funciones tienen su propio «comportamiento» para manejar los errores (como las de MySQLTcl).

En este ejemplo de Formulario Tcl/Tk sólo hay procedimientos. Así, al invocar el archivo o pegar el código no ocurre nada, porque hay que llamar al procedimiento ventana escribiendo simplemente «ventana» en la consola.

Hay varias maneras de mostrar los datos de nuestro formulario Tcl/Tk. Una de ellas es crear una etiqueta para asignarle el valor del campo entry a su atributo -text, y todo ello lo hará un procedimiento que llamaremos «Enviar». Éste configura el valor -text de la etiqueta .etiqueta obteniendo el valor del contenido escrito en el elemento del formulario.

# Formulario
entry .campo -textvariable «Introduce texto aquí»
button .boton -text Enviar -command { Enviar }
pack .boton .campo

# Etiqueta vacía
label .etiqueta
pack .etiqueta

# Procedimiento
proc Enviar { } {
set texto [.campo get]
.etiqueta configure -text $texto
}

 

 

 

Mediante unos sencillos pasos podemos conectar una tienda online Prestashop con Facebook, una de las redes sociales más populares.

Una de las maneras de hacerlo es integrar manualmente el código proporcionado por Facebook a nuestra página, agregando el código necesario al head y el código de los botones Me Gusta, entre otras aplicaciones. Para eso, leer este artículo: Facebook en tu web.

En un foro de Todoprestashop he encontrado un hilo sobre módulos gratuitos de Facebook en Prestashop. Hay un sencillo módulo disponible para descargar y gratis que nos facilita bastante la labor de poner un botón «Me gusta» en Prestashop.

He instalado el módulo y lo he probado en páginas de producto, insertando el HOOK dentro del formulario de compra, y no ha habido problemas con la instalación del archivo .zip desde el BO. Desde la propia configuración del módulo se puede modificar el aspecto del botón.

EDITO: http://www.prestashop.com/forums/topic/115844-modulefree-facebook-like-a-lot-prestashop-14-upd-1207-with-facebook-open-graph-tags/ es el post de foro donde encontrar el módulo para la versión 1.4 de Prestashop.

Cómo implementar en nuestra tienda Prestashop una de tantas galería de fotos en Flash y PHP que están disponibles gratuitamente por la red. Hemos escogido ésta en concreto por su sencillo y elegante diseño. Desde aquí agradecemos y enlazamos el trabajo de los creadores: Flash Gallery. Difundimos su trabajo y traducimos al español sus intrucciones.

Código de la galería Flash:

<script src=»flashgallery/swfobject.js» type=»text/javascript»></script>
<!– GALLERY: Div that contains gallery. –>
<div id=»gallery» align=»center»>
<h1>No flash player!</h1>
<p>Parece que no tienes instalado FlasPlayer. <a href=»http://www.macromedia.com/go/getflashplayer» >Click aquí</a> para ir a la página de descargas de Macromedia.</p>
</div>

<!– GALLERY: Script para embeber la gallería. –>
<script language=»javascript» type=»text/javascript»>
var so = new SWFObject(«
flashgallery/flashgallery.swf», «gallery», «800», «600», «8»); // Lugar del SWF. Puedes cambiar el ancho y el alto aquí (usa píxeles o porcentaje)
so.addParam(«quality», «high»);
so.addParam(«allowFullScreen», «true»);
so.addParam(«wmode», «transparent»);
so.addVariable(«content_path»,»flashgallery/img»); // Lugar de la carpeta de imágenes JPG ó PNG de la galería (relative to PHP script).
so.addVariable(«color_path»,»
flashgallery/default.xml»); //Lugar del archivo XML de configuración.
so.addVariable(«script_path»,»
flashgallery/flashgallery.php»); // Lugar del script PHP
so.write(«gallery»);
</script>

<!– GALLERY: Por favor, coloca este link ne cuaquier página que use Flash Gallery. ¡Lee la Licencia! Gracias –>
Powered by <a href=»http://www.flash-gallery.org»>Flash Gallery</a>

Pasos para instalar la galería Flash en Prestashop

1- Sube la carpeta de la galería, flashgallery, al directorio principal de la tienda.

2-  Edita en robots.txt:
Disallow: /flashgalley

(Esto evita que se indexen en buscadores archivos innecesarios. Si queremos que se indexen los contenidos de la galería, lo harán «desde» la página donde se muestra).

1- En el módulo editorial.

1.1- Añade el código de la galería a editorial.tpl.

1.2- Para las tiendas con varios idiomas instalados, se recomienda sustituir los mensajes (los coloreados en rojo) por su código smarty correspondiente, por ejemplo:
<p>{l s=’Parece que no tienes instalado FlasPlayer.’ mod=’editorial’} <a href=»http://www.macromedia.com/go/getflashplayer» >{l s=’Click aquí’}</a>{l s=’ para ir a la página de descargas de Macromedia’ mod=’editorial’}.</p>
y editar cada frase en cada idioma en BO > Herramientas > Traducciones > Traducciones de Módulos

2- En una página independiente

2.1 – Crea un archivo galeria_de_fotos.php que contenga las líneas:
<?php
include(dirname(__FILE__).’/config/config.inc.php’);
include(dirname(__FILE__).’/header.php’);
$smarty->display(_PS_THEME_DIR_.’photos.tpl’);
include(dirname(__FILE__).’/footer.php’);
?>

2.2 – Crea un archivo galeria_de_fotos.tpl con el código de la galería.
2.3 – Edita la información correspondiente a la página de la galería en BO > Preferencias > Metatags
2.4 – Para editar las traducciones de las frases procedemos igual que con el ejemplo de la editorial, pero sin incluir mod=’editorial’, y editando en BO > Herramientas > Traducciones > Traducciones de Front Office
2.5 – La URL de nuestra galería es www.nombretienda/galeria_de_fotos.php

3- En un enlace del CMS (módulo Bloque de información)

3.1 – Ve a BO > Herramientas > CMS y crea una página para la galería.
3.2 – Edita laos tags META y la URL amigable. En el editor de texto, pulsa el botón HTML y pega el código de la galería. Cambia todas las rutas añadiendo ../ al principio. Ejemplo:
var so = new SWFObject(«../flashgallery/flashgallery.swf», «gallery», «800», «600», «8»);

3.3 – Ve a Módulos, y edita el módulo Bloque de información para mostrar el enlace en el bloque.