ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
class.ilWikiFunctionsBlockGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2011 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once("Services/Block/classes/class.ilBlockGUI.php");
5 
15 {
16  public static $block_type = "wikiside";
17  public static $st_data;
18 
22  public function __construct()
23  {
24  global $DIC;
25 
26  $this->ctrl = $DIC->ctrl();
27  $this->lng = $DIC->language();
28  $this->user = $DIC->user();
29  $this->access = $DIC->access();
30  $lng = $DIC->language();
31 
32  parent::__construct();
33 
34  $lng->loadLanguageModule("wiki");
35  $this->setEnableNumInfo(false);
36 
37  $this->setTitle($lng->txt("wiki_functions"));
38  $this->allow_moving = false;
39 
40  $this->ref_id = (int) $_GET["ref_id"];
41  }
42 
48  public static function getBlockType()
49  {
50  return self::$block_type;
51  }
52 
58  public static function isRepositoryObject()
59  {
60  return false;
61  }
62 
66  public static function getScreenMode()
67  {
68  return IL_SCREEN_SIDE;
69  }
70 
74  public function executeCommand()
75  {
77 
78  $next_class = $ilCtrl->getNextClass();
79  $cmd = $ilCtrl->getCmd("getHTML");
80 
81  switch ($next_class) {
82  default:
83  return $this->$cmd();
84  }
85  }
86 
92  public function setPageObject($a_pageob)
93  {
94  $this->pageob = $a_pageob;
95  }
96 
102  public function getPageObject()
103  {
104  return $this->pageob;
105  }
106 
110  public function getHTML()
111  {
113  $lng = $this->lng;
115 
116  return parent::getHTML();
117  }
118 
122  public function fillDataSection()
123  {
125  $lng = $this->lng;
126  $ilAccess = $this->access;
127 
128  $tpl = new ilTemplate("tpl.wiki_side_block_content.html", true, true, "Modules/Wiki");
129 
130  $wp = $this->getPageObject();
131 
132  // info
133  $actions[] = array(
134  "txt" => $lng->txt("info_short"),
135  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "infoScreen")
136  );
137 
138  // recent changes
139  $actions[] = array(
140  "txt" => $lng->txt("wiki_recent_changes"),
141  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "recentChanges")
142  );
143 
144  foreach ($actions as $a) {
145  $tpl->setCurrentBlock("action");
146  $tpl->setVariable("HREF", $a["href"]);
147  $tpl->setVariable("TXT", $a["txt"]);
148  $tpl->parseCurrentBlock();
149 
150  $tpl->touchBlock("item");
151  }
152 
153 
154  $actions = array();
155 
156  // all pages
157  $actions[] = array(
158  "txt" => $lng->txt("wiki_all_pages"),
159  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "allPages")
160  );
161 
162  // new pages
163  $actions[] = array(
164  "txt" => $lng->txt("wiki_new_pages"),
165  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "newPages")
166  );
167 
168  // popular pages
169  $actions[] = array(
170  "txt" => $lng->txt("wiki_popular_pages"),
171  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "popularPages")
172  );
173 
174  // orphaned pages
175  $actions[] = array(
176  "txt" => $lng->txt("wiki_orphaned_pages"),
177  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "orphanedPages")
178  );
179 
180 
181  // page lists
182  include_once("./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
184  $list->setListTitle($lng->txt("wiki_page_lists"));
186  $list->setId("wiki_pglists");
187 
188  foreach ($actions as $a) {
189  $list->addItem(
190  $a["txt"],
191  "",
192  $a["href"]
193  );
194  }
195  $tpl->setCurrentBlock("plain");
196  $tpl->setVariable("PLAIN", $list->getHTML());
197  $tpl->parseCurrentBlock();
198  $tpl->touchBlock("item");
199 
200 
201  // page actions
204  $list->setListTitle($lng->txt("wiki_page_actions"));
205  $list->setId("wiki_pgactions");
206 
207  if ($ilAccess->checkAccess("write", "", $this->ref_id)) {
208  // rating
209  if (ilObjWiki::_lookupRating($this->getPageObject()->getWikiId())) {
210  if (!$this->getPageObject()->getRating()) {
211  $list->addItem(
212  $lng->txt("wiki_activate_page_rating"),
213  "",
214  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "activateWikiPageRating")
215  );
216  } else {
217  $list->addItem(
218  $lng->txt("wiki_deactivate_page_rating"),
219  "",
220  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "deactivateWikiPageRating")
221  );
222  }
223  }
224  }
225 
226  if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
227  $ilAccess->checkAccess("edit_page_meta", "", $this->ref_id)) {
228  // unhide advmd?
229  include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
230  if ((bool) sizeof(ilAdvancedMDRecord::_getSelectedRecordsByObject("wiki", $this->ref_id, "wpg")) &&
232  $list->addItem(
233  $lng->txt("wiki_unhide_meta_adv_records"),
234  "",
235  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "unhideAdvancedMetaData")
236  );
237  }
238  }
239 
240  if (($ilAccess->checkAccess("edit_content", "", $this->ref_id) && !$this->getPageObject()->getBlocked())
241  || $ilAccess->checkAccess("write", "", $this->ref_id)) {
242  // rename
243  $list->addItem(
244  $lng->txt("wiki_rename_page"),
245  "",
246  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "renameWikiPage")
247  );
248  }
249 
250  include_once("./Modules/Wiki/classes/class.ilWikiPerm.php");
251  if (ilWikiPerm::check("activate_wiki_protection", $this->ref_id)) {
252  // block/unblock
253  if ($this->getPageObject()->getBlocked()) {
254  $list->addItem(
255  $lng->txt("wiki_unblock_page"),
256  "",
257  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "unblockWikiPage")
258  );
259  } else {
260  $list->addItem(
261  $lng->txt("wiki_block_page"),
262  "",
263  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "blockWikiPage")
264  );
265  }
266  }
267 
268  include_once("./Modules/Wiki/classes/class.ilWikiPerm.php");
269  if (ilWikiPerm::check("delete_wiki_pages", $this->ref_id)) {
270  // delete page
271  $st_page = ilObjWiki::_lookupStartPage($this->getPageObject()->getParentId());
272  if ($st_page != $this->getPageObject()->getTitle()) {
273  $list->addItem(
274  $lng->txt("wiki_delete_page"),
275  "",
276  $ilCtrl->getLinkTargetByClass("ilwikipagegui", "deleteWikiPageConfirmationScreen")
277  );
278  }
279  }
280 
281  if ($ilAccess->checkAccess("write", "", $this->ref_id)) {
282  include_once "Modules/Wiki/classes/class.ilWikiPageTemplate.php";
283  $wpt = new ilWikiPageTemplate($this->getPageObject()->getParentId());
284  if (!$wpt->isPageTemplate($this->getPageObject()->getId())) {
285  $list->addItem(
286  $lng->txt("wiki_add_template"),
287  "",
288  $ilCtrl->getLinkTargetByClass("ilwikipagetemplategui", "addPageTemplateFromPageAction")
289  );
290  } else {
291  $list->addItem(
292  $lng->txt("wiki_remove_template_status"),
293  "",
294  $ilCtrl->getLinkTargetByClass("ilwikipagetemplategui", "removePageTemplateFromPageAction")
295  );
296  }
297  }
298 
299  if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
300  $ilAccess->checkAccess("read", "", $this->ref_id)) {
301  $tpl->setCurrentBlock("plain");
302  $tpl->setVariable("PLAIN", $list->getHTML());
303  $tpl->parseCurrentBlock();
304  $tpl->touchBlock("item");
305  }
306 
307  // permissions
308  // if ($ilAccess->checkAccess('edit_permission', "", $this->ref_id))
309  // {
310  // $actions[] = array(
311  // "txt" => $lng->txt("perm_settings"),
312  // "href" => $ilCtrl->getLinkTargetByClass(array("ilobjwikigui", "ilpermissiongui"), "perm")
313  // );
314  // }
315 
316  $actions = array();
317 
318  // settings
319  if ($ilAccess->checkAccess('write', "", $this->ref_id)) {
320  $actions[] = array(
321  "txt" => $lng->txt("wiki_contributors"),
322  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "listContributors")
323  );
324  }
325 
326  // manage
327  if (ilWikiPerm::check("wiki_html_export", $this->ref_id)) {
328  $actions[] = array(
329  "txt" => $lng->txt("wiki_html_export"),
330  "id" => "il_wiki_user_export",
331  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "initUserHTMLExport")
332  );
333  }
334 
335  // manage
336  if ($ilAccess->checkAccess('write', "", $this->ref_id)) {
337  $actions[] = array(
338  "txt" => $lng->txt("settings"),
339  "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "editSettings")
340  );
341  } elseif ($ilAccess->checkAccess('statistics_read', "", $this->ref_id)) {
342  $actions[] = array(
343  "txt" => $lng->txt("statistics"),
344  "href" => $ilCtrl->getLinkTargetByClass(array("ilobjwikigui", "ilwikistatgui"), "initial")
345  );
346  }
347 
348  foreach ($actions as $a) {
349  $tpl->setCurrentBlock("action");
350  $tpl->setVariable("HREF", $a["href"]);
351  $tpl->setVariable("TXT", $a["txt"]);
352  if ($a["id"] != "") {
353  $tpl->setVariable("ACT_ID", "id='" . $a["id"] . "'");
354  }
355  $tpl->parseCurrentBlock();
356 
357  $tpl->touchBlock("item");
358  }
359 
360 
361  $this->setDataSection($tpl->get());
362  }
363 }
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
static check($a_perm, $a_ref_id, $a_cmd="")
Check permission.
global $DIC
Definition: saml.php:7
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
$_GET["client_id"]
static _lookupStartPage($a_wiki_id)
Lookup start page.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
static lookupAdvancedMetadataHidden($a_page_id)
user()
Definition: user.php:4
static _getSelectedRecordsByObject($a_obj_type, $a_ref_id, $a_sub_type="")
Get selected records by object.
global $ilCtrl
Definition: ilias.php:18
BlockGUI class for wiki functions block.
static _lookupRating($a_wiki_id)
Lookup whether rating is activated.
setTitle($a_title)
Set Title.
static isRepositoryObject()
Is this a repository object.
special template class to simplify handling of ITX/PEAR
$ilUser
Definition: imgupload.php:18
static getScreenMode()
Get Screen Mode for current command.
Create styles array
The data for the language used.
User interface class for advanced drop-down selection lists.
static getBlockType()
Get block type.
This class represents a block method of a block.
const IL_SCREEN_SIDE
setPageObject($a_pageob)
Set Page Object.
getTitle()
Get Title.