Bonsoir,
Alors je cherche à savoir comment afficher le résultat de tree d'une façon perso car j'aimerais mettre des H1 sur les catégories et les sous catégories dans des li.
Donc y a t-il un moyen???
Merci d'avance.
J'ai réussi sur mon forum en créant une fonction perso dans mon controller et en fesant plusieurs foreach dans ma vue donc je vous post ma solution si cela peut servir à quelqu'un un jour.
Voici mon controller:
function index() {
$d'forum' ] = $this->getForumConvert($this->ForumsCategory->find('all', array('order' => array('ForumsCategory.lft ASC'))));
$this->set($d);
}
function getForumConvert($data) {
$d = array();
foreach($data as $cat):
if($cat"ForumsCategory"]"parent_id"] == 0):
$d'categories']] = $cat"ForumsCategory"];
else:
$d'forums']]
= $cat"ForumsCategory"];
endif;
endforeach;
return $d;
}
Et ma vue:
<?php
$ci = 0;
$categories = $forum'categories'];
$forums = $forum'forums'];
foreach($categories as $cat):
if($ci != $cat"id"]):
$ci = $cat"id"];
?>
<table>
<thead>
<tr>
<th><?php echo $cat"name"]; ?></th>
<th>Sujets</th>
<th>Messages</th>
<th>Dernier message</th>
</tr>
</thead>
<tbody>
<?php
foreach($forums as $f):
if($cat"id"] == $f"parent_id"]):
//$timestamp = strtotime($f"Forums_post"]'created']);
?>
<tr>
<td><?php echo $f"name"]; ?><br /><?php echo $f"desc"]; ?></td>
<td>0</td>
<td>0</td>
<td></td>
</tr>
<?php
endif;
endforeach;
?>
</tbody>
</table>
<?php
endif;
endforeach;
?>
Donc il faut que je fasse une requête avec un find sur le champ lft puis que je le fasse dans un foreach.
Tu pense que ça le fera???
Alors en fesant dans mon controller:
$d'categories'] = $this->RecettesCategory->find('all', array('order' => array('RecettesCategory.lft ASC')));
Puis ceci dans ma vue:
<table>
<?php
$ci = 0;
foreach($categories as $cat):
if($ci != $cat"RecettesCategory"]"id"]):
if($cat"RecettesCategory"]"parent_id"] == 0):
$ci = $cat"RecettesCategory"]"id"];
?>
<tr>
<th><?php echo $cat"RecettesCategory"]"name"]; ?></th>
<th>Actions</th>
</tr>
<?php elseif($cat"RecettesCategory"]"parent_id"] == $ci): ?>
<tr>
<td>-- <?php echo $html->link($cat"RecettesCategory"]"name"], array('action' => 'edit', $cat"RecettesCategory"]"id"])); ?></td>
<td>
<?php echo $html->link('[x]', array('action' => 'delete', $cat"RecettesCategory"]"id"])); ?>
<?php echo $html->link('[up]', array('action' => 'moveUp', $cat"RecettesCategory"]"id"])); ?>
<?php echo $html->link('[down]', array('action' => 'moveDown', $cat"RecettesCategory"]"id"])); ?>
</td>
</tr>
<?php endif; ?>
<?php
endif;
endforeach;
?>
</table>
Par contre je n'ai pas trouvé comment faire pour que à chaque nouvelle catégorie parente ça me recrée un nouveau tableau.
Voici le schéma de ce que j'ai actuellement:
DébutTableau
Catégorie parente>
Sous catégorie
Sous catégorie
Catégorie parente>
Sous catégorie
Sous catégorie
FinTableau
Et voilà ce que j'aimerais avoir:
DébutTableau
Catégorie parente>
Sous catégorie
Sous catégorie
FinTableau
DébutTableau
Catégorie parente>
Sous catégorie
Sous catégorie
FinTableau
Avez-vous une idée de comment faire car je ne trouve pas du tout...
Merci d'avance....