Mostrando entradas con la etiqueta web. Mostrar todas las entradas
Mostrando entradas con la etiqueta web. Mostrar todas las entradas

Abrir colorbox sin necesidad de hacer click en ningún elemento (automaticamente) Escucha este post

0 comentarios

Como abrir color box sin hacer click en ningun lado  ni usar .trigger()??
El resultado que lograremos  con estas lineas lo podemos ver en la imagen  o si el tipo sigue sin pagar en esta direccion
http://gonmardecoracion.com.mx/

Es realmente muy simple

En la misma pagina nos lo indica con un simple:
$.colorbox({href:"thankyou.html"});
ahora que si lo que quieres es ponerlo al abrir la pagina de veras usar (somo seguro ya lo pensaste) :

$(document).ready(function() {
     $.colorbox({href:"thankyou.html"}); 
 });
Si quieres  que salga un mensaje que no esta en ninguna otra pagina y tampoco en alguna paguina de tu documento usaras ;

$mensaje = $("<h1>Esta pagina no ha finiquitado su pago </h1>"); 
$.colorbox({inline:true, href:$mensaje});


Si quieres que no se abra mas que la priemra ves deveras usar un lenguaje de servidor   como php quedaria

<?php
session_start(); 
if (!isset($_SESSION['mensaje'])) { 
//si no se ha  crado la variable de session   imprimir el codigo js
   echo'
    <script>

             $(document).ready(function() {
                $mensaje = $("<h1>Esta pagina no ha finiquitado su pago </h1>");
      $.colorbox({inline:true, href:$mensaje});
 });


    </script>   ';
   $_SESSION['mensaje']=true;// luego crear la variable de session para que no vuelva a  salir

}
?>

Método find() (cakePhp) Escucha este post

1 comentarios



http://aacini.comlu.com/blogger/metodoFine/cakephp-1024-768.jpg

Hola que tal queridos lectores(si
es que hay alguno por ahi) hoy les traigo otro tema acerca de cakephp. La forma
de utilizar el método find() de un Model cualquiera.

Como ya sabrás para contar con una conexión a la  base de
datos tendrás que configurar un el archivo  database.php. que se encuentra en
MiProyecto\app\config\(original mente se llama database.php.default) y después crear
un archivo en MiProyecto \app\models llamado como la tabla que creas te en
mysql pero  en singular (sin la ‘s’)por ejemplo  alumno.php.

<?php
//la clase debe ser igual que el nombre del archivo, siempre con sintaxis de camello

class Alumno extends AppModel{
var $name='Alumno';
}
?>

Y finalmente el controller que va en MiProyecto\app\controllers
con el nombre  de la tabla +”_controller”seria: alumnos_controller.php con el código


<?php
//como el archivo +Controller , siempre con sintaxis Camello
class AlumnosController extends AppController{
                var $name='Alumnos';
}
 ?>




Ahora si a lo que nos truje: el método find()

Siempre  por defcto en nuestro controller hay una instancia de la clase modelo que
por defecto corresponde a dicho modelo. Por ejemplo si el controller se llama AlumnosController si instanciara

Alumno en el controller

y o usamos asi:

$this->Alumno->find();

Es te método solo tiene dos parámetros :

1.- $type  que es del tipo String y puede tener los
siguientes valores
a) all devuelve todos los registros que cumplen las condiciones si las hay(devuelve
un array multidimensional)
b) first devuelve solo el primer registro en cumplir las condiciones(devuelve
un array diferente si lo usamos)
c) count devuelve el numero totla de registros  dados por la consulta (devuelve
un array diferente)

2.- $constraints es un array asociativo con los posibles ítems:
a) fields es array de los campos que tienen que ser devuelta por la consulta
b) conditions es un array de condiciones  aplicadas a where(sql)
c) order string define  la clausula ORDER BY
d)limit es un entero  especifica el numero de ítems
e)offset desde cual ítem empezar



Probemos suponiendo que tenemos la siguiente tabla


Para que la tabla nos devuelva todos los registros sin
condiciones seria

$answer=$this->Alumno->find(‘all’);

como se ve solo le pasamos el primer parámetro
Para  preguntar solo por los ítems nombre,apellido y edad usamos  el segundo parámetro
y el ítem fields prefuntamos por dichos campos seria:
$ answer =
$this->Alumno->find(
              'all',
                array(
                       'fields'=>array(
                                               'Alumno.nombre',
                                               'Alumno.apellidos',
                                               'Alumno.edad'
                                     ),
));


Como se ve son dos arrays en el segundo parámetro
Ahora si queremos  restringir mas la búsqueda debemos usar los demás ítems en
el segundo parámetro.Por ejemplo en esta consulta preguntamos por los campos
nombre,apellidos y edad, pero solo queremos los que en nombre empiezen por j(
'conditions'=>array('Alumno.nombre
like'=>'J%'),), y también los ordenamos  en
orden ascendente(
'order'=>'Alumno.apellidos ASC',).Finalmente limitamos los resultados a solo 10('limit'=>10)


$ answer = $this->Alumno->find(
              'all',
                array(
                       'fields'=>array(
                                               'Alumno.nombre',
                                               'Alumno.apellidos',
                                               'Alumno.edad'
                                     ),
                      'conditions'=>array('Alumno.nombre like'=>'J%'),
                      'order'=>'Alumno.apellidos ASC',
                      'limit'=>10
));
                Otros ejemplos:


// numero total de alumnos
que empiezan con el caracter j

                $
answer = $this->Alumno->find('count',
                array(
                      'conditions'=>array('Alumno.nombre like'=>'J%'),
                ));


//encontrar el codigo  y el
nombre del alumno con el id  mas alto y ordenar por id descendente


$ answer = $this->Alumno->find('first',
                array(
                     'fields'=>array(
                                   'Alumno.codigo',
                                  'Alumno.nombre'
              ),
                         'order'=>'Alumno.id DESC'
                ));

// los alumnos que tienen el
apellido Montero ,ordenar por nombre ascendente


                $alumnosMontero
= $this->Alumno->find('all',
                array(
                               'fields'=>array(
                                               'Alumno.nombre',
                                               'Alumno.apellidos',
                                               'Alumno.edad'
                                     ),
                      'conditions'=>array('Alumno.apellidos
like'=>'%Montero%'),
'order'=>'Alumno.nombre ASC',
                ));





Ahora
metamos las manos bien adentro en esto, veamos consultas más complejas


¿Como
preguntar por un mismo campo pero con valores diferentes?. Por ejemplo
preguntar por 3  códigos específicos .Lo que se tiene que hacer es en lugar de
igualar  un string en ‘conditions’, lo relacionamos con otro array (po rdefecto
se entiende que es igual al menos que especifiquemos lo contrario)

$alumnos030507=
$this->Alumno->find('all',
array(
                               'fields'=>array(
                                               'Alumno.codigo',
                                               'Alumno.nombre',
                                               'Alumno.apellidos',
                                               'Alumno.edad'
                                     ),
'conditions'=>array('Alumno.codigo'=>array('0003','0005','0007'))
                ));

Condiciones múltiples

Por defecto el condicional es
and . Si queremos tener mas de una condición con este operador lo podemos
omitir y solo agregar ítems en  el array conditions

Como vemos ahora:

                // Monteros que tengan 17 años
                $alumnosMontero17= $this->Alumno->find('all',
                array(
                               'fields'=>array(
                                               'Alumno.nombre',
                                               'Alumno.apellidos',
                                               'Alumno.edad'
                                     ),
                      'conditions'=>array('Alumno.apellidos
like'=>'%Montero%','Alumno.edad'=>'17')
                ));

Esta consulta seria para pedir
los campos nombre, apellidos y edad  de los que tengan el apellido Montero y
tengan edad de 17.

Para ocupar otro operador por
ejemplo or, Dentro del array relacional ‘conditions’ tenemos que meter un ítem
llamado ‘or’ que es otro array relacional . Dentro de este array metemos las
condiciones. Por ejemplo la siguiente consulta pregunta por los Jaime o los que
tengan 19 años de dad





$alumnosMonteroor17=
$this->Alumno->find('all',
                array(
                               'fields'=>array(
                                               'Alumno.nombre',
                                               'Alumno.apellidos',
                                               'Alumno.edad'
                                     ),
                      'conditions'=>array(
                                               'or'=>array('Alumno.apellidos
like'=>'%Montero%','Alumno.edad'=>'17')
                                 )
                ));



Esta consulta seira
equivalente a

if(($apellidos==’Montero’)or($edad==17))

en php y esta es la consulta sql que hace

SELECT `Alumno`.`nombre`, `Alumno`.`apellidos`, `Alumno`.`edad`
FROM `alumnos` AS `Alumno` WHERE ((`Alumno`.`apellidos` like '%Montero%') OR
(`Alumno`.`edad` = '17'))





Para combinar operadores and y
or los agrupamos en arrays. Vemos un ejemplo  de la condiciones para una
consulta:



'conditions'=>array(
                                 'or'=>array(
                                                                              array('Alumno.apellidos
LIKE'=>'%Montero%','Alumno.edad'=>'17'),
                                                                              array('Alumno.nombre
LIKE'=>'Rosa','Alumno.edad'=>'19')
                                               )
                                )

En esta consulta preguntamos
por los Monteros que tengan 17 años o  los Rosa  que tengan 19 años. Como se ve
creamos un ítem llamado ‘or’ y lo hacemos igual a un array donde dentro ponemos
todos los arrays que se entenderán como las partes de ese or, Al mismo tiempo
esos arrays anidados tienen dos ítems  y por defecto usan el and asi que las
partes de ese array serán tomados como los  los valores para ese and. Si pudiéramos
pasarlo a un código php mas simple este seria:

if(
( ($apellidos==’Montero’)and($edad==17)) or (($nombre==’Rosa’)and($edad==19)) )

O bien su consulta que hace
es :

SELECT `Alumno`.`nombre`, `Alumno`.`apellidos`, `Alumno`.`edad`
FROM `alumnos` AS `Alumno` WHERE ((((`Alumno`.`apellidos` LIKE '%Montero%') AND
(`Alumno`.`edad` = '17'))) OR (((`Alumno`.`nombre` LIKE 'Rosa') AND
(`Alumno`.`edad` = '19'))))



Otra función parecida a find() pero mas fácil de usar es
findBy()

donde agregamos  el nombre del campo que deseamos preguntar y como argumento el
campo. Nos devuelve el primer ítem que coincida en un array similar al que
devuelve ‘first’

$alumnosMagic=$this->Alumno->findByNombre('Manuel');

Solo nos devuelve el primer ítem si queremos que devuelva todos
usamos Si queremos que nos devuelva todos usamos finnAllBy(). En este método
igual le pasamos el nombre del campo por el que queremos preguntar en sintaxis
camello.

$alumnosAllBy=$this->Alumno->findAllByEdad('17');

Nos devuelve un array similar al devuelto por ‘all’



Creación de aplicaciones rápidas con Cackephp ( Scaffolding) Escucha este post

0 comentarios


Hola que tal . Yo aquí de vuelta . Les traigo un tema
variado. Como ya muchos saben cakephp es un framework para php  algo
controvertido. Muy fácil de usar pero  no a muchos les gusta. En esta ocasión
les daré una muestra de su sencillez,





Primero creamos la base de datos con la tabla
en phpmyadmin importamos este código 
CREATE DATABASE `lista` ;

CREATE TABLE IF NOT EXISTS `tareas` (

  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

  `nombre` varchar(255) NOT NULL,

  `fecha` datetime NOT NULL,

  `prioridad` int(2) NOT NULL,

  `completado` tinyint(1) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

Es importante sabes y seguir las convenciones de cakephp

-El nombre de la tabla debe estar en plural (tareas)

-La clave primaria debe tener por nombre id



Luego creamos una instancia de cakephp (solo copiando el
original en www)

Y la renombremos a lista. Y congiguramos la base de datos
en  el archivo

lista\app\config\ database.php.defaulf a database.php
solamente

abrimos el archivo y configuramos las variables (solo poner
usuario ,pass y base de datos)

 




Segundo paso creamos  el archivo  modelo  en la carpeta lista\app\models\

El nombre es preciso que sea el nombre de la tabla en
singular y minúsculas osea : tarea.php


Y creamos la clase que extienda de AppModel

todos los modelos deben estar en sintaxis camello   (la primer letra de cada
palabra en mayusculas) y creamos una variable  llamada $name igual a el nombre
de la clase  esto quedaría asi.



Tercer paso hacemos el controlador

En la carpeta lista\app\controllers creamos un archivo
controlador  que  debe tener por nombre el mismo nombre que la tabla de la base
de datos   + _controller  esto seria lista_controller.php


Y escribimos el código php

una clase  de nombre  de la tabla  + controller  y en sintaxis camello seria
asi: TareasController  y estendida de la clase AppController

Además debemos de añadir 2 variables  unas que sea de nombre
$name  igual  a ‘Tareas’ (la tabla que controla) y una segunda variable de
nombre  $scaffold;


Y con esto ya tenemos una aplicación creada  que permite
agregar editar  eliminar y ver   el contenido de una tabla  veamos la en :

http://localhost/lista/tareas
algo así:


como vimos escribimos muy poco código pero tenemos que seguir las convenciones
establecida por cakephp  
 les dejo mis archivo final aqui