Location: PHPKode > projects > Course-manager > courseman-0.1.1/kursangebotsverwaltung.php
<?php
  require('global-php.php');
  $verbindung = database_connection($lang_database_failure[$language]);
  $PHP_AUTH_USER = $_SERVER["PHP_AUTH_USER"];
  $PHP_AUTH_PW = $_SERVER["PHP_AUTH_PW"];
  $ergebnis = db_exec($verbindung,
			"SELECT * FROM staff_authorization,superuser "
  				. "WHERE superuser.account"
				. "=staff_authorization.id "
				. "AND "
				. login_query_clauses(
					$PHP_AUTH_USER,
					$PHP_AUTH_PW)
				. ";");
  if (pg_numrows($ergebnis) < 1) {
    header('WWW-Authenticate: Basic realm="Kursverwaltung"');
    header("HTTP/1.0 401 Unauthorized");
    echo $lang_authentication_failure[$language];
    exit;
  }
  require('local-criteria.php');
  $category = intval($_REQUEST['kategorie']);
  $course_period = option_value($course_period_option);
  $optionen_kategorien .= "<option value=\"-1\">"
				. $lang_all[$language] . " "
				. $plural[$application_specific_category]
				. "</option>";
  $option_index = 1;
  $kategorie_option[-1] = $option_index++;
  $ergebnis = db_exec($verbindung,
  			"SELECT DISTINCT category.id,category.name "
  				. "FROM category,$course_date_readable,"
				. "course "
  				. "WHERE category=category.id "
				. "AND course=course.id "
				. "AND course_period=$course_period "
  				. "ORDER BY name");
  for ($lt = 0; $lt < pg_numrows($ergebnis); $lt++) {
    $id = pg_result($ergebnis, $lt, 0);
    $name = pg_result($ergebnis, $lt, 1);
    $kategorie_option[$id] = $option_index++;
    $optionen_kategorien .= ("<option value=\"$id\">$name</option>
");
  }
  $category_index = $kategorie_option[$category];
  if ("" == $category_index) {
    $category_index = 0;
  }
  db_close($verbindung);
  function asynchronous_action($name) {
    return "function $name() {
    aktualisiere_rechte('$name.php');
  }
  ";
  }
  function asynchronous_variable($name) {
    return "request = request + '&$name='
			+ document.getElementById('$name').value;
      ";
  }
  function asynchronous_integer_variable($name) {
    return "request = request + '&$name='
			+ parseInt(document.getElementById('$name').value);
      ";
  }
  $javascript = '<script type="text/javascript" src="global-javascript.php">
</script>
<script type="text/javascript">
  var aktuelle_kategorie;
  function set_kategorie(menue) {'; /* passt die
  							Auswahlmöglichkeiten
							für die Verwaltung der
							Kurse an die durch event
							gewählte Kategorie an.*/
  $javascript .= '
    var target = menue;
    aktuelle_kategorie = target.value;
    lade_kurse_fuer(aktuelle_kategorie);
  }
  function kursattribut(kurs, attribut) {';
  		/* extrahiert das Attribut attribut aus dem Kurs-
				Knoten kurs */
  $javascript .= '
    var tag = kurs.getElementsByTagName(attribut)[0];
    var kind = tag && tag.firstChild;
    return kind ? kind.nodeValue : "";
  }
  function kursflag(kurs, flag) {';
  		/* prüft die Existenz des Flags flag im Kurs-
				Knoten kurs */
  $javascript .= '
    return kurs.getElementsByTagName(flag).length > 0;
  }
  function kursattributknoten(kurs, attribut) {';
	    	/* extrahiert das Attribut attribut aus dem Kurs-
				Knoten kurs als Textknoten für das
				Einfügen in die Arbeitsmaske */
  $javascript .= '
    return document.createTextNode(kursattribut(kurs, attribut));
  }
  function kursflagknoten(kurs, flag) {';
	    	/* extrahiert das Flag flag aus dem Kurs-
				Knoten kurs als Textknoten für das
				Einfügen in die Arbeitsmaske */
  $javascript .= '
    return document.createTextNode(kursflag(kurs, flag) ? "X" : "");
  }
  function spalte(inhalt) {';
  		/* erzeugt einen Spaltenknoten mit dem Inhalt inhalt
				für eine Tabelle */
  $javascript .= '
    var spalte = document.createElement("td");
    spalte.appendChild(inhalt);
    return spalte;
  }
  function attributspalte(kurs, attribut) {';
	    	/* extrahiert das Attribut attribut aus dem Kurs-
				Knoten kurs als Spaltenknoten für das
				Einfügen in die Arbeitsmaske */
  $javascript .= '
    return spalte(kursattributknoten(kurs, attribut));
  }
  function flagspalte(kurs, flag) {';
	    	/* extrahiert das Flag flag aus dem Kurs-
				Knoten kurs als Spaltenknoten für das
				Einfügen in die Arbeitsmaske */
  $javascript .= '
    return spalte(kursflagknoten(kurs, flag));
  }
  function ueberschriftenspalte(titel) {';
  		/* erzeugt einen Überschriftenspaltenknoten mit der
				Überschrift titel */
  $javascript .= '
    var spalte = document.createElement("th");
    spalte.appendChild(document.createTextNode(titel));
    return spalte;
  }
  function delete_course(event) {'; /* entfernt den durch event gewählten Kurs
  					aus der Liste */
  $javascript .= '
    if (!confirm("' . lang_confirm($language,
                                   ling_verb($language,
                                             $lang_delete[$language],
                                             $lang_course[$language])) . '")) {
      return;
    }
    if (window.event) {
      event = window.event;
    }
    var target = event.srcElement;
    if (!target) {
      target = event.target;
    }
    var kurs = target.name;
    var xmlHTTP = get_xmlHTTP();
    if (xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
          lade_kurse_fuer(aktuelle_kategorie);
        }
      }
      xmlHTTP.open("GET", "delete-course.php?course=" + kurs, true);
      xmlHTTP.send(null);
    }
  }
  function duplicate_course(event) {'; /* erstellt ein Duplikat des durch event
					gewählten Kurses in der Liste */
  $javascript .= '
    if (!confirm("' . lang_confirm($language,
                                   ling_verb($language,
                                             $lang_duplicate[$language],
                                             $lang_course[$language])) . '")) {
      return;
    }
    if (window.event) {
      event = window.event;
    }
    var target = event.srcElement;
    if (!target) {
      target = event.target;
    }
    var kurs = target.name;
    var xmlHTTP = get_xmlHTTP();
    if (xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
          lade_kurse_fuer(aktuelle_kategorie);
        }
      }
      xmlHTTP.open("GET", "duplicate-course.php?course=" + kurs, true);
      xmlHTTP.send(null);
    }
  }
  function disable_course(event) {'; /* entfernt den durch event gewählten Kurs
  					aus den anmeldbaren */
  $javascript .= '
    if (!confirm("' . lang_confirm($language,
                                   ling_verb($language,
                                             $lang_block[$language],
                                             $lang_course[$language])) . '")) {
      return;
    }
    if (window.event) {
      event = window.event;
    }
    var target = event.srcElement;
    if (!target) {
      target = event.target;
    }
    var kurs = target.name;
    var xmlHTTP = get_xmlHTTP();
    if (xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
          lade_kurse_fuer(aktuelle_kategorie);
        }
      }
      xmlHTTP.open("GET", "course-choosability.php?enabled=off&course="
      				+ kurs, true);
      xmlHTTP.send(null);
    }
  }
  function enable_course(event) {'; /* fuegt den durch event gewählten Kurs
  					zu den anmeldbaren hinzu */
  $javascript .= '
    if (!confirm("' . lang_confirm($language,
                                   ling_verb($language,
                                             $lang_unblock[$language],
                                             $lang_course[$language])) . '")) {
      return;
    }
    if (window.event) {
      event = window.event;
    }
    var target = event.srcElement;
    if (!target) {
      target = event.target;
    }
    var kurs = target.name;
    var xmlHTTP = get_xmlHTTP();
    if (xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
          lade_kurse_fuer(aktuelle_kategorie);
        }
      }
      xmlHTTP.open("GET", "course-choosability.php?enabled=on&course="
      				+ kurs, true);
      xmlHTTP.send(null);
    }
  }
  function move_up(event) {'; /* verschiebt den durch event gewählten Kurs
  					in der Liste nach oben */
  $javascript .= '
    if (window.event) {
      event = window.event;
    }
    var target = event.srcElement;
    if (!target) {
      target = event.target;
    }
    var kurs = target.name;
    var xmlHTTP = get_xmlHTTP();
    if (xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
          lade_kurse_fuer(aktuelle_kategorie);
        }
      }
      xmlHTTP.open("GET", "move-course.php?direction=up&course=" + kurs, true);
      xmlHTTP.send(null);
    }
  }
  function move_down(event) {'; /* verschiebt den durch event gewählten Kurs
  					in der Liste nach unten */
  $javascript .= '
    if (window.event) {
      event = window.event;
    }
    var target = event.srcElement;
    if (!target) {
      target = event.target;
    }
    var kurs = target.name;
    var xmlHTTP = get_xmlHTTP();
    if (xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
          lade_kurse_fuer(aktuelle_kategorie);
        }
      }
      xmlHTTP.open("GET",
                   "move-course.php?direction=down&course=" + kurs,
		   true);
      xmlHTTP.send(null);
    }
  }
  function lade_kurse_fuer(wahl) {
    var xmlHTTP = get_xmlHTTP();
    if ((wahl != "") && xmlHTTP) {
      xmlHTTP.onreadystatechange = function () {
        if (xmlHTTP.readyState == 4) {
	  var ort = document.getElementById("kursliste");
	  entferne_kindknoten(ort);
	  var tabelle = document.createElement("table");
	  tabelle.border = 1;
	  var kopf = document.createElement("thead");
	  var zeile = document.createElement("tr");
	  zeile.appendChild(ueberschriftenspalte("'
			. $lang_action[$language] . '"));
	  zeile.appendChild(ueberschriftenspalte("'
			. $lang_course[$language] . '"));
	  zeile.appendChild(ueberschriftenspalte("'
			. $lang_date[$language] . '"));
	  kopf.appendChild(zeile);
	  tabelle.appendChild(kopf);
	  var daten = document.createElement("tbody");'
		. set_attribute('daten','id','"kurszeilen"','
          ') . '
	  var kurse = xmlHTTP.responseXML.getElementsByTagName("course");
	  for (var i = 0; i < kurse.length; i++) {
	    var zeile = document.createElement("tr");
	    var aktionen = document.createElement("td");
	    var aktion = document.createElement("a");
	    aktion.appendChild(document.createTextNode("'
			. $lang_up[$language] . '"));'
		. js_event_listener('aktion', 'click', 'move_up', '
            ') . '
	    aktion.name = kursattribut(kurse[i], "id");
	    aktionen.appendChild(aktion);
	    aktionen.appendChild(document.createElement("br"));
	    aktion = document.createElement("a");
	    aktion.appendChild(document.createTextNode("'
			. $lang_down[$language] . '"));'
		. js_event_listener('aktion', 'click', 'move_down', '
            ') . '
	    aktion.name = kursattribut(kurse[i], "id");
	    aktionen.appendChild(aktion);
	    zeile.appendChild(aktionen);
	    zeile.appendChild(attributspalte(kurse[i], "topic"));
	    zeile.appendChild(attributspalte(kurse[i], "date"));
	    aktionen = document.createElement("td");
	    aktion = document.createElement("a");
	    aktion.appendChild(document.createTextNode("'
			. $lang_edit[$language] . '"));
	    aktion.href = "edit-course.php?category="
				+ aktuelle_kategorie + "&course="
				+ kursattribut(kurse[i], "id");
	    aktionen.appendChild(aktion);
	    aktionen.appendChild(document.createTextNode(" "));
	    aktion = document.createElement("a");
	    aktion.appendChild(document.createTextNode("'
			. $lang_delete[$language] . '"));'
		. js_event_listener('aktion', 'click', 'delete_course', '
            ') . '
	    aktion.name = kursattribut(kurse[i], "id");
	    aktionen.appendChild(aktion);
	    aktionen.appendChild(document.createTextNode(" "));
	    aktion = document.createElement("a");
	    aktion.appendChild(document.createTextNode("'
			. $lang_duplicate[$language] . '"));'
		. js_event_listener('aktion', 'click', 'duplicate_course', '
            ') . '
	    aktion.name = kursattribut(kurse[i], "id");
	    aktionen.appendChild(aktion);
	    aktionen.appendChild(document.createTextNode(" "));
	    var action_name;
	    var choosability_action;
	    if (kursflag(kurse[i], "disabled")) {
	      action_name = "'
			. $lang_unblock[$language] . '";
	      choosability_action = enable_course;
	    } else {
	      action_name = "'
			. $lang_block[$language] . '";
	      choosability_action = disable_course;
	    }
	    aktion = document.createElement("a");
	    aktion.appendChild(document.createTextNode(action_name));'
		. js_event_listener('aktion', 'click', 'choosability_action', '
            ') . '
	    aktion.name = kursattribut(kurse[i], "id");
	    aktionen.appendChild(aktion);
	    zeile.appendChild(aktionen);
	    daten.appendChild(zeile);
	  }
	  tabelle.appendChild(daten);
	  ort.appendChild(tabelle);
        }
      };
      xmlHTTP.open("GET", "vorhandene-kurse.php?kategorie=" + wahl, true);
      xmlHTTP.send(null);
    }
  }
  window.onload = function() {
    document.getElementById("kategorie").selectedIndex = '
		. $category_index . ';
    aktuelle_kategorie = ' . $category . ';
    lade_kurse_fuer(' . $category . ');
  }
</script>';
  require('template-kursangebotsverwaltung.php');
?>
Return current item: Course-manager