Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - l337*

#41
Buen día,

ando bloqueado para crear un menú recursivo utilizando una consulta con los siguientes datos:


//ejemplo de la primer fila regresada por la consulta sql
Array ( [id] => 12
          [year] => 2012
          [user_id] => 95
          [fecha] => 1340395675
          [ger_id] => 2
          [ad_id] => 4
          [area_especifica] => ghghb
          [cambio_id] => 5
          [prop_id] => 1
          [motivo] => bgb
          [antecedentes] => bghb
          [objetivos] => bghg
          [desc] => bgh
          [beneficios] => bgh
          [bases] => bgh
          [ar_id] => 1
          [ar_info] => bg
          [afect_amb] =>
          [afect_info] => bgh
          [partes_id] => 2
          [apd_id] => 6
          [capac] =>
          [capac_info] => bgh
          [com_riesgos] =>
          [com_info] => bgh
          [status] => EN REVISION
          [tipo_doc] => 0
          [area] => 3 area
          [cambio] => trés bien )


el menú que quiero hacer quedaría así:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<ul id="grupos">
  <li>year
    <ul>
      <li>area 1
        <ul>
          <li>status 1
            <ul>
              <li>cambio 1
                <ul>
                  <li>id 1</li>
                  <li>id 2</li>
                  <li>id 3</li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li>area 2
        <ul>
          <li>status 2
            <ul>
              <li>cambio 2
                <ul>
                  <li>id 4</li>
                  <li>id 5</li>
                  <li>id 6</li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
        <ul>
          <li>status 3
            <ul>
              <li>cambio 3
                <ul>
                  <li>id 7</li>
                  <li>id 8</li>
                  <li>id 9</li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </li>
  <li>year 2
    <ul>
      <li>area
        <ul>
          <li>status
            <ul>
              <li>cambio
                <ul>
                  <li>id 1</li>
                  <li>id 2</li>
                  <li>id 3</li>
                </ul>
              </li>
            </ul>
          </li>
         
        </ul>
      </li>
    </ul>
  </li>
</ul>
</body>
</html>


como ven, los resultados se agruparían por: Año->area->status->cambio->record .

Qué algoritmo me sugieren para crear esta lista ? considerando que:
- los records siempre estarán a 5 niveles
- el record siempre tiene "varios" parent_id... que vendrían siendo: Año->area->status->cambio, de ahí depende como se agrupa en la lista

la verdad no se me ocurre nada... lo único que había hecho fue:


    $cYear  = $cArea = $cStatus = $cCambio = "" ;
    $pYear  = $pArea = $pStatus = $pCambio = "" ;
    $html .= '<ul id="group">' ;
    $first = true ;
    $x = 0 ;
    foreach ($result as $d) {
      $html.="<li>".print_r($d)."</li>" ;
      /*if ($first) {
        $cYear = $d['year'] ;
        $html.='<li><a href="#" onclick="return false;">'.$d['year']."</a><ul>\n" ;
      }
      $pYear = $d['year'] ;

     
      $pArea = $d['area'] ;
      if ($pArea != $cArea) {
        $cArea = $d['area'] ;

        $html .= '<li><a href="#" onclick="return false;">'.$d['area']."</a><ul>\n" ;
      }
     
      $pStatus = $d['status'] ;
      if ($pStatus != $cStatus) {
        $cStatus = $d['status'] ;

        $html .= '<li><a href="#" onclick="return false;">'.$d['status']."</a><ul>\n" ;
      }
     
      $pCambio = $d['cambio'] ;

      if ($pCambio != $cCambio) {
     
        $cCambio = $d['cambio'] ;
       
        $html .= '<li><a href="#" onclick="return false;">'.$d['cambio']."</a><ul>\n" ;
      }
       
      $html .= "<li>CD-".$d['id']."/".$d['year']."</li>\n"  ;
     
      $first = FALSE ;
      //$x++ ;
      //if ($x==4) break ;*/
    }
    $html .= '</ul>' ;


pero como ven es un desmadre que no tiene nada de bonito....

cualquier sugerencia es agradecida.

gracias

#42
Gracias.

Si, veo que no tendre otra opcion mas que darle por sesion. Lo de la cookie y token me gusta, pero vendria siendo similar, ademas no garantiza que el usuario reciba la cookie... bueno, habria que codear un verificador para eso.

Muchas gracias por su ayuda.

saludz
#43
Lo mejor sería contactar a tu banco de preferencia y pedirles el API de pagos en linea. Si no tienen pues no podras, igual y ellos te proporcionarian todo.

suerte


saludz
#44
Desarrollo Web / Re: ayuda!! pag web IE9
7 Junio 2012, 16:28 PM
movingbox.css , linea 86


a {
    //border-bottom: 1px dotted #CCCCCC; //quita esta linea
    color: #999999;
    text-decoration: none !important;
}

//linea 92 , quitalo tmb
a:hover {
border-bottom: 1px solid #999;
}


y tal vez este te de problemas tmb:

style.css linea 95


a:hover, a:active {
text-decoration: underline;
}


este ultimo afecta todos los links en tu pagina, tendrias que modificar un poco el css para que no tengas problemas con los social boxes y los links en tu contenido.
#45
Cita de: WarGhost en  6 Junio 2012, 22:19 PM
Lo que puedes hacer es serializar tu objeto y encapsularlo en una variable de session, luego solo es cuestión de que determines el tiempo que quieres que dure esa variable de session ^^.

P.D:La verdad no entiendo muy bien para que quieres hacer eso, realmente debes comprobar la veracidad del "login" cada vez que recarga, sobre todo por seguridad.

cierto, tambien lei eso de meterlo serializado en sesion, pero lo que no quiero es usar sesion, por el hecho de que expira y pierde los datos, aun cuando se le extiende la vida en session.gc_maxlifetime (ya nos ha pasado).

lo quiero hacer por que no quiero depender de variables de sesion, quiero guardar los datos del usuario en el objeto. Si no hay de otra pues ni modo, lo hare con sesion hehe.

gracias
#46
Buen dia,

Tengo una duda que me ha confundido mucho.

Quiero crear una clase, Autenticador, que sea utilizable en todo el sitio y se encargue de determinar si un usuario esta loggeado o tiene permisos para ver/modificar contenido.

Necesito que esta clase se cree al cargar misitio.com (todas las paginas) y NO se destruya al terminar de cargar el script/pagina.

Por ejemplo, alguien va a misitio.com/contenido , contenido carga su header que incluye esta clase Autenticador, la cual determina que no esta loggeado y lo redirecciona a misitio.com/login  . Cuando el usuario verifica su identidad, la misma instancia de la clase que lo mando a login, debe de guardar el valor de loggeado y mantenerlo así hasta que el usuario termine sesión o cierre el navegador.

Actualmente estoy usando el metodo singleton, pero la vida del objeto solo dura hasta que se termina de cargar la pagina. Como puedo hacer para que una instancia de objeto se mantenga viva como lo hacen las sesiones de usuario ? es decir, que el objeto y los valores de sus variables privadas permanezcan igual hasta que se destruya el objeto por "accion" del usuario?

He leído 50/50 que ES y NO ES posible hacer esto.... ????

Gracias.... espero q se me entienda :huh:

Que dicen?

#47
yo te podría decir que con paypal puedes hacer eso, el usuario paga y paypal lo redirecciona a un "ipn.php" que tu tengas... creo q es IPN, no recuerdo bien. Lo que hace este archivo, que tu lo tienes que codear, es aceptar una respuesta de PayPal y de ahi viene toda la info que requieres (usuario, pago aprobado, cantidad, hora de pago etc), ya de ahi puedes mandar a llamar a tu BD y hacer ese update que necesitas.

Prueba usando el https://developer.paypal.com/ es gratis, solo registrate.

Con otro tipo de pagos (directo a credit card o wire transfer) no sabría decirte.

Saludz,
#48
el mando secundario (navigator) por lo general se usa solo para juegos FPS. Si es algo que solo requiera el movimiento del move, como zumba y baile, no necesitas el navigator.
#49
es buen juego, juegalo con buen sonido (o audifonos/auriculares) y la luz apagada :D
#50
selecciona windows xp sp2 y dale permiso de ejecutarse con administrador.
Tambien fijate que la version que estes usando sea 1.00.