ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilKSDocumentationEntryGUI.php
Go to the documentation of this file.
1 <?php
2 include_once("./Services/UIComponent/Panel/classes/class.ilPanelGUI.php");
3 include_once ("Services/Form/classes/class.ilPropertyFormGUI.php");
4 include_once ("libs/composer/vendor/geshi/geshi/src/geshi.php");
5 
6 
8 
15 {
19  protected $entry = null;
20 
24  protected $entries = null;
25 
29  protected $ctrl;
30 
34  protected $parent;
35 
39  protected $f = null;
40 
44  protected $r = null;
45 
52  public function __construct(ilSystemStyleDocumentationGUI $parent, Entry\ComponentEntry $entry, Entry\ComponentEntries $entries) {
53  global $ilCtrl,$DIC;
54 
55  $this->f = $DIC->ui()->factory();
56  $this->r = $DIC->ui()->renderer();
57 
58  $this->setEntry($entry);
59  $this->setEntries($entries);
60  $this->setParent($parent);
61  $this->ctrl = $ilCtrl;
62 
63  }
64 
68  public function renderEntry(){
69 
70  $sub_panels = array();
71 
72  $feature_wiki_links = array();
73  foreach($this->entry->getFeatureWikiReferences()as $href){
74  $feature_wiki_links[] = $href;
75  }
76 
77  $sub_panels[] = $this->f->panel()->sub("Description",
78  array(
79  $this->f->listing()->descriptive(
80  array(
81  "Purpose" => $this->entry->getDescription()->getProperty("purpose"),
82  "Composition" => $this->entry->getDescription()->getProperty("composition"),
83  "Effect" => $this->entry->getDescription()->getProperty("effect"),
84  "Rivals" => $this->f->listing()->ordered(
85  $this->entry->getDescription()->getProperty("rivals")
86  )
87  )
88  ),
89  $this->f->listing()->descriptive(
90  array(
91  "Background" => $this->entry->getBackground(),
92  "Feature Wiki References" => $this->f->listing()->ordered($feature_wiki_links)
93  )
94  )
95  )
96  );
97 
98  $rule_listings = array();
99  foreach($this->entry->getRulesAsArray() as $categoery => $category_rules){
100  $rule_listings[ucfirst($categoery)] = $this->f->listing()->ordered($category_rules);
101  }
102 
103  $sub_panels[] = $this->f->panel()->sub("Rules",
104  $this->f->listing()->descriptive($rule_listings)
105  );
106 
107  if($this->entry->getExamples()){
108  $nr = 1;
109  foreach($this->entry->getExamples() as $name => $path){
110  include_once($path);
111  $title = "Example ".$nr.": ".ucfirst(str_replace("_"," ",$name));
112  $nr++;
113  $example = "<div class='well'>".$name()."</div>"; //Executes function loaded in file indicated by 'path'
114  $content_part_1 = $this->f->legacy($example);
115  $code = str_replace("<?php\n","",file_get_contents ($path));
116  $geshi = new GeSHi($code, "php");
117  $content_part_2 = $this->f->legacy($geshi->parse_code());
118  $content = array($content_part_1,$content_part_2);
119  $sub_panels[] = $this->f->panel()->sub($title, $content);
120  }
121  }
122 
123  $sub_panels[] = $this->f->panel()->sub("Relations",
124  $this->f->listing()->descriptive(
125  array(
126  "Parents" => $this->f->listing()->ordered(
127  $this->entries->getParentsOfEntryTitles($this->entry->getId())
128  ),
129  "Descendants" => $this->f->listing()->unordered(
130  $this->entries->getDescendantsOfEntryTitles($this->entry->getId())
131  )
132  )
133  )
134  );
135 
136  $report = $this->f->panel()->report($this->entry->getTitle(),$sub_panels);
137 
138  return $this->r->render($report);
139  }
140 
141 
145  public function getEntry()
146  {
147  return $this->entry;
148  }
149 
153  public function setEntry(Entry\ComponentEntry $entry)
154  {
155  $this->entry = $entry;
156  }
157 
161  public function getEntries()
162  {
163  return $this->entries;
164  }
165 
169  public function setEntries(Entry\ComponentEntries $entries)
170  {
171  $this->entries = $entries;
172  }
173 
177  public function getParent()
178  {
179  return $this->parent;
180  }
181 
185  public function setParent($parent)
186  {
187  $this->parent = $parent;
188  }
189 }
$path
Definition: aliased.php:25
if(strncmp($real_path, SOURCE_ROOT, $base_path_len)) if(!file_exists($path)) $geshi
Definition: aliased.php:40
$code
Definition: example_050.php:99
global $ilCtrl
Definition: ilias.php:18
__construct(ilSystemStyleDocumentationGUI $parent, Entry\ComponentEntry $entry, Entry\ComponentEntries $entries)
ilKSDocumentationEntryGUI constructor.
setEntries(Entry\ComponentEntries $entries)
setEntry(Entry\ComponentEntry $entry)
Create styles array
The data for the language used.
global $DIC