Entradas

Creación de PDF con kartik\mpdf\Pdf

Imagen
Creación de PDF con kartik\mpdf\Pdf Sin duda uno de los más populares, pero a mi parecer con poca documentación, y difíciles de manejar, por tal motivo les dejo éste artículo. Lo primero que debes saber es que esta es un pluging que utiliza varias librerías PHP. http://html2fpdf.sourceforge.net/ Notas importantes:  Esta librería es la encargada de convertir html a un formato PDF, es decir es como un traductor HTML a PDF, es muy importante que revises esta documentación ya que en el sitio oficial de este componente no explica casi nada. Lo segundo que debes de saber es que si hay un error en cómo generas tu código html lo mas probables es que te salga en blanco, ya que todo el código html que no logra interpretar simplemente no lo muestra.  Ejemplo básico para generar PDF Incluir esta librería use kartik\mpdf\Pdf; Dentro del código explico algunas funciones. public function actionIndex() {                           // Puedes vaciar todo el

Como incluir JS

Imagen
Como incluir un archivo externo JS Para incluir un archivo Javascript que está en otra ruta debes asegurarte que está físicamente en el lugar correcto, recuerda que todos los archivos públicos están dentro de la carpeta pública, para acceder a la ruta pública usar la palabra reservada "@web" seguido de la ruta a partir. Esta linea incluye un archivo JS. $this->registerJsFile('@web/js/functions.js'); Incluir después de JQuery En algunas ocasiones es posible que tu archivo JS tenga que ir declarado después la librería javascript, en ese caso es recomendable utilizar las siguientes líneas. $this->registerJsFile(     '@web js/functions.js ',     ['depends' => [\yii\web\JqueryAsset::className()]] ); Fuentes: https://www.yiiframework.com/doc/guide/2.0/en/output-client-scripts

Crear fomulario HTML con checkbox sin Active Record

Imagen
Como crear formulario HTML con checkbox list sin Active Record Hay muy pocos manuales de cómo hacer esto en español, así que me di a la tarea de decirte cómo crear un formulario HTML y poner dentro un checkboxlist. Antes que nada deberás saber que existen 2 tipos de formularios en Yii2, con active record y los HTML, la diferencia es que con active record necesitas un modelo y solo se puede usar así, y el formulario HTML no necesita de un modelo. Para utilizar esta libreria necesitas incluir la siguiente linea en tu vista. use yii\helpers\Html;  use yii\helpers\Html; A continuación un ejemplo de cómo hacer un checkbox list utilizando un formulario HTML. $item["preguntas"] = [ ['id' => 1 ,  'nombre' =>'Opcion 1'  ], ['id' => 2 ,  'nombre' =>'Opcion 2'  ] ] echo Html::beginForm([     'formulario/generate-pdf/',      'evento_usuario_id' => $eventoUsuarioId],     

Google Plus desaparecerá el 4 de Abril de 2019

Google Plus desaparecerá el 4 de Abril de 2019 Sentimos mucho esta noticia, ya que la red social Google Plus cerrará y borrará todo su contenido, por lo que a todos nuestros seguidores los invitamos a que nos sigan por Facebook:      https://www.facebook.com/cursosdeprogramacionmexico/  via GIPHY Pasamos buenos momentos pero todo tiene un ciclo.  

Convertir array bidimensional en un GridView::widget

Como convertir un array o arreglo bidimensional en un GridView::widget Este caso muy particular es cuando por alguna razón tienes que manipular arreglos para después mostrarlos en una tabla html, en mi caso por que tengo que convertir a pdf pero he tenido algunos otros casos similares.  Para convertirlo puede utilizar el siguiente código.  Suponiendo que el arreglo bidimensional no sabes cuales ni como se llamarán puedes utilizar éste método. use kartik\grid\GridView; use yii\data\ArrayDataProvider;     $provider = new ArrayDataProvider([         'allModels' => $reporte,         'sort' => [             'attributes' => ['id', 'name'], //opcionalmente pueder ordenas los datos         ],     ]); echo GridView::widget([     'dataProvider' => $provider, ]); Algo que probablemente no sabias es que si no le pasas parámetros de 'columns' te mostrará todas las columnas lo cual es fu

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Imagen
Tutorial de implementación de calendario de rango de fechas con Karkit en gridView. Artículo actualizado: 12 de Marzo de 2024 Este tutorial muestra un ejemplo de cómo implementar el calendario de karkit de rango de fechas dentro de un filtro de un gridView. Nota importante: Esta es una adaptación no oficial del uso del calendario dentro de un gridview, ya que en la documentación oficial Que para los que van comenzando con Yii2 podría resultar un poco tardado y no encontré un tutorial que lo explicara de forma clara. Asi pues les dejo este tutorial esperando que les sea de utilidad. PASO # 1 .- Agregar la columna para el calendario del gridview. Se debe de agregar dentro de la vista la columna donde irá el filtro, recordar que se tiene que agregar previamente el componente de karkit dentro de la vista. Deberá tener instalada el siguiente plugin use kartik\daterange\DateRangePicker; [                 'label' => Yii::t('ap

Forzar descarga de archivos del servidor

Imagen
Veremos como forzar la descarga de archivos desde el servidor Sin duda es algo básico pero no había tenido oportunidad de trabajar en esto, yo que vengo de la vieja escuela de PHP al día en el que escribo este artículo la forma más sencilla de hacer esta operación es utilizando la siguiente función. Forzar descarga de archivo del servidor La función tiene los siguientes requisitos: No debe enviarse nada al header antes que esta función ya que por obvias razones la descarga se hace a través del header. $pathDescarga = "files/carpeta/archivo-ejemplo.xlsx";  return \Yii::$app->response->sendFile( $pathDescarga ); Tambien tenemos un plus que podria servirte Borrar el archivo tras la descarga Esta opción funciona muy bien. $pathDescarga = "files/carpeta/archivo-ejemplo.xlsx"; return \Yii::$app->response->sendFile( $pathDescarga ) ->on(\yii\web\Response::EVENT_AFTER_SEND, function($event){                    

Select dependientes en cascada

Si requieres realizar select's dependientes te puedo recomendar Depdrop de kartik   En ocaciones es necesario utilizar selects que dependen de otros select a veces hasta de 3 4 niveles, así que para esos casos te convenga utilizar esto. No hablararé muy profundamente de esto por que no tengo ningún ejemplo en este momento pero les dejo la liga en fuentes por si en algun momento lo utilizan puedan recurran a este link. Fuentes: https://github.com/kartik-v/yii2-widget-depdrop

Como incluir codigo JavaScript

Imagen
Para incluir código JavaScript o JQuery en tus vistas Existen varias formas pero la que más me agrada es la siguientes: Ejemplo simple utilizando JavaScript $js = <<<JS console.log(); JS; $this->registerJs($js); Imagen en consola del browser Ejemplo utilizando JQuery $js = <<<JS     $(document).ready(function() {          $('a[data-toggle=\"tab\"]').on('show.bs.tab', function (e) {             localStorage.setItem('lastTab', $(this).attr('href'));         });                  var lastTab = localStorage.getItem('lastTab');                  if (lastTab) {            $('[href=\"' + lastTab + '\"]').tab('show');         }     });  JS; $this->registerJs($js); Actualizado: Junio 2023

Las uniones utilizando Active Record

Te mostraremos las diferentes formas de usar uniones o Joins con Active Record Existen varias formas de hacer uniones en Yii2 con Active Record Te muestro algunos Ejemplos: joinWith La forma más adecuada es a través de la unión mediante la declaración existente dentro del modelo.  Ejemplos: Unión mediante el modelo.  Observa que el nombre del parámetro que está dentro del método joinWith() es el mismo nombre que encuentras en la relación que está declarada dentro del modelo. Esta opción sólo se puede utilizar si existe una declaración dentro del modelo.         $reporte = Evento::find()->joinWith('campana'); Ejemplo de declaración de relación dentro del modelo. Lo que aparece en la cabera del modelo como @property es el mismo nombre que puedes usar dentro del join       ....    * @property Campana $campana     .....     /**      * @return \yii\db\ActiveQuery      */     public function getCampana()  

Como crear un componente desde cero

Te enseñaré la manera más sencilla de hacer un componente de Yii2 Introducción Los componentes son utilizados para realizar operaciones rutinarias y encapsular la funcionalidad de manera que se pueda reutilizar en uno o varios proyectos. Paso #1 Crear clase vació de componente  Puedes crear  dentro de tu proyecto  una carpeta donde colocar tus componentes que se llame "/components/", una vez creada la carpeta puedes crear allí crea un nuevo archivo php con tu componente. Para éste ejemplo le vamos a llamar al componente "Excel.php", el nombre puede ser el que tu decidas, de preferencia debes utilizar el mismo nombre de archivo que el nombre del componente para su fácil identificación.  namespace app\components; use Yii; use yii\base\Component; class Excel extends Component{     //A gregar aquí tu códogo aqui    } Como puedes ver la primera línea es "namespace" y "app\components", como puedes ver esta primera l

Yii 2.0.14 Ventajas y Desventajas

Actualización Yii 2.0.14 Ventajas Aun no he probado las ventajas Desventajas Algo que no me pareció divertido es que ahora no puedes imprimir nada sin que te salga este error: An Error occurred while handling another error: yii\web\HeadersAlreadySentException: Headers already sent in Lo cual es un poco molesto, ya que estaba acostumbrado a debuguear mi código utlizando los métodos var_dump o un echo, ahora con la llegada de esta actualización esto ya no es posible. Sin embargo encontré esta solución para evitar este molesto mensaje. Agregar al inicio y al final del método, las siguiente líneas. public function actionIndex(){ ob_start(); echo "<br> Hola"; return ob_get_clean(); } Con estas líneas te evitas las molestias y puedes debuguear y quitarlas cuando termines. Fuente: https://stackoverflow.com/questions/49638762/yii2-headers-sent-twice-when-running-console-from-web-app

Guía rápida para uso de widget kartik para select para formulario

Imagen
En esta guía te enseñaré cómo utilizar de manera simple y rápida el widget para select de kartik Nota: Este video tutorial de ejemplo contiene un ejemplo parecido al de éste post.  Introducción. Algunas veces necesitamos algunas opciones más avanzadas para algunos formularios, para esos casos puedes utilizar este pluging que al día en el que estoy escribiendo éste artículo es popular. A continuación te muestro como utilizar éste componente en los siguientes pasos. Paso #1. Instalación de widget. Si aun no lo tienes instalado deberás instalarlo para poder utilizarlo, el nombre del widget es:      use kartik\select2\Select2; Por lo tanto deberás incluir ésta librería dentro de tu vista. Paso #2. Obtener arreglo con opciones que se cargarán en el menú. Este proceso es muy simular al que se hace regularmente, sólo asegúrate de estar recibiendo en la vista el formato adecuado. Existen varias opciones para convertir una consulta a un arreglo, algu

Aprende Yii2


hostinger

ventana bienvenida