diff options
| author | Michaela Brückner <brueckner@data-quest.de> | 2023-10-17 08:33:27 +0000 |
|---|---|---|
| committer | Michaela Brückner <brueckner@data-quest.de> | 2023-10-17 08:33:27 +0000 |
| commit | d2e68c552c4a7ee2127cf8a4906481991c69ec2b (patch) | |
| tree | 0e71ab25bb99db0a7061d4d3fa2aa05a0e55ee1f /lib | |
| parent | 7c3a4e24b811b4d6cc370503a7cf21cf513708b2 (diff) | |
Informationsseite Leichte Sprache bereitstellen, resolve Tic #3132
Merge request studip/studip!2125
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/classes/Siteinfo.php | 20 | ||||
| -rw-r--r-- | lib/navigation/FooterNavigation.php | 41 |
2 files changed, 50 insertions, 11 deletions
diff --git a/lib/classes/Siteinfo.php b/lib/classes/Siteinfo.php index 0afa575..73e811f 100644 --- a/lib/classes/Siteinfo.php +++ b/lib/classes/Siteinfo.php @@ -49,6 +49,16 @@ class Siteinfo { } } + public function get_detail_draft_status($id) { + $sql = "SELECT draft_status + FROM siteinfo_details + WHERE detail_id = :id"; + $statement = DBManager::get()->prepare($sql); + $statement->bindValue(':id', $id, PDO::PARAM_INT); + $statement->execute(); + return $statement->fetchColumn(); + } + function get_detail_name($id) { $sql = "SELECT name FROM siteinfo_details @@ -66,7 +76,7 @@ class Siteinfo { } function get_all_details() { - $sql = "SELECT detail_id, rubric_id, name + $sql = "SELECT detail_id, rubric_id, name, draft_status FROM siteinfo_details ORDER BY position, detail_id ASC"; $result = $this->db->query($sql); @@ -137,25 +147,27 @@ class Siteinfo { switch ($type) { case 'update_detail': $query = "UPDATE siteinfo_details - SET rubric_id = :rubric_id, name = :name, content = :content + SET rubric_id = :rubric_id, name = :name, content = :content, draft_status = :draft_status WHERE detail_id = :detail_id"; $statement = DBManager::get()->prepare($query); $statement->bindValue(':rubric_id', $input['rubric_id'], PDO::PARAM_INT); $statement->bindValue(':name', $input['detail_name']); $statement->bindValue(':content', $input['content']); $statement->bindValue(':detail_id', $input['detail_id'], PDO::PARAM_INT); + $statement->bindValue(':draft_status', $input['draft_status']); $statement->execute(); $rubric = $input['rubric_id']; $detail = $input['detail_id']; break; case 'insert_detail': - $query = "INSERT INTO siteinfo_details (rubric_id, name, content) - VALUES (:rubric_id, :name, :content)"; + $query = "INSERT INTO siteinfo_details (rubric_id, name, content, draft_status) + VALUES (:rubric_id, :name, :content, :draft_status)"; $statement = DBManager::get()->prepare($query); $statement->bindValue(':rubric_id', $input['rubric_id'], PDO::PARAM_INT); $statement->bindValue(':name', $input['detail_name']); $statement->bindValue(':content', $input['content']); + $statement->bindValue(':draft_status', $input['draft_status']); $statement->execute(); $rubric = $input['rubric_id']; diff --git a/lib/navigation/FooterNavigation.php b/lib/navigation/FooterNavigation.php index 800da37..b264c77 100644 --- a/lib/navigation/FooterNavigation.php +++ b/lib/navigation/FooterNavigation.php @@ -40,17 +40,19 @@ class FooterNavigation extends Navigation // Datenschutzerklärung - //Check if the privacy url is one of the Stud.IP pages: $privacy_url = Config::get()->PRIVACY_URL; - if (is_internal_url($privacy_url)) { - //It is a Stud.IP page. Add the cancel_login URL parameter. - $privacy_url = URLHelper::getURL($privacy_url, ['cancel_login' => '1']); + if ($this->checkSiteinfoURL($privacy_url)) { + $this->addSubNavigation( + 'privacy', + new Navigation( + _('Datenschutz'), + URLHelper::getURL($privacy_url, ['cancel_login' => 1], true) + ) + ); } - $this->addSubNavigation('privacy', new Navigation(_('Datenschutz'), $privacy_url)); - $a11yurl = Config::get()->ACCESSIBILITY_DISCLAIMER_URL; - if ($a11yurl) { + if ($this->checkSiteinfoURL($a11yurl)) { $this->addSubNavigation( 'a11ydisclaimer', new Navigation( @@ -70,5 +72,30 @@ class FooterNavigation extends Navigation ) ) ); + + $easy_read_url = Config::get()->EASY_READ_URL; + if ($this->checkSiteinfoURL($easy_read_url)) { + $this->addSubNavigation( + 'easy_read', + new Navigation( + _('Leichte Sprache'), + URLHelper::getURL($easy_read_url, ['cancel_login' => 1], true) + ) + ); + } + } + + private function checkSiteinfoURL($url) + { + if (str_starts_with($url, 'dispatch.php/siteinfo')) { + $url_parts = explode('/', $url); + $detail_id = $url_parts[4]; + $si = new Siteinfo(); + $isdraft = $si->get_detail_draft_status($detail_id); + if ($isdraft) { + return ''; + } + } + return $url; } } |
