Foros del Web » Programando para Internet » PHP »

Mostrar todo el array? (smarty)

Estas en el tema de Mostrar todo el array? (smarty) en el foro de PHP en Foros del Web. Hola, Estoy creando un tema para WHMCS... ya los contacté pero no he recibido respuesta todavía :( Mi duda es que ellos usan su propio ...
  #1 (permalink)  
Antiguo 13/11/2013, 12:06
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Exclamación Mostrar todo el array? (smarty)

Hola,

Estoy creando un tema para WHMCS... ya los contacté pero no he recibido respuesta todavía :(

Mi duda es que ellos usan su propio sistema de paginación, cuando hay más de 10 registros toca pasar la página y lleva a la URL:

clientarea.php?action=emails&page=1 (2, 3, 4) etc.

Yo con javascript he logrado crear una tabla que organice los datos automáticamente en una sola página, sin importar la cantidad de registros... el problema es que no sé como llamar a todos los valores del array :S

¿Es posible? me pregunto... que renderice toooodos los registros sean los que sean en una sola página...

Los llama a través de un foreach:
{foreach from=$emails item=email}

Saludos.
  #2 (permalink)  
Antiguo 13/11/2013, 18:43
 
Fecha de Ingreso: mayo-2012
Mensajes: 61
Antigüedad: 12 años
Puntos: 23
Respuesta: Mostrar todo el array? (smarty)

Tendría que ver el código, pero por lo general cuando se hacen sistemas de paginación, la consulta a la base de datos no trae todos los datos (obviamente), trae solo los que se vayan a mostrar dependiendo de la pagina en la que estés.

Vas a tener que modificar el código donde se realiza la consulta para traerse los datos.

Saludos.
  #3 (permalink)  
Antiguo 13/11/2013, 19:17
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Mostrar todo el array? (smarty)

En serio? o sea, desde Smarty no se puede hacer nada?
Por que el código está codificado (el de WHMCS) y para trabajar la única herramienta que nos da es Smarty :/

Y si realizo la consulta a través de PHP directamente y no usando smarty? ya que me da la ventaja de usar {php}{/php}

edit:

Este parece ser el apartado donde llama los correos:
Código PHP:
if ($action == "emails") {
                    
checkContactPermission("emails");
                    
$ca->setTemplate("clientareaemails");
                    
$result select_query("tblemails""COUNT(*)", array("userid" => $client->getID()), "id""DESC");
                    
$data mysql_fetch_array($result);
                    
$numitems $data[0];
                    list(
$orderby$sort$limit) = clientAreaTableInit("emails""date""DESC"$numitems);
                    
$smartyvalues["orderby"] = $orderby;
                    
$smartyvalues["sort"] = strtolower($sort);
                    if (
$orderby == "subject") {
                      
$orderby "subject";
                    } else {
                      
$orderby "date";
                    }

                    
$emails = array();
                    
$result select_query("tblemails""", array("userid" => $client->getID()), $orderby$sort$limit);
                    while (
$data mysql_fetch_array($result)) {
                      
$id $data["id"];
                      
$date $data["date"];
                      
$subject $data["subject"];
                      
$date fromMySQLDate($date11);
                      
$emails[] = array("id" => $id"date" => $date"subject" => $subject);
                    }
                    
$ca->assign("emails"$emails);
                    
$smartyvalues array_merge($smartyvaluesclientAreaTablePageNav($numitems)); 
El código smarty es:
Código HTML:
Ver original
  1. {foreach from=$emails item=email}
  2.  
  3. {$email.date}<br />
  4. {$email.subject}
  5.  
  6. {/foreach}
(es más largo, pero solo pongo la parte del foreach y omito otras variables que usa que creo no son relevantes....)

Muestra solo 50 items máximo (por página) :/ lo ideal sería mostrar más.

Si a través de Smarty no se puede... qué código PHP simple puedo usar para reemplazar el de smarty?

edit 2:

Uhh algo bueno, pero que no sé como usar, jaja maldición! xD debo seguir aprendiendo :(

Encontré entre las funciones esto:

Código PHP:
$pagelimit "";
    
$itemlimit $whmcs->get_req_var"itemlimit" );
    
$orderby $whmcs->get_req_var"orderby" );

    if (
$itemlimit == "all") {
        
$pagelimit 100000003;
    }
    else {
        if (
is_numeric$itemlimit )) {
            
$pagelimit $itemlimit;
        }
    } 
Al usar la acción logro mostrar más items :) lo malo es que este código PHP directo, es inalterable, así que no sé como usar eso en smarty o a través de {php} de smarty - debido a que soy demasiado bruto al respecto xD

Por ahora puedo usar un "arreglo" temporal y es modificar las urls para que contengan tal atributo :/

Última edición por warlokm; 13/11/2013 a las 20:05

Etiquetas: registro, tabla, todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:31.