Imprimir

Extensiones

A continuación, se listan los fragmentos que ofrecen las extensiones del sistema.

Backlist

Genera una interfáz completa para administrar registros de una base de datos. Combina una tabla, donde se listan los registros, con un filtro de búsquedas y botones de acción y de paginación, todo estará contenido en una caja, encargada de la distribución de los elementos y de dar estilos al conjunto.

 

Ejemplo inicial

Para comenzar, se debe crear la caja y, opcionalmente, los botones para las diferentes acciones.

// box
$bbx = Backlist::getBox([ string $snippet= 'default', string $id = ''] );

// actions
$bac = $bbx->getActions();
$bac->create();
$bac->edit();
$bac->delete();
$bac->refresh();

$bbx->render( [string $content = ''] );

En la última línea, en el método render de la caja se puede incluir el resto de la lista, es decir, los filtros y la tabla. Sin embargo, este contenido también se puede incluir de modo asíncrono.

 

Crear la tabla y los filtros

En el siguiente ejemplo se muestra cómo se crea la tabla, y, opcionalmente, los filtros.

// list
$bls = Backlist::get();

// filters
$bft = $bls->getFilters();
$bft->setValues($data);
$bft->search();

// table
$bls->setRows($rows);
//
$bls->check();
$bls->column(':name')->setLabel(_t('Name'));
$bls->column(':created_at')->setWidth(90);
$bls->status();

echo $bls->render();

En los filtros, los valores de los elementos se abregan todos juntos, igual a como lo hacen los formularios.

La tabla también ingresa todas las filas a través del método setRows. Luego, se definen cada una de las columnas que tendrá la tabla.

 

Email

El fragmento de la extensión Email implementa la interfaz EmailMessageInterface y permite crear un mensaje con dos formatos: text/html y text/plain.

 

EmailMessageInterface::title

Agrega un título al documento html del mensaje.

public EmailMessageInterface::title( string $title): void;

 

EmailMessageInterface::legend

Agrega una leyenda al comienzo del mensaje.

public EmailMessageInterface::legend( string $legend): void;

 

EmailMessageInterface::line

Agrega un párrafo al mensaje.

public EmailMessageInterface::line( string $text ): void

 

EmailMessageInterface::codelink

Agrega un link al mensaje, como si fuera una instrucción. Se utiliza, por ejemplo, para validar una casilla de correo.

public EmailMessageInterface::codelink( string $url): void;

 

EmailMessageInterface::legal

Agrega el aviso legal del mensaje. En caso de no pasar parámetros, se agregará un mensaje predeterminado.

public EmailMessageInterface::legal( string $text ): void;

 

EmailMessageInterface::body

Establece el cuerpo completo del mensaje. Borrará cualquier otro cuerpo, o parte del mismo, ingresado.

public EmailMessageInterface::body( string $html, string $plain = ''): void;

 

EmailMessageInterface::getPlain

Devuelve el mensaje en texto plano.

public EmailMessageInterface::getPlain( ): string;

 

EmailMessageInterface::getHtml

Devuelve el mensaje en texto html.

public EmailMessageInterface::getHtml( ): string;

 

Form

Genera un completo formulario html. Incluye elementos de formulario, bloques para agrupar esos elementos, botones de acción y una caja, que puede utilizar pestañas y manejar la asincronía.

 

Ejemplo inicial

El siguiente ejemplo crea un formulario para ingresar un usuario y una contraseña. A cada elemento se le agregó su etiqueta.

$form = Form::get();
$form->input('user')->setLabel('User');
$form->input('password', ['type' => 'password'])->setLabel('Password');

echo $form->render();

 

Elementos de formulario

En ocaciones, no queremos utilizar el formulario del framework, o, simplemente, necesitamos sólo los elementos de formulario. Para estos casos, es posible utilizar el fragmento que sólo crea los elementos de formulario y que implementa la interface FormElementsInterface.

$felem = Form::getElements();
echo $felem->input('search', ['icon' => 'fa-solid fa-magnifying-glass']);

 

FormElementsInterface::setValues

Establece los valores de todos los elementos, debe agregarse antes de todo.

public FormElementsInterface::setValues( ?array $values = null ): void;
values

Un arreglo con todos valores a establecer.

 

FormElementsInterface::setDeep

Establece una profundidad en el nombre de los elementos. Generalmente se utiliza cuando un elemento es colocado dentro de un bucle.

public FormElementsInterface::setDeep( string $deep_name = ''): void;
deep_name

El valor que será agregado al final del nombre del elemento.

 

FormElementsInterface::load

Carga un elemento de formulario personalizado.

public FormElementsInterface::load( string $plugin, array $args = [] ): FormElementInterface;
plugin

La clave del plugin a cargar.

args

Un array con los argumentos. El formato de cada argumento debe ser name => value.

 

FormInterface::element

Crea un elemento personalizado.

element ( string $content, string $name = ''): FormElementInterface
content

El html correspondiente al elemento.

name

Si bien el elemento está personalizado, el nombre puede ser útil ser utilizado en la etiqueta o en el texto de ayuda. De no ser ingresado, se generará uno automáticamente.

 

FormElementsInterface::input

Crea un elemento input.

public FormElementsInterface::input( string $name, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

attr

Cualquier otro attributo del elemento.

Además de los atributos propios, se le puede pasar el atributo icon. Éste puede ser una cadena con el nombre del ícono, o un arreglo con varios valores, entre los que se destacan: 

 

FormElementsInterface::button

Crea un elemento botón. Dependiendo de los atributos, éste podrá ser un botón o un enlace o, simplemente, un elemento decorativo.

public FormElementsInterface::button( array $attr = [] ): FormElementInterface;
attr

Los attributos del elemento. Acepta el attributo icon.

 

FormElementsInterface::hidden

Crea un elemento oculto.

public FormElementsInterface::hidden( string $name, mixed $value = null ): HiddenInterface;
name

El nombre del elemento.

value

El valor del elemento. Si no se utiliza este parámetro, buscará el valor de la misma manerá que el resto de los elementos. De no encontrar un valor, el elemento no será creado.

 

FormElementsInterface::checkbox

Crea una o varias casillas de verificación.

public FormElementsInterface::checkbox( string $name, mixed $options = null, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

options

Si es un arreglo, se creará una casilla por cada elemento del arreglo. De lo contrario, si tiene un valor, será considerado su etiqueta.

attr

Cualquier otro attributo del elemento.

 

FormElementsInterface::toggle

Crea una casilla de verificación customizada, con una apariencia de botón.

public FormElementsInterface::toggle( string $name, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

attr

Cualquier otro attributo del elemento.

 

FormElementsInterface::file

Crea un input customizado para cargar archivos.

public FormElementsInterface::file( string  $name, array $options = [] ): FormElementInterface;
name

El nombre del elemento.

options

Las opciones para configurar el javascript.

 

FormElementsInterface::enter

Crea un botón de envío del formulario.

public FormElementsInterface::enter( string $label = '', array $attr = [] ): FormElementInterface;
label

La etiqueta que mostrará el botón.

attr

Los attributos del elemento. Acepta el attributo icon.

 

FormElementsInterface::radio

public FormElementsInterface::radio ( string $name, array $options, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

options

Un arreglo con las opciones del elemento.

attr

Cualquier otro attributo del elemento.

 

FormElementsInterface::select

public FormElementsInterface::select ( string $name, array $options, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

options

Un arreglo con las opciones del elemento.

attr

Cualquier otro attributo del elemento.

 

FormElementsInterface::suite

Un selector múltiple customizado.

public FormElementsInterface::suite ( string $name, array $options, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

options

Un arreglo con las opciones del elemento.

attr

Cualquier otro attributo del elemento.

 

FormElementsInterface::textarea

public FormElementsInterface::textarea ( string $name, array $attr = [] ): FormElementInterface;
name

El nombre del elemento.

attr

Cualquier otro attributo del elemento.

 

FormElementsInterface::editor

public FormElementsInterface::editor ( string $name ): FormElementInterface;
name

El nombre del elemento.

 

FormElementsInterface::collection

public FormElementsInterface::collection ( string $control, string $name ): FormElementInterface;
control

La clave con la que el javascript reconocerá la colección.

name

El nombre del elemento.

 

FormElementsInterface::group

Agrupa varios elementos de formulario.

public FormElementsInterface::group ( FormElementInterface ... $elements ): FormElementInterface;
elements

Los elementos a agrupar.

 

Formulario

Crea un formulario. Implementa la interfaz FormInterface que a su vez extiende la interfaz FormElementsInterface. Es decir, la clase Form, además de sus métodos, tiene todos los métodos de la clase Formelements.

 

FormInterface::getActions

Retorna un fragmento para la construcción de los botones de acción.

public FormInterface::getActions ( string $snippet = '' ): FormActionsInterface;
snippet

La clave del fragmento.

 

FormInterface::header

Establece un encabezado a un bloque de elementos de formulario.

public FormInterface::header ( mixed $attr = null, ?bool $toggle = null ): void;
attr

Acepta los mismos atributos que una fila.

toggle

Si se establece un valor boleano, el bloque de elementos podrá ser colapsado.

 

FormInterface::separate

Envuelve en un fieldset todos los grupos que se tienen hasta el momento.

public FormInterface::separate ( ?string $legend = null ): void;
legend

La leyenda que contendrá el fieldset.

 

FormInterface::columns

Coloca varios elementos en columnas si el ancho de pantalla lo permite.

public FormInterface::columns ( FormElementInterface ...$elements ): void
...elements

Los elementos a colocar en columnas.

 

FormInterface::addBlock

public FormInterface::addBlock ( string $html ): void;
html

Agrega un bloque al formulario. Un bloque consta de una o varias filas.

 

FormInterface::getLastElement

Retorna el último elemento anexado a la pila de elementos de formulario.

public FormInterface::getLastElement ( ): FormElementInterface;

 

FormInterface::renderForm

Envuelve con una etiqueta de formulario la cadena html pasada como parámetro. Además, agrega el token csrf.

public FormInterface::renderForm ( string $html, string|int $form_id = '' ): string;
html

El html a envolver con la etiqueta de formulario.

form_id

La id del formulario.

 

FormInterface::render

Devuelve el html.

public FormInterface::render ( ): string;

 

Modal

Es uno de los formatos de salidas posibles del framewok. Hereda de la clase Junco\System\Http\ResponseSnippet.

 

Modal::type

public Modal::type ( string $type ): void

 

Modal::size

public Modal::size ( string $size ): void

 

Modal::button

public Modal::button( string $caption = '', string $control = ''): void

 

Modal::enter

public Modal::enter( string $caption = '' ): void

 

Modal::close

public Modal::close ( string $caption = '' ): void

 

Modal::title

public Modal::title ( string | array $title ): void

 

Modal::footer_html

public Modal::footer_html ( string $html ): void

 

Modal::response

Se encarga de generar la respuesta http. El resultado debe ser devuelto.

public Modal::response( ): void