Возврат дополнительных полей с помощью generatetreelist - PullRequest
0 голосов
/ 12 марта 2010

Я не знаю, правильно ли я поступаю с деревом, но я пытаюсь создать систему комментариев для блога. Я хотел бы иметь отступ в 5 уровней глубины.

Метод generatetreelist выглядит так, как будто это самый быстрый способ сделать это, но не похоже, что вы можете добавлять поля в запрос. Я прав ? Есть ли способ изменить метод?

Спасибо

Ответы [ 2 ]

2 голосов
/ 14 января 2012

Вот как я делаю это для категорий. Вы можете изменить соответственно.

В контроллере:

$categories = $this->Category->generatetreelist(null,null,null,"|-- ");
    $categories_array = array();
    foreach($categories as $k => $v)
    {
        $categories_array[$k] = $this->Category->find('first', array('conditions' => array('Category.id' => $k)));
        $categories_array[$k]["Category"]["path"] = $v;
    }

    $this->set(compact('categories','categories_array'));

В поле зрения:

    <table>
    <thead>
      <tr>
        <th><?php __('Id');?></th>
        <th><?php __('Name');?></th>
        <th><?php __('Status');?></th>
        <th><?php __('Action');?></th>
    </tr>
    </thead>
    <tbody>
    <?php
    $i = 0;
    foreach ($categories_array AS $categoryId => $category):
    $class = 'even';
    if ($i++ % 2 == 0) {
        $class = 'odd';
    }?>
    <tr class="<?php echo $class;?>">
    <td><?php echo $category['Category']['id']; ?></td>
    <td><?php echo $category["Category"]["path"];?></td>


    <?php if ($category['Category']['status'] == '1'){
    $published = 'Active';
        }else {
    $published = 'Inactive';
    } ?>
<td><?php echo $published;?></td>
<td>
 <?php echo $html->link($html->image("icons/16_icon_view.png"), array('action' => 'view', $category['Category']['id']), array('title'=>'View','escape' => false));?>&nbsp;
            <?php echo $html->link($html->image("icons/16_icon_edit.png"), array('action' => 'edit', $category['Category']['id']), array('title'=>'Edit','escape' => false));?>&nbsp;
            <?php echo $html->link($html->image("icons/16_icon_delete.png"), array('action' => 'delete', $category['Category']['id']), array('class'=>'delete_trigger','rel'=>'#error','title'=>'Delete','escape' => false));?>
        </td>
    </tr>

  <?php endforeach; ?>


</tbody>
</table>
0 голосов
/ 12 марта 2010

Если бы это был я, я бы просто сделал это в наборе результатов. Получив числовой массив в первом измерении результатов, вы можете использовать его при выводе данных для отступа или добавить класс к своим комментариям по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...