aboutsummaryrefslogtreecommitdiff
path: root/lib/modules/CoreWiki.class.php
diff options
context:
space:
mode:
authorPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
committerPhilipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de>2024-09-24 10:53:31 +0200
commit4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch)
tree5c07151ae61276d334e88f6309c30d439a85c12e /lib/modules/CoreWiki.class.php
parentda0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff)
parent97a188592c679890a25c37ab78463add76a52ff7 (diff)
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'lib/modules/CoreWiki.class.php')
-rw-r--r--lib/modules/CoreWiki.class.php205
1 files changed, 0 insertions, 205 deletions
diff --git a/lib/modules/CoreWiki.class.php b/lib/modules/CoreWiki.class.php
deleted file mode 100644
index a447451..0000000
--- a/lib/modules/CoreWiki.class.php
+++ /dev/null
@@ -1,205 +0,0 @@
-<?php
-
-/*
- * Copyright (c) 2012 Rasmus Fuhse <fuhse@data-quest.de>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- */
-
-class CoreWiki extends CorePlugin implements StudipModule
-{
- /**
- * {@inheritdoc}
- */
- public function getIconNavigation($range_id, $last_visit, $user_id)
- {
- if (!Config::get()->WIKI_ENABLE) {
- return null;
- }
- $perm = $GLOBALS['perm']->get_perm($user_id);
- if (in_array($perm, ['admin', 'root'])) {
- $perm = 'dozent';
- }
-
- $statement = DBManager::get()->prepare("
- SELECT `wiki_pages`.`page_id`
- FROM `wiki_pages`
- LEFT JOIN `statusgruppe_user` ON (`statusgruppe_user`.`statusgruppe_id` = `wiki_pages`.`read_permission`)
- WHERE `wiki_pages`.`range_id` = :range_id
- AND (
- `wiki_pages`.`read_permission` = 'all'
- OR `statusgruppe_user`.`user_id` = :user_id
- OR `wiki_pages`.`read_permission` = :perm
- OR (`wiki_pages`.`read_permission` = 'tutor' AND :perm = 'dozent')
- )
- ");
-
- $statement->execute([
- 'range_id' => $range_id,
- 'user_id' => $user_id,
- 'perm' => $perm
- ]);
- $wiki_page_ids = $statement->fetchAll(PDO::FETCH_COLUMN);
- if (count($wiki_page_ids) === 0) {
- return null;
- }
-
- $visit_date = object_get_visit($range_id, $this->getPluginId(), 'visitdate') ?? $last_visit;
-
- $statement = DBManager::get()->prepare("
- SELECT COUNT(*) AS `neue`
- FROM `wiki_pages`
- WHERE `wiki_pages`.`page_id` IN (:page_ids)
- AND `wiki_pages`.`chdate` > :threshold
- AND `wiki_pages`.`user_id` != :user_id
- ");
- $statement->execute([
- 'page_ids' => $wiki_page_ids,
- 'threshold' => $visit_date,
- 'user_id' => $user_id,
- ]);
- $new_pages = $statement->fetch(PDO::FETCH_COLUMN, 0);
-
- $nav = new Navigation(_('Wiki'));
- if ($new_pages > 0) {
- $nav->setURL('dispatch.php/course/wiki/newpages');
- $nav->setImage(Icon::create('wiki', Icon::ROLE_ATTENTION, [
- 'title' => sprintf(
- ngettext(
- '%d Wiki-Seite',
- '%d Wiki-Seiten',
- count($wiki_page_ids)
- ),
- count($wiki_page_ids)
- )
- . ', '
- . sprintf(
- ngettext(
- '%d Änderung',
- '%d Änderungen',
- $new_pages
- ),
- $new_pages
- )
- ]));
- $nav->setBadgeNumber($new_pages);
- } else {
- $nav->setURL('dispatch.php/course/wiki/page');
- $nav->setImage(Icon::create('wiki', Icon::ROLE_CLICKABLE, [
- 'title' => sprintf(
- ngettext(
- '%d Wiki-Seite',
- '%d Wiki-Seiten',
- count($wiki_page_ids)
- ),
- count($wiki_page_ids)
- )
- ]));
- }
- return $nav;
- }
-
- /**
- * {@inheritdoc}
- */
- public function getTabNavigation($range_id)
- {
- if (!Config::get()->WIKI_ENABLE) {
- return null;
- }
-
- $navigation = new Navigation(_('Wiki'));
- $navigation->setImage(Icon::create('wiki', Icon::ROLE_INFO_ALT));
- $navigation->setActiveImage(Icon::create('wiki', Icon::ROLE_INFO));
-
- $navigation->addSubNavigation('start', new Navigation(_('Wiki-Startseite'), 'dispatch.php/course/wiki/page'));
- if (WikiPage::countBySQL('`range_id` = ?', [$range_id]) > 0) {
- $navigation->addSubNavigation('listnew', new Navigation(_('Neue Seiten'), 'dispatch.php/course/wiki/newpages'));
- $navigation->addSubNavigation('allpages', new Navigation(_('Alle Seiten'), 'dispatch.php/course/wiki/allpages'));
- }
- return ['wiki' => $navigation];
- }
-
- /**
- * {@inheritdoc}
- */
- public function getMetadata()
- {
- return [
- 'summary' => _('Gemeinsames Erstellen und Bearbeiten von Texten'),
- 'description' => _('Im Wiki können '.
- 'verschiedene Autor/-innen gemeinsam Texte, Konzepte und andere '.
- 'schriftliche Arbeiten erstellen und gestalten, dies '.
- 'allerdings nicht gleichzeitig. Texte können individuell '.
- 'bearbeitet und die Änderungen gespeichert werden. Das '.
- 'Besondere im Wiki ist, dass Studierende und Lehrende '.
- 'annähernd die gleichen Rechte (schreiben, lesen, ändern, '.
- 'löschen) haben, was sich nicht einschränken lässt. Das '.
- 'System erstellt eine Versionshistorie, mit der Änderungen '.
- 'nachvollziehbar werden. Einzelne Versionen können zudem '.
- 'auch gelöscht werden (nur Lehrende). Ein Export als '.
- 'pdf-Datei ist integriert.'),
-
- 'displayname' => _('Wiki-Web'),
- 'keywords' => _('Individuelle Bearbeitung von Texten;
- Versionshistorie;
- Druckansicht und PDF-Export;
- Löschfunktion für die aktuellste Seiten-Version;
- Keine gleichzeitige Bearbeitung desselben Textes möglich, nur nacheinander'),
- 'descriptionshort' => _('Gemeinsames asynchrones Erstellen und Bearbeiten von Texten'),
- 'descriptionlong' => _('Im Wiki können verschiedene Autor/-innen gemeinsam Texte, '.
- 'Konzepte und andere schriftliche Arbeiten erstellen und gestalten. Dies '.
- 'allerdings nicht gleichzeitig. Texte können individuell bearbeitet und '.
- 'gespeichert werden. Das Besondere im Wiki ist, dass Studierende und Lehrende '.
- 'annähernd die gleichen Rechte (schreiben, lesen, ändern, löschen) haben, was '.
- 'gegenseitiges Vertrauen voraussetzt. Das System erstellt eine Versionshistorie, '.
- 'mit der Änderungen nachvollziehbar werden. Einzelne Versionen können zudem auch '.
- 'gelöscht werden (nur Lehrende). Eine Druckansicht und eine Exportmöglichkeit als '.
- 'PDF-Datei ist integriert.'),
- 'category' => _('Kommunikation und Zusammenarbeit'),
- 'icon' => Icon::create('wiki', Icon::ROLE_INFO),
- 'icon_clickable' => Icon::create('wiki', Icon::ROLE_CLICKABLE),
- 'screenshots' => [
- 'path' => 'assets/images/plus/screenshots/Wiki-Web',
- 'pictures' => [
- 0 => [ 'source' => 'Gemeinsam_erstellte_Texte.jpg', 'title' => 'Gemeinsam erstellte Texte']
- ]
- ]
- ];
- }
-
- public function getInfoTemplate($course_id)
- {
- return null;
- }
-
-
- /**
- * Generates a page hierarchy for table of contents/breadcrumbs.
- * @return TOCItem
- */
- public static function getTOC($page, $first = true): TOCItem
- {
- $root = new TOCItem(
- ($page && ($page->isNew() || $page->name === 'WikiWikiWeb'))
- ? _('Wiki-Startseite')
- : $page->name
- );
- $root->setURL(URLHelper::getURL('dispatch.php/course/wiki/page/'.$page->id));
- if ($page->name == 'WikiWikiWeb' || $page->id == CourseConfig::get($page->range_id)->WIKI_STARTPAGE_ID) {
- $root->setIcon(Icon::create('wiki'));
- }
- $root->setActive($first);
-
- if ($page->parent) {
- $parent = self::getTOC($page->parent, false);
- $root->setParent($parent);
- }
-
- return $root;
- }
-
-}