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