Loading



 
Calificación:
  • 2 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Tips Para Yii
10-10-2012, 10:48 AM (Este mensaje fue modificado por última vez en: 13-11-2012 04:42 PM por dgeaperez.)
Mensaje: #1
Tips Para Yii

Personalizar las plantillas de gii
Si se desea "personalizar" el modo que "gii" crea las vistas, modelos y controladores; se procede de este modo:
- crear una copia de /yii/framework/gii/generators/XXXXX/templates/default (donde XXXXX pude ser model o crud o lo que se necesite)
- alterarlo a gusto y necesidad
- hacer un soft link dentro de /yii/framework/gii/generators/XXXXX/templates/ apuntando al directorio de nuestra personalización.
Cuando ejecuten de nuevo "gii", podrán elegir la plantilla personalizada.

QUOTE
10-10-2012, 11:38 AM
Mensaje: #2
RE: Tips Para Yii

les dejo un tipcito que me acabo de aprender XD como decirle al gridView que me traiga todos los registros sin paginar en tiempo de ejecucion (en la vista)

Código PHP:
$dataProvider=$model->search();
$dataProvider->setPagination(false); 
luego pasan ese
$dataProvider a la gridView
Código PHP:
... ('dataProvider'=>$dataProvider) ... 
[/align]
ideal para excel, pdf

QUOTE
10-10-2012, 04:17 PM (Este mensaje fue modificado por última vez en: 13-11-2012 04:40 PM por dgeaperez.)
Mensaje: #3
Tips Para Yii: Valor dinámico en una grilla

Valor 'dinámico' en una Grilla
Supongamos que tenemos un atributo de nuestro modelo que tiene un valor que queremos traducir para el "humano". Una manera "rápida" y que servirá en muchos "lugares" de nuestro código es definir un método en nuestro modelo; y luego, en la grilla, en lugar de:

Código PHP:
$this->widget('zii.widgets.grid.CGridView', array(
...
'columns' => array(
  
'columna1',
  
'columna2ConValorRaro' 
Escribimos


Código PHP:
$this->widget('zii.widgets.grid.CGridView', array(
...
'columns' => array(
  
'columna1',
  array(
     
'name' => 'columna2ConValorRaro',
     
'value' => '$data->MostrarValorHumanamenteLegible',
 )
... 
Donde 'MostrarValorHumanamenteLegible' es el método del modelo. Adicionalmente se puede agregar un "filter" a ese arreglo para pulir más las cosas.

QUOTE
11-10-2012, 03:55 PM (Este mensaje fue modificado por última vez en: 22-10-2012 11:14 AM por dgeaperez.)
Mensaje: #4
RE: Tips Para Yii

Me acabo de enterar de que si quieren que en los formularios salga el label al lado del input solo tienen que modiicar el div:

Código:
<div class="form">
a
Código:
<div class="wide form">
y eso es todo Sonrisa

QUOTE
31-10-2012, 11:25 AM (Este mensaje fue modificado por última vez en: 13-11-2012 04:40 PM por dgeaperez.)
Mensaje: #5
Tips Para Yii: Diferencias en como envia datos CJui entre Yii 1.10 y Yii 1.12

Acaba de ocurrirme:


En el entorno de desarrollo un formulario (usa CJuiDatePicker) se "dibujaba" de una manera, y los atributos del mismo "entraban" en el arreglo del modelo del $_POST. Es decir, $_POST['modelo']['ValorCJuiDatePicker'].


En el entorno de producción, ese mismo formulario, se "dibujaba" diferente, quedando la variable del CJuiDatePicker dentro de $_POST pero FUERA del arreglo del modelo. Es decir, $_POST['ValorCJuiDatePicker'].


SOLUCIÓN: Verificar que las versiones de yii en ambos entornos SEA la misma. Ejemplo: en desarrollo tenía la 1.1.10 y en producción la 1.1.8. Una vez "subida" la 1.1.10 el problema desapareció.

QUOTE
10-11-2012, 12:01 PM
Mensaje: #6
RE: Tips Para Yii

El método with te da muchas ventajas sobre el join cuando estas haciendo un criteria, el join solo indicas las relaciones que vas a tener con las otras tablas, con el with haces la carga del objeto modelo de la relación, regalandonos la funcionalidad del AR de Yii en esta consulta relacional, porque entonces join?? Hasta donde me documente antes de hacer el tip y puede que este errado y acepto correcciones y así puede que aprenda algo nuevo Sonrisa fue creado para consultas que no fueron tomadas en cuenta en el array de relations del modelo, y que se necesitan unir en un momento entre tablas, incluso leí que cuando hay una consulta un tanto mas compleja tal y como:


Código PHP:
$criteria->join 'INNER JOIN (SELECT * FROM tabla INNER JOIN tabla2 INNER JOIN tabla3 WHERE condicion = :condic) t1'


Aunque no he intentado hacer un with de una subconsulta, si alguien lo ha hecho sería interesante verlo, saludos


en este post http://www.yiiframeworkenespanol.org/for...815#pid815 podemos ver un with que utiliza relaciones por llamarlo así anidadas, donde accedemas a la relación de un objeto por medio de otro de manera que podamos acceder a
$model->modelRelation->modelRelationOfTheRelation->field;
sin ningún problema, espero que sea útil el tip, saludos


Cualquier corrección, aporte, mejora es bienvenida mientras mas información mas aprendemos, saludos


Aprende de los Errores e Incrementa los conocimientos
blog
php the right way

QUOTE
13-11-2012, 04:37 PM (Este mensaje fue modificado por última vez en: 13-11-2012 04:38 PM por dgeaperez.)
Mensaje: #7
Tips Para Yii: Verificar URL

Para crear un método que verifique si una URL existe:


  • verificar que CURL esté instalado
  • Usar esta función para verificar si una URL existe:
    Código PHP:
    public function VerURLMetodoCURL($urlDudosa) {
        
    $resURL curl_init();
        
    curl_setopt($resURLCURLOPT_URL$urlDudosa);
        
    curl_setopt($resURLCURLOPT_BINARYTRANSFER1);
        
    curl_setopt($resURLCURLOPT_FAILONERROR1);
        
    curl_exec($resURL);
        
    $intReturnCode curl_getinfo($resURLCURLINFO_HTTP_CODE);
        
    curl_close($resURL);
        if (
    $intReturnCode != 200 && $intReturnCode != 302 && $intReturnCode != 304) {
          return 
    false;
        }
        else
          return 
    true;
      } 
QUOTE
12-12-2012, 11:27 AM
Mensaje: #8
RE: Tips Para Yii

Baja Lógica

Código PHP:
public function actionDelete() {
    if (
Yii::app()->request->isPostRequest) {
      
// sólo permitomos eliminar via POST
      
$model $this->loadModel();
      
$model->campoBaja = new CDbExpression('NOW()');
      
//$model->campoUsuario = IdentificadorUsuario;
      
$model->save();

      
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
      
if (!isset($_GET['ajax']))
        
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
    }
    else
      throw new 
CHttpException(400'Solicitud Incorrecta. Por favor no la repita.');
  } 
Luego, en los controladores filtrar que el campoBaja sea nulo o no según necesidad.

QUOTE
11-03-2013, 11:48 AM (Este mensaje fue modificado por última vez en: 11-03-2013 01:52 PM por dgeaperez.)
Mensaje: #9
RE: Tips Para Yii

Un action para hacer backup... Hay otras maneras, pero me pareció interesante compartirlo.
Lo uso con un ajax, por eso los "echo" del final...

Código PHP:
public function actionBackup() {
    
preg_match("/host=([^;]*)/"Yii::app()->db->connectionString$dbhost);
    
$dbuser Yii::app()->db->username;
    
$dbpwd Yii::app()->db->password;
    
preg_match("/dbname=([^;]*)/"Yii::app()->db->connectionString$dbname);
    
$dumpfile Yii::app()->basePath.DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR.$dbname[1] . "_" date("Y-m-d_H-i-s") . ".sql";
    
$reporte Yii::app()->basePath.DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR."reporte.txt";

    
passthru("/usr/bin/mysqldump --opt --host=$dbhost[1] --user=$dbuser --password=$dbpwd $dbname[1] > $dumpfile"$resultado);

// report - disable with // if not needed
// must look like "-- Dump completed on ..." 

    
passthru("tail -1 $dumpfile > $reporte");
    
    
$leer file_get_contents($reporte);
    
    
$estado preg_match('/\\bcompleted\\b/i',$leer);
    
    
unlink($reporte);
    
    if (
$estado === 1)
      echo 
Yii::t('int_BKP_OK'"La copia de respaldo se realizó con éxito");
    else
      echo 
Yii::t('int_BKP_NOK'"La copia de respaldo arrojó un error: ".$resultado);
  } 

QUOTE


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  Ayuda para desarrollar un software de contratos. juanpolania 3 164 04-04-2014 12:42 PM
Último mensaje: juanpolania
  CRUGE - Modulo para manejo de roles de usuarios gonzalo_360 0 478 29-11-2013 04:37 PM
Último mensaje: gonzalo_360
  modificaciones para cruge Enekoos 0 539 18-10-2013 05:56 AM
Último mensaje: Enekoos
  Ayuda con la instalación de yiishop o ideas para un carrito de compras Xavieres 2 1,028 23-08-2013 12:19 PM
Último mensaje: Xavieres
  La correcta forma para enviar un aviso de nueva suscripcion en cruge erfoncho 0 568 09-08-2013 12:17 AM
Último mensaje: erfoncho
  Diferente conexión para Cruge joacat 1 941 10-06-2013 04:00 PM
Último mensaje: joacat
  [SOLUCIONADO] Boton para refrescar CGridView nidark 2 1,198 22-04-2013 09:24 AM
Último mensaje: nidark
  modificar Cruge para luego usarlo juanalejandro 2 1,192 02-04-2013 07:50 PM
Último mensaje: carlos_belisario
  problema para mostrar 2 graficas rc_novato 0 814 19-02-2013 06:15 PM
Último mensaje: rc_novato
  [Solucionado] Obtener el orden de cgridview para enviar como parámetro a otra vista cesarc 1 1,265 11-02-2013 09:13 AM
Último mensaje: cesarc

Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Yii Framework en Español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS