Entradas

Como crear un dual listbox en bootstrap 4 ó 5

Imagen
  Como crear un dual listbox en bootstrap  Ultima actualización de articulo: 14 de Marzo de 2024 Sera necesario instalar la siguiente libreria: https://github.com/softark/yii2-dual-listbox Para bootstrap 4 ó 5 debera asegurarse de tener los siguientes plugings. Observe que debe terner bootstrap 4 ó 5 pero no ambos.   "require": {     "php": ">=7.0.0",     "yiisoft/yii2": "*",     "yiisoft/yii2-bootstrap4": "*", // OR     "yiisoft/yii2-bootstrap5": "*",     "istvan-ujjmeszaros/bootstrap-duallistbox": "~4.0.0",     "softark/yii2-dual-listbox": "dev-master" }, En el controller ó vista es necesario tener un arreglo con los items que se van a motrar en el dual listbox, puede hacerlo de la siguiente manera cambiando el nombre de su modelo. Ejemplo:   $items = ArrayHelper::map(  Proveedor::find()->all() ,'id', 'nombre'); En la vista, debera en

Guardar en el registro de errores

Para guardar en el registro de errores a propósito para poder monitorear alguna funcion puede utilizar la siguiente funcion.             Yii::error("Aqui se guarda en el log de errores cualquier string");

Como vaciar la caché de de Yii.

 Para vacias toda la caché de Yii ejecute el siguiente comando.             php yii cache/flush-all Si por alguna razón no funciona puede ejcutar desde Yii el siguiente comando.                Yii::$app->cache->flush();

Restringir el acceso público a las carpetas públicas .git utilizando .htacces en apache

Dentro del archivo .htacces  agregar la siguiente linea para bloquear los accesos a la carpeta ".git" RedirectMatch 404 /\.git Con esta linea todas las urls a la carpeta ".git" seran redirigidas a un 404.

Mostrar gridView sin paginación

 Para mostrar un grid sin paginación debera modificar en el ModelSearch la siguiente linea:  'pagination' => false, Ejemplo           $query = Ticket::find()                 ->with([                     'usuarioAsignado',                      'ticketEstatus',                      ])                 ->with('ticketCausa')                 ->with('usuarioAsignado');                          $dataProvider = new ActiveDataProvider([             'query' => $query,             'pagination' => false, // Mostar sin paginación             'sort' => ['defaultOrder' => ['id' => SORT_DESC]] // Orden descendente         ]);

Cómo manipular la propiedad sameSite para prevenir "Cross-Site Request Forgery"

Imagen
 Cómo agragar sameSite para prevenir "Cross-Site Request Forgery" En el presente tutorial se muestra cómo habilitar la medida de seguridad "sameSite" para prevenir la vulnerabilidad llamada "Cross-Site Request Forgery ". Como referencia puedes hacer la prueba antes de hacer la presente modificación dando clic derecho en tu navegador, en este caso estoy utilizado el navegador Chrome y dando clic en la opción de "Application" despues en "Cookies" y en seguida selecciono el sitio correspondiente, aparecera algo como lo siguiente: Observa que en donde dice "SameSite" esta vacio, esto indica que no se tiene dicha medida de seguridad.  Entonces para cambiarla yo estoy realizando este ejercicio con PHP 8.1 y Yii  2.0.47, que de acuerdo a la documentación de Yii esto sólo funciona a partir de la version 2.0.21 o superior. Deberá entrar al archivo de configuración según su plantilla, en mi caso tengo la básica por lo que entraré a &quo

Restrincción en modelo utilizando Jquery en el modelo.

Restrincción en modelo utilizando Jquery en el modelo. Imaginemos que deseas hacer una condición donde si un usuario elige alguna opción de un modelo un campo se vuelva obligatorio otro campo, todo esto haciendolo desde el modelo. Para realizar esto debe entrar en el modelo al que desea aplicar la condición y agregar la siguiente en los rules. Ejemplo:  En el siguiente ejemplo tenemos un campo llamado 'solucion' el cual se volvera obligatorio si otro campo del mismo modelo llamado 'ticket_estatus_id' es igual a 5 el cual es un valor de un ID de una llave foranea.    public function rules()     {         return [  ... ..             [['solucion'], 'required',                  'when' => function($model){                     return $model->ticket_estatus_id == 5;                 }                 ,'whenClient' => "function (attribute, value) {                     console.log('estatus desde modelo:'+$('#ticket-ticket

Checkbox utilizando modelo

Checkbox utilizando modelo Este es un ejemplo de un elemento de checkbox utilizando el modelo    <?php $form = ActiveForm::begin(); ?> <?= $form->field($model,'visible_select')->checkbox(['label'=>'Visible'])?> <?php ActiveForm::end(); ?>

Cache de RBAC

¿Que es el cache en RBAC? Ultima fecha de actualización de artículo:  Actualizado: 08-Marzo-2024 El cache es una forma de poder reducir el número de consultas a la base de datos, debido a que cada vez que dentro del sistema se ejecuta un método "Yii::$app->user->can()" el modulo ejecuta una consulta al servidor de base de datos, si se multiplica el número de veces que utilizamos dicha consulta, por ejemplo en un menú dinámico que muestra opciones de acuerdo al rol del usuarios, esto hace que el número de peticiones al servidor de bases de datos se incremente considerablemente, esto en sistmas productivos podria traer beneficios en velocidad y en la nube puede reducir considerablemente los costos.  ¿Cómo se implementa el cache en RBAC? Se puede mantener un caché del RBAC agregando el siguiente código en el archivo "config/web.php" de la plantilla básica.            'authManager' => [             'class' => 'yii\rbac\DbManager',    

Habilitar y deshabilitar el debug en Yii

Imagen
 Habilitar y deshabilitar el debug en Yii Deshabilitar barra de Debug La función de debug de Yii se habilita y deshabilita automáticamente al establecer en modo Producción la apliación, en la plantilla básica esto se realiza comentando las siguientes lineas. Una vez que se comenta pasa automáticamente producción por lo que desaparece la barra de Debug. Habilitar barra de Debug En el caso contrario para mostrar la barra de Debug debe descomentar las linas antes comentadas.  Habilitar con RBAC Instalado Es posible que el RBAC bloque la ruta del RBAC por lo que si de pronto no le aprece revise que tenga habilitado el permiso de ver la ruta "debug/*"

Como validar con Jquery el envio de un formulario antes de ser enviado en Yii

Como validar con Jquery el envio de un formulario antes de ser enviado en Yii En ocaciones es necesario validar de manera especial un formulario, en este ejemplo muestro como validar un formulario con JQuery entes de enviarlo, es decir agregué una pregunta de confirmación antes de enviarla, para evitar que se envie utilizo un "return false".   <?php $js = <<<JS         $('body').on('beforeSubmit', '#w0', function () {            if (confirm("¿Are you sure?") == true) {                            console.log('If user chose ok');      } else {        console.log('If user chose Cancel');          return false; // Dont send form     }                 });          JS; $this->registerJs($js,View::POS_READY ); ?> Referencias: https://www.yiiframework.com/wiki/750/how-to-implement-form-events

Como crear un dual listbox

Imagen
Como crear un dual listbox en bootstrap  Ultima actualización de articulo:  Sera necesario instalar la siguiente libreria: https://github.com/softark/yii2-dual-listbox En el controller   $items = ArrayHelper::map(  Proveedor::find()->all() ,'id', 'nombre'); En la vista echo Html::beginForm([     'formulario/generate-pdf/',      //'evento_usuario_id' => $eventoUsuarioId     ],      'post', ['enctype' => 'multipart/form-data'] ); $options = [     'multiple' => true,     'size' => 20, ]; //echo Html::listBox($name, $selection, $items, $options); echo DualListbox::widget([     'name' => 'MyItem',     'id' => 'MyItem',     //'selection' => $selection,     'items' => $items,     'options' => $options,     'clientOptions' => [         'moveOnSelect' => false,         'selectedListLabel' =>

Migrando de bootstrap 3 a bootstrap 5

Imagen
Migrando de bootstrap 3 a bootstrap 5 Fecha de Actualización: 01 de Septiembre 2022 Bootstrap 5 fue lanzado oficialmente el 05 de Mayo de 2021, y fue integrado a Yii aproximadamente en Julio del mismo año. Recomendaciones previas al migrar Al tener una gran diferencia entre la version de bootrstrap 3 a la 5 es posible tengas que hacer una gran cantidad de cambios dentro de tu proyecto, sobre todo debes de evaluar que todos la compatibilidad de tus extensiones instaladas. Dicho esto ya puedes continuar siguiendo los siguientes pasos.  Proceso de instalación Instalación de bootstrap 5 Deberas desintalar o comentar en el composer la version antigua de bootsrap. En mi caso tengo la version "~2.0.0" , podsrias tener algo un poco diferente pero en todo caso debe ser eliminada del composer.    "yiisoft/yii2-bootstrap": "~2.0.0", Y debes agregar en el composer la siguiente linea:   "yiisoft/yii2-bootstrap5": "~1.0.0" Y actualizar el composer. 

Instalar Netbeans 14 en Ubuntu 22 por consola

Imagen
Instalar Netbeans 14 en Ubuntu 22 por consola Para instalar Netbeans 14 en Ubuntu 22 al dia de hoy es necesario instalar Java JDK 11 o superior,  Puede revisar si tiene instalado java con el siguiente comando:  java -version   Si ya lo tiene instalado se debe mostrar un mensaje como el siguiente:  En este caso no es necesario instalar java. En el caso contrario debe instalarlo como de la siguiente manera. Para Ubuntu 22 puede ejecutar el siguiente comando:  sudo apt install -y openjdk-11-jdk Para saber si quedo correctamente instalado mostrar la version de java con el siguiente comado.  java -version   Descargar instalador desde el sitio oficial de apache:  https://netbeans.apache.org/ Busque la opción de descargar debe elegir la opción para linux, es un archivo con extensión ".sh". Una vez que ha descargado el archivo y es muy importante ejecutar el siguiente comando sobre el archivo que se descargó:  sudo chmod 700 Apache-NetBeans-14-bin-linux-x64.sh   Una vez que se ejecut

Instalar Apache PHP 7.4 MySQL phpMyAdmin en Ubuntu 22

Imagen
Instalar Apache, PHP 7.4, MySQL en Ubuntu 22 En este artículo aprenderas los siguientes temas: InstalarApache 2 Crear usuario alternativo al root en MySQL Instalar PHP 7.4 Habilitar Mod_rewrite en Apache 2 Cambiar CLI entre versiones de PHP Cambiar GUI entre versiones de PHP Modificar archivo de configuración php.ini Instalar Apache 2 sudo apt-get -y install apache2   El siguiente comando instalará el servidor de MySQL y el cliente en una sola linea.  sudo apt-get -y install mysql-server mysql-client   Configurar mysql  Al quedar instalado podras entrar con el usuario root de linux con el comando:  sudo mysql -u root   Si no funciona puedes utilizar el siguiente comando para entrar con el usuario root sudo mysql   Crear usuario alternativo al root en MySQL Logearse como root o super usuario: sudo mysql   Crea un usuario llamado admin, y deberas establecer la constraseña por una contraseña valida para que tengas acceso, te recomiendo guardarla en un lugar seguro CREATE USER 'admin&#

Aprende Yii2


hostinger

ventana bienvenida