aboutsummaryrefslogtreecommitdiff
path: root/lib/admissionrules/termsadmission/TermsAdmission.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/admissionrules/termsadmission/TermsAdmission.class.php')
-rw-r--r--lib/admissionrules/termsadmission/TermsAdmission.class.php171
1 files changed, 0 insertions, 171 deletions
diff --git a/lib/admissionrules/termsadmission/TermsAdmission.class.php b/lib/admissionrules/termsadmission/TermsAdmission.class.php
deleted file mode 100644
index 112a12e..0000000
--- a/lib/admissionrules/termsadmission/TermsAdmission.class.php
+++ /dev/null
@@ -1,171 +0,0 @@
-<?php
-/**
- * TermsAdmission.class.php
- *
- * Represents a rule for course access with conditions of admission to be accepted.
- *
- * 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.
- *
- * @author Niklas Dettmer <ndettmer@uos.de>
- * @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
- * @category Stud.IP
- */
-
-require_once 'lib/classes/admission/AdmissionRule.class.php';
-
-class TermsAdmission extends AdmissionRule
-{
- // Terms of admission
- public $terms;
-
- /**
- * Standard constructor.
- *
- * @param String ruleId
- */
- public function __construct($ruleId = '', $courseSetId = '')
- {
- parent::__construct($ruleId, $courseSetId);
-
- if ($ruleId) {
- $this->load();
- } else {
- $this->id = $this->generateId('termsadmissions');
- }
- }
-
- /**
- * Deletes the admission rule and all associated data.
- */
- public function delete()
- {
- parent::delete();
-
- $stmt = DBManager::get()->prepare('DELETE FROM termsadmissions WHERE rule_id = ?');
- $stmt->execute([$this->getId()]);
- }
-
- /**
- * Gets some text that describes what this AdmissionRule (or respective
- * subclass) does.
- */
- public static function getDescription()
- {
- return _('Mit dieser Anmelderegel können Sie einen Kurs mit spezifischen Teilnahmebedingungen realisieren. '
- . 'Die Anmeldung ist erst möglich, nachdem diese akzeptiert wurden.');
- }
-
- /**
- * Shows an input form
- *
- * @return String A template-based input form.
- * @throws Flexi_TemplateNotFoundException
- */
- public function getInput()
- {
- $factory = new Flexi_TemplateFactory(__DIR__ . '/templates');
- $template = $factory->open('input');
- $template->rule = $this;
-
- return MessageBox::info($template->render())->hideClose(true);
- }
-
- /**
- * Return this rule's name.
- */
- public static function getName() {
- return _('Kurs mit Teilnahmebedingungen');
- }
-
- /**
- * Gets the template that provides a configuration GUI for this rule.
- *
- * @return String
- * @throws Flexi_TemplateNotFoundException
- */
- public function getTemplate()
- {
- $factory = new Flexi_TemplateFactory(__DIR__ . '/templates');
- $template = $factory->open('configure');
- $template->rule = $this;
-
- return $template->render();
- }
-
- /**
- * Does the current rule allow the given user to register as participant
- * in the given course?
- *
- * @param String userId
- * @param String courseId
- * @return Array
- */
- public function ruleApplies($userId, $courseId)
- {
- $errors = [];
-
- // check if the user has accepted the terms
- if (Request::int('terms_accepted')) {
- $_SESSION['terms_accepted_' . $this->getId()] = true;
- }
- if (!$_SESSION['terms_accepted_' . $this->getId()]) {
- $errors[] = _('Um sich anzumelden, müssen Sie die Teilnahmebedingungen akzeptieren.');
- }
-
- return $errors;
- }
-
- /**
- * Uses the given data to fill the object values. This can be used
- * as a generic function for storing data if the concrete rule type
- * isn't known in advance.
- *
- * @param Array $data
- * @return AdmissionRule This object.
- */
- public function setAllData($data)
- {
- parent::setAllData($data);
- $this->terms = trim($data['terms']);
- return $this;
- }
-
- /**
- * Internal helper function for loading rule definition from database.
- */
- public function load()
- {
- $rule = DBManager::get()->fetchOne('SELECT * FROM termsadmissions WHERE rule_id = ?', [$this->getId()]);
- $this->terms = $rule['terms'];
- return $this;
- }
-
- /**
- * Store rule definition to database.
- */
- public function store()
- {
- // Store data.
- $stmt = DBManager::get()->prepare('INSERT INTO termsadmissions (rule_id, terms, mkdate, chdate) VALUES (?, ?, ?, ?)
- ON DUPLICATE KEY UPDATE terms = VALUES(terms), chdate = VALUES(chdate)');
- $stmt->execute([$this->id, $this->terms, time(), time()]);
- }
-
- /**
- * A textual description of the current rule.
- *
- * @return String
- * @throws Flexi_TemplateNotFoundException
- */
- public function toString()
- {
- $factory = new Flexi_TemplateFactory(__DIR__ . '/templates/');
- $template = $factory->open('info');
- $template->rule = $this;
-
- return $template->render();
- }
-}