Imprimir

Extensiones

A continuación, se listan las extensiones que son parte del núcleo de JuncoCMS.

Backlist

Genera una interfáz completa para administrar registros.

Combina una tabla, donde se listan los registros, con un filtro de búsquedas y botones de acción y de paginación.

Para generar una lista, requiere una parte del lado del servidor, compuesta de varios fragmentos. Y una parte del lado del usuario, compuesta de los controles en javascript.

Router

Vincula una URL con un recurso del sitio web. En este sentido, se encarga de generar una URL capaz de representar un recurso del servidor, y de entregar dicho recurso cuando un usuario apunta a su URL.

El recurso puede ser un archivo HTML o cualquier otro tipo de archivo que sea generado de forma dinámica, es decir, utilizando PHP.

La librería permite funciones avanzadas, como las URL amigables y el reemplazo del nombre del componente y de la tarea.

 

Convenciones para acceder a un recurso

La vinculación entre url y el recurso se realizará de modo automático siguiendo algunas convenciones. Internamente, los valores que serán considerados son:

 

Punto de acceso

Una aplicación puede tener distintos puntos de acceso, cada uno de ellos tendrá sus propios propósitos. Algunos de los puntos de acceso más comunes son:

Valor Descripción
front muestra datos, de acceso público.
admin administra los datos. De acceso único para administradores.
my administra los datos. De acceso único para usuarios registrados y con permisos.
audit administra los datos. De acceso único para usuarios administradores y con permisos.
api interfaz de programación de aplicaciones.
console interfaz de consola.

Si no se declara el punto de acceso, el framework utilizará por defecto el valor: front.

Componente

Un componente es un punto de acceso en donde la extensión permite ejecutar distintos tipos de tareas. En este aspecto, y para los fines prácticos, un punto de acceso más un componente hacen referencia a un controlador.

El componente por defecto tiene el nombre de la extensión a la que deseamos acceder. Para acceder a otro componente dentro de la extensión, debemos agregar un punto y el nombre del subcomponente al que deseamos acceder.

$component = "{{extension}}.{{subcomponent}}";

Los componentes por defecto serán: console para el acceso por consola, un valor configurable para el acceso a través del frente (front) y para el resto de los puntos de acceso será home.

Tarea

La tarea a ejecutar dentro de un controlador. En caso de no indicar un valor, el framework utilizará el valor: index.

Formato

Este valor debe ser pasado como argumento. En el framawork ha perdido importancia con el tiempo. Actualmente, se utiliza para dar respuestas correctas en caso de tener errores antes de cargar la vista. Algunas aplicaciones lo utilizan para decidir el tipo de respuesta que devolverá.

 

Registrar Urls de modo explicito

Es posible registrar Urls que no siguen las convenciones del framework. Para ello, en la aplicación debe crearse un archivo:

app/{{extension}}/routes/{{Accesspoint}}Routes.php

y en él se podrá realizar todos los registros de Urls que se desee. Las funciones para registrar Uri son: Router::route y Router::routeWith.

Las uri pueden incluir parámetros:

Router::route('articles/{id:int}', 'show');

Note que se agregó un parámetro de nombre id, y que además es del tipo integer. Actualmente, los tipos soportados son:

Si el parámetro es opcional, se le agrega el modificador de pregunta ?.

Router::route('articles/day/{date?}', 'day');

Los parámetros asociativos se indican del siguiete modo:

Router::route('articles/page=/{page_number?}', 'list');

 

Sistema de identificación de las Uri

Las funciones de registros de Uri permiten agregar identificadores como tercer parámetro.

Router::route('articles/{id:int}', 'show', '#show');

Luego, este identificador puede ser utilizado en la función que crea una Url.

url('#show', ['id' => 1]);

Esto será válido dentro del componente de la aplicación. Sin embargo, si queremos utilizar el identificador para crear una Url fuera del ámbito de ésta, es necesario anteponer el identificador del componente, compuesto por #{accesspoint}.{component}.

url('#front.articles#show', ['id' => 1]);

 

XJs

La extensión XJs es un formato estándar de salida para consultas asincrónicas del framework. Se utiliza para realizar tareas en segundo plano, como ser, la carga de un formulario.

La respuesta consiste en un json con un formato similar al siguiente:

{
 "message": "Message in response",
 "code": 0,
 "data": {},
 "error": "",
 "profiler": ""
}

Los tres primeros valores son a discreción de la aplicación. Los últimos dos, son de uso interno para los casos requeridos.

message

Es una cadena, supone un texto en respuesta.

code

Es un entero, supone una representación numérica de la respuesta. Si bien no tiene reglas, se suele usar valores positivos para las respuestas satisfactorias y negativos o el cero para los fallos.

data

Cualquier tipo de dato que pueda representarse con json.