function display_uc($useCase, $raw) { echo "\\item \\hyperlink{" . $useCase->public_id() . "}{" . $useCase->public_id() . " - " . $useCase->title . "} \n"; $useCase->with('useCases'); if (isset($useCase->useCases) && count($useCase->useCases) > 0) { echo "\\begin{itemize}\n"; foreach ($useCase->useCases as $child) { display_uc($child, $raw); } echo "\\end{itemize}\n"; } }
function display_uc($useCase, $raw) { $string = ''; $id = $useCase->public_id(); //$actors = implode(', ',$useCase->actors()); $string .= "\\hypertarget{{$id}}{}\n\\subsection{Caso d'uso {$id}: {$useCase->title}}"; if (isset($useCase->useCaseEvents) && count($useCase->useCaseEvents)) { $string .= "\n \\begin{figure}[H]\n \\centering\n \\includegraphics[scale=0.95]{img/{$id}.pdf}\n \\caption{Caso d'uso {$id}: {$useCase->title}}\\label{fig:{$id}} \n \\end{figure}"; } $string .= "\\begin{itemize}\n"; /// @warning HARD CODED DB PK!!!!!!!!!!! if ($useCase->id_use_case != 52) { $string .= "\\item \\textbf{Attori}: Utente;\n"; } $string .= "\\item \\textbf{Scopo e descrizione}: {$useCase->description}; \n \\item \\textbf{Precondizione}: {$useCase->pre};\n"; $prim = UseCaseEvent::model()->findAll(array('order' => '`order`', 'condition' => 'category=1 and use_case=:uc', 'params' => array(':uc' => $useCase->id_use_case))); if (count($prim) > 0) { $string .= "\n \\item \\textbf{Flusso principale degli eventi}:\n \\begin{enumerate}\n"; foreach ($prim as $event) { $string .= " \\item {$event->description}"; if ($event->refers_to) { $child_id = $event->with('refersTo')->refersTo->public_id(); $string .= " (\\hyperlink{{$child_id}}{{$child_id}})"; } $string .= ";\n"; } $string .= "\n \\end{enumerate}\n"; } $alt = UseCaseEvent::model()->findAll(array('order' => '`order`', 'condition' => 'category=3 and use_case=:uc', 'params' => array(':uc' => $useCase->id_use_case))); if (count($alt)) { $string .= " \\item \\textbf{Estensioni}:\n \\begin{enumerate}\n"; foreach ($alt as $event) { $string .= " \\item {$event->description}"; if ($event->refers_to) { $child_id = $event->with('refersTo')->refersTo->public_id(); $string .= " (\\hyperlink{{$child_id}}{{$child_id}})"; } $string .= ";\n"; } $string .= "\n \\end{enumerate}\n"; } $alt = UseCaseEvent::model()->findAll(array('order' => '`order`', 'condition' => 'category=4 and use_case=:uc', 'params' => array(':uc' => $useCase->id_use_case))); if (count($alt)) { $string .= " \\item \\textbf{Inclusioni}:\n \\begin{enumerate}\n"; foreach ($alt as $event) { $string .= " \\item {$event->description}"; if ($event->refers_to) { $child_id = $event->with('refersTo')->refersTo->public_id(); $string .= " (\\hyperlink{{$child_id}}{{$child_id}})"; } $string .= ";\n"; } $string .= "\n \\end{enumerate}\n"; } $alt = UseCaseEvent::model()->findAll(array('order' => '`order`', 'condition' => 'category=2 and use_case=:uc', 'params' => array(':uc' => $useCase->id_use_case))); //$useCase->with(array('useCaseEvents'=>array('condition'=>'category=2','order'=>'order'))); if (count($alt)) { $string .= " \\item \\textbf{Scenari Alternativi}:\n \\begin{enumerate}\n"; foreach ($alt as $event) { $string .= " \\item {$event->description}"; if ($event->refers_to) { $child_id = $event->with('refersTo')->refersTo->public_id(); $string .= " (\\hyperlink{{$child_id}}{{$child_id}})"; } $string .= ";\n"; } $string .= "\n \\end{enumerate}\n"; } $string .= " \\item \\textbf{Postcondizione}: {$useCase->post}.\n"; $string .= " \\end{itemize}\n"; if ($raw) { echo "{$string}"; } else { echo "<pre>{$string}</pre>"; } $useCase->with('useCases'); if (isset($useCase->useCases)) { foreach ($useCase->useCases as $child) { display_uc($child, $raw); } } }