Actualización plugin de Telegramia

Acabo de actualizar el plugin de Telegramia (cuenta caracteres o palabras en un campo de entrada).

Este plugin lo creo MIB.

El problema se presenta si se desea borrar un registro que tenga algún campo que utilice este plugin. Sale una ventana de confirmación de borrado, que no funciona y nunca permite borrar el registro.

El problema se presenta porque el plugin utiliza la librería de Sweetalert muy antigua , con lo que se carga esta versión en vez de la que incorpora PHPRunner, creo, que desde la versión 10.8.
La solución es eliminar esta librería del plugin y dejar la de PHPRunner.

He hecho pruebas y funciona perfectamente.

La nueva versión está en formato de los plugines de versión 11 y está en este enlace: https://fhumanes.com/blog/download-adjuntos/4416.

 

Migración de Plugin a versión 11 de PHPRunner

Actualización - 31/05/2025

Una copia de este mensaje la publiqué en el foro de XlineSoft, pero por alguna circunstancia ha sido borrada.

Mi objetivo era indicar a los usuarios que han utilizado algún plugin de esta web que ya tienen versión para PHPRunner v11 y para aquellos que hayan podido desarrollar algún plugin, cuáles son los problemas que yo he encontrado.

Ya he terminado la revisión y los problemas que he encontrado son:

  • Se ha controlado más los nombre de los ficheros, por ejemplo antes funcionaba como nombre de fichero editcalculator.php y ahora tiene que ser EditCalculator.php.

 

  • En versión 10, se puede utilizar la función «$this->addJSSetting()«, en las 2 funciones que se escriben para la lógica de los plugins, «function initUserControl()» y «function buildUserControl()«, que son las funciones de inicialización y construcción del plugin.
    En versión 11, sólo se puede utilizar, con resultado correcto, en la «function initUserControl()» y no en «function buildUserControl()«. No da error, pero la información que se pretender llevar al JavaScript, no llega.

 

  • En la Build 43439 de versión 11, persiste un error de refresco de información en las actualizaciones «inline» y «popup» (en las que se actualiza la información de LIST por Ajax) y eso repercute en los plugines en los que para visualizar los datos se utiliza el LOOKUP estándar de PHPRunner.

(1) Así aparece la información cuando se ejecuta el LIST.
(2) Así aparece (no se hace la conversión del ID, por el NAME), después de un EDIT o ADD.

Por ahora, mientras no se resuelva el problema, lo podéis cambiar por codificación indicando que en VIEW se utiliza el tipo «CUSTOM», con un código similar a este:

$in = $value;

if ( $value <> '' ) {
    $rs = DB::Query(
    "SELECT group_concat(
           concat('<span class=\"badge \">',name,'</span>')
           order by name ASC
           separator ' , ') names
    FROM prueba_plugin_lv
    WHERE idprueba_lv IN ( $in )"
    );
    while( $data = $rs->fetchAssoc() )
    {
    $value = $data['names'];
    }
}

Y en CUSTOM CSS:

.badge {
  /* Bordes más cuadrados (reduce el radio de borde) */
  border-radius: 3px !important; /* Valor original en BS3 es 10px */
  
  /* Opcional: ajustar padding para más "cuadratura" */
  padding: 3px 6px !important; /* Ajusta según necesites */
  
  /* Opcional: otros estilos para parecerse más a una etiqueta */
  font-weight: normal !important;
  font-size: 85% !important;
  background-color: #777 !important; /* Color de fondo estándar */
  color: white !important;
}

DEMO: https://fhumanes.com/plugines_v11/

En la Demo no he aplicado el «work around» que os he indicado para resolver el problema 3

En la página de plugins está todos los plugins para versión 11 y los anteriores para versión 10.
Los de versión 11 tendrán los prefijos Edit_ y View_ de cada uno de los plugins.

Problemas de los plugins en versión 11

Con la última actualización de PHPRunner versión 11, he vuelto a revisar cuál es el problema de los plugins en esta versión y creo que he identificado cuales son los problemas por lo cambios que ha hecho XlineSoft.

 

  1. En versión 10, se puede utilizar la función «$this->addJSSetting()«, en las 2 funciones que construyen la lógica de los plugins, «function initUserControl()» y «function buildUserControl()«, que son las funciones de inicialización y construcción del plugin.En versión 11, sólo se puede utilizar, con resultado correcto, en la «function initUserControl()» y no en «function buildUserControl()«. No da error, pero la información que se pretender llevar al JavaScript, no llega, porque el código para subir estos parámetros se ejecuta antes de ejecutar «function buildUserControl()«
  2. Se ha controlado más los nombre de los ficheros, por ejemplo antes funcionaba como nombre de fichero editcalculator.php y ahora tiene que ser EditCalculator.php. Esto es fácil de corregir y lo podéis hacer vosotros en el código que descargáis.

Identificado el principal problema (1), en estos momentos podría hacerlos funcionar cambiando codificación para que no me afecte los cambios que se han hecho en versión 11.

Voy a esperar algunas nuevas actualizaciones y si no se arregla, intentaré recodificar para subsanar los problemas.

Guía 71 – Plugin «Select2_ajax» – Actualización 29/08/2024

Se ha ampliado el artículo para explicar:

  • Se ha actualizado el plugin «Select2_ajax» porque tal y como estaba, no se podía dejar sin valor un campo que tuviese aplicado este plugin.

 

  • Se ha creado otro ejemplo, que entiendo es más fácil de entender, ya que el originalmente puesto, por el modelo de datos que utiliza estaba un poco «retorcida» la lógica de funcionamiento y podía generar confusión en su uso.

Este es el modelo de datos del nuevo ejemplo llamado «s2_car» y se muestra 3 lookups dependientes.

DEMO:  https://fhumanes.com/s2_car/

El código JavaScript de ADD y EDIT es:

var ctrl_s2_manufacturer_id = Runner.getControl(pageid,'s2_manufacturer_id'); 
var ctrl_s2_model_id = Runner.getControl(pageid,'s2_model_id');
var ctrl_s2_engine_id = Runner.getControl(pageid,'s2_engine_id');

setSession('s2_filter_manufacturer',ctrl_s2_manufacturer_id.getValue(), ctrl_s2_model_id); 

ctrl_s2_manufacturer_id.on('change', function() {
  console.log("Change Manufacturer");
  setSession( 's2_filter_manufacturer',ctrl_s2_manufacturer_id.getValue(), ctrl_s2_model_id);
  ctrl_s2_model_id.setValue('');
  ctrl_s2_engine_id.setValue('');
  clearSelect2(ctrl_s2_model_id);
  clearSelect2(ctrl_s2_engine_id);
});

ctrl_s2_model_id.on('change', function() {
  console.log("Change Model");
  setSession( 's2_filter_model',ctrl_s2_model_id.getValue(), ctrl_s2_engine_id);
  ctrl_s2_engine_id.setValue('');
   clearSelect2(ctrl_s2_engine_id);
});

ctrl_s2_engine_id.on('change', function() {
  console.log("Change Engine");	
});

Si deseas acceder al artículo completo, pulsa el siguiente enlace.