Optimization Of Treeview

Hi all,

I made a nice treeview but it’s very ugly and very slow, could someone help me to improve this code ?




<h1><?php echo Yii::t('default', 'Equipments') ?></h1>

<ul id='treeview' class='filetree'>

    <?php

    $ul = "";

    $projectId = 0;

    $componentId = 0;

    foreach ($equipments as $equipment):

        ?>

        <?php

        if ($projectId != $equipment->component->projectId):;

            $projectId = $equipment->projectId;

            $componentId = 0;

            $status = 0;

            ?>

            <?php

            echo "$ul$ul";

            $ul = "";

            if ($equipment->component->project->hide) {

                $style = "";

            } else {

                $style = "style='display:none'";

            }

            if (Yii::app()->user->getState('role') > 1) {

                $linkProject = CHtml::link($equipment->component->project->identifier, array('project/view', 'id' => $projectId));

                $linkComponent = CHtml::link($equipment->component->identifier, array('components/view', 'id' => $equipment->componentId));

            } else {

                $linkProject = $equipment->component->project->identifier;

                $linkComponent = $equipment->component->identifier;

            }

            ?>

            <li class="p<?php echo $equipment->projectId ?>" <?php echo $style ?>><?php echo "<span class='folder'>" . $linkProject . " " . trim($equipment->projectName) . "</span>"; ?>

                <ul>

                <?php endif; ?>

                <?php if ($componentId != $equipment->componentId): ?>

                    <?php

                    echo "$ul";

                    $ul = "";

                    if ($equipment->component->hide) {

                        $style = "";

                    } else {

                        $style = "style='display:none'";

                    }

                    ?>

                    <li class="c<?php echo $equipment->componentId ?>" <?php echo $style ?>><?php echo "<span class='folder'>" . $equipment->component->identifier . " " . trim($equipment->componentName) . "</span>"; ?>

                        <ul>

                        <?php endif; ?>




                        <li><span class='equipment'><?php echo CHtml::link($equipment->identifier, array('view', 'id' => $equipment->id)) . " " . CHtml::encode($equipment->description) ?></span>

                            <?php

                            if ($equipment->travelers) {

                                echo "<ul>";

                                foreach ($equipment->travelers as $traveler):

                                    $issue = Issue::model()->getIssueByPkFk($traveler->id, $equipment->id);

                                    $issueId = $issue->id;

                                    $progress = $issue->progressText;

                                    ?>

                                <li><span class='file'><?php echo CHtml::link(CHtml::encode($traveler->name) . " (v$traveler->revision)", array('issue/view', 'id' => $issueId)) . " <b>($progress)</b>"; ?></span></li>

                                    <?php

                                endforeach;

                                echo "</ul>";

                            }

                            ?>

                </li>

                <?php

                $componentId = $equipment->componentId;

                $ul = "</ul></li>";

                ?>

                <?php

            endforeach;

            echo "$ul$ul</ul>";

            ?>



The relations are : project->components->equipments->traveler

Thanks