/**
  * Отображение организационной структуры.
  *
  * Параметры вызова:
  * array(
  *      'items' => CArrayList,
  *      'itemTemplate' => '_item.html.php'
  * )
  *
  * CArrayList должен содержать объекты типа CPerson
  *
  * @static
  * @param array $arr
  */
 public static function display(array $arr = null)
 {
     $r = new CArrayList();
     foreach ($arr['items']->getItems() as $i) {
         if ($i->getSubordinators()->getCount() > 0 && $i->getManagerId() == 0) {
             $r->add($r->getCount(), $i);
         }
     }
     CUnorderedListWidget::display(array('items' => $r, 'itemTemplate' => '_orgStructureItem.html.php', 'id' => $arr['id'], 'style' => $arr['style']));
 }
<li id="orgid_<?php 
echo $item->getId();
?>
">
    <?php 
if (!is_null($item->getRole())) {
    echo "<b>" . $item->getName() . "</b>, " . $item->getRole()->getValue();
} else {
    echo "<b>" . $item->getName() . "</b>";
}
if ($item->getSubordinators()->getCount() > 0) {
    CUnorderedListWidget::display(array('items' => $item->getSubordinators(), 'itemTemplate' => "_orgStructureItem.html.php"));
}
?>
</li>