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
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
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 {
115
116 return parent::getHTML();
117 }
118
122 public function fillDataSection()
123 {
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}
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.
static isRepositoryObject()
Is this a repository object.
setPageObject($a_pageob)
Set Page Object.
static getBlockType()
Get block type.
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