Changes between Version 6 and Version 7 of Version2/Tutoriales/Consola_Web/Tutorial_1_Hello_World


Ignore:
Timestamp:
May 3, 2011, 3:54:57 PM (13 years ago)
Author:
edulix
Comment:

revisando pequeños errores y cosas obsoletas

Legend:

Unmodified
Added
Removed
Modified
  • Version2/Tutoriales/Consola_Web/Tutorial_1_Hello_World

    v6 v7  
    33La consola web de Opegnsys 2 está diseñada para ser altamente extensible mediante el desarrollo de plugins. Existe un conjunto de '''puntos de extensión''', en los que cada plugin puede añadir nuevas características.
    44
    5 Básicamente hay dos puntos de extensión principalmente: el '''Panel Principal''' y el '''Panel Contextual'''. La consola web muestra en la parte superior de cada página una serie de pestañas. Una de ellas siempre es el Panel de acciones llamado simplemente "Panel" de aquí en adelante. Dentro de ese panel aparece iconos/acciones genéricas que los plugins actualmente activos han introducido. Por ejemplo, algunas acciones de ejemplo podrían ser "Buscar Ordenador" o "Administrar usuarios".
     5Básicamente hay dos puntos de extensión principalmente: el '''Panel Principal''' y el '''Panel Contextual'''. La consola web muestra en la parte superior de cada página una serie de pestañas. Una de ellas siempre es el Panel principal o de acciones, llamado simplemente "Panel" de aquí en adelante. Dentro de ese panel aparecen iconos/acciones genéricas que los plugins actualmente activos han introducido. Por ejemplo, algunas acciones de ejemplo podrían ser "Buscar Ordenador" o "Administrar usuarios".
    66
    7 El otro punto de extensión es el Panel Contextual que aparece en muchas páginas de la consola web, y que muestra acciones relacionadas con lo que actualmente se está mostrando al usuario. Esas acciones son puestas ahí por los plugins, dependiendo de la url que actualmente se esté mostrando. Por ejemplo, si en el "navegador" se está mostrando actualmente un ordenador, el plugin de Inventorio de Hardware añade la acción de "Ver Perfil de Hardware" al panel contextual, que muestra el perfil de hardware del ordenador actual.
     7El otro punto de extensión es el Panel Contextual que aparece en muchas páginas de la consola web, y que muestra acciones relacionadas con lo que actualmente se está mostrando al usuario. Esas acciones son puestas ahí por los plugins, dependiendo de la url o vista que actualmente se esté mostrando. Por ejemplo, si en el "navegador" se está mostrando actualmente un ordenador, el plugin de Inventorio de Hardware añade la acción de "Ver Perfil de Hardware" al panel contextual, que muestra el perfil de hardware del ordenador actual.
    88
    99== Estructura de directorios ==
    1010
    11 Todos los plugins se localizan dentro del árbol de directorios de Opengnsys en web/pluginmanager/plugins/<nombre del plugin>. El plugin sabrá su nombre UNIX por la carpeta en la que está localizada. Dentro de esa carpeta debe definir el fichero !__init!__.py que contendrá la clase Plugin, que heredará de !PluginBase, y es la que define la funcionalidad principal del plugin. La clase !PluginBase define todas las funciones que un plugin puede definir. Por ejemplo existe una función llamada "install" que permite al plugin ejecutar el código que necesite a la hora de crear un plugin.
     11Todos los plugins se localizan dentro del árbol de directorios de Opengnsys en web/plugins/<nombre del plugin>. El plugin sabrá su nombre UNIX por la carpeta en la que está localizada. Dentro de esa carpeta debe definir el fichero !__init!__.py que contendrá la clase Plugin, que heredará de !PluginBase, y es la que define la funcionalidad principal del plugin. La clase !PluginBase define todas las funciones que un plugin puede definir. Por ejemplo existe una función llamada "install" que permite al plugin ejecutar el código que necesite a la hora de crear un plugin.
    1212
    1313Además, también es necesario definir el fichero plugin.conf, que contiene la configuración más básica del plugin, y está en formato INI. Esto incluye el nombre visible en la aplicación, una pequeña descripción y la versión. Además de eso, también contiene más o menos esa misma información sobre cada acción que defina el plugin, tanto si son acciones que vayan a aparecer en el Panel Principal como si van a aparecer en el Panel Contextual.
     
    1616== Creando nuestro plugin Hola Mundo ==
    1717
    18 Vamos a crear un plugin muy sencillo, que mostrará una acción en el panel principal que mostrará una página que diga "Hola Mundo!". Nuetra filosofía de desarrollo incluye utilizar el Inglés como idioma tanto para el código como para los comentarios/documentación del mismo, y todo el proyecto está diseñado de esta manera. La consola de Opengnsys 2 tiene soporte de internacionalización, y por lo anteriormente explicado las cadenas base están en inglés. También las urls que generamos incluyen únicamente palabras en inglés. Y el nombre de los plugins también. Nuestro plugin por tanto se llamará "hello_world". Crea en web/pluginmanager/plugins/ el directorio "hello_world", y a partir de ahora trabajaremos desde ahí.
     18Vamos a crear un plugin muy sencillo, que mostrará una acción en el panel principal que mostrará una página que diga "Hola Mundo!". Nuestra filosofía de desarrollo incluye utilizar el Inglés como idioma tanto para el código como para los comentarios/documentación del mismo, y todo el proyecto está diseñado de esta manera. La consola de Opengnsys 2 tiene soporte de internacionalización, y por lo anteriormente explicado las cadenas base están en inglés. También las urls que generamos incluyen únicamente palabras en inglés. Y el nombre de los plugins también. Nuestro plugin por tanto se llamará "hello_world". Crea en web/pluginmanager/plugins/ el directorio "hello_world", y a partir de ahora trabajaremos desde ahí.
    1919
    2020Dentro, crearemos el fichero plugin.conf, con el siguiente contenido:
     
    8383}}}
    8484
    85 Este formato de templates de nuevo es el que usa web.py. No te asustes. la primera linea indica que está definiendo una función con cero argumentos ("def with ()"). Luego definimos tres variables que śon usadas por la plantilla maestra, como es el título de la página, el tab que ha de mostrarse seleccionado, y la jerarquía de navegación que por simplicidad hemos dejado en blanco.
     85Este formato de templates de nuevo es el que usa web.py. No te asustes. la primera linea indica que está definiendo una función con cero argumentos ("def with ()"). Luego definimos tres variables que son usadas por la plantilla maestra, como es el título de la página, el tab que ha de mostrarse seleccionado, y la jerarquía de navegación que por simplicidad hemos dejado en blanco.
    8686
    8787Para hacer uso de traducciones utilizamos la función _p() que está siempre accesible dentro de los templates de los plugins. Y precisamente hacemos uso de ella al imprimir, finalmente la cadena "Hello world".
     
    8989== Usando el plugin ==
    9090
    91 Para usar el plugin, tenemos que arrancar el servidor de opengnsys si no lo tenías ya arrancado, y activarlo pinchando en "Enable" al lado del plugin, en la pestaña "Plugins" con un usuario que tenga permisos de administración. Luego, puedes ir al panel y verás que aparece nuestra acción, "Hello", y al hacer clic te aparecerá una página con el mismo look que el resto de la week donde aparece el mensaje "Hello World".
     91Para usar el plugin, tenemos que arrancar el servidor de opengnsys si no lo tenías ya arrancado, y activarlo pinchando en "Enable" al lado del plugin, en la pestaña "Plugins" con un usuario que tenga permisos de administración. Luego, puedes ir al panel y verás que aparece nuestra acción, "Hello", y al hacer clic te aparecerá una página con la misma apariencia que el resto de la web donde aparece el mensaje "Hello World".