Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/11/2013, 19:17
warlokm
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 12 años, 11 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($date, 1, 1);
                      
$emails[] = array("id" => $id, "date" => $date, "subject" => $subject);
                    }
                    
$ca->assign("emails", $emails);
                    
$smartyvalues = array_merge($smartyvalues, clientAreaTablePageNav($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