Autor Tema: [F1] con CakePhp 'Cuenta Regresiva'  (Leído 2209 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado *MAURO*

  • Sv Member
  • ***
  • Mensajes: 455
  • El Futbol: la unica religión ke no tiene Ateos ッ
[F1] con CakePhp 'Cuenta Regresiva'
« : junio 19, 2007, 04:37:24 pm »

Tengo un pequeño problema q no se como hacerlo en cakephp una función parecida a un sistema de cyber

Problema:
Un alumno inscribe 1 materia con laboratoriom, el alumno tiene derecho a 20 horas práctica en centro de cómputo

El encargado de centro de computo desea implantar un sistema q cuando el alumno desee practicar, tenga q ingresar su codigo (cod_alumno) y
contraseña para que comienza la cuenta regresiva de las 20 horas y asi llevar el control de horas que le restan al alumno


en alguns casos el alumno lleva de 1 a 5 materias con laboratoria, entonces si el alumno lleva 3 materias con laboratorio
éste tiene derecho a 60 horas práctica


Lo que quiero hacer es q cuando un alumno ingreso su codigo (cod_alumno),
esta cuenta regresiva inicie, y cuando éste finalice su sesión  la cuenta regresiva se detenga y asi sucesivamente otra vez q inicie sesión la cuenta inice donde se quédo anteiormente...




/*Creando tabla alumnos*/
Código: [Seleccionar]

CREATE TABLE `alumnos` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `id_alumno` int(10) unsigned NOT NULL,
  `cod_alumno` varchar(45) character set utf8 collate utf8_bin NOT NULL,
  `apellido1` varchar(45) default NULL,
  `apellido2` varchar(45) default NULL,
  `nombre1` varchar(45) default NULL,
  `nombre2` varchar(45) default NULL,
  `id_carrera` varchar(45) default NULL,
  PRIMARY KEY  USING BTREE (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `alumnos`
--

/*!40000 ALTER TABLE `alumnos` DISABLE KEYS */;
INSERT INTO `alumnos` (`id`,`id_alumno`,`cod_alumno`,`apellido1`,`apellido2`,`nombre1`,`nombre2`,`id_carrera`) VALUES
 (1,1,0x414D3032493034303033,'ALVARADO','MONTES','JOSE','MAURICIO','I04'),
 (2,2,0x42413033493034303032,'BATRES','AVELAR','JENNY','ELIZABETH','I04'),
 (3,3,0x47413032493034303032,'GUERRA','ALVAREZ','CLAUDIA','LORENA','I04'),
 (4,4,0x414D3032494F34303031,'ARAUJO','MAGAÑA','JAZMIN','MILAGRO','I04'),
 (5,1,0x534A3939493034303031,'SOLIS','','WALTER','OMAR','I04');
/*!40000 ALTER TABLE `alumnos` ENABLE KEYS */;



/*Creando tabla control de horas*/
Código: [Seleccionar]
CREATE TABLE `controlhrs` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `id_registro` int(10) unsigned default NULL,
  `cod_alumno` varchar(45) default NULL,
  `saldo_anterior` decimal(10,0) default NULL,
  `saldo_actual` decimal(10,0) default NULL,
  `fecha` datetime default NULL,
  `num_hrs_ocupadas` decimal(10,0) default NULL,
  `total_hrs` time default NULL,
  `fec_venc` date default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=1;


+---------------------------------------------------------------------------------------

Lo siguiente es un ejemplo de cuenta regresiva....

SCRIPT DE CUENTA REGRESIVA
Código: (CountDown.php) [Seleccionar]
<html>
<body>
<SCRIPT LANGUAGE="JavaScript">
//<!--
function getTime()
{
now = new Date();
y2k = new Date("Jun 30 2007 00:00:00");
days = (y2k - now) / 1000 / 60 / 60 / 24;
daysRound = Math.floor(days);
hours = (y2k - now) / 1000 / 60 / 60 - (24 * daysRound);
hoursRound = Math.floor(hours);
minutes = (y2k - now) / 1000 /60 - (24 * 60 * daysRound) - (60 * hoursRound);
minutesRound = Math.floor(minutes);
seconds = (y2k - now) / 1000 - (24 * 60 * 60 * daysRound) - (60 * 60 * hoursRound) - (60 * minutesRound);
secondsRound = Math.round(seconds);
sec = (secondsRound == 1) ? " second" : " seconds";
min = (minutesRound == 1) ? " minute" : " minutes, ";
hr = (hoursRound == 1) ? " hour" : " hours, ";
dy = (daysRound == 1)  ? " day" : " days, "
document.timeForm.input1.value = "Quedan " + daysRound  + dy + hoursRound + hr + minutesRound + min + secondsRound + sec + " Para finalizar el mes de Junio!";
newtime = window.setTimeout("getTime();", 1000);
}
// -->
</script>

<form name=timeForm>
<input type="texte" name=input1 size=110 border-style="none" style="border-bottom: 0px solid; border-left: 0px solid;border-right: 0px solid;border-top: 0px solid;font:12px arial, helvetica,sans-serif">
</form>

<BODY onLoad="getTime()">
</body>

</html>


no comprendo como debe de ir el modelo y el controlador; y si ni no me equivoco creo que en la vista se debe de invocar algo parecido al script CountDown anterior y muestre el conteo

PD
Si no me explico bien me avisan XD



Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: [F1] con CakePhp 'Cuenta Regresiva'
« Respuesta #1 : junio 20, 2007, 12:56:00 pm »
Ya hicistes el tutorial para aprender a usar cake ? , si no te hechas el tuto vas a tener un camino bien largo agarrandole la onda y el tuto lo haces super rapido la verdad vale la pena.

En este caso siendo algo tan pequeño como ese ejercicio capaz te salia mas rapido hacer el script a pata XD

Pero suponiendo que queres siempre utilizar cake, tenes que modelar el problema algo asi como que por ejemplo en este caso digamos que tenes un modelo que seria tu alumno y otro modelo que serian las horas, luego los vas a relacionar poniendo una relacion de Alumno_tiene_horas , algo así podria ser, posteriormente cuando crees los archivos de modelo y su respectiva relacion, vas a crear un controlador por ejemplo para el modelo alumno, y una vista podria ser el login, otra vista podria ser cuando ya inicio sesion y otra vista podria ser la de cierre de sesion, cada una de estas vistas va a ser tambien una funcion en el controlador.

Se me ocurre que podrias poner otro modelo que sea sesiones, y que en estas sesiones se almacene desde que el usuario inicio sesion hasta que el usuario cerro sesion, posteriormente vas a poder descontar estas sesiones de las horas que tenia disponibles y asi sacar las cuentas de cuanto le queda.

Lo siento por no ayudarte con codigo pero ahorita estamos algo atareados XD

Desconectado *MAURO*

  • Sv Member
  • ***
  • Mensajes: 455
  • El Futbol: la unica religión ke no tiene Ateos ッ
Re: [F1] con CakePhp 'Cuenta Regresiva'
« Respuesta #2 : junio 21, 2007, 04:51:03 pm »
simon ya me hice el tuto del blog de cakephp ya estoy entendiendo la logica como funciona cakephp (mvc); solo q en algunos casos como este no encontraba muy bien la forma de implementarlo

MODELOS
-alumno.php
-controlhr.php


CONTROLLERS
-alumnos_controller.php
-controlhrs_controller.php

jeje pero los he creado con $scaffold para agilizar tiempo asi q no tengo vistas, pero = las creare segun el tuto para posteorimente crear el login del alumno...

Senkiu ya me diste algo mas de idea ya vere q pondre de codigo en cada uno de los componentes

Luego te cuento man

y de nuevo Senkiu viejo  :sur:

Desconectado rdoggsv

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 6530
  • "Once you go arch , u never go back"
    • SV CommunitY
Re: [F1] con CakePhp 'Cuenta Regresiva'
« Respuesta #3 : junio 21, 2007, 11:56:15 pm »
Los controladores los necesitas cuando vas hacer algunas operaciones con eso, por ejemplo en este caso que solo van a iniciar sesion los alumnos y luego cerrar sesion, podes tener inclusive solamente el controlador de alumnos y ahi poner tus funciones de login y logout :)