ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
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
4include_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
46 public function getBlockType() : string
47 {
48 return self::$block_type;
49 }
50
54 protected function isRepositoryObject() : bool
55 {
56 return false;
57 }
58
62 public static function getScreenMode()
63 {
64 return IL_SCREEN_SIDE;
65 }
66
70 public function executeCommand()
71 {
73
74 $next_class = $ilCtrl->getNextClass();
75 $cmd = $ilCtrl->getCmd("getHTML");
76
77 switch ($next_class) {
78 default:
79 return $this->$cmd();
80 }
81 }
82
88 public function setPageObject($a_pageob)
89 {
90 $this->pageob = $a_pageob;
91 }
92
98 public function getPageObject()
99 {
100 return $this->pageob;
101 }
102
106 public function getHTML()
107 {
111
112 return parent::getHTML();
113 }
114
118 public function fillDataSection()
119 {
122 $ilAccess = $this->access;
123
124 $tpl = new ilTemplate("tpl.wiki_side_block_content.html", true, true, "Modules/Wiki");
125
126 $wp = $this->getPageObject();
127
128 // info
129 $actions[] = array(
130 "txt" => $lng->txt("info_short"),
131 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "infoScreen")
132 );
133
134 // recent changes
135 $actions[] = array(
136 "txt" => $lng->txt("wiki_recent_changes"),
137 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "recentChanges")
138 );
139
140 foreach ($actions as $a) {
141 $tpl->setCurrentBlock("action");
142 $tpl->setVariable("HREF", $a["href"]);
143 $tpl->setVariable("TXT", $a["txt"]);
144 $tpl->parseCurrentBlock();
145
146 $tpl->touchBlock("item");
147 }
148
149
150 $actions = array();
151
152 // all pages
153 $actions[] = array(
154 "txt" => $lng->txt("wiki_all_pages"),
155 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "allPages")
156 );
157
158 // new pages
159 $actions[] = array(
160 "txt" => $lng->txt("wiki_new_pages"),
161 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "newPages")
162 );
163
164 // popular pages
165 $actions[] = array(
166 "txt" => $lng->txt("wiki_popular_pages"),
167 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "popularPages")
168 );
169
170 // orphaned pages
171 $actions[] = array(
172 "txt" => $lng->txt("wiki_orphaned_pages"),
173 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "orphanedPages")
174 );
175
176
177 // page lists
178 include_once("./Services/UIComponent/AdvancedSelectionList/classes/class.ilAdvancedSelectionListGUI.php");
180 $list->setListTitle($lng->txt("wiki_page_lists"));
182 $list->setId("wiki_pglists");
183
184 foreach ($actions as $a) {
185 $list->addItem(
186 $a["txt"],
187 "",
188 $a["href"]
189 );
190 }
191 $tpl->setCurrentBlock("plain");
192 $tpl->setVariable("PLAIN", $list->getHTML());
193 $tpl->parseCurrentBlock();
194 $tpl->touchBlock("item");
195
196
197 // page actions
200 $list->setListTitle($lng->txt("wiki_page_actions"));
201 $list->setId("wiki_pgactions");
202
203 if ($ilAccess->checkAccess("write", "", $this->ref_id)) {
204 // rating
205 if (ilObjWiki::_lookupRating($this->getPageObject()->getWikiId())) {
206 if (!$this->getPageObject()->getRating()) {
207 $list->addItem(
208 $lng->txt("wiki_activate_page_rating"),
209 "",
210 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "activateWikiPageRating")
211 );
212 } else {
213 $list->addItem(
214 $lng->txt("wiki_deactivate_page_rating"),
215 "",
216 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "deactivateWikiPageRating")
217 );
218 }
219 }
220 }
221
222 if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
223 $ilAccess->checkAccess("edit_page_meta", "", $this->ref_id)) {
224 // unhide advmd?
225 include_once 'Services/AdvancedMetaData/classes/class.ilAdvancedMDRecord.php';
226 if ((bool) sizeof(ilAdvancedMDRecord::_getSelectedRecordsByObject("wiki", $this->ref_id, "wpg")) &&
228 $list->addItem(
229 $lng->txt("wiki_unhide_meta_adv_records"),
230 "",
231 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "unhideAdvancedMetaData")
232 );
233 }
234 }
235
236 if (($ilAccess->checkAccess("edit_content", "", $this->ref_id) && !$this->getPageObject()->getBlocked())
237 || $ilAccess->checkAccess("write", "", $this->ref_id)) {
238 // rename
239 $list->addItem(
240 $lng->txt("wiki_rename_page"),
241 "",
242 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "renameWikiPage")
243 );
244 }
245
246 include_once("./Modules/Wiki/classes/class.ilWikiPerm.php");
247 if (ilWikiPerm::check("activate_wiki_protection", $this->ref_id)) {
248 // block/unblock
249 if ($this->getPageObject()->getBlocked()) {
250 $list->addItem(
251 $lng->txt("wiki_unblock_page"),
252 "",
253 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "unblockWikiPage")
254 );
255 } else {
256 $list->addItem(
257 $lng->txt("wiki_block_page"),
258 "",
259 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "blockWikiPage")
260 );
261 }
262 }
263
264 include_once("./Modules/Wiki/classes/class.ilWikiPerm.php");
265 if (ilWikiPerm::check("delete_wiki_pages", $this->ref_id)) {
266 // delete page
267 $st_page = ilObjWiki::_lookupStartPage($this->getPageObject()->getParentId());
268 if ($st_page != $this->getPageObject()->getTitle()) {
269 $list->addItem(
270 $lng->txt("wiki_delete_page"),
271 "",
272 $ilCtrl->getLinkTargetByClass("ilwikipagegui", "deleteWikiPageConfirmationScreen")
273 );
274 }
275 }
276
277 if ($ilAccess->checkAccess("write", "", $this->ref_id)) {
278 include_once "Modules/Wiki/classes/class.ilWikiPageTemplate.php";
279 $wpt = new ilWikiPageTemplate($this->getPageObject()->getParentId());
280 if (!$wpt->isPageTemplate($this->getPageObject()->getId())) {
281 $list->addItem(
282 $lng->txt("wiki_add_template"),
283 "",
284 $ilCtrl->getLinkTargetByClass("ilwikipagetemplategui", "addPageTemplateFromPageAction")
285 );
286 } else {
287 $list->addItem(
288 $lng->txt("wiki_remove_template_status"),
289 "",
290 $ilCtrl->getLinkTargetByClass("ilwikipagetemplategui", "removePageTemplateFromPageAction")
291 );
292 }
293 }
294
295 if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
296 $ilAccess->checkAccess("read", "", $this->ref_id)) {
297 $tpl->setCurrentBlock("plain");
298 $tpl->setVariable("PLAIN", $list->getHTML());
299 $tpl->parseCurrentBlock();
300 $tpl->touchBlock("item");
301 }
302
303 // permissions
304 // if ($ilAccess->checkAccess('edit_permission', "", $this->ref_id))
305 // {
306 // $actions[] = array(
307 // "txt" => $lng->txt("perm_settings"),
308 // "href" => $ilCtrl->getLinkTargetByClass(array("ilobjwikigui", "ilpermissiongui"), "perm")
309 // );
310 // }
311
312 $actions = array();
313
314 // settings
315 if ($ilAccess->checkAccess('write', "", $this->ref_id)) {
316 $actions[] = array(
317 "txt" => $lng->txt("wiki_contributors"),
318 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "listContributors")
319 );
320 }
321
322 // manage
323 if (ilWikiPerm::check("wiki_html_export", $this->ref_id)) {
324 $actions[] = array(
325 "txt" => $lng->txt("wiki_html_export"),
326 "id" => "il_wiki_user_export",
327 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "initUserHTMLExport")
328 );
329 }
330
331 // manage
332 if ($ilAccess->checkAccess('write', "", $this->ref_id)) {
333 $actions[] = array(
334 "txt" => $lng->txt("settings"),
335 "href" => $ilCtrl->getLinkTargetByClass("ilobjwikigui", "editSettings")
336 );
337 } elseif ($ilAccess->checkAccess('statistics_read', "", $this->ref_id)) {
338 $actions[] = array(
339 "txt" => $lng->txt("statistics"),
340 "href" => $ilCtrl->getLinkTargetByClass(array("ilobjwikigui", "ilwikistatgui"), "initial")
341 );
342 }
343
344 foreach ($actions as $a) {
345 $tpl->setCurrentBlock("action");
346 $tpl->setVariable("HREF", $a["href"]);
347 $tpl->setVariable("TXT", $a["txt"]);
348 if ($a["id"] != "") {
349 $tpl->setVariable("ACT_ID", "id='" . $a["id"] . "'");
350 }
351 $tpl->parseCurrentBlock();
352
353 $tpl->touchBlock("item");
354 }
355
356
357 $this->setDataSection($tpl->get());
358 }
359}
user()
Definition: user.php:4
$_GET["client_id"]
An exception for terminatinating execution or to throw for unit testing.
const IL_SCREEN_SIDE
static _getSelectedRecordsByObject($a_obj_type, $a_ref_id, $a_sub_type="")
Get selected records by object.
User interface class for advanced drop-down selection lists.
This class represents a block method of a block.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
getTitle()
Get Title.
setTitle($a_title)
Set Title.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
static _lookupStartPage($a_wiki_id)
Lookup start page.
static _lookupRating($a_wiki_id)
Lookup whether rating is activated.
special template class to simplify handling of ITX/PEAR
BlockGUI class for wiki functions block.
static getScreenMode()
Get Screen Mode for current command.
isRepositoryObject()
Returns whether block has a corresponding repository object.bool
setPageObject($a_pageob)
Set Page Object.
static lookupAdvancedMetadataHidden($a_page_id)
static check($a_perm, $a_ref_id, $a_cmd="")
Check permission.
global $ilCtrl
Definition: ilias.php:18
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
global $DIC
Definition: saml.php:7
$ilUser
Definition: imgupload.php:18