Julius'Lab

Nombre del autor:Julius Hernández

(Formidable) Limitar número de caracteres con Javascript

Como siempre, poner el script en Personalizar HTML > «Campos después» (Fields after) del formulario.

<script type="text/javascript">
jQuery(document).ready(function($){ // Limita número de caracteres a 20
    $('#field_CLAVE_CAMPO').change(function(){ // Cambiar CLAVE_CAMPO al field key necesario
        if($(this).val().length>20){
             $(this).val($(this).val().substr(0, 20)); // Cambiar ambos 20 por el límite deseado
        }
    });
});
</script>

Sin embargo, este código no funciona para impedir escribir más de 20 caracteres, simplemente «trunca» el texto ingresado después del vigésimo caracter. En caso de que quiera impedirse que se pase de 20 caracteres, usar el built-in de Formidable sólo en texto normal, no en RTF.

Tomado y corregido de Limit number of characters en Formidable Forms hooks for developers.

(Formidable) Limitar número de caracteres con Javascript Leer más »

(Formidable) Problema con shortcodes en modal RESUELTO – Sintaxis de shortcode

Los shortcodes funcionan en ventanas modales. Lo que pasa es que los shortcodes con parámetros deben venir sin «comillas», de esta forma:

[ formidable id=x readonly=administrator ]

No de esta forma, como lo indican aquí:

[ formidable id=x readonly=’administrator’ ] o [ formidable id=x readonly=»administrator» ]

Esta aclaración viene porque implementé una ventana modal en GuíaSaludMx y dentro un formulario con un parámetro del custom code mencionado arriba. No funcionó, porque al parámetro le puse las comillas, y me hizo pensar que el problema era la ventana modal.

(Formidable) Problema con shortcodes en modal RESUELTO – Sintaxis de shortcode Leer más »

(Formidable) Agregar contenido en un View cada cierto número de entradas

Esto puede ponerse debajo del código, al final del contenido del view. Sustituir el 3 por la cantidad de entradas entre cada contenido.

[ frm-condition source=frm-math decimal=1 content="[entry_position] % 3" equals="0" ]
    Contenido aquí
[ /frm-condition ]

Usos sugeridos:

  • En una vista de impresión, mostrar dos elementos en cada página (incluyendo un page-break al final y colocándolo dentro de la frm-condition).
  • Insertar un anuncio cada n número de entradas.

(Formidable) Agregar contenido en un View cada cierto número de entradas Leer más »

Copiar el valor de un Dynamic Field a un campo de texto o combinar varios en uno solo

COPIAR EL VALOR DE UN DYNAMIC FIELD A UN CAMPO DE TEXTO. #

Agregar el siguiente fragmento de código:

add_filter('frm_validate_field_entry', 'copy_my_dynamic_field', 10, 3);
function copy_my_dynamic_field( $errors, $posted_field, $posted_value ) {
  if ( $posted_field->id == 125 ) {
    $_POST['item_meta'][ $posted_field->id ] = FrmProEntriesController::get_field_value_shortcode( array( 'field_id' => 50, 'entry' => $_POST['item_meta'][120] ) );
  }
  return $errors;
}

125 es el ID del campo de texto donde se copiará.
120 es el campo dinámico que contiene el valor a copiar, y
50 es el campo original del cual el campo dinámico jalan las entradas.

COMBINAR VARIOS VALORES (DINÁMICOS O NO) EN UN CAMPO DE TEXTO #

add_filter('frm_validate_field_entry', 'combine_to_one_field', 8, 3);
function combine_to_one_field( $errors, $posted_field, $posted_value ) {
    if($posted_field->id == 125){ //change 125 to the ID of the destination field
        //change the value between the quotes to what should go in-between values
        $separator = " - ";
        $_POST['item_meta'][125] =
        $_POST['item_meta'][17] . $separator .
        $_POST['item_meta'][ $posted_field->id ] = FrmProEntriesController::get_field_value_shortcode( array( 'field_id' => 60, 'entry' => $_POST['item_meta'][19] ) ) . $separator .
        $_POST['item_meta'][ $posted_field->id ] = FrmProEntriesController::get_field_value_shortcode( array( 'field_id' => 58, 'entry' => $_POST['item_meta'][32] ) );
    }
    return $errors;
}

125 es el ID del campo de texto donde se combinarán los campos.
La línea con el campo 17 es un campo normal.
Las líneas con FrmProEntriesController son las de los campos dinámicos. En la primera línea, 19 es el ID del dynamic field a copiar y el 60 es el id del campo de donde jala las entradas.

Copiar el valor de un Dynamic Field a un campo de texto o combinar varios en uno solo Leer más »

Crear un botón TOGGLE para mostrar/ocultar de cualquier elemento en Elementor

Crear un botón y asignarle el tag id= showFilterForm (en Avanzado de Elementor).

Crear el elemento (a ocultar/mostrar), normalmente debajo del botón, y asignarle el tag id= hiddenFilterForm (en Avanzado de Elementor).

Poner en la sección CSS correspondiente de Personalizar HTML del tema, la línea: #hiddenFilterForm {display:none;}

Agregar el siguiente Javascript:

<script type="text/javascript">
jQuery(document).ready(function( $ ){

   $('#showFilterForm').click(function() {
   $('#hiddenFilterForm').toggle("slow");
 });
});
</script>

Crear un botón TOGGLE para mostrar/ocultar de cualquier elemento en Elementor Leer más »

(Javascript – Formidable) Accionar un campo Toggle de acuerdo al valor de un campo de selección

Colocar este código en la sección Campos Después (Fields After) en Personalizar HTML del formulario.

<script type="text/javascript">
jQuery(document).ready(function($){
  $('select[name="item_meta[530]"]').change(function(){ //530 es el campo de selección (dropdown)
     var val1 = $("select[name='item_meta[530]']").val();
     if (val1 == 'Pendiente' || val1 == 'Por entregar' || val1 == 'En proceso' || val1 =='Incumplimiento')
     {$("#field_bloqueado").attr("checked", true);} // "bloqueado" es el key del campo toggle a accionar
     else if (val1 == '' || val1 == 'Rechazado' || val1 == 'Cancelado' || val1 =='Concretado')
     {$("#field_bloqueado").attr("checked", false);}
     $("#field_bloqueado").change();
  });
});
</script>
<script type="text/javascript">
jQuery(document).ready(function($){
var oldValue = '';
var dynamic_field = document.getElementById("field_dfe");
var hidden_field = document.getElementById("field_hidden");
var aTimer;
var counter;

$(dynamic_field).change(function(){
oldValue = $("#field_just_show_it").val() ;
if (!(aTimer == undefined) ) clearInterval(aTimer) ;
counter = 0 ;
aTimer = setInterval(function(){
var newValue = $("#field_just_show_it").val() ;
counter ++ ;
if ( (newValue != oldValue) ){
if (newValue != oldValue && newValue != undefined) {
hidden_field.value = newValue;
oldValue = newValue;
$(hidden_field).change();
}
clearInterval(aTimer) ;
}
} , 100) ;
}) ;
}) ;

</script>

(Javascript – Formidable) Accionar un campo Toggle de acuerdo al valor de un campo de selección Leer más »

Motorola G5: Cómo iniciar el dispositivo o hacer el hard reset con el botón de Power (Encendido) defectuoso

El problema es que el botón físico de Power (Encendido) está defectuoso. En algunas ocasiones recibe el comando, pero hay que buscarle. Y es mucho más difícil mantenerlo presionado para reiniciar el celular. Pero funciona a un solo toque, buscándole.

En caso de que la batería se acabe, hay una manera de encender el celular y/o hacerle un hard reset (llevarlo a la pantalla de recovery).

Antes que nada, se destapa por detrás para poder acceder a la batería (realizado).

1) Con la batería puesta, se presiona el botón de Bajar Volumen, y manteniéndolo presionado, se conecta la carga. Esto nos lleva a la pantalla de selección de modo Recovery, Start, etc.

Encender el celular

En la pantalla de selección de fábrica, puesto en modo Start, se quita la batería por menos de un segundo y de inmediato se vuelve a poner. Esto hace que el celular arranque en modo normal.

Hard Reset

Para hacer el hard reset (o seleccionar cualquiera de los otros modos), se repite el paso 1.

En la pantalla, se selecciona Recovery Mode. Se presiona el botón de Power (buscarle hasta que lo reciba).

El celular se reiniciará y aparecerá la imagen del androide abierto con el letrero Sin comandos. Ahí se presiona Subir Volumen y al mismo tiempo el Power (buscarle de nuevo).

Ahí seleccionamos Wipe data / Factory reset. Elegir con Power.

En la siguiente pantalla, donde avisan que se eliminarán todos los datos y que no se puede deshacer, seleccionar User data + personalized content con el botón Power.

Después, repetir el procedimiento y ahora seleccionar Wipe cache partition, y seleccionar Yes.

Una vez que termine, repetir y ahora seleccionar Reboot system now.

Así, accederemos a las funciones normales de configuración del nuevo teléfono.

 

 

 

Motorola G5: Cómo iniciar el dispositivo o hacer el hard reset con el botón de Power (Encendido) defectuoso Leer más »

(Formidable) Establecer orden específico para una Vista con un enlace

Agregar el siguiente código PHP:
(tomado de Change View order based on URL parameter)

add_filter( 'frm_filter_view', 'change_my_view_object', 10, 1);
function change_my_view_object( $view ) {
	if ( $view->ID === 8477 ) { // 8477 is the View id
		if ( isset( $_GET['my_param'] ) && $_GET['my_param'] == 'descent' ) {
			$view->frm_order_by = array( created_at );
			$view->frm_order = array( 'DESC' );
		}
	}

	return $view;
}

En el ejemplo, 8477 es el id de la Vista.

En my_param puede ponerse el nombre del parámetro al gusto, e igualmente en descent, cualquier valor.

En la línea $view->frm_order_by = array( created_at );, dentro de los paréntesis, puede haber un ID de un campo (p.e. 150), campo por el cual se ordenará la Vista. En este ejemplo, se usa created_at como campo a ordenar, lo cual sirve para ordenar por creación de la entrada de forma ascendente o descendente.

En la línea $view->frm_order = array( ‘DESC’ );, se pone ASC o DESC, lo que se desee.

Para implementar, el enlace es como:

https://url.com/?my_param=descent

(Formidable) Establecer orden específico para una Vista con un enlace Leer más »