A continuación, se listan los fragmentos que ofrecen las extensiones del sistema.
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.
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.
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.
El fragmento de la extensión Email implementa la interfaz EmailMessageInterface y permite crear un mensaje con dos formatos: text/html y text/plain.
Agrega un título al documento html del mensaje.
public EmailMessageInterface::title( string $title): void;
Agrega una leyenda al comienzo del mensaje.
public EmailMessageInterface::legend( string $legend): void;
Agrega un párrafo al mensaje.
public EmailMessageInterface::line( string $text ): void
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;
Agrega el aviso legal del mensaje. En caso de no pasar parámetros, se agregará un mensaje predeterminado.
public EmailMessageInterface::legal( string $text ): void;
Establece el cuerpo completo del mensaje. Borrará cualquier otro cuerpo, o parte del mismo, ingresado.
public EmailMessageInterface::body( string $html, string $plain = ''): void;
Devuelve el mensaje en texto plano.
public EmailMessageInterface::getPlain( ): string;
Devuelve el mensaje en texto html.
public EmailMessageInterface::getHtml( ): string;
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.
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();
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']);
Establece los valores de todos los elementos, debe agregarse antes de todo.
public FormElementsInterface::setValues( ?array $values = null ): void;
Un arreglo con todos valores a establecer.
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;
El valor que será agregado al final del nombre del elemento.
Carga un elemento de formulario personalizado.
public FormElementsInterface::load( string $plugin, array $args = [] ): FormElementInterface;
La clave del plugin a cargar.
Un array con los argumentos. El formato de cada argumento debe ser name => value.
Crea un elemento personalizado.
element ( string $content, string $name = ''): FormElementInterface
El html correspondiente al elemento.
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.
Crea un elemento input.
public FormElementsInterface::input( string $name, array $attr = [] ): FormElementInterface;
El nombre del elemento.
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:
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;
Los attributos del elemento. Acepta el attributo icon.
Crea un elemento oculto.
public FormElementsInterface::hidden( string $name, mixed $value = null ): HiddenInterface;
El nombre del elemento.
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.
Crea una o varias casillas de verificación.
public FormElementsInterface::checkbox( string $name, mixed $options = null, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Si es un arreglo, se creará una casilla por cada elemento del arreglo. De lo contrario, si tiene un valor, será considerado su etiqueta.
Cualquier otro attributo del elemento.
Crea una casilla de verificación customizada, con una apariencia de botón.
public FormElementsInterface::toggle( string $name, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Cualquier otro attributo del elemento.
Crea un input customizado para cargar archivos.
public FormElementsInterface::file( string $name, array $options = [] ): FormElementInterface;
El nombre del elemento.
Las opciones para configurar el javascript.
Crea un botón de envío del formulario.
public FormElementsInterface::enter( string $label = '', array $attr = [] ): FormElementInterface;
La etiqueta que mostrará el botón.
Los attributos del elemento. Acepta el attributo icon.
public FormElementsInterface::radio ( string $name, array $options, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Un arreglo con las opciones del elemento.
Cualquier otro attributo del elemento.
public FormElementsInterface::select ( string $name, array $options, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Un arreglo con las opciones del elemento.
Cualquier otro attributo del elemento.
Un selector múltiple customizado.
public FormElementsInterface::suite ( string $name, array $options, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Un arreglo con las opciones del elemento.
Cualquier otro attributo del elemento.
public FormElementsInterface::textarea ( string $name, array $attr = [] ): FormElementInterface;
El nombre del elemento.
Cualquier otro attributo del elemento.
public FormElementsInterface::editor ( string $name ): FormElementInterface;
El nombre del elemento.
public FormElementsInterface::collection ( string $control, string $name ): FormElementInterface;
La clave con la que el javascript reconocerá la colección.
El nombre del elemento.
Agrupa varios elementos de formulario.
public FormElementsInterface::group ( FormElementInterface ... $elements ): FormElementInterface;
Los elementos a agrupar.
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.
Retorna un fragmento para la construcción de los botones de acción.
public FormInterface::getActions ( string $snippet = '' ): FormActionsInterface;
La clave del fragmento.
Establece un encabezado a un bloque de elementos de formulario.
public FormInterface::header ( mixed $attr = null, ?bool $toggle = null ): void;
Acepta los mismos atributos que una fila.
Si se establece un valor boleano, el bloque de elementos podrá ser colapsado.
Envuelve en un fieldset todos los grupos que se tienen hasta el momento.
public FormInterface::separate ( ?string $legend = null ): void;
La leyenda que contendrá el fieldset.
Coloca varios elementos en columnas si el ancho de pantalla lo permite.
public FormInterface::columns ( FormElementInterface ...$elements ): void
Los elementos a colocar en columnas.
public FormInterface::addBlock ( string $html ): void;
Agrega un bloque al formulario. Un bloque consta de una o varias filas.
Retorna el último elemento anexado a la pila de elementos de formulario.
public FormInterface::getLastElement ( ): FormElementInterface;
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;
El html a envolver con la etiqueta de formulario.
La id del formulario.
Devuelve el html.
public FormInterface::render ( ): string;
Es uno de los formatos de salidas posibles del framewok. Hereda de la clase Junco\System\Http\ResponseSnippet.
public Modal::type ( string $type ): void
public Modal::size ( string $size ): void
public Modal::button( string $caption = '', string $control = ''): void
public Modal::enter( string $caption = '' ): void
public Modal::close ( string $caption = '' ): void
public Modal::title ( string | array $title ): void
public Modal::footer_html ( string $html ): void
Se encarga de generar la respuesta http. El resultado debe ser devuelto.
public Modal::response( ): void