ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilTermDefinitionEditorGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 
6 require_once("./Services/Style/classes/class.ilObjStyleSheet.php");
7 require_once ("./Services/COPage/classes/class.ilPageObjectGUI.php");
8 
20 {
21  var $ilias;
22  var $tpl;
23  var $lng;
24  var $glossary;
26  var $term;
27 
33  {
34  global $ilias, $tpl, $lng, $objDefinition, $ilCtrl;
35 
36  // initiate variables
37  $this->ilias =& $ilias;
38  $this->tpl =& $tpl;
39  $this->lng =& $lng;
40  $this->ctrl =& $ilCtrl;
41  $this->glossary =& new ilObjGlossary($_GET["ref_id"], true);
42  $this->definition =& new ilGlossaryDefinition($_GET["def"]);
43  $this->term =& new ilGlossaryTerm($this->definition->getTermId());
44 
45  $this->ctrl->saveParameter($this, array("def"));
46  }
47 
48 
49  function &executeCommand()
50  {
51  global $tpl, $ilCtrl, $lng;
52 
53  $next_class = $this->ctrl->getNextClass($this);
54  $cmd = $this->ctrl->getCmd();
55 
56  // content style
57  $this->tpl->setCurrentBlock("ContentStyle");
58  $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET",
59  ilObjStyleSheet::getContentStylePath($this->glossary->getStyleSheetId()));
60  $this->tpl->parseCurrentBlock();
61 
62  // syntax style
63  $this->tpl->setCurrentBlock("SyntaxStyle");
64  $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET",
66  $this->tpl->parseCurrentBlock();
67 
68  require_once ("./Modules/Glossary/classes/class.ilGlossaryLocatorGUI.php");
69  $gloss_loc =& new ilGlossaryLocatorGUI();
70  $gloss_loc->setTerm($this->term);
71  $gloss_loc->setGlossary($this->glossary);
72  $gloss_loc->setDefinition($this->definition);
73 
74  $this->tpl->getStandardTemplate();
75  $this->tpl->setTitle($this->term->getTerm()." - ".
76  $this->lng->txt("cont_definition")." ".
77  $this->definition->getNr());
78  if ($this->ctrl->getNextClass() == "ilpageobjectgui")
79  {
80  $this->tpl->setTitleIcon(ilUtil::getImagePath("icon_def_b.png"));
81  }
82 
83  switch ($next_class)
84  {
85 
86  case "ilpageobjectgui":
87 
88  // output number of usages
89  if ($ilCtrl->getCmd() == "edit" &&
90  $ilCtrl->getCmdClass() == "ilpageobjectgui")
91  {
92  $nr = ilGlossaryTerm::getNumberOfUsages($_GET["term_id"]);
93  if ($nr > 0)
94  {
95  $link = "[<a href='".
96  $ilCtrl->getLinkTargetByClass("ilglossarytermgui", "listUsages").
97  "'>".$lng->txt("glo_list_usages")."</a>]";
98  ilUtil::sendInfo(sprintf($lng->txt("glo_term_is_used_n_times"),
99  $nr)." ".$link);
100  }
101  }
102 
103  // not so nice, to do: revise locator handling
104  if ($this->ctrl->getNextClass() == "ilpageobjectgui"
105  || $this->ctrl->getCmdClass() == "ileditclipboardgui")
106  {
107  $gloss_loc->display();
108  }
109  $this->setTabs();
110  $this->ctrl->setReturnByClass("ilPageObjectGUI", "edit");
111  $this->ctrl->setReturn($this, "listDefinitions");
112  $page_gui =& new ilPageObjectGUI("gdf", $this->definition->getId());
113  $page = $page_gui->getPageObject();
114  $this->definition->assignPageObject($page);
115  $page->addUpdateListener($this, "saveShortText");
116  $page_gui->setEditPreview(true);
117 
118  // metadata
119  // ... set title to term, if no title is given
120  include_once("./Services/MetaData/classes/class.ilMD.php");
121  $md = new ilMD($this->glossary->getId(), $this->definition->getId(), "gdf");
122  $md_gen = $md->getGeneral();
123  if ($md_gen->getTitle() == "")
124  {
125  $md_gen->setTitle($this->term->getTerm());
126  $md_gen->update();
127  }
128 
129  $page_gui->activateMetaDataEditor($this->glossary->getId(),
130  $this->definition->getId(), "gdf");
131  // $this->obj, "MDUpdateListener");
132 
133  $page_gui->setSourcecodeDownloadScript("ilias.php?baseClass=ilGlossaryPresentationGUI&amp;ref_id=".$_GET["ref_id"]);
134  $page_gui->setFullscreenLink("ilias.php?baseClass=ilGlossaryPresentationGUI&amp;cmd=fullscreen&amp;ref_id=".$_GET["ref_id"]);
135  $page_gui->setTemplateTargetVar("ADM_CONTENT");
136  $page_gui->setOutputMode("edit");
137  $page_gui->setEnableKeywords(true);
138  $page_gui->setStyleId($this->glossary->getStyleSheetId());
139  $page_gui->setLocator($gloss_loc);
140  $page_gui->setEnabledInternalLinks(true);
141  $page_gui->setIntLinkHelpDefault("GlossaryItem", $_GET["ref_id"]);
142  $page_gui->setIntLinkReturn($this->ctrl->getLinkTargetByClass("ilobjglossarygui", "quickList",
143  "", false, false));
144  $page_gui->setPageBackTitle($this->lng->txt("cont_definition"));
145  $page_gui->setLinkParams("ref_id=".$_GET["ref_id"]);
146  $page_gui->setHeader($this->term->getTerm());
147  $page_gui->setFileDownloadLink("ilias.php?baseClass=ilGlossaryPresentationGUI&amp;cmd=downloadFile&amp;ref_id=".$_GET["ref_id"]);
148  $page_gui->setPresentationTitle($this->term->getTerm());
149  $ret =& $this->ctrl->forwardCommand($page_gui);
150  $tpl->setContent($ret);
151  break;
152 
153  default:
154  $this->setTabs();
155  $gloss_loc->display();
156  $ret =& $this->$cmd();
157  break;
158 
159  }
160  }
161 
162 
166  function main_header($a_header_title)
167  {
168  global $lng;
169 
170  $this->tpl->getStandardTemplate();
171  $this->tpl->setTitle($a_header_title);
172  $this->displayLocator();
173  //$this->setAdminTabs($a_type);
174  }
175 
179  function setTabs()
180  {
181  global $ilTabs;
182 
183  // catch feedback message
184  $this->getTabs($ilTabs);
185  }
186 
190  function getTabs(&$tabs_gui)
191  {
192  // back to glossary
193  $tabs_gui->setBack2Target($this->lng->txt("glossary"),
194  $this->ctrl->getParentReturn($this));
195 
196  // back to upper context
197  $tabs_gui->setBackTarget($this->lng->txt("term"),
198  $this->ctrl->getLinkTargetByClass("ilglossarytermgui", "editTerm"));
199 
200  }
201 
202 
203  function saveShortText()
204  {
205  $this->definition->updateShortText();
206  }
207 }
208 ?>