Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2010, 23:23
Avatar de Larenz
Larenz
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: Nicaragua
Mensajes: 1.398
Antigüedad: 17 años, 4 meses
Puntos: 55
Editar código para pasar tablas a divs en archivo php

Hola! Quiero hacerles una consulta y ver si me dan una mano. Tengo un código en php el cual lo he ido modificando para adaptarlo a lo que deseo. El problema está en que el código genera tablas y deseo que genere divs para su fácil uso. Este es el código en cuestión ya modificado por mí:

Código PHP:
<?php
// no direct access
defined'_VALID_MOS' ) or die( 'Restricted access' );

function 
recurseCategories($id$level, &$children,$itemid,$option,$expand,$order,$displaynumads) {
    global 
$cur_template,$mosConfig_absolute_path,$mosConfig_live_site;
    if (@
$children[$id]) {
    
$i=0;$first=true// borrar si da problemas
    
foreach ($children[$id] as $row) {
    
$link sefRelToAbs("index.php?option=com_adsmanager&page=show_category&catid=".$row->id."&amp;Itemid=".$itemid);
    if (
$level == 0)
    {
    if (
$i==0)
    {
    echo 
'<tr>';
    }
?>
    <td width="33%" valign="top">
    <table class="adsmanager-categories" width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td class="cat-<?php echo $row->id ?>">
    
    
    <div class="adscat-wrapper clearfix">
    <div class="adscat-image">
      <?php
        
if (file_exists($mosConfig_absolute_path."/images/$option/categories/".$row->id."cat.jpg"))
        echo 
'<a href="'.$link.'"><img class="imgcat" src="'.$mosConfig_live_site.'/images/'.$option.'/categories/'.$row->id.'cat.jpg" alt="'.$row->name.'" /></a>';
        else
        echo 
'<a href="'.$link.'"><img class="imgcat" src="'.$mosConfig_live_site.'/images/com_adsmanager/categories/'.$row->id.'cat.jpg" alt="'.$row->name.'" /></a>';
      
?>
    </div>
    <div class="adscat-title">
      <h3><a href="<?php echo $link?>"><?php echo $row->name?></a> <span>(<?php echo $row->num_ads ?>)</span></h3>
    
      <?php
        $class
="mainlevel";
        }
        else
        {
        
//echo '<div style="padding-left: '.($level*4).'px"><img src="templates/'.$cur_template.'/images/indent'.$level.'.png" alt="" />';
        //$class="sublevel";
        
}
        
$link sefRelToAbs("index.php?option=com_adsmanager&page=show_category&catid=".$row->id."&amp;Itemid=$itemid");
        if (
$displaynumads == 1)
        {
        
//echo '<a href="'.$link.'" class="'.$class.'" >'.$row->name.' ('.$row->num_ads.')</a>';
        
}
        else
        {
        echo 
'<a href="'.$link.'" class="'.$class.'" >'.$row->name.'</a>';
        }
        if (@
$current_list[count($current_list) - -$level] == $row->id)
        {
        
recurseCategories($row->id$level+1$children,$option,$itemid,$expand,$order,$displaynumads);
        
//mod_adsmanager_menu_categories($row->id, $level+1, $children,$option,$itemid,$current_list,$expand,$order,$displaynumads);
        
}
        if (
$level == 0)
        {
      
?>
    </div>
    </div>
    <ul class="catlist">
            <?php
              
}
              else
              {
                if (
$first == false)
                echo 
'</li>';
                echo 
'<li>';
                echo 
'<a href="'.$link.'" class="'.$class.'">'.$row->name.'</a>';
                
$first false;
              }
              if (
$level == 0)
              {
                
recurseCategories ($row->id$level+1$children,$itemid,$option,$expand,$order,$displaynumads);
              }
              if (
$level == 0)
              {
            
?>
          </ul>
    
    
    </td>
    </tr>
    </table>
    </td>
    <?php
      
if ($i==2)
      {
        echo 
'</tr>';
        }
      }
        
$i++;
        if (
$i == 3$i=0;
      {
    
?>
    </div>
    <?php
     
}
     }
     }
     }

function 
calc_nb_ads($id,&$children,$sqltype) {
    switch(
$sqltype)
    {
        case 
1:
        {
           
$nb_ads 0;
           if (@
$children[$id]) {   
              
$nb count($children[$id]);
              for(
$i=0;$i $nb;$i++)
              { 
                 
$children[$id][$i]->num_ads += calc_nb_ads($children[$id][$i]->id,$children,$sqltype);
                 
$nb_ads += $children[$id][$i]->num_ads;
              }
           }
           return 
$nb_ads;
        } break;
        
        case 
0:
        {
            
$nb_ads 0;
            if (@
$children[$id]) {    
                
$nb count($children[$id]);
                for(
$i=0;$i $nb;$i++)
                {
                    if (!isset(
$children[$id][$i]->not_empty))
                            
$children[$id][$i]->num_ads 0;
                            
                    
$children[$id][$i]->num_ads += calc_nb_ads($children[$id][$i]->id,$children,$sqltype);
                    if (isset(
$children[$id][$i]->not_empty))
                        
$nb_ads += $children[$id][$i]->num_ads;
                }
            }
            return 
$nb_ads;
        } break;
    }
}

/****************************************************/
$itemid intvalmosGetParam$_GET'Itemid'));
$catid intvalmosGetParam$_GET'catid', -));
$expand intvalmosGetParam$_GET'expand'));
$order intvalmosGetParam$_GET'order'));
$displaynumads $params->def('displaynumads',1);
$sqltype $params->def('sqltype',0);

switch (
$sqltype)
{
    case 
1:
        
$database->setQuery("SELECT c.*, ".
                
" (SELECT count(*) ".
                
"  FROM #__adsmanager_ads a ".
                
"  LEFT JOIN #__adsmanager_adcat as adcat ON adcat.adid = a.id ".
                
"  WHERE adcat.catid = c.id ".
                
"    AND a.published = 1 ".
                
" ) as num_ads ".
                
"FROM #__adsmanager_categories as c ".
                
"WHERE c.published = 1 ".
                
"ORDER BY c.parent,c.ordering");
        break;
    case 
0:
    default:
    
        
$database->setQuery"SELECT c.*, count(*) as num_ads,a.id as not_empty ".
                     
"FROM #__adsmanager_ads as a ".
                     
"LEFT JOIN #__adsmanager_adcat as adcat ON a.id = adcat.adid ".
                     
"RIGHT JOIN #__adsmanager_categories as c ON adcat.catid = c.id ".
                     
"WHERE c.published = 1 ".
                     
"GROUP BY c.id ".
                     
"ORDER BY c.parent,c.ordering");
        break;
}
                         
$rows $database->loadObjectList();
if (
$database -> getErrorNum()) {
    echo 
$database -> stderr();
    return 
false;
}
             
// establish the hierarchy of the menu
$children = array();
$orderlist = array();
// first pass - collect children
foreach ($rows as $v ) {
    
$pt     $v->parent;
    
$list     = @$children[$pt] ? $children[$pt] : array();
    
array_push$list$v );
    
$children[$pt] = $list;
    
$orderlist[$v->id] = $v;
}

if (
$displaynumads == 1)
    
$nb_ads calc_nb_ads(0,$children,$sqltype);

$current_list[] = $catid;
if (
$catid != -1)
{
    
$current $catid;
    while((isset(
$orderlist[$current])) && ($orderlist[$current]->parent != 0))
    {
            
$current_list[] = $orderlist[$current]->parent;
            
$current $orderlist[$current]->parent;
    }
}

if (
file_exists($mosConfig_absolute_path .'/components/com_adsmanager/lang/lang_' $mosConfig_lang '.php'))
    include_once( 
$mosConfig_absolute_path .'/components/com_adsmanager/lang/lang_' $mosConfig_lang '.php' );
else
    include_once( 
$mosConfig_absolute_path .'/components/com_adsmanager/lang/lang_english.php' );
?>
<table class="adsmanager-categories" width="100%" border="0" cellpadding="0" cellspacing="0">
<?php
if ($displaynumads == 1)
    
$all ADSMANAGER_MENU_ALL_ADS"($nb_ads)";
else
    
$all ADSMANAGER_MENU_ALL_ADS;
?>
<?php
  recurseCategories 
(00$children,$option,$itemid,$expand,$order,$displaynumads);
?>
</table>
Ese código logra este resultado en el sitio:



Lo que deseo es que en vez de tablas me genere div y he tratado lógicamente de "jugar" con los td y los tr para insertarle div y pues no logro nada bueno.

Espero no confundir y tal vez alguien me ayuda a cómo debo colocar correctamente los div para que la salida sea en div. Realmente no se nada de php y todo ese cambio lo hice testeando.

Saludos
__________________
¡No lo sé todo! Pero comencé como tú, ¡sin saber nada!
Encuéntrame en Facebook: Perfil + Página