Definitions

Before diving into a concrete Jaws component you may find useful to see the complete picture:

  • gadgets: a gadget is a utility that you can put on a webpage. Some available gadgets are blog, menulist, friends list… The admin can use the control panel to make each gadget (un)available, to set the gadget properties and to decide where it will be displayed.
  • actions: each gadget allows to perform several actions (i.e: the blog gadget allows to send new entries, to edit old ones, to comment an entry…). All actions are implemented on a model.
  • templates: a template is the (X)HTML representation of a gadget (i.e: the blog gadget includes a header tag for the title, paragraph tags for the content, and so on). While performing some actions, some widgets can be added/edited/deleted to the template.
  • plugins: a plugin is code that mainly modifies the text of your site, and its behaviours can be combined with those of gadgets.
  • webservices: the primary goal of a web service is to communicate two (or more) web entities, these can be two sites, a web application, a desktop application with web access and so on. You can find more about web services here.
  • themes: a theme controls how data will be displayed to the user: colors, fonts, borders and so on. Jaws includes some cool themes, you can use them freely or use them as base for new ones.

Dissecting a Jaws Link

Every link on a Jaws-based application follows the same format:

http://jaws-application.com/controller.php?gadget=gadgetName&action=actionName&data1=value1&data2=value2...

Let’s analyze it:

  • controller.php is the controller that will execute the action. At this moment there are two available controllers: index.php for the normal user and admin.php for the site admin.
  • gadgetName determines what gadget has been activated
  • actionName determines what action will be performed on the gadget
  • data1, value1, etc are possible data needed to execute the action.

To see this more clearly, whe can take a real example:

http://my.jaws.site/index.php?gadget=Blog&action=ViewDate&day=25&month=11&year=2004

In this link we tell Jaws to execute the ViewDate action in the Blog gadget. This action show us all entries posted on a concrete date, so we also need to send the desired date. We send the date including day, month and year parameters.

Where are we going?

Jaws Project is mainly based on the MVC design pattern, which divides an application on three main layers: Model, View and Controller. You can read more about this design pattern here or here.
In previous versions (up until 0.4), Jaws was vaguely related to the MVC model, it uses templates and such, but it wasn’t strict in the use of gadgets. After this point, more developers came and they saw that Jaws needed a re-design if it wanted to grow. Here Jaws is fully ported to the MVC design pattern.

Some benefits of Jaws design are:

  • It’s easy to create new gadgets
  • It’s easy to add new actions for a gadget
  • It’s easy to change how a gadget is displayed
  • It’s easy to change all site presentation by using themes
  • It’s easy to manage gadgets

Updated: 29th Nov 2004

Author/s:

  • Raul Murciano
  • Jorge Gallegos

Definiciones

Traducido al español por JAHS

Antes de pasar a componentes específicos de Jaws, podría ser útil darle a UD. imagen completa:

  • Gadgets: Un gadget es una utilería que Ud. puede colocar un una pagina Web. Algunos gadgets son blogs, listas de menú, listas de amigos, etc. …. El administrador puede hacer uso del panel de control para hacer cada gadget disponible (o no disponible), para cambiar los parámetros de configuración de los gadgets y para decidir donde deberán ser desplegados.
  • Acciones: cada gadget permite una serie de acciones (Ejem: El gadget de blog permite ingresar nuevas entradas, editar entradas viejas, comentar una entrada, etc.;) Todas las acciones son implementadas como modelos.
  • Plantillas: una plantilla es la representación en (X)HTML de un gadget (Por ejemplo, el gadget de blog incluye una etiqueta de encabezado para el titulo, etiquetas de párrafo para el contenido, y así sucesivamente). Mientras se ejecutan algunas acciones, algunos widgets pueden ser agregados/editados/borrados de la plantilla.
  • Plugins: un plugin es un código que modifica el texto de su sitio, y su comportamiento se puede combinar con el de los gadgets.
  • Webservices (Servicios Web): El objetivo primordial de los servicios Web es comunicar dos (o mas) entidades Web, pudiendo ser estas dos sitios, una aplicación Web, una aplicación de escritorio con acceso Web, etc.; Ud. podrá encontrar mas acerca de servicios Web en http://www.w3.org/2002/ws/.
  • Temas: Un tema controla como será desplegada la información a el usuario, esto es: colores, fuentes, bordes, etc. Jaws incluye algunos muy buenos temas, Ud. es libre de usarlos o tomarlos como base para realizar nuevos.

Diseccionando una liga Jaws

Cada liga en una aplicación basada en Jaws sigue el mismo formato:

http://jaws-application.com/controller.php?gadget=gadgetName&action=actionName&data1=value1&data2=value2...

Vamos a analizarla:

  • controller.php es el controlador que ejecuta la acción. En este momento existen dos controladores disponibles: index.php para el usuario normal y admin.php para el administrador del sitio.
  • gagetName determina que gadget a sido activado.
  • actionName determina que acción será ejecutada por el gadget

data1, value1, etc., son posibles datos necesitados para ejecutar la acción.

Para verlo con más claridad veamos un ejemplo real:

http://my.jaws.site/index.php?gadget=Blog&action=ViewDate&day=25&month=11&year=2004

En ese link le estamos diciendo a Jaws que la acción ViewDate del gadget de blog. Esta acción nos muestra todas las entradas ingresadas en una fecha en concreto, as que vamos a necesitar dicha fecha. Enviamos la fecha incluyendo los parámetros de DIA mes y año.

¿Hacia donde vamos?

El proyecto Jaws esta principalmente basado en el esquema de diseño MVC, que divide una aplicación en tres principales capas: Modelo, Vista y controlados. Ud. puede encontrar mas acerca de este esquema de diseño aqui oaqui. En versiones previas (arriba de 0.4), Jaws fue vagamente relacionada al modelo MVC, puesto que usaba plantillas y similares, pero no hacia un uso estricto de los gadgets. Después de esto, mas desarrolladores vinieron y vieron que Jaws requería re-diseñarse si es que pensaba crece. De ahí que Jaws haya sido totalmente adaptado al modelo de diseño MVC.

Algunos beneficios del diseño de Jaws son:

  • Facilidad para crear nuevos gadgets.
  • Facilidad para agregar acciones a un gadget.
  • Facilidad para cambiar como un gadget es desplegado.
  • Facilidad para cambiar toda la presentación de un sitio usando temas.
  • Facilidad para manejar los gadgets.

Autores:

Raúl Murciano Jorge Gallegos

 
  /var/www/wiki/htdocs/data/jaws/development/overview.txt · Last modified: 2007/11/02 16:27