Llene o modifique los textos en la zona de entrada de datos y elija uno de los enlaces disparadores de acciones situados en el panel "Objetivo vinculado", que se muestra a la derecha.
En esta zona se desplegará una parte del contenido devuelto por el servidor ante la solicitud ajax lanzada por el enlace invocar acción de prueba.
Una acción se puede entender como una "pseudoruta" que es "cargada" o "llamada" mediante un script, para enviar una parte de (o toda) la información recogida en una página web al servidor con el fin de "intercambiarla" o "registrarla" y recibir de vuelta una notificación o un bloque de datos para mostrar al usuario sin necesidad de recargar la página completa. Los datos de respuesta podrán mostrarse en la forma de un mensaje emergente, reemplazando algunos elementos de la misma, o adicionando nuevos.
La clase BindedAccion hace posible registrar acciones y crear enlaces (variables) con instrucciones muy sencillas.
Vista genéricamente, una acción ajax se compone de los siguientes elementos:
PHP - Bibliotools ofrece un juego de clases php y archivos JavaScript completamente integrados y funcional para facilitar la creación de acciones de modo que a la hora de implementarlas sólo se debe pensar en qué datos se van a recoger, qué se hará con ellos y cuál es la respuesta adecuada y cómo o dónde ofrecerla.
Antes de iniciar el proceso se deben tener en cuenta algunos detalles:
Como las definiciones de objetivos y de procesadores se necesitan para alimentar la definición de la acción, conviene prepararlas antes:
// Definición de una acción // 1. Definición de al menos un objetivo. Si no existe alguno se debe establecer // la clave 'pordefecto' para poder asociarle el método que // va a procesar la información. // 1.a Declarar el procesador que atenderá el objetivo (debe apuntar a un método existente) $procesadorDef = new \Biblio2ls\Model\DefineProcesador(); $procesadorDef->setMetodo('nombreMetodo') ->setCallKey('namespace' | 'classpath' | 'factory_key_path' | 'store_key') ->setTipoDeLlamado('static' | 'invokable' | 'factory' | 'stored'); // 1.b Establecer la definición del objetivo $objetivoDef = new \Biblio2ls\Model\ObjetivoDeEvento(); $objetivoDef->setObjetivo('idDelElemento' | 'pordefecto') ->setProcesadorDef($procesadorDef) ->setAttribute('atributeName' | 'atributos sparados por espacios'); //'htm' es el defaut si no se establece // 1.c Repetir 1.a y 1.b para los objetivos a afectar // 2. Instanciar la definición de la acción, para el ejemplo se indicará una fuente de // datos. En general no es necesario si se van a establecer parámetros de llamado $accionDef = new \Biblio2ls\Model\BindedAccion(); $accionDef->setElemento('nombre-de-la-accion') ->setEvento('click') ->agregarFuenteDeDatos('idDelElementoFuente') ->agregarObjetivo($objetivoDef) ->registrarAccion() // pasa la acción a los scripts de encabezado y carga los js necesarios ->setLinkPad(); // prepara una plantilla generadora de enlaces // 3. Generar enlaces para ubicar en los lugares de la página que deban lanzar la acción // si la acción se asocia a una tabla, cada registro pasará su id y algún texto a su // enlace correspondiente $link = $accionDef->getLink(IdDelDatoVinculado, 'Texto a mostrar en el enlace'); // los enlaces resultantes tendrán la forma: <a href="javascript:ejecutar_accion_lgqbinded('nombre-de-la-accion/IdDelDatoVinculado');">Texto a mostrar en el enlace</a>
$cmdstatic::$fnt(4, $panel1); donde: $cmdstatic = '\Biblio2ls\Library\WriteHtml5'; $fnt = 'simplePannelsRow'; $panel1 = [ [ 'tit' => '<h4>'.\Biblio2ls\Library\WriteHtml5::glyphIcon('link').'Ejecución de comando estático almacenado</h4>', 'txt' => $cmtstatic, 'col' => 12, ], y $cmtstatic = El texto que se lee en esta zona del panel.Se debe resaltar que
$cmdstatic = '\Biblio2ls\Library\WriteHtml5'
contiene el path calificado a la clase abstracta WriteHtml5
construido con su namespace iniciando con "\" (backslash). Y,
el archivo "WriteHtml5.php" que ofrece la clase se encuentra cargado.$fnt = 'simplePannelsRow'
y el operador :: se
usa explícito. (Se trató de usarlo dentro de una sola variable y no funcionó)Prueba 2 Verificar que método exista
$button = new $componente_calificado("Botón danger", "", "", 0, "danger"); $botondanger = $button->$toStringMethod echo $botondanger // y se muestra:
Prueba 3 verificar que metodo admita los parámetros a pasar
No encuentro documentación para identificar la signatura de un método. Pero, de acuerdo con el paso de argumentos de longitud variable puedo establecer una regla de sintaxis
para los métodos a pasar a las definiciones de objetivos así:
Conclusión de la prueba:
Los métodos estaticos a llamar y los métodos en invocables, que serán declarados en la definición de
procesador de objetivos, deben tener una de las siguientes signaturas:
El procesador usará el llamado: $metodo($parametros, $dbService2l, $atributos);
La estructura propuesta es bastante flexible con el fin de permitir que los métodos sean empleados en otros procedimientos,
que no necesariamente responden a la necesidad de alimentar objetivos de llamados ajax.
Importante: La salida de estos métodos debe ser texto plano o cadenas html válidas.
Php - BiblioTools [Documentación]