diff --git a/cis/private/lehre/ects/Beispiel_Change_Management.pdf b/cis/private/lehre/ects/Beispiel_Change_Management.pdf deleted file mode 100644 index 31520b52c..000000000 Binary files a/cis/private/lehre/ects/Beispiel_Change_Management.pdf and /dev/null differ diff --git a/cis/private/lehre/ects/Beispiel_Computerarchitektur.pdf b/cis/private/lehre/ects/Beispiel_Computerarchitektur.pdf deleted file mode 100644 index 291500516..000000000 Binary files a/cis/private/lehre/ects/Beispiel_Computerarchitektur.pdf and /dev/null differ diff --git a/cis/private/lehre/ects/Beispiel_ITProjektarbeit_at.pdf b/cis/private/lehre/ects/Beispiel_ITProjektarbeit_at.pdf deleted file mode 100644 index 2f817ea95..000000000 Binary files a/cis/private/lehre/ects/Beispiel_ITProjektarbeit_at.pdf and /dev/null differ diff --git a/cis/private/lehre/ects/Beispiel_ITProjektarbeit_en.pdf b/cis/private/lehre/ects/Beispiel_ITProjektarbeit_en.pdf deleted file mode 100644 index d1e7e8ef2..000000000 Binary files a/cis/private/lehre/ects/Beispiel_ITProjektarbeit_en.pdf and /dev/null differ diff --git a/cis/private/lehre/ects/Beispiel_Projektmarketing.pdf b/cis/private/lehre/ects/Beispiel_Projektmarketing.pdf deleted file mode 100644 index 106a60428..000000000 Binary files a/cis/private/lehre/ects/Beispiel_Projektmarketing.pdf and /dev/null differ diff --git a/cis/private/lehre/ects/beispiele.php b/cis/private/lehre/ects/beispiele.php deleted file mode 100644 index 12e9984a8..000000000 --- a/cis/private/lehre/ects/beispiele.php +++ /dev/null @@ -1,78 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p= new phrasen($sprache); - -?> - - - - - -<?php echo $p->t('courseInformation/ectsLvInfo');?> - - - -

t('courseInformation/lvInfoBeispiele');?>

- - - - - -
-   - - -
- - - - - - -
- -
- - - \ No newline at end of file diff --git a/cis/private/lehre/ects/freigabe.php b/cis/private/lehre/ects/freigabe.php deleted file mode 100644 index 3e0a242f3..000000000 --- a/cis/private/lehre/ects/freigabe.php +++ /dev/null @@ -1,363 +0,0 @@ -, - * Andreas Oesterreicher - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -/* - @author Andres Oesterreicher - @date 20.10.2005 - @brief Formular zum Freigeben der LV Informationen aus der tabelle tbl_lvinfo - - @edit 08-11-2006 Versionierung entfernt. Studiensemester = WS2007 - 03-01-2006 Anpassung an neue DB -*/ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lvinfo.class.php'); -require_once('../../../../include/phrasen.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); -$user = get_uid(); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -//if(!check_lektor($user)) -// die('
'.$p->t('global/keineBerechtigungFuerDieseSeite').'
'); - - /* WriteLog($qry,$uid) - * @brief Schreib die Querys im format: uid - datum - qry ins LogFile - * @param $qry Query anweisung - * $uid Username - * @return true wenn ok false wenn fehler beim oeffnen - */ - function WriteLog($qry,$uid) - { - if($fp=fopen(LOG_PATH.'lvinfo.log',"a")) - { - fwrite($fp,"\n"); - fwrite($fp,$uid." ". date("d.m.Y - H:i:s") . " ". $qry); - fclose($fp); - return true; - } - else - return false; - } - - - $lv=trim((isset($_REQUEST['lv']) ? $_REQUEST['lv']:'')); - - //Studiengang der Angezeigt werden soll - $stg=trim((isset($_REQUEST['stg']) ? $_REQUEST['stg']:'')); - //Semester das angezeigt werden soll - $sem=trim((isset($_REQUEST['sem']) ? $_REQUEST['sem']:'')); - - if (!$rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)) - die ($rechte->errormsg); - - if(isset($_GET["lv"])) //Id des DS der freigegeben/nicht freigegeben werden soll - $id=$_GET["lv"]; - - if(isset($_GET["del"])) //Wenn diese Variable gesetzt ist dann wird DS mit $idde und $iden geloescht - $del=$_GET["del"]; - - if(isset($_GET["changestat"])) //Wenn diese Variable gesetzt ist dann wird DS mit $id freigegeben/nicht freigegeben - $changestat=$_GET["changestat"]; - - if(isset($_POST["status"]) && $_POST["status"] =='changestg') - unset($sem); - - if(isset($del) && isset($lv)) - { - //Loeschen der beiden Datensaetze - - $lvinfo_obj = new lvinfo(); - $db->db_query('BEGIN'); - if($lvinfo_obj->delete($lv)) - { - if(!WriteLog($lvinfo_obj->lastqry,$user)) - { - echo "
".$p->t('courseInformation/fehlerBeimSchreibenDesLog')."
"; - } - $db->db_query('COMMIT'); - } - else - { - $db->db_query('ROLLBACK'); - echo "
".$p->t('global/fehleraufgetreten')."
"; - } - } - - if(isset($changestat) && isset($lv) && isset($_GET['lang'])) - { - //Setzt die Spalte genehmigt auf den entsprechenden Wert - //=Wenn Hackerl angeklickt wird - - $qry="SELECT genehmigt FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." AND sprache="; - if($_GET['lang']=='de') - $qry.= $db->db_add_param(ATTR_SPRACHE_DE); - else - $qry.= $db->db_add_param(ATTR_SPRACHE_EN); - - if($result=$db->db_query($qry)) - { - if($row=$db->db_fetch_object($result)) - { - $wert = $row->genehmigt=='t'?'false':'true'; - $qry="UPDATE campus.tbl_lvinfo SET genehmigt=$wert - WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." AND sprache="; - if($_GET['lang']=='de') - $qry .= $db->db_add_param(ATTR_SPRACHE_DE); - else - $qry .= $db->db_add_param(ATTR_SPRACHE_EN); - - if($db->db_query($qry)) - WriteLog($qry,$user); - else - echo $p->t('global/fehlerBeimLesenAusDatenbank'); - } - else - echo $p->t('global/fehlerBeimLesenAusDatenbank'); - } - else - echo $p->t('global/fehlerBeimLesenAusDatenbank'); - } - -?> - - - - - - - - - - - - - -<?php echo $p->t('courseInformation/ectsLvInfo');?> - - - -

t('courseInformation/lvInfoFreigabe');?>

- - - - - - -
-   - - -
- - - "; - echo ""; - echo ""; - //stg Drop Down - $qry = "SELECT distinct tbl_studiengang.studiengang_kz, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kurzbzlang FROM campus.tbl_lvinfo, lehre.tbl_lehrveranstaltung, public.tbl_studiengang - WHERE tbl_lvinfo.aktiv=true - AND tbl_lvinfo.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND tbl_lehrveranstaltung.studiengang_kz=tbl_studiengang.studiengang_kz - ORDER by kurzbzlang"; - if(!$result=$db->db_query($qry)) - die ('
'.$p->t('global/fehlerBeimLesenAusDatenbank').'
'); - - echo $p->t('global/studiengang')." "; - - if(!$vorhanden) //Wenn $stg einen Wert enthaelt der nicht in der Liste vorkommt wird der erste Eintrag der Liste ausgewaehlt - $stg=$firststg; - - //Semester Drop Down - $qry = "SELECT distinct semester FROM campus.tbl_lvinfo, lehre.tbl_lehrveranstaltung - WHERE tbl_lvinfo.aktiv=true - AND tbl_lvinfo.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($stg)." - ORDER by semester"; - if(!$result=$db->db_query($qry)) - die ("
".$p->t('global/fehleraufgetreten')."
"); - - echo " ".$p->t('global/semester')." "; - if(!$vorhanden) //Wenn $sem einen Wert enthaelt der nicht in der Liste vorkommt wird der erste Eintrag der Liste ausgewaehlt - $sem=$firstsem; - - //Anzeigen der Liste mit den LV - Informationen - ?> -

- - - - -
- - - - - - - - - - - - - - db_add_param($stg)." - AND semester=".$db->db_add_param($sem)." AND tbl_lvinfo.aktiv=true - AND tbl_lvinfo.sprache=".$db->db_add_param(ATTR_SPRACHE_DE)." - ORDER BY tbl_lehrveranstaltung.bezeichnung ASC"; - - if(!$result=$db->db_query($qry)) - die("
Fehler bei einer Datenbankabfrage
"); - - $i=-1; - while($row=$db->db_fetch_object($result)) - { - $i++; - $qry1="SELECT *, - tbl_lehrveranstaltung.bezeichnung as bezeichnung, - tbl_lvinfo.updatevon as updatevon - FROM - campus.tbl_lvinfo - JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) - WHERE - tbl_lvinfo.sprache=".$db->db_add_param(ATTR_SPRACHE_EN)." - AND lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); - - if(!$result1=$db->db_query($qry1)) - die("
Fehler bei einer Datenbankabfrage
"); - - if(!$row1=$db->db_fetch_object($result1)) - die("
Fehler bei einer Datenbankabfrage
"); - - $qry2="SELECT vorname, nachname FROM campus.vw_mitarbeiter WHERE uid=".$db->db_add_param($row->updatevon); - - $style=''; - if ($lv==$row->lehrveranstaltung_id) - $style='style="background-color: #AAA; border-top: 1px solid black; border-bottom: 1px solid black"'; - - $bearbeitet=$row->updatevon; - if($result2=$db->db_query($qry2)) - if($row2=$db->db_fetch_object($result2)) - $bearbeitet=$row2->vorname.' '.$row2->nachname; - echo "\n"; - echo ""."\n"; - echo ""."\n"; - echo ""."\n"; - //echo ""."\n"; - echo ""."\n"; - echo ""."\n"; - echo ""."\n"; - echo ""."\n"; - echo ""; - } - ?> - -
t('global/lehrveranstaltung');?>t('courseInformation/bearbeitetVon');?>t('courseInformation/updateAm');?>t('global/anzeigen');?>t('courseInformation/freigeben');?>
lehrveranstaltung_id' onClick='return ask();'>Delete$row->bezeichnung$row->studiensemester_kurzbz$bearbeitet".$row->amum."German "; - echo "EnglishDE lehrveranstaltung_id&lang=de\";' ".($row->genehmigt=='t'?'checked':'').">"."\n"; - echo "lehrveranstaltung_id&lang=en\";' ".($row1->genehmigt=='t'?'checked':'')."> EN
-
- - - diff --git a/cis/private/lehre/ects/index.php b/cis/private/lehre/ects/index.php deleted file mode 100644 index 3253aa074..000000000 --- a/cis/private/lehre/ects/index.php +++ /dev/null @@ -1,914 +0,0 @@ -, - * Andreas Oesterreicher - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ - -/* @author Andres Oesterreicher - @date 20.10.2005 - @brief Formular zum eintragen der ECTS Information auf Deutsch und Englisch - Die Informationen werden in der Tabelle tbl_lvinfo gespeichert. - - @edit 08-11-2006 Versionierung entfernt: Studiensemester=WS2007 - 02-01-2007 Umstellung auf die neue DB -*/ -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../config/global.config.inc.php'); -require_once('../../../../include/basis_db.class.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/lvinfo.class.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/phrasen.class.php'); -require_once('../../../../include/safehtml/safehtml.class.php'); -require_once('../../../../include/benutzerberechtigung.class.php'); -require_once('../../../../include/lehreinheitmitarbeiter.class.php'); -require_once('../../../../include/mail.class.php'); -require_once('../../../../include/benutzer.class.php'); - -$user = get_uid(); - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -$sprache1 = getSprache(); -$p=new phrasen($sprache1); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - - $output = ''; - $errormsg = ''; - $okmsg=''; - -$lv = ''; - -?> - - - - - -<?php echo $p->t('courseInformation/ectsInformation')?> - - - - -50) - return substr($string,0,47)."..."; - else - return $string; - } - - if(isset($_GET['lvid'])) - $lv=$_GET['lvid']; - - //Variablenuebernahme - if(isset($_POST['lv'])) //LehrveranstaltungsID - { - $lv = $_POST['lv']; - $lv_obj = new lehrveranstaltung(); - $lv_obj->load($lv); - $oe_kurzbz = $lv_obj->oe_kurzbz; - } - - if(isset($_GET['lvid'])) - { - $lv_obj = new lehrveranstaltung(); - $lv_obj->load($lv); - - if(!isset($stg)) - { - $stg = $lv_obj->studiengang_kz; - $oe_kurzbz = $lv_obj->oe_kurzbz; - } - if(!isset($sem)) - $sem = $lv_obj->semester; - } - else - { - $stg = ''; - } - - if(isset($_POST['stg'])) - { - $stg = $_POST['stg']; - if(!isset($oe_kurzbz)) - { - $oe = new studiengang(); - $oe->load($stg); - $oe_kurzbz = $oe->oe_kurzbz; - } - } - - if(!isset($sem) && isset($_POST['sem'])) - $sem = $_POST['sem']; - - - if(isset($_POST['changed'])) //Gibt an welches der Auswahlfelder geaendert wurde - $changed = $_POST['changed']; - - if(isset($_POST['status'])) - $status = $_POST['status']; - -// if(isset($_POST["freigeben"])) //Wird auf 'ja' gesetzt wenn gleich freigegebenwerden soll nach dem Speichern -// $freigeben = $_POST["freigeben"]; - - if(isset($_POST['sprache'])) //Sprache fuer dieses Lehrfach - $sprache = $_POST['sprache']; - - // Berechtigungen ueberpruefen - $lektor_der_lv = false; - $lektor = new lehreinheitmitarbeiter(); - $lektor_der_lv = $lektor->existsLV($lv, null, $user); - - // Bearbeiten nur moeglich, wenn Lektor der LV und bearbeiten fuer Lektoren aktiviert ist - // Oder Berechtigung zum Bearbeiten eingetragen ist - $berechtigt = true; - if(!( - (!defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && $lektor_der_lv) - || (defined('CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_LVINFO_LEKTOR_EDIT==true && $lektor_der_lv) - || $rechte->isBerechtigt('lehre/lvinfo',$oe_kurzbz) - || $rechte->isBerechtigt('lehre/lvinfo',$stg) - ) - ) - { - $berechtigt = false; - } - - //Variablen fuer das Formular - $lehrziele_de = (isset($_POST['lehrziele_de'])?$_POST['lehrziele_de']:''); - $lehrinhalte_de = (isset($_POST['lehrinhalte_de'])?$_POST['lehrinhalte_de']:''); - $voraussetzungen_de = (isset($_POST['voraussetzungen_de'])?$_POST['voraussetzungen_de']:''); - $unterlagen_de = (isset($_POST['unterlagen_de'])?$_POST['unterlagen_de']:''); - $pruefungsordnung_de = (isset($_POST['pruefungsordnung_de'])?$_POST['pruefungsordnung_de']:''); - $anmerkungen_de = (isset($_POST['anmerkungen_de'])?$_POST['anmerkungen_de']:''); - $kurzbeschreibung_de = (isset($_POST['kurzbeschreibung_de'])?$_POST['kurzbeschreibung_de']:''); - $anwesenheit_de = (isset($_POST['anwesenheit_de'])?$_POST['anwesenheit_de']:''); - $freig_de = (isset($_POST['freig_de'])?($_POST['freig_de']=='on' && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false):''); - $methodik_de = (isset($_POST['methodik_de'])?$_POST['methodik_de']:''); - //$titel_de = (isset($_POST['titel_de'])?$_POST['titel_de']:''); - - $parser = new SafeHTML(); - $lehrziele_de = $parser->parse($lehrziele_de); - $parser = new SafeHTML(); - $lehrinhalte_de = $parser->parse($lehrinhalte_de); - $parser = new SafeHTML(); - $voraussetzungen_de = $parser->parse($voraussetzungen_de); - $parser = new SafeHTML(); - $unterlagen_de = $parser->parse($unterlagen_de); - $parser = new SafeHTML(); - $pruefungsordnung_de = $parser->parse($pruefungsordnung_de); - $parser = new SafeHTML(); - $anmerkungen_de = $parser->parse($anmerkungen_de); - $parser = new SafeHTML(); - $kurzbeschreibung_de = $parser->parse($kurzbeschreibung_de); - $parser = new SafeHTML(); - $anwesenheit_de = $parser->parse($anwesenheit_de); - $parser = new SafeHTML(); - $freig_de = $parser->parse($freig_de); - $parser = new SafeHTML(); - $methodik_de = $parser->parse($methodik_de); - - $lehrziele_en = (isset($_POST['lehrziele_en'])?$_POST['lehrziele_en']:''); - $lehrinhalte_en = (isset($_POST['lehrinhalte_en'])?$_POST['lehrinhalte_en']:''); - $voraussetzungen_en = (isset($_POST['voraussetzungen_en'])?$_POST['voraussetzungen_en']:''); - $unterlagen_en = (isset($_POST['unterlagen_en'])?$_POST['unterlagen_en']:''); - $pruefungsordnung_en = (isset($_POST['pruefungsordnung_en'])?$_POST['pruefungsordnung_en']:''); - $anmerkungen_en = (isset($_POST['anmerkungen_en'])?$_POST['anmerkungen_en']:''); - $kurzbeschreibung_en = (isset($_POST['kurzbeschreibung_en'])?$_POST['kurzbeschreibung_en']:''); - $anwesenheit_en = (isset($_POST['anwesenheit_en'])?$_POST['anwesenheit_en']:''); - $freig_en = (isset($_POST['freig_en'])?($_POST['freig_en']=='on' && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false):''); - $methodik_en = (isset($_POST['methodik_en'])?$_POST['methodik_en']:''); - //$titel_en = (isset($_POST['titel_en'])?$_POST['titel_en']:''); - - $parser = new SafeHTML(); - $lehrziele_en = $parser->parse($lehrziele_en); - $parser = new SafeHTML(); - $lehrinhalte_en = $parser->parse($lehrinhalte_en); - $parser = new SafeHTML(); - $voraussetzungen_en = $parser->parse($voraussetzungen_en); - $parser = new SafeHTML(); - $unterlagen_en = $parser->parse($unterlagen_en); - $parser = new SafeHTML(); - $pruefungsordnung_en = $parser->parse($pruefungsordnung_en); - $parser = new SafeHTML(); - $anmerkungen_en = $parser->parse($anmerkungen_en); - $parser = new SafeHTML(); - $kurzbeschreibung_en = $parser->parse($kurzbeschreibung_en); - $parser = new SafeHTML(); - $anwesenheit_en = $parser->parse($anwesenheit_en); - $parser = new SafeHTML(); - $freig_en = $parser->parse($freig_en); - $parser = new SafeHTML(); - $methodik_en = $parser->parse($methodik_en); - - /* WriteLog($qry,$uid) - * @brief Schreib die Querys im format: uid - datum - qry ins LogFile - * @param $qry Query anweisung - * $uid Username - * @return true wenn ok false wenn fehler beim oeffnen - */ - function WriteLog($qry,$uid) - { - - if($fp=fopen(LOG_PATH.'lvinfo.log',"a")) - { - fwrite($fp,"\n"); - fwrite($fp,$uid." ". date("d.m.Y - H:i:s") . " ". $qry); - fclose($fp); - return true; - } - else - return false; - } - - if(isset($status)) - { - - if($status=='save') // Beim druecken auf "Speichern" - { - if ($berechtigt==false) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - //Speichert die aenderungen in der Datenbank (de und en) - $lv_obj_sav= new lvinfo(); - $save_error=false; - $save_log_error=false; - //Deutsch - $lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "
", $lehrziele_de); - $lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "
", $lehrinhalte_de); - $lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "
", $voraussetzungen_de); - $lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "
", $unterlagen_de); - $lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "
", $pruefungsordnung_de); - $lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "
", $anmerkungen_de); - $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_de); - $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_de); - - $lv_obj_sav->genehmigt = ($freig_de==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false); - $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); - $lv_obj_sav->updatevon=$user; - $lv_obj_sav->aktiv=true; - $lv_obj_sav->sprache=ATTR_SPRACHE_DE; - $lv_obj_sav->lehrveranstaltung_id=$lv; - $lv_obj_sav->methodik = mb_eregi_replace("\r\n", "
", $methodik_de); - //$lv_obj_sav->titel = mb_eregi_replace("\r\n", "
", $titel_de); - - $lv_obj1 = new lvinfo(); - $vorhanden=$lv_obj1->exists($lv, ATTR_SPRACHE_DE); - - if(!$vorhanden) - $lv_obj_sav->new=true; - else - $lv_obj_sav->new=false; - - if(!$lv_obj_sav->save()) - $save_error=true; - else - if(!WriteLog($lv_obj_sav->lastqry,$user)) - $save_log_error=true; - - //Englisch - $lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "
", $lehrziele_en); - $lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "
", $lehrinhalte_en); - $lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "
", $voraussetzungen_en); - $lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "
", $unterlagen_en); - $lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "
", $pruefungsordnung_en); - $lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "
", $anmerkungen_en); - $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_en); - $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_en); - $lv_obj_sav->genehmigt = ($freig_en==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false); - $lv_obj_sav->aktiv=true; - $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); - $lv_obj_sav->updatevon=$user; - $lv_obj_sav->sprache=ATTR_SPRACHE_EN; - $lv_obj_sav->lehrveranstaltung_id=$lv; - $lv_obj_sav->methodik = mb_eregi_replace("\r\n", "
", $methodik_en); - //$lv_obj_sav->titel = mb_eregi_replace("\r\n", "
", $titel_en); - - $lv_obj1 = new lvinfo(); - $vorhanden = $lv_obj1->exists($lv, ATTR_SPRACHE_EN); - - if(!$vorhanden) - $lv_obj_sav->new=true; - else - $lv_obj_sav->new=false; - - if(!$lv_obj_sav->save()) - $save_error=true; - else - if(!WriteLog($lv_obj_sav->lastqry,$user)) - $save_log_error=true; - - if($save_error) - $errormsg.= $p->t('courseInformation/achtungFehlerBeimSpeichern'); - else - $okmsg.= $p->t('global/erfolgreichgespeichert'); - - if($save_log_error) - $errormsg.= $p->t('courseInformation/fehlerLogFile'); - } - if($status=='freigeben') // Beim druecken auf "Zur Freigabe abschicken" - { - if ($berechtigt==false) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - - //Speichert die aenderungen in der Datenbank (de und en) - $lv_obj_sav= new lvinfo(); - $save_error=false; - $save_log_error=false; - //Deutsch - $lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "
", $lehrziele_de); - $lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "
", $lehrinhalte_de); - $lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "
", $voraussetzungen_de); - $lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "
", $unterlagen_de); - $lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "
", $pruefungsordnung_de); - $lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "
", $anmerkungen_de); - $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_de); - $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_de); - - $lv_obj_sav->genehmigt = ($freig_de==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false); - $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); - $lv_obj_sav->updatevon=$user; - $lv_obj_sav->aktiv=true; - $lv_obj_sav->sprache=ATTR_SPRACHE_DE; - $lv_obj_sav->lehrveranstaltung_id=$lv; - $lv_obj_sav->methodik = mb_eregi_replace("\r\n", "
", $methodik_de); - //$lv_obj_sav->titel = mb_eregi_replace("\r\n", "
", $titel_de); - - $lv_obj1 = new lvinfo(); - $vorhanden=$lv_obj1->exists($lv, ATTR_SPRACHE_DE); - - if(!$vorhanden) - $lv_obj_sav->new=true; - else - $lv_obj_sav->new=false; - - if(!$lv_obj_sav->save()) - $save_error=true; - else - if(!WriteLog($lv_obj_sav->lastqry,$user)) - $save_log_error=true; - - //Englisch - $lv_obj_sav->lehrziele=mb_eregi_replace("\r\n", "
", $lehrziele_en); - $lv_obj_sav->lehrinhalte=mb_eregi_replace("\r\n", "
", $lehrinhalte_en); - $lv_obj_sav->voraussetzungen=mb_eregi_replace("\r\n", "
", $voraussetzungen_en); - $lv_obj_sav->unterlagen=mb_eregi_replace("\r\n", "
", $unterlagen_en); - $lv_obj_sav->pruefungsordnung=mb_eregi_replace("\r\n", "
", $pruefungsordnung_en); - $lv_obj_sav->anmerkungen=mb_eregi_replace("\r\n", "
", $anmerkungen_en); - $lv_obj_sav->kurzbeschreibung=mb_eregi_replace("\r\n", "
", $kurzbeschreibung_en); - $lv_obj_sav->anwesenheit=mb_eregi_replace("\r\n", "
", $anwesenheit_en); - $lv_obj_sav->genehmigt = ($freig_en==true && ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg))?true:false); - $lv_obj_sav->aktiv=true; - $lv_obj_sav->updateamum=date('Y-m-d H:i:s'); - $lv_obj_sav->updatevon=$user; - $lv_obj_sav->sprache=ATTR_SPRACHE_EN; - $lv_obj_sav->lehrveranstaltung_id=$lv; - $lv_obj_sav->methodik = mb_eregi_replace("\r\n", "
", $methodik_en); - //$lv_obj_sav->titel = mb_eregi_replace("\r\n", "
", $titel_en); - - $lv_obj1 = new lvinfo(); - $vorhanden = $lv_obj1->exists($lv, ATTR_SPRACHE_EN); - - if(!$vorhanden) - $lv_obj_sav->new=true; - else - $lv_obj_sav->new=false; - - if(!$lv_obj_sav->save()) - $save_error=true; - else - if(!WriteLog($lv_obj_sav->lastqry,$user)) - $save_log_error=true; - - if($save_error) - $errormsg.= $p->t('courseInformation/achtungFehlerBeimSpeichern'); - else - $okmsg.= $p->t('global/erfolgreichgespeichert'); - - if($save_log_error) - $errormsg.= $p->t('courseInformation/fehlerLogFile'); - - //Mail an Studiengangsleiter - $studiengangsleiter = new studiengang(); - $stgleiter = $studiengangsleiter->getLeitung($stg); - - if($stgleiter) - { - $to=''; - foreach($stgleiter as $leiter) - { - if($to!='') - { - $to.=', '.$leiter.'@'.DOMAIN; - } - else - { - $to.=$leiter.'@'.DOMAIN; - } - } - - $benutzer = new benutzer(); - $benutzer->load($user); - - $bezeichnung = new lehrveranstaltung(); - $bezeichnung->load($lv); - - $message = $p->t('courseInformation/diesIstEineAutomatischeMail').".\n". - $p->t('courseInformation/lvinfoWurdeUeberarbeitet',array($benutzer->nachname.' '.$benutzer->vorname,$bezeichnung->bezeichnung)).":\n"; - - $message.="\n".$p->t('courseInformation/sieKoennenDieseUnterFolgenderAdresseFreigeben').":\n". - APP_ROOT."cis/private/lehre/ects/freigabe.php?stg=".$stg."&sem=".$sem."&lv=".$lv; - - $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('courseInformation/freigabeLvinfo'), $message); - if($mail->send()) - { - $okmsg.="
".$p->t('courseInformation/freigabemailWurdeVersandt',array($to)).""; - } - else - { - $okmsg.="
".$p->t('courseInformation/fehlerBeimSendenAufgetreten',array($to))."!"; - } - } - else - { - $okmsg.="
".$p->t('courseInformation/konnteKeinFreigabemailVersendetWerden').""; - } - - } - } - - $output .= "\n"; - $output .= ""; - $output .= ""; - - $output .= "
"; - $output .= "
"; - $stg_obj = new studiengang(); - - //Anzeigen des DropDown Menues mit Stg - if($stg_obj->getAll('typ, kurzbz')) - { - $output .= $p->t('global/studiengang')." "; - if(!$stgselected) - $stg=$firststg; - } - else - { - $errormsg .= "$stg_obj->errormsg"; - } - - - - //Anzeigen des DropDown Menues mit Semester - if(isset($changed) && $changed=='stg') - { - unset($sem); - unset($lvid); - } - - if($stg_obj->load($stg)) - { - $output .= $p->t('global/semester')." "; - - if(!$semselected) - $sem=$firstsem; - } - else - $errormsg .= "$stg_obj->errormsg"; - - //Anzeigen des DropDown Menues mit Lehrveranstaltungen - $lv_obj = new lehrveranstaltung(); - if($lv_obj->load_lva($stg,$sem,null,true,null,'orgform_kurzbz,semester, bezeichnung')) - { - $output .= $p->t('global/lehrveranstaltung')." "; - if(!$vorhanden) - $lv=$firstlv; - } - else - { - $errormsg .= "$lv_obj->errormsg"; - } - - $output .= ""; - $output .= ""; - $output .= "
"; - $output .= "
"; - //Menue ausgeben - $output .= "\n"; - $output .= ""; - $output .= "
"; - - $stg_obj->load($stg); - - //Kopfzeile hinausschreiben und $output ausgeben - echo "

 ".$p->t('courseInformation/lvInfoSemester',array($stg_obj->kuerzel, $sem))."

"; - echo $output; - - if ($berechtigt==false) - die($p->t('global/keineBerechtigungFuerDieseSeite')); - - if(isset($lv) && isset($stg) && isset($sem)) // Wenn oben alles Ausgewaehlt wurde - { - //Anzeige des Formulares - $stg_obj1 = new studiengang(); - $stg_obj1->load($stg); - - if(isset($errormsg) && $okmsg!='') - echo ''.$errormsg.'
'; - if(isset($okmsg) && $okmsg!='') - echo ''.$okmsg.'
'; - - $lv_obj_en = new lvinfo(); - $lv_obj_de = new lvinfo(); - - if($lv_obj_en->load($lv, ATTR_SPRACHE_EN)) - $lv_en=$lv_obj_en; - - if($lv_obj_de->load($lv, ATTR_SPRACHE_DE)) - $lv_de=$lv_obj_de; - - if(!isset($_POST['lehrziele_de']) && isset($lv_de)) - { - $lehrziele_de = $lv_de->lehrziele; - $lehrinhalte_de = $lv_de->lehrinhalte; - $voraussetzungen_de = $lv_de->voraussetzungen; - $unterlagen_de = $lv_de->unterlagen; - $pruefungsordnung_de = $lv_de->pruefungsordnung; - $anmerkungen_de = $lv_de->anmerkungen; - $kurzbeschreibung_de = $lv_de->kurzbeschreibung; - $anwesenheit_de = $lv_de->anwesenheit; - $freig_de = $lv_de->genehmigt; - $titel_de = $lv_de->titel; - $methodik_de = $lv_de->methodik; - - //Fuegt den Satz "Nach erfolgreichem Abschluss sind die Studierenden in der Lage, " vor den Lehrzielen ein, falls noch nicht vorhanden - if (substr_count($lehrziele_de, 'Nach erfolgreichem Abschluss sind die Studierenden in der Lage')==0) - $lehrziele_de = 'Nach erfolgreichem Abschluss sind die Studierenden in der Lage, '.$lehrziele_de; - } - - if(!isset($_POST['lehrziele_en']) && isset($lv_en)) - { - $lehrziele_en = $lv_en->lehrziele; - $lehrinhalte_en = $lv_en->lehrinhalte; - $voraussetzungen_en = $lv_en->voraussetzungen; - $unterlagen_en = $lv_en->unterlagen; - $pruefungsordnung_en = $lv_en->pruefungsordnung; - $anmerkungen_en = $lv_en->anmerkungen; - $kurzbeschreibung_en = $lv_en->kurzbeschreibung; - $anwesenheit_en = $lv_en->anwesenheit; - $freig_en = $lv_en->genehmigt; - $titel_en = $lv_en->titel; - $methodik_en = $lv_en->methodik; - - //Fuegt den Satz "Nach erfolgreichem Abschluss sind die Studierenden in der Lage, " vor den Lehrzielen ein, falls noch nicht vorhanden - if (substr_count($lehrziele_en, 'After passing this course successfully students are able to')==0) - $lehrziele_en = 'After passing this course successfully students are able to '.$lehrziele_en; - } - - $lv_obj = new lehrveranstaltung(); - $lv_obj->load($lv); - echo "
"; - - echo ""; - echo ""; - - $stsem_obj = new studiensemester(); - $stsem = $stsem_obj->getaktorNext(); - //Namen der Lehrenden Auslesen - $qry = "SELECT - * - FROM - campus.vw_mitarbeiter, lehre.tbl_lehreinheitmitarbeiter, lehre.tbl_lehreinheit - WHERE - lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." - AND tbl_lehreinheitmitarbeiter.lehreinheit_id=tbl_lehreinheit.lehreinheit_id - AND studiensemester_kurzbz=(SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." ORDER BY ende DESC LIMIT 1) - AND mitarbeiter_uid=uid"; - - echo ""; - - //FB Leiter auslesen - $qry = " SELECT - distinct titelpre, titelpost, vorname, nachname - FROM - public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) - WHERE - funktion_kurzbz='Leitung' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND - oe_kurzbz in (SELECT distinct lehrfach.oe_kurzbz - FROM - lehre.tbl_lehreinheit - JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) - WHERE - tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND - studiensemester_kurzbz=(SELECT studiensemester_kurzbz - FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." - ORDER BY ende DESC LIMIT 1 - ) - )"; - - echo ""; - - //FB Koordinator auslesen - //$qry = "SELECT distinct vorname, nachname FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE funktion_kurzbz='fbk' AND studiengang_kz='$stg' AND fachbereich_kurzbz in (SELECT fachbereich_kurzbz FROM lehre.tbl_lehrfach, lehre.tbl_lehreinheit WHERE lehrveranstaltung_id='$lv' AND tbl_lehrfach.lehrfach_id=tbl_lehreinheit.lehrfach_id AND tbl_lehreinheit.studiensemester_kurzbz=(SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) WHERE tbl_lehreinheit.lehrveranstaltung_id='$lv' ORDER BY ende DESC LIMIT 1))"; - $qry = "SELECT - distinct titelpre, titelpost, vorname, nachname, tbl_fachbereich.fachbereich_kurzbz - FROM - lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzerfunktion, campus.vw_mitarbeiter, public.tbl_fachbereich - WHERE - tbl_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND - tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz AND - tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz AND - tbl_benutzerfunktion.funktion_kurzbz='fbk' AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND - vw_mitarbeiter.uid=COALESCE(tbl_lehrveranstaltung.koordinator, tbl_benutzerfunktion.uid) AND - tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1)"; - - echo ""; - - //echo "
".$p->t('courseInformation/ectsCredits')."".($lv_obj->ects!=''?number_format($lv_obj->ects,1,'.',''):'')."
".$p->t('courseInformation/lehrendeLautLehrauftrag').""; - $helparray = array(); - if($result=$db->db_query($qry)) - { - while($row=$db->db_fetch_object($result)) - { - if(!in_array("$row->titelpre $row->vorname $row->nachname $row->titelpost",$helparray))//damit ein Name nicht doppelt vorkommt - $helparray[] = "$row->titelpre $row->vorname $row->nachname $row->titelpost"; - } - } - - foreach($helparray as $elem) - echo $elem."
"; - echo "
".$p->t('courseInformation/institutsleiter').""; - if($result=$db->db_query($qry)) - { - while($row=$db->db_fetch_object($result)) - { - echo "$row->titelpre $row->vorname $row->nachname $row->titelpost
"; - } - } - - echo "
".$p->t('courseInformation/institutskoordinator').""; - if($result=$db->db_query($qry)) - { - while($row=$db->db_fetch_object($result)) - { - echo "$row->titelpre $row->vorname $row->nachname $row->titelpost
"; - } - } - - echo "
"; - echo ""; - - - echo ""; - echo ""; - echo ""; - echo ""; - - echo ""; - //Sprache ausgeben - echo "".$p->t('courseInformation/unterrichtssprache')."$lv_obj->sprache"; - echo ""; - - //Anz. Incoming ausgeben - - if ($lv_obj->incoming > -1) - { - echo "".$p->t('courseInformation/incomingplaetze')."$lv_obj->incoming"; - } - else echo "".$p->t('courseInformation/incomingplaetze')."0"; - echo "".$p->t('courseInformation/beiFehlernInDenFixfeldern',array($stg_obj1->email)).""; - echo "

".$p->t('courseInformation/pflichtfelderWerdenAufDerExternenSeiteAngezeigt',array($stg_obj1->email))."."; - //echo "".$p->t('courseInformation/fallsSieAufzaehlungslistenVerwenden',array($stg_obj1->email)).""; --> Es sollten keine HTML-Tags gespeichert werden koennen. Hier muss eine andere Loesung gefunde werden. - echo "

"; - - //Eingabefelder anzeigen - echo ""; - - - echo ' - - - - '; - echo ' - - - '; - echo ' - - '; - - echo ' - - - - - - - - - - - - '; - echo ' - - - - - - - - - - - - - - - - - '; - echo ' - - - - - - - - - - - - - - - - - - - - - - - '; - if ($rechte->isBerechtigt('lehre/lvinfo_freigabe',$oe_kurzbz) || $rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)) - echo ' - - - - '; - - echo "

DEUTSCH

 

ENGLISH

'.($lv_de->genehmigt==false?''.$p->t('courseInformation/nochNichtFreigegeben').'':$p->t('courseInformation/freigegeben')).''.($lv_en->genehmigt==false?''.$p->t('courseInformation/nochNichtFreigegeben').'':$p->t('courseInformation/freigegeben')).'
 
'.$p->t('lvinfo/kurzbeschreibung').' (Pflichtfeld) '.$p->t('lvinfo/kurzbeschreibungEN').' (Required)
'.$p->t('lvinfo/methodik').' (Pflichtfeld) '.$p->t('lvinfo/methodikEN').' (Required)
'.$p->t('lvinfo/lernergebnisse').' (Pflichtfeld)'.$p->t('lvinfo/lernergebnisseEN').' (Required)
'.$p->t('lvinfo/lehrinhalte').' (Pflichtfeld)'.$p->t('lvinfo/lehrinhalteEN').' (Required)
'.$p->t('lvinfo/vorkenntnisse').' (Pflichtfeld) '.$p->t('lvinfo/vorkenntnisseEN').' (Required)
'.$p->t('lvinfo/literatur').' '.$p->t('lvinfo/literaturEN').'
'.$p->t('lvinfo/leistungsbeurteilung').''.$p->t('lvinfo/leistungsbeurteilungEN').'
'.$p->t('lvinfo/anwesenheit').''.$p->t('lvinfo/anwesenheitEN').'
'.$p->t('lvinfo/anmerkungen').''.$p->t('lvinfo/anmerkungenEN').'

'.$p->t('courseInformation/deutschFreigeben').'

'.$p->t('courseInformation/englischFreigeben').'

"; - echo "
"; - echo ""; - echo ""; - echo "

"; - if (!$berechtigt) - echo ""; - echo "
"; - echo "
"; - echo "











"; - if(isset($error) && $error!='') - echo $error; - } -?> - - - diff --git a/cis/private/lehre/ects/preview.php b/cis/private/lehre/ects/preview.php deleted file mode 100644 index ca2d696d8..000000000 --- a/cis/private/lehre/ects/preview.php +++ /dev/null @@ -1,746 +0,0 @@ -, - * Andreas Oesterreicher - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ -/* @date 27.10.2005 - @brief Zeigt die Daten aus der tbl_lvinfo an - - @edit 08-11-2006 Versionierung wurde entfernt. Alle eintraege werden jetzt im WS2007 - abgespeichert - 03-02-2006 Anpassung an die neue Datenbank -*/ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../config/global.config.inc.php'); -require_once('../../../../include/studiensemester.class.php'); -require_once('../../../../include/lehrveranstaltung.class.php'); -require_once('../../../../include/lvinfo.class.php'); -require_once('../../../../include/studiengang.class.php'); -require_once('../../../../include/safehtml/safehtml.class.php'); -require_once '../../../../include/phrasen.class.php'; -require_once '../../../../include/lehreinheit.class.php'; -require_once '../../../../include/lehrstunde.class.php'; -require_once '../../../../include/datum.class.php'; -require_once '../../../../include/stunde.class.php'; - -if (!$db = new basis_db()) - die('Fehler beim Herstellen der Datenbankverbindung'); - -$phrasen = new phrasen(); - -function cmp($a, $b) -{ - if($a->datum == $b->datum && $a->stunde == $b->stunde) - { - return 0; - } - if($a->datum == $b->datum && $a->stunde < $b->stunde) - { - return -1; - } - else if($a->datum == $b->datum && $a->stunde >= $b->stunde) - { - return 1; - } - return ($a->datum < $b->datum) ? -1 : 1; - -} - -function getLastStundeByDatum(Array $array, $filterDatum) -{ - $callback = function($item) use ($filterDatum) - { - return ($filterDatum == $item->datum); - }; - return array_filter($array,$callback); -} - -$titel_de = ''; -$methodik_de = ''; -$kurzbeschreibung_de = ''; -$anwesenheit_de = ''; -$lehrziele_de = ''; -$lehrinhalte_de = ''; -$voraussetzungen_de = ''; -$unterlagen_de = ''; -$pruefungsordnung_de = ''; -$anmerkungen_de = ''; - -$titel_en = ''; -$methodik_en = ''; -$kurzbeschreibung_en = ''; -$anwesenheit_en = ''; -$lehrziele_en = ''; -$lehrinhalte_en = ''; -$voraussetzungen_en = ''; -$unterlagen_en = ''; -$pruefungsordnung_en = ''; -$anmerkungen_en = ''; - -?> - - - -ECTS - European Course Credit Transfer Systems (ECTS) - - - - - - - - -
- -
-





- - - - - - -
- -Deutsche Version
"; - echo "
  • Englische Version

  • "; - } - - if(isset($_POST['methodik_de'])) //Alle Variablen werden per POST Methode uebergeben (zB bei Voransicht) - { - //$sprache = stripslashes($_POST['sprache']); - //$semstunden = stripslashes($_POST["semstunden"]); - $lehrveranstaltung_id = $_POST['lv']; - - // german content variables - //$titel_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['titel_de'])); - $methodik_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['methodik_de'])); - $kurzbeschreibung_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['kurzbeschreibung_de'])); - $anwesenheit_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['anwesenheit_de'])); - $lehrziele_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['lehrziele_de'])); - $lehrinhalte_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['lehrinhalte_de'])); - $voraussetzungen_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['voraussetzungen_de'])); - $unterlagen_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['unterlagen_de'])); - $pruefungsordnung_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['pruefungsordnung_de'])); - $anmerkungen_de = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['anmerkungen_de'])); - - $parser = new SafeHTML(); - $lehrziele_de = $parser->parse($lehrziele_de); - $parser = new SafeHTML(); - $lehrinhalte_de = $parser->parse($lehrinhalte_de); - $parser = new SafeHTML(); - $voraussetzungen_de = $parser->parse($voraussetzungen_de); - $parser = new SafeHTML(); - $unterlagen_de = $parser->parse($unterlagen_de); - $parser = new SafeHTML(); - $pruefungsordnung_de = $parser->parse($pruefungsordnung_de); - $parser = new SafeHTML(); - $anmerkungen_de = $parser->parse($anmerkungen_de); - $parser = new SafeHTML(); - $kurzbeschreibung_de = $parser->parse($kurzbeschreibung_de); - $parser = new SafeHTML(); - $anwesenheit_de = $parser->parse($anwesenheit_de); - $parser = new SafeHTML(); - $methodik_de = $parser->parse($methodik_de); - - // Englisch content variables - //$titel_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['titel_en'])); - $methodik_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['methodik_en'])); - $kurzbeschreibung_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['kurzbeschreibung_en'])); - $anwesenheit_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['anwesenheit_en'])); - $lehrziele_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['lehrziele_en'])); - $lehrinhalte_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['lehrinhalte_en'])); - $voraussetzungen_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['voraussetzungen_en'])); - $unterlagen_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['unterlagen_en'])); - $pruefungsordnung_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['pruefungsordnung_en'])); - $anmerkungen_en = mb_eregi_replace("\r\n","
    ",stripslashes($_POST['anmerkungen_en'])); - - $parser = new SafeHTML(); - $lehrziele_en = $parser->parse($lehrziele_en); - $parser = new SafeHTML(); - $lehrinhalte_en = $parser->parse($lehrinhalte_en); - $parser = new SafeHTML(); - $voraussetzungen_en = $parser->parse($voraussetzungen_en); - $parser = new SafeHTML(); - $unterlagen_en = $parser->parse($unterlagen_en); - $parser = new SafeHTML(); - $pruefungsordnung_en = $parser->parse($pruefungsordnung_en); - $parser = new SafeHTML(); - $anmerkungen_en = $parser->parse($anmerkungen_en); - $parser = new SafeHTML(); - $kurzbeschreibung_en = $parser->parse($kurzbeschreibung_en); - $parser = new SafeHTML(); - $anwesenheit_en = $parser->parse($anwesenheit_en); - $parser = new SafeHTML(); - $methodik_en = $parser->parse($methodik_en); - } - elseif(isset($_GET['lv'])) //LV Id wird uebergeben (zB bei Ansicht fuer alle von lesson.php) - { - $lehrveranstaltung_id=$_GET['lv']; - - $stsemobj = new studiensemester(); - $stsem = $stsemobj->getaktorNext(); - - $lvinfo_obj = new lvinfo(); - if($lvinfo_obj->load($lehrveranstaltung_id, ATTR_SPRACHE_DE)) - { - // german content variables - //$titel_de = $lvinfo_obj->titel; - $methodik_de = $lvinfo_obj->methodik; - $kurzbeschreibung_de = $lvinfo_obj->kurzbeschreibung; - $anwesenheit_de = $lvinfo_obj->anwesenheit; - $lehrziele_de = $lvinfo_obj->lehrziele; - $lehrinhalte_de = $lvinfo_obj->lehrinhalte; - $voraussetzungen_de = $lvinfo_obj->voraussetzungen; - $unterlagen_de = $lvinfo_obj->unterlagen; - $pruefungsordnung_de = $lvinfo_obj->pruefungsordnung; - $anmerkungen_de = $lvinfo_obj->anmerkungen; - } - - if($lvinfo_obj->load($lehrveranstaltung_id, ATTR_SPRACHE_EN)) - { - // Englisch content variables - //$titel_en = $lvinfo_obj->titel; - $methodik_en = $lvinfo_obj->methodik; - $kurzbeschreibung_en = $lvinfo_obj->kurzbeschreibung; - $anwesenheit_en = $lvinfo_obj->anwesenheit; - $lehrziele_en = $lvinfo_obj->lehrziele; - $lehrinhalte_en = $lvinfo_obj->lehrinhalte; - $voraussetzungen_en = $lvinfo_obj->voraussetzungen; - $unterlagen_en = $lvinfo_obj->unterlagen; - $pruefungsordnung_en = $lvinfo_obj->pruefungsordnung; - $anmerkungen_en = $lvinfo_obj->anmerkungen; - } - } - else - die('Fehler bei der Parameteruebergabe'); - - $stsemobj = new studiensemester(); - $stsem = $stsemobj->getaktorNext(); - - $lv_obj = new lehrveranstaltung(); - if(!$lv_obj->load($lehrveranstaltung_id)) - die($lv_obj->errormsg); - - $ects_points = $lv_obj->ects; - $stg = $lv_obj->studiengang_kz; - $sem = $lv_obj->semester; - $lang = $lv_obj->sprache; - $titel_de = $lv_obj->bezeichnung; - $titel_en = $lv_obj->bezeichnung_english; - $anz_incoming = $lv_obj->incoming; - - if (!isset($lv)) - $lv=0; - - - //Zugeteilte Fachbereiche auslesen - $qry = "SELECT distinct tbl_fachbereich.bezeichnung as bezeichnung, tbl_fachbereich.fachbereich_kurzbz as fachbereich_kurzbz - FROM public.tbl_fachbereich, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach - WHERE tbl_lehreinheit.studiensemester_kurzbz=( - SELECT studiensemester_kurzbz FROM lehre.tbl_lehreinheit JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." ORDER BY ende DESC LIMIT 1) - AND tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND - tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND - tbl_fachbereich.oe_kurzbz=lehrfach.oe_kurzbz"; - - if(!$result=$db->db_query($qry)) - die('Fehler beim Lesen aus der Datenbank'); - - $fachbereiche="'1'"; - $fachbereich['kurzbz']=array(); - $fachbereich['bezeichnung']=array(); - - while($row=$db->db_fetch_object($result)) - { - $fachbereiche .= ", ".$db->db_add_param($row->fachbereich_kurzbz); - $fachbereich['kurzbz'][]=$row->fachbereich_kurzbz; - $fachbereich['bezeichnung'][]=$row->bezeichnung; - } - - //Studiengangsbezeichnung auslesen - $stg_hlp_obj = new studiengang(); - $stg_hlp_obj->load($stg); - - $stg_kurzbz = $stg_hlp_obj->kuerzel; - $stg_kurzbzlang = $stg_hlp_obj->kurzbzlang; - - //Lehrform auslesen - $qry = "Select distinct lehrform_kurzbz FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=".$db->db_add_param($lv, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($stsem); - if(!$res = $db->db_query($qry)) - die('Fehler beim Lesen aus der Datenbank'); - //echo $fachbereiche; - while($row = $db->db_fetch_object($res)) - $lehrform_kurzbz[] = $row->lehrform_kurzbz; - //Fachbereichsleiter fuer alle FB ermitteln - $qry=" - SELECT - vorname, nachname, tbl_fachbereich.fachbereich_kurzbz - FROM - public.tbl_benutzerfunktion - JOIN public.tbl_fachbereich USING(oe_kurzbz) - JOIN campus.vw_mitarbeiter USING(uid) - WHERE - vw_mitarbeiter.aktiv AND - funktion_kurzbz='Leitung' AND tbl_fachbereich.fachbereich_kurzbz in($fachbereiche) AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now())"; - - if(!$res=$db->db_query($qry)) - die('Fehler '.$db->errormsg); - - $fachbereichsleiter=array(); - while($row=$db->db_fetch_object($res)) - $fachbereichsleiter[$row->fachbereich_kurzbz] = $row->vorname." ".$row->nachname; - - //Fachbereichskoordinatoren fuer alle FB ermitteln - //$qry="SELECT * FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE funktion_kurzbz='fbk' AND studiengang_kz='$stg' AND fachbereich_kurzbz in($fachbereiche)"; - $qry = "SELECT - distinct vorname, nachname, tbl_fachbereich.fachbereich_kurzbz - FROM - lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung as lehrfach, public.tbl_benutzerfunktion, campus.vw_mitarbeiter, public.tbl_fachbereich - WHERE - vw_mitarbeiter.aktiv AND - tbl_lehrveranstaltung.lehrveranstaltung_id='$lv' AND - tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND - tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id AND - lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz AND - tbl_fachbereich.fachbereich_kurzbz=tbl_benutzerfunktion.fachbereich_kurzbz AND - tbl_benutzerfunktion.funktion_kurzbz='fbk' AND - vw_mitarbeiter.uid=COALESCE(tbl_lehrveranstaltung.koordinator, tbl_benutzerfunktion.uid) AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) AND - tbl_lehrveranstaltung.studiengang_kz=(SELECT studiengang_kz FROM public.tbl_studiengang WHERE oe_kurzbz=tbl_benutzerfunktion.oe_kurzbz LIMIT 1) "; - - if(!$res=$db->db_query($qry)) - die('Fehler ! '.$db->errormsg); - - $fachbereichskoordinator=array(); - while($row=$db->db_fetch_object($res)) - { - $name = $row->vorname." ".$row->nachname; - - if(!isset($fachbereichskoordinator[$row->fachbereich_kurzbz]) || - !in_array($name, $fachbereichskoordinator[$row->fachbereich_kurzbz])) - { - $fachbereichskoordinator[$row->fachbereich_kurzbz][] = $name; - } - } - - //Namen der Lehrenden Auslesen - $qry = "SELECT distinct vorname, nachname FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter - WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." - AND studiensemester_kurzbz=(SELECT studiensemester_kurzbz FROM public.tbl_studiensemester JOIN lehre.tbl_lehreinheit USING(studiensemester_kurzbz) WHERE tbl_lehreinheit.lehrveranstaltung_id=".$db->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." ORDER BY ende DESC LIMIT 1) - AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id - AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=uid"; - - $lehrendearray = array(); - if($result=$db->db_query($qry)) - { - while($row=$db->db_fetch_object($result)) - $lehrendearray[] = "$row->vorname $row->nachname"; - } - - //Ausgabe der LV-Information - - //Deutsch Version - if(!(isset($language) && $language=='en')) - { - echo "

    - - - - - - "; - - if ($kurzbeschreibung_de) - { - echo ""; - echo ""; - } - - if ($lehrziele_de) - { - echo ""; - echo ""; - } - - if ($lehrinhalte_de) - { - echo ""; - echo ""; - } - - if ($voraussetzungen_de) - { - echo ""; - echo ""; - } - - if ($methodik_de) - { - echo ""; - echo ""; - } - - if ($pruefungsordnung_de) - { - echo ""; - echo ""; - } - - if ($unterlagen_de) - { - echo ""; - echo ""; - } - - if ($anwesenheit_de) - { - echo ""; - echo ""; - } - - if ($anmerkungen_de) - { - echo ""; - echo ""; - } - - echo "
    - -

    - ".stripslashes($titel_de)."

    - -

    "; - echo ''; - echo ""; - echo ""; - echo ''; - if(($anz=count($lehrendearray))>0) - { - echo "'; - } - - if(isset($lehrform_kurzbz) && count($lehrform_kurzbz)>0) - { - echo "'; - } - - if ($lang > -1) - echo ''; - - if ($ects_points) - echo ''; - - if ($anz_incoming > -1) - { - echo ''; - } - else echo ''; - - echo ''; - //Fachbereiche und Leiter/Koordinatoren anzeigen - if (count($fachbereich['bezeichnung'])>0) - { - echo ''; - } - echo "
    Studiengang:$stg_kurzbz
    Semester:$sem
      
    ".$phrasen->t('lehre/lehrbeauftragter').": "; - - foreach($lehrendearray as $elem) - { - $anz--; - echo " $elem"; - if($anz!=0) - echo ','; - } - echo '
    Lehrform: "; - foreach ($lehrform_kurzbz as $lehrform_kurz) - echo "$lehrform_kurz
    "; - echo '
    Sprache: '.stripslashes($lang).'
    ECTS: '.number_format(stripslashes($ects_points),1,'.','').'
    Incomingplätze: '.stripslashes($anz_incoming).'
    Incomingplätze: 0
      
    Institut: '; - //Fachbereiche durchlaufen - for($i=0;$i
    "; - echo "

    ".$phrasen->t('lvinfo/kurzbeschreibung')."

    ".stripslashes($kurzbeschreibung_de)."

    ".$phrasen->t('lvinfo/lernergebnisse')."

    ".stripslashes($lehrziele_de)."

    ".$phrasen->t('lvinfo/lehrinhalte')."

    ".stripslashes($lehrinhalte_de)."

    ".$phrasen->t('lvinfo/vorkenntnisse')."

    ".stripslashes($voraussetzungen_de)."

    ".$phrasen->t('lvinfo/methodik')."

    ".stripslashes($methodik_de)."

    ".$phrasen->t('lvinfo/leistungsbeurteilung')."

    ".stripslashes($pruefungsordnung_de)."

    ".$phrasen->t('lvinfo/literatur')."

    ".stripslashes($unterlagen_de)."

    ".$phrasen->t('lvinfo/anwesenheit')."

    ".stripslashes($anwesenheit_de)."

    ".$phrasen->t('lvinfo/anmerkungen')."

    ".stripslashes($anmerkungen_de)." 

    "; - } - - //Englische Version - if(!(isset($language) && $language=='de')) - { - echo "

    "; - echo " - - - - '; - - if ($kurzbeschreibung_en) - { - echo ""; - echo ""; - } - - if ($lehrziele_en) - { - echo ""; - echo ""; - } - - if ($lehrinhalte_en) - { - echo ""; - echo ""; - } - - if ($voraussetzungen_en) - { - echo ""; - echo ""; - } - - if ($methodik_en) - { - echo ""; - echo ""; - } - - if ($pruefungsordnung_en) - { - echo ""; - echo ""; - } - - if ($unterlagen_en) - { - echo ""; - echo ""; - } - - if ($anwesenheit_en) - { - echo ""; - echo ""; - } - - if ($anmerkungen_en) - { - echo ""; - echo ""; - } - } - - echo "
    -

    - ".stripslashes($titel_en)." -

    -

    "; - - echo ''; - echo ""; - echo ""; - echo ""; - - if(($anz=count($lehrendearray))>0) - { - echo ""; - } - - if(isset($lehrform_kurzbz) && count($lehrform_kurzbz)>0) - { - echo ""; - } - - if ($lang > -1) - echo ""; - - if ($ects_points) - echo ""; - - if ($anz_incoming > -1) - { - echo ''; - } - else echo ''; - - echo ""; - - //Fachbereiche und Leiter/Koordinatoren anzeigen - if (count($fachbereich['bezeichnung'])>0) - { - echo ''; - } - - echo '
    Degree programme:$stg_kurzbz
    Semester:$sem
      
    Lecturer:"; - - foreach($lehrendearray as $elem) - { - $anz--; - echo " $elem"; - if($anz!=0) - echo ","; - } - echo "
    Course methods: "; - foreach ($lehrform_kurzbz as $lehrform_kurz) - echo "$lehrform_kurz
    "; - echo "
    Language: ".stripslashes($lang)."
    ECTS Credits: ".number_format(stripslashes($ects_points),1,'.','')."
    Places Available for Incoming Students: '.stripslashes($anz_incoming).'
    Places Available for Incoming Students: 0
      
    Department: '; - //Fachbereiche durchlaufen - for($i=0;$i
    '; - echo '

    ".$phrasen->t('lvinfo/kurzbeschreibungEN')."

    ".stripslashes($kurzbeschreibung_en)."

    ".$phrasen->t('lvinfo/lernergebnisseEN')."

    ".stripslashes($lehrziele_en)."

    ".$phrasen->t('lvinfo/lehrinhalteEN')."

    ".stripslashes($lehrinhalte_en)."

    ".$phrasen->t('lvinfo/vorkenntnisseEN')."

    ".stripslashes($voraussetzungen_en)."

    ".$phrasen->t('lvinfo/methodikEN')."

    ".stripslashes($methodik_en)."

    ".$phrasen->t('lvinfo/leistungsbeurteilungEN')."

    ".stripslashes($pruefungsordnung_en)."

    ".$phrasen->t('lvinfo/literaturEN')."

    ".stripslashes($unterlagen_en)."

    ".$phrasen->t('lvinfo/anwesenheitEN')."

    ".stripslashes($anwesenheit_en)."

    ".$phrasen->t('lvinfo/anmerkungenEN')."

    ".stripslashes($anmerkungen_en)." 
    "; - - $lehreinheit = new lehreinheit(); - $studiensemester = new studiensemester(); - $lehreinheit->load_lehreinheiten($lv, $studiensemester->getaktorNext()); - - if (CIS_LVINFO_TERMINE_ANZEIGEN == true) - { - if(!empty($lehreinheit->lehreinheiten)) - { - echo "

    Termine

    "; - foreach($lehreinheit->lehreinheiten as $lehreinheit_temp) - { - $lehrstunde = new lehrstunde(); - $lehrstunde->load_lehrstunden_le($lehreinheit_temp->lehreinheit_id); - $i = 1; - echo ""; - } - echo "
      "; - - $result = $lehrstunde->lehrstunden; - $last = ""; - $bis = ""; - usort($result, "cmp"); - $datum = new datum(); - $std_von = new stunde(); - $std_bis = new stunde(); - foreach($result as $key=>$stunde) - { - if($last !== $stunde->datum) - { - $temp = array_values(getLastStundeByDatum($result, $stunde->datum)); - $size = count($temp); - if($size != 0) - { - $std_von->load($temp[0]->stunde); - $std_bis->load($temp[$size-1]->stunde); - echo "
    • ".$datum->formatDatum($temp[0]->datum,"d.m.Y")." von ".mb_substr($std_von->beginn,0,5)." bis ".mb_substr($std_bis->ende,0,5)."
    • "; - } - $i++; - } - elseif($last == "") - { - $temp = getLastStundeByDatum($result, $stunde->datum); - var_dump($temp); - } - else - { - $bis = $stunde->stunde; - } - - if($i % 5 === 0) - { - // echo "
      "; - // $i++; - } - $last = $stunde->datum; - } - echo "
    "; - } - } - - //Ein paar Zeilenumbrueche damit er beim Sprung zum Anker weit genug nach unten springt - echo "



















    "; - -?> -
     
    - diff --git a/cis/private/lehre/ects/terminologie.php b/cis/private/lehre/ects/terminologie.php deleted file mode 100644 index 68cf250c1..000000000 --- a/cis/private/lehre/ects/terminologie.php +++ /dev/null @@ -1,921 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ - -require_once('../../../../config/cis.config.inc.php'); -require_once('../../../../include/functions.inc.php'); -require_once('../../../../include/phrasen.class.php'); - -$sprache = getSprache(); -$p= new phrasen($sprache); - -?> - - - - - -<?php echo $p->t('courseInformation/terminologie');?> - - - -

    t('courseInformatoin/lvInfoTerminologie')?>

    - - - - - - -
    -   - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - t('courseInformation/terminologieDeutschEnglisch');?> -
    -
    - Deutsch - - Englisch -
    - Abschluss (einer Lehrveranstaltung) - - completion -
    - AnfängerIn - - beginner -
    - angerechnet - - recognized -
    - Anrechnung - - recognition -
    - Aufgaben - - tasks / responsibilities / assignment -
    - Bachelor-Studiengang - - bachelor's degree program -
    - Bachelor - - Bachelor -
    - Bachelor-Arbeiten - - bachelor's paper -
    - berufsbegleitend - - part-time study -
    - Berufspraktikum - - intership -
    - bestanden - - pass -
    - bestanden, mit gutem Erfolg - - pass with merit -
    - bestanden, mit ausgezeichnetem - Erfolg - - pass with distinction -
    - BetreuerIn - - supervisor -
    - Diplomarbeit - - master's thesis -
    - DI (FH) - - DI (FH) -
    - Diplom-Studiengang - - diploma degree program -
    - Erhalter - - operator -
    - Experte/in - - expert -
    - Fachbereich - - special field -
    - FachbereichskoordinatorIn - - special field coordinator -
    - FachbereichsleiterIn - - head of special field -
    - Fachhochschul-Beirat - - University of Applied Sciences Advisory Board (UAS Advisory Board) -
    - Fachhochschul-Kollegium - - University of Applied Sciences Council (UAS Council) -
    - Fachhochschul-KollegiumsleiterIn - - Head of University of Applied Sciences Council -
    - Fachhochschulrat - - FH Council -
    - Fachhochschulkonferenz - - Association of Universities of - Applied Sciences Austria -
    - Fernlehre - - distance learning -
    - Fernlehrelemente - - distance learning elements -
    - Fortgeschrittene/r - - advanced -
    - Gesamtnote, Gesamtbeurteilung - - final grade -
    - Grundlagen - - fundamentals -
    - hauptberuflich Lehrende/r - - full-time instructor -
    - Immanente Leistungsbeurteilung - - continuous assessment -
    - integrierte Lehrveranstaltung - - integrated course -
    - JahrgangssprecherIn - - class representative -
    - kommissionelle Prüfung - - panel exam -
    - Labor - - laboratory -
    - Lehrender - - instructor -
    - Lehrgang universitären - Charakters - - university - level course -
    - Lehrinhalte - - course contents -
    - Lehrkörper - - teaching staff -
    - Lehrmethode - - teaching method -
    - Lehrveranstaltung - - course -
    - Lehrziele - - course objectives -
    - Lernmethode - - study technique -
    - Magisterarbeit - - master's thesis -
    - Mag. (FH) - - Mag. (FH) -
    - Master-Studiengang - - master's degree program -
    - Matrikelnummer - - registration number -
    - Mündliche Prüfung - - oral examination -
    - nebenberuflich Lehrende/r - - part-time instructor -
    - Niveaustufe - - level -
    - Niveaustufen: - - levels -
    - Note - - grade -
    - Organisation der LV - - course organization -
    - Personenkennzeichen - - personal identification number -
    - Pflichtveranstaltung - - required course -
    - Präsentation - - presentation -
    - Programmverantwortlicher - - Program Director -
    - Projektarbeit - - project work -
    - Prüfung - - examination -
    - Prüfungsmodalitäten - - exam procedure -
    - Prüfungsordnung - - examination regulation -
    - Rektor - - rector -
    - Schriftliche Prüfung - - written examination -
    - Semester - - semester -
    - Seminar - - seminar -
    - Stellv. Studiengangsleiter - - Deputy Program Director -
    - AssistentIn - - Administrative Assistant -
    - ECTS-Leistungspunkte - - ECTS credits -
    - Semesterwochenstunden - - Semester periods per week (SP/W) -
    - Sommersemester - - summer semester / spring semester -
    - Spezialisten - - specialists -
    - Studiengang - - degree program -
    - StudiengangssprecherIn - - program representative -
    - StudiengangsleiterIn - - program director -
    - Studienjahr - - academic year -
    - Studienplan - - curriculum -
    - Studienplatz - - study place -
    - Studierendenvertretung - - student council -
    - Teilgebiet - - segment -
    - Test - - test -
    - Titel der Lehrveranstaltung - - course title -
    - Übung (einfache, mit Anleitung) - - exercise -
    - Übung (im Sinne einer LV) - - practice - session
    - Übung (im Sinne üben) - - practice -
    - Unterricht - - instruction -
    - Vollzeit - - full-time -
    - Voraussetzungen (für LVs) - - requirements -
    - Vorlesung - - lecture -
    - Vortragender - - lecturer -
    - Wintersemester - - autumn semester / winter semester -
    - Zeugnis - - certificate -
    - Unterrichtssprache - - Language of instruction -
    - Bewerbung - - application -
    - Zugangsvorraussetzungen - - admission requirements -
    - Matura - - Secondary School diploma -
    - Auslandssemester - - exchange semester -
    - Fachhochschule Technikum Wien - - University of Applied Sciences Technikum Wien (UAS Technikum Wien) -
    - Institut für - - department of -
    - Senat - - Senate -
    - - \ No newline at end of file diff --git a/include/safehtml/HTMLSax3.php b/include/safehtml/HTMLSax3.php deleted file mode 100644 index deaa8832f..000000000 --- a/include/safehtml/HTMLSax3.php +++ /dev/null @@ -1,687 +0,0 @@ - Original port from Python | -// | Authors: Harry Fuecks Port to PEAR + more | -// | Authors: Many @ Sitepointforums Advanced PHP Forums | -// +----------------------------------------------------------------------+ -// -// $Id: HTMLSax3.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $ -// -/** -* Main parser components -* @package XML_HTMLSax3 -* @version $Id: HTMLSax3.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $ -*/ -/** -* Required classes -*/ -if (!defined('XML_HTMLSAX3')) { - define('XML_HTMLSAX3', 'XML/'); -} -require_once(XML_HTMLSAX3 . 'HTMLSax3/States.php'); -require_once(XML_HTMLSAX3 . 'HTMLSax3/Decorators.php'); - -/** -* Base State Parser -* @package XML_HTMLSax3 -* @access protected -* @abstract -*/ -class XML_HTMLSax3_StateParser { - /** - * Instance of user front end class to be passed to callbacks - * @var XML_HTMLSax3 - * @access private - */ - var $htmlsax; - /** - * User defined object for handling elements - * @var object - * @access private - */ - var $handler_object_element; - /** - * User defined open tag handler method - * @var string - * @access private - */ - var $handler_method_opening; - /** - * User defined close tag handler method - * @var string - * @access private - */ - var $handler_method_closing; - /** - * User defined object for handling data in elements - * @var object - * @access private - */ - var $handler_object_data; - /** - * User defined data handler method - * @var string - * @access private - */ - var $handler_method_data; - /** - * User defined object for handling processing instructions - * @var object - * @access private - */ - var $handler_object_pi; - /** - * User defined processing instruction handler method - * @var string - * @access private - */ - var $handler_method_pi; - /** - * User defined object for handling JSP/ASP tags - * @var object - * @access private - */ - var $handler_object_jasp; - /** - * User defined JSP/ASP handler method - * @var string - * @access private - */ - var $handler_method_jasp; - /** - * User defined object for handling XML escapes - * @var object - * @access private - */ - var $handler_object_escape; - /** - * User defined XML escape handler method - * @var string - * @access private - */ - var $handler_method_escape; - /** - * User defined handler object or NullHandler - * @var object - * @access private - */ - var $handler_default; - /** - * Parser options determining parsing behavior - * @var array - * @access private - */ - var $parser_options = array(); - /** - * XML document being parsed - * @var string - * @access private - */ - var $rawtext; - /** - * Position in XML document relative to start (0) - * @var int - * @access private - */ - var $position; - /** - * Length of the XML document in characters - * @var int - * @access private - */ - var $length; - /** - * Array of state objects - * @var array - * @access private - */ - var $State = array(); - - /** - * Constructs XML_HTMLSax3_StateParser setting up states - * @var XML_HTMLSax3 instance of user front end class - * @access protected - */ - function XML_HTMLSax3_StateParser (& $htmlsax) { - $this->htmlsax = & $htmlsax; - $this->State[XML_HTMLSAX3_STATE_START] = new XML_HTMLSax3_StartingState(); - - $this->State[XML_HTMLSAX3_STATE_CLOSING_TAG] = new XML_HTMLSax3_ClosingTagState(); - $this->State[XML_HTMLSAX3_STATE_TAG] = new XML_HTMLSax3_TagState(); - $this->State[XML_HTMLSAX3_STATE_OPENING_TAG] = new XML_HTMLSax3_OpeningTagState(); - - $this->State[XML_HTMLSAX3_STATE_PI] = new XML_HTMLSax3_PiState(); - $this->State[XML_HTMLSAX3_STATE_JASP] = new XML_HTMLSax3_JaspState(); - $this->State[XML_HTMLSAX3_STATE_ESCAPE] = new XML_HTMLSax3_EscapeState(); - } - - /** - * Moves the position back one character - * @access protected - * @return void - */ - function unscanCharacter() { - $this->position -= 1; - } - - /** - * Moves the position forward one character - * @access protected - * @return void - */ - function ignoreCharacter() { - $this->position += 1; - } - - /** - * Returns the next character from the XML document or void if at end - * @access protected - * @return mixed - */ - function scanCharacter() { - if ($this->position < $this->length) { - return $this->rawtext{$this->position++}; - } - } - - /** - * Returns a string from the current position to the next occurance - * of the supplied string - * @param string string to search until - * @access protected - * @return string - */ - function scanUntilString($string) { - $start = $this->position; - $this->position = strpos($this->rawtext, $string, $start); - if ($this->position === FALSE) { - $this->position = $this->length; - } - return substr($this->rawtext, $start, $this->position - $start); - } - - /** - * Returns a string from the current position until the first instance of - * one of the characters in the supplied string argument - * @param string string to search until - * @access protected - * @return string - * @abstract - */ - function scanUntilCharacters($string) {} - - /** - * Moves the position forward past any whitespace characters - * @access protected - * @return void - * @abstract - */ - function ignoreWhitespace() {} - - /** - * Begins the parsing operation, setting up any decorators, depending on - * parse options invoking _parse() to execute parsing - * @param string XML document to parse - * @access protected - * @return void - */ - function parse($data) { - if ($this->parser_options['XML_OPTION_TRIM_DATA_NODES']==1) { - $decorator = new XML_HTMLSax3_Trim( - $this->handler_object_data, - $this->handler_method_data); - $this->handler_object_data =& $decorator; - $this->handler_method_data = 'trimData'; - } - if ($this->parser_options['XML_OPTION_CASE_FOLDING']==1) { - $open_decor = new XML_HTMLSax3_CaseFolding( - $this->handler_object_element, - $this->handler_method_opening, - $this->handler_method_closing); - $this->handler_object_element =& $open_decor; - $this->handler_method_opening ='foldOpen'; - $this->handler_method_closing ='foldClose'; - } - if ($this->parser_options['XML_OPTION_LINEFEED_BREAK']==1) { - $decorator = new XML_HTMLSax3_Linefeed( - $this->handler_object_data, - $this->handler_method_data); - $this->handler_object_data =& $decorator; - $this->handler_method_data = 'breakData'; - } - if ($this->parser_options['XML_OPTION_TAB_BREAK']==1) { - $decorator = new XML_HTMLSax3_Tab( - $this->handler_object_data, - $this->handler_method_data); - $this->handler_object_data =& $decorator; - $this->handler_method_data = 'breakData'; - } - if ($this->parser_options['XML_OPTION_ENTITIES_UNPARSED']==1) { - $decorator = new XML_HTMLSax3_Entities_Unparsed( - $this->handler_object_data, - $this->handler_method_data); - $this->handler_object_data =& $decorator; - $this->handler_method_data = 'breakData'; - } - if ($this->parser_options['XML_OPTION_ENTITIES_PARSED']==1) { - $decorator = new XML_HTMLSax3_Entities_Parsed( - $this->handler_object_data, - $this->handler_method_data); - $this->handler_object_data =& $decorator; - $this->handler_method_data = 'breakData'; - } - // Note switched on by default - if ($this->parser_options['XML_OPTION_STRIP_ESCAPES']==1) { - $decorator = new XML_HTMLSax3_Escape_Stripper( - $this->handler_object_escape, - $this->handler_method_escape); - $this->handler_object_escape =& $decorator; - $this->handler_method_escape = 'strip'; - } - $this->rawtext = $data; - $this->length = strlen($data); - $this->position = 0; - $this->_parse(); - } - - /** - * Performs the parsing itself, delegating calls to a specific parser - * state - * @param constant state object to parse with - * @access protected - * @return void - */ - function _parse($state = XML_HTMLSAX3_STATE_START) { - do { - $state = $this->State[$state]->parse($this); - } while ($state != XML_HTMLSAX3_STATE_STOP && - $this->position < $this->length); - } -} - -/** -* Parser for PHP Versions below 4.3.0. Uses a slower parsing mechanism than -* the equivalent PHP 4.3.0+ subclass of StateParser -* @package XML_HTMLSax3 -* @access protected -* @see XML_HTMLSax3_StateParser_Gtet430 -*/ -class XML_HTMLSax3_StateParser_Lt430 extends XML_HTMLSax3_StateParser { - /** - * Constructs XML_HTMLSax3_StateParser_Lt430 defining available - * parser options - * @var XML_HTMLSax3 instance of user front end class - * @access protected - */ - function XML_HTMLSax3_StateParser_Lt430(& $htmlsax) { - parent::XML_HTMLSax3_StateParser($htmlsax); - $this->parser_options['XML_OPTION_TRIM_DATA_NODES'] = 0; - $this->parser_options['XML_OPTION_CASE_FOLDING'] = 0; - $this->parser_options['XML_OPTION_LINEFEED_BREAK'] = 0; - $this->parser_options['XML_OPTION_TAB_BREAK'] = 0; - $this->parser_options['XML_OPTION_ENTITIES_PARSED'] = 0; - $this->parser_options['XML_OPTION_ENTITIES_UNPARSED'] = 0; - $this->parser_options['XML_OPTION_STRIP_ESCAPES'] = 0; - } - - /** - * Returns a string from the current position until the first instance of - * one of the characters in the supplied string argument - * @param string string to search until - * @access protected - * @return string - */ - function scanUntilCharacters($string) { - $startpos = $this->position; - while ($this->position < $this->length && strpos($string, $this->rawtext{$this->position}) === FALSE) { - $this->position++; - } - return substr($this->rawtext, $startpos, $this->position - $startpos); - } - - /** - * Moves the position forward past any whitespace characters - * @access protected - * @return void - */ - function ignoreWhitespace() { - while ($this->position < $this->length && - strpos(" \n\r\t", $this->rawtext{$this->position}) !== FALSE) { - $this->position++; - } - } - - /** - * Begins the parsing operation, setting up the unparsed XML entities - * decorator if necessary then delegating further work to parent - * @param string XML document to parse - * @access protected - * @return void - */ - function parse($data) { - parent::parse($data); - } -} - -/** -* Parser for PHP Versions equal to or greater than 4.3.0. Uses a faster -* parsing mechanism than the equivalent PHP < 4.3.0 subclass of StateParser -* @package XML_HTMLSax3 -* @access protected -* @see XML_HTMLSax3_StateParser_Lt430 -*/ -class XML_HTMLSax3_StateParser_Gtet430 extends XML_HTMLSax3_StateParser { - /** - * Constructs XML_HTMLSax3_StateParser_Gtet430 defining available - * parser options - * @var XML_HTMLSax3 instance of user front end class - * @access protected - */ - function XML_HTMLSax3_StateParser_Gtet430(& $htmlsax) { - parent::XML_HTMLSax3_StateParser($htmlsax); - $this->parser_options['XML_OPTION_TRIM_DATA_NODES'] = 0; - $this->parser_options['XML_OPTION_CASE_FOLDING'] = 0; - $this->parser_options['XML_OPTION_LINEFEED_BREAK'] = 0; - $this->parser_options['XML_OPTION_TAB_BREAK'] = 0; - $this->parser_options['XML_OPTION_ENTITIES_PARSED'] = 0; - $this->parser_options['XML_OPTION_ENTITIES_UNPARSED'] = 0; - $this->parser_options['XML_OPTION_STRIP_ESCAPES'] = 0; - } - /** - * Returns a string from the current position until the first instance of - * one of the characters in the supplied string argument. - * @param string string to search until - * @access protected - * @return string - */ - function scanUntilCharacters($string) { - $startpos = $this->position; - $length = strcspn($this->rawtext, $string, $startpos); - $this->position += $length; - return substr($this->rawtext, $startpos, $length); - } - - /** - * Moves the position forward past any whitespace characters - * @access protected - * @return void - */ - function ignoreWhitespace() { - $this->position += strspn($this->rawtext, " \n\r\t", $this->position); - } - - /** - * Begins the parsing operation, setting up the parsed and unparsed - * XML entity decorators if necessary then delegating further work - * to parent - * @param string XML document to parse - * @access protected - * @return void - */ - function parse($data) { - parent::parse($data); - } -} - -/** -* Default NullHandler for methods which were not set by user -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_NullHandler { - /** - * Generic handler method which does nothing - * @access protected - * @return void - */ - function DoNothing() { - } -} - -/** -* User interface class. All user calls should only be made to this class -* @package XML_HTMLSax3 -* @access public -*/ -class XML_HTMLSax3 { - /** - * Instance of concrete subclass of XML_HTMLSax3_StateParser - * @var XML_HTMLSax3_StateParser - * @access private - */ - var $state_parser; - - /** - * Constructs XML_HTMLSax3 selecting concrete StateParser subclass - * depending on PHP version being used as well as setting the default - * NullHandler for all callbacks
    - * Example: - *
    -    * $myHandler = & new MyHandler();
    -    * $parser = new XML_HTMLSax3();
    -    * $parser->set_object($myHandler);
    -    * $parser->set_option('XML_OPTION_CASE_FOLDING');
    -    * $parser->set_element_handler('myOpenHandler','myCloseHandler');
    -    * $parser->set_data_handler('myDataHandler');
    -    * $parser->parser($xml);
    -    * 
    - * @access public - */ - function XML_HTMLSax3() { - if (version_compare(phpversion(), '4.3', 'ge')) { - $this->state_parser = new XML_HTMLSax3_StateParser_Gtet430($this); - } else { - $this->state_parser = new XML_HTMLSax3_StateParser_Lt430($this); - } - $nullhandler = new XML_HTMLSax3_NullHandler(); - $this->set_object($nullhandler); - $this->set_element_handler('DoNothing', 'DoNothing'); - $this->set_data_handler('DoNothing'); - $this->set_pi_handler('DoNothing'); - $this->set_jasp_handler('DoNothing'); - $this->set_escape_handler('DoNothing'); - } - - /** - * Sets the user defined handler object. Returns a PEAR Error - * if supplied argument is not an object. - * @param object handler object containing SAX callback methods - * @access public - * @return mixed - */ - function set_object(&$object) { - if ( is_object($object) ) { - $this->state_parser->handler_default =& $object; - return true; - } else { - require_once('PEAR.php'); - PEAR::raiseError('XML_HTMLSax3::set_object requires '. - 'an object instance'); - } - } - - /** - * Sets a parser option. By default all options are switched off. - * Returns a PEAR Error if option is invalid
    - * Available options: - *
      - *
    • XML_OPTION_TRIM_DATA_NODES: trim whitespace off the beginning - * and end of data passed to the data handler
    • - *
    • XML_OPTION_LINEFEED_BREAK: linefeeds result in additional data - * handler calls
    • - *
    • XML_OPTION_TAB_BREAK: tabs result in additional data handler - * calls
    • - *
    • XML_OPTION_ENTITIES_UNPARSED: XML entities are returned as - * seperate data handler calls in unparsed form
    • - *
    • XML_OPTION_ENTITIES_PARSED: (PHP 4.3.0+ only) XML entities are - * returned as seperate data handler calls and are parsed with - * PHP's html_entity_decode() function
    • - *
    • XML_OPTION_STRIP_ESCAPES: strips out the -- -- comment markers - * or CDATA markup inside an XML escape, if found.
    • - *
    - * To get HTMLSax to behave in the same way as the native PHP SAX parser, - * using it's default state, you need to switch on XML_OPTION_LINEFEED_BREAK, - * XML_OPTION_ENTITIES_PARSED and XML_OPTION_CASE_FOLDING - * @param string name of parser option - * @param int (optional) 1 to switch on, 0 for off - * @access public - * @return boolean - */ - function set_option($name, $value=1) { - if ( array_key_exists($name,$this->state_parser->parser_options) ) { - $this->state_parser->parser_options[$name] = $value; - return true; - } else { - require_once('PEAR.php'); - PEAR::raiseError('XML_HTMLSax3::set_option('.$name.') illegal'); - } - } - - /** - * Sets the data handler method which deals with the contents of XML - * elements.
    - * The handler method must accept two arguments, the first being an - * instance of XML_HTMLSax3 and the second being the contents of an - * XML element e.g. - *
    -    * function myDataHander(& $parser,$data){}
    -    * 
    - * @param string name of method - * @access public - * @return void - * @see set_object - */ - function set_data_handler($data_method) { - $this->state_parser->handler_object_data =& $this->state_parser->handler_default; - $this->state_parser->handler_method_data = $data_method; - } - - /** - * Sets the open and close tag handlers - *
    The open handler method must accept three arguments; the parser, - * the tag name and an array of attributes e.g. - *
    -    * function myOpenHander(& $parser,$tagname,$attrs=array()){}
    -    * 
    - * The close handler method must accept two arguments; the parser and - * the tag name e.g. - *
    -    * function myCloseHander(& $parser,$tagname){}
    -    * 
    - * @param string name of open method - * @param string name of close method - * @access public - * @return void - * @see set_object - */ - function set_element_handler($opening_method, $closing_method) { - $this->state_parser->handler_object_element =& $this->state_parser->handler_default; - $this->state_parser->handler_method_opening = $opening_method; - $this->state_parser->handler_method_closing = $closing_method; - } - - /** - * Sets the processing instruction handler method e.g. for PHP open - * and close tags
    - * The handler method must accept three arguments; the parser, the - * PI target and data inside the PI - *
    -    * function myPIHander(& $parser,$target, $data){}
    -    * 
    - * @param string name of method - * @access public - * @return void - * @see set_object - */ - function set_pi_handler($pi_method) { - $this->state_parser->handler_object_pi =& $this->state_parser->handler_default; - $this->state_parser->handler_method_pi = $pi_method; - } - - /** - * Sets the XML escape handler method e.g. for comments and doctype - * declarations
    - * The handler method must accept two arguments; the parser and the - * contents of the escaped section - *
    -    * function myEscapeHander(& $parser, $data){}
    -    * 
    - * @param string name of method - * @access public - * @return void - * @see set_object - */ - function set_escape_handler($escape_method) { - $this->state_parser->handler_object_escape =& $this->state_parser->handler_default; - $this->state_parser->handler_method_escape = $escape_method; - } - - /** - * Sets the JSP/ASP markup handler
    - * The handler method must accept two arguments; the parser and - * body of the JASP tag - *
    -    * function myJaspHander(& $parser, $data){}
    -    * 
    - * @param string name of method - * @access public - * @return void - * @see set_object - */ - function set_jasp_handler ($jasp_method) { - $this->state_parser->handler_object_jasp =& $this->state_parser->handler_default; - $this->state_parser->handler_method_jasp = $jasp_method; - } - - /** - * Returns the current string position of the "cursor" inside the XML - * document - *
    Intended for use from within a user defined handler called - * via the $parser reference e.g. - *
    -    * function myDataHandler(& $parser,$data) {
    -    *     echo( 'Current position: '.$parser->get_current_position() );
    -    * }
    -    * 
    - * @access public - * @return int - * @see get_length - */ - function get_current_position() { - return $this->state_parser->position; - } - - /** - * Returns the string length of the XML document being parsed - * @access public - * @return int - */ - function get_length() { - return $this->state_parser->length; - } - - /** - * Start parsing some XML - * @param string XML document - * @access public - * @return void - */ - function parse($data) { - $this->state_parser->parse($data); - } -} -?> \ No newline at end of file diff --git a/include/safehtml/HTMLSax3/Decorators.php b/include/safehtml/HTMLSax3/Decorators.php deleted file mode 100644 index edef1d207..000000000 --- a/include/safehtml/HTMLSax3/Decorators.php +++ /dev/null @@ -1,363 +0,0 @@ - Original port from Python | -// | Authors: Harry Fuecks Port to PEAR + more | -// | Authors: Many @ Sitepointforums Advanced PHP Forums | -// +----------------------------------------------------------------------+ -// -// $Id: Decorators.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $ -// -/** -* Decorators for dealing with parser options -* @package XML_HTMLSax3 -* @version $Id: Decorators.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $ -* @see XML_HTMLSax3::set_option -*/ -/** -* Trims the contents of element data from whitespace at start and end -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_Trim { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original handler method - * @var string - * @access private - */ - var $orig_method; - /** - * Constructs XML_HTMLSax3_Trim - * @param object handler object being decorated - * @param string original handler method - * @access protected - */ - function XML_HTMLSax3_Trim(&$orig_obj, $orig_method) { - $this->orig_obj =& $orig_obj; - $this->orig_method = $orig_method; - } - /** - * Trims the data - * @param XML_HTMLSax3 - * @param string element data - * @access protected - */ - function trimData(&$parser, $data) { - $data = trim($data); - if ($data != '') { - $this->orig_obj->{$this->orig_method}($parser, $data); - } - } -} -/** -* Coverts tag names to upper case -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_CaseFolding { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original open handler method - * @var string - * @access private - */ - var $orig_open_method; - /** - * Original close handler method - * @var string - * @access private - */ - var $orig_close_method; - /** - * Constructs XML_HTMLSax3_CaseFolding - * @param object handler object being decorated - * @param string original open handler method - * @param string original close handler method - * @access protected - */ - function XML_HTMLSax3_CaseFolding(&$orig_obj, $orig_open_method, $orig_close_method) { - $this->orig_obj =& $orig_obj; - $this->orig_open_method = $orig_open_method; - $this->orig_close_method = $orig_close_method; - } - /** - * Folds up open tag callbacks - * @param XML_HTMLSax3 - * @param string tag name - * @param array tag attributes - * @access protected - */ - function foldOpen(&$parser, $tag, $attrs=array(), $empty = FALSE) { - $this->orig_obj->{$this->orig_open_method}($parser, strtoupper($tag), $attrs, $empty); - } - /** - * Folds up close tag callbacks - * @param XML_HTMLSax3 - * @param string tag name - * @access protected - */ - function foldClose(&$parser, $tag, $empty = FALSE) { - $this->orig_obj->{$this->orig_close_method}($parser, strtoupper($tag), $empty); - } -} -/** -* Breaks up data by linefeed characters, resulting in additional -* calls to the data handler -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_Linefeed { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original handler method - * @var string - * @access private - */ - var $orig_method; - /** - * Constructs XML_HTMLSax3_LineFeed - * @param object handler object being decorated - * @param string original handler method - * @access protected - */ - function XML_HTMLSax3_LineFeed(&$orig_obj, $orig_method) { - $this->orig_obj =& $orig_obj; - $this->orig_method = $orig_method; - } - /** - * Breaks the data up by linefeeds - * @param XML_HTMLSax3 - * @param string element data - * @access protected - */ - function breakData(&$parser, $data) { - $data = explode("\n",$data); - foreach ( $data as $chunk ) { - $this->orig_obj->{$this->orig_method}($parser, $chunk); - } - } -} -/** -* Breaks up data by tab characters, resulting in additional -* calls to the data handler -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_Tab { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original handler method - * @var string - * @access private - */ - var $orig_method; - /** - * Constructs XML_HTMLSax3_Tab - * @param object handler object being decorated - * @param string original handler method - * @access protected - */ - function XML_HTMLSax3_Tab(&$orig_obj, $orig_method) { - $this->orig_obj =& $orig_obj; - $this->orig_method = $orig_method; - } - /** - * Breaks the data up by linefeeds - * @param XML_HTMLSax3 - * @param string element data - * @access protected - */ - function breakData(&$parser, $data) { - $data = explode("\t",$data); - foreach ( $data as $chunk ) { - $this->orig_obj->{$this->orig_method}($this, $chunk); - } - } -} -/** -* Breaks up data by XML entities and parses them with html_entity_decode(), -* resulting in additional calls to the data handler
    -* Requires PHP 4.3.0+ -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_Entities_Parsed { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original handler method - * @var string - * @access private - */ - var $orig_method; - /** - * Constructs XML_HTMLSax3_Entities_Parsed - * @param object handler object being decorated - * @param string original handler method - * @access protected - */ - function XML_HTMLSax3_Entities_Parsed(&$orig_obj, $orig_method) { - $this->orig_obj =& $orig_obj; - $this->orig_method = $orig_method; - } - /** - * Breaks the data up by XML entities - * @param XML_HTMLSax3 - * @param string element data - * @access protected - */ - function breakData(&$parser, $data) { - $data = preg_split('/(&.+?;)/',$data,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); - foreach ( $data as $chunk ) { - $chunk = html_entity_decode($chunk,ENT_NOQUOTES); - $this->orig_obj->{$this->orig_method}($this, $chunk); - } - } -} -/** -* Compatibility with older PHP versions -*/ -if (version_compare(phpversion(), '4.3', '<') && !function_exists('html_entity_decode') ) { - function html_entity_decode($str, $style=ENT_NOQUOTES) { - return strtr($str, - array_flip(get_html_translation_table(HTML_ENTITIES,$style))); - } -} -/** -* Breaks up data by XML entities but leaves them unparsed, -* resulting in additional calls to the data handler
    -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_Entities_Unparsed { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original handler method - * @var string - * @access private - */ - var $orig_method; - /** - * Constructs XML_HTMLSax3_Entities_Unparsed - * @param object handler object being decorated - * @param string original handler method - * @access protected - */ - function XML_HTMLSax3_Entities_Unparsed(&$orig_obj, $orig_method) { - $this->orig_obj =& $orig_obj; - $this->orig_method = $orig_method; - } - /** - * Breaks the data up by XML entities - * @param XML_HTMLSax3 - * @param string element data - * @access protected - */ - function breakData(&$parser, $data) { - $data = preg_split('/(&.+?;)/',$data,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); - foreach ( $data as $chunk ) { - $this->orig_obj->{$this->orig_method}($this, $chunk); - } - } -} - -/** -* Strips the HTML comment markers or CDATA sections from an escape. -* If XML_OPTIONS_FULL_ESCAPES is on, this decorator is not used.
    -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_Escape_Stripper { - /** - * Original handler object - * @var object - * @access private - */ - var $orig_obj; - /** - * Original handler method - * @var string - * @access private - */ - var $orig_method; - /** - * Constructs XML_HTMLSax3_Entities_Unparsed - * @param object handler object being decorated - * @param string original handler method - * @access protected - */ - function XML_HTMLSax3_Escape_Stripper(&$orig_obj, $orig_method) { - $this->orig_obj =& $orig_obj; - $this->orig_method = $orig_method; - } - /** - * Breaks the data up by XML entities - * @param XML_HTMLSax3 - * @param string element data - * @access protected - */ - function strip(&$parser, $data) { - // Check for HTML comments first - if ( substr($data,0,2) == '--' ) { - $patterns = array( - '/^\-\-/', // Opening comment: -- - '/\-\-$/', // Closing comment: -- - ); - $data = preg_replace($patterns,'',$data); - - // Check for XML CDATA sections (note: don't do both!) - } else if ( substr($data,0,1) == '[' ) { - $patterns = array( - '/^\[.*CDATA.*\[/s', // Opening CDATA - '/\].*\]$/s', // Closing CDATA - ); - $data = preg_replace($patterns,'',$data); - } - - $this->orig_obj->{$this->orig_method}($this, $data); - } -} -?> \ No newline at end of file diff --git a/include/safehtml/HTMLSax3/States.php b/include/safehtml/HTMLSax3/States.php deleted file mode 100644 index 1da50b42a..000000000 --- a/include/safehtml/HTMLSax3/States.php +++ /dev/null @@ -1,287 +0,0 @@ - Original port from Python | -// | Authors: Harry Fuecks Port to PEAR + more | -// | Authors: Many @ Sitepointforums Advanced PHP Forums | -// +----------------------------------------------------------------------+ -// -// $Id: States.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $ -// -/** -* Parsing states. -* @package XML_HTMLSax3 -* @version $Id: States.php,v 1.1 2007/07/20 17:16:35 claudiucristea Exp $ -*/ -/** -* Define parser states -*/ -define('XML_HTMLSAX3_STATE_STOP', 0); -define('XML_HTMLSAX3_STATE_START', 1); -define('XML_HTMLSAX3_STATE_TAG', 2); -define('XML_HTMLSAX3_STATE_OPENING_TAG', 3); -define('XML_HTMLSAX3_STATE_CLOSING_TAG', 4); -define('XML_HTMLSAX3_STATE_ESCAPE', 6); -define('XML_HTMLSAX3_STATE_JASP', 7); -define('XML_HTMLSAX3_STATE_PI', 8); -/** -* StartingState searches for the start of any XML tag -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_StartingState { - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant XML_HTMLSAX3_STATE_TAG - * @access protected - */ - function parse(&$context) { - $data = $context->scanUntilString('<'); - if ($data != '') { - $context->handler_object_data-> - {$context->handler_method_data}($context->htmlsax, $data); - } - $context->IgnoreCharacter(); - return XML_HTMLSAX3_STATE_TAG; - } -} -/** -* Decides which state to move one from after StartingState -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_TagState { - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant the next state to move into - * @access protected - */ - function parse(&$context) { - switch($context->ScanCharacter()) { - case '/': - return XML_HTMLSAX3_STATE_CLOSING_TAG; - break; - case '?': - return XML_HTMLSAX3_STATE_PI; - break; - case '%': - return XML_HTMLSAX3_STATE_JASP; - break; - case '!': - return XML_HTMLSAX3_STATE_ESCAPE; - break; - default: - $context->unscanCharacter(); - return XML_HTMLSAX3_STATE_OPENING_TAG; - } - } -} -/** -* Dealing with closing XML tags -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_ClosingTagState { - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant XML_HTMLSAX3_STATE_START - * @access protected - */ - function parse(&$context) { - $tag = $context->scanUntilCharacters('/>'); - if ($tag != '') { - $char = $context->scanCharacter(); - if ($char == '/') { - $char = $context->scanCharacter(); - if ($char != '>') { - $context->unscanCharacter(); - } - } - $context->handler_object_element-> - {$context->handler_method_closing}($context->htmlsax, $tag, FALSE); - } - return XML_HTMLSAX3_STATE_START; - } -} -/** -* Dealing with opening XML tags -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_OpeningTagState { - /** - * Handles attributes - * @param string attribute name - * @param string attribute value - * @return void - * @access protected - * @see XML_HTMLSax3_AttributeStartState - */ - function parseAttributes(&$context) { - $Attributes = array(); - - $context->ignoreWhitespace(); - $attributename = $context->scanUntilCharacters("=/> \n\r\t"); - while ($attributename != '') { - $attributevalue = NULL; - $context->ignoreWhitespace(); - $char = $context->scanCharacter(); - if ($char == '=') { - $context->ignoreWhitespace(); - $char = $context->ScanCharacter(); - if ($char == '"') { - $attributevalue= $context->scanUntilString('"'); - $context->IgnoreCharacter(); - } else if ($char == "'") { - $attributevalue = $context->scanUntilString("'"); - $context->IgnoreCharacter(); - } else { - $context->unscanCharacter(); - $attributevalue = - $context->scanUntilCharacters("> \n\r\t"); - } - } else if ($char !== NULL) { - $attributevalue = NULL; - $context->unscanCharacter(); - } - $Attributes[$attributename] = $attributevalue; - - $context->ignoreWhitespace(); - $attributename = $context->scanUntilCharacters("=/> \n\r\t"); - } - return $Attributes; - } - - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant XML_HTMLSAX3_STATE_START - * @access protected - */ - function parse(&$context) { - $tag = $context->scanUntilCharacters("/> \n\r\t"); - if ($tag != '') { - $this->attrs = array(); - $Attributes = $this->parseAttributes($context); - $char = $context->scanCharacter(); - if ($char == '/') { - $char = $context->scanCharacter(); - if ($char != '>') { - $context->unscanCharacter(); - } - $context->handler_object_element-> - {$context->handler_method_opening}($context->htmlsax, $tag, - $Attributes, TRUE); - $context->handler_object_element-> - {$context->handler_method_closing}($context->htmlsax, $tag, - TRUE); - } else { - $context->handler_object_element-> - {$context->handler_method_opening}($context->htmlsax, $tag, - $Attributes, FALSE); - } - } - return XML_HTMLSAX3_STATE_START; - } -} - -/** -* Deals with XML escapes handling comments and CDATA correctly -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_EscapeState { - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant XML_HTMLSAX3_STATE_START - * @access protected - */ - function parse(&$context) { - $char = $context->ScanCharacter(); - if ($char == '-') { - $char = $context->ScanCharacter(); - if ($char == '-') { - $context->unscanCharacter(); - $context->unscanCharacter(); - $text = $context->scanUntilString('-->'); - $text .= $context->scanCharacter(); - $text .= $context->scanCharacter(); - } else { - $context->unscanCharacter(); - $text = $context->scanUntilString('>'); - } - } else if ( $char == '[') { - $context->unscanCharacter(); - $text = $context->scanUntilString(']>'); - $text.= $context->scanCharacter(); - } else { - $context->unscanCharacter(); - $text = $context->scanUntilString('>'); - } - - $context->IgnoreCharacter(); - if ($text != '') { - $context->handler_object_escape-> - {$context->handler_method_escape}($context->htmlsax, $text); - } - return XML_HTMLSAX3_STATE_START; - } -} -/** -* Deals with JASP/ASP markup -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_JaspState { - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant XML_HTMLSAX3_STATE_START - * @access protected - */ - function parse(&$context) { - $text = $context->scanUntilString('%>'); - if ($text != '') { - $context->handler_object_jasp-> - {$context->handler_method_jasp}($context->htmlsax, $text); - } - $context->IgnoreCharacter(); - $context->IgnoreCharacter(); - return XML_HTMLSAX3_STATE_START; - } -} -/** -* Deals with XML processing instructions -* @package XML_HTMLSax3 -* @access protected -*/ -class XML_HTMLSax3_PiState { - /** - * @param XML_HTMLSax3_StateParser subclass - * @return constant XML_HTMLSAX3_STATE_START - * @access protected - */ - function parse(&$context) { - $target = $context->scanUntilCharacters(" \n\r\t"); - $data = $context->scanUntilString('?>'); - if ($data != '') { - $context->handler_object_pi-> - {$context->handler_method_pi}($context->htmlsax, $target, $data); - } - $context->IgnoreCharacter(); - $context->IgnoreCharacter(); - return XML_HTMLSAX3_STATE_START; - } -} -?> \ No newline at end of file diff --git a/include/safehtml/safehtml.class.php b/include/safehtml/safehtml.class.php deleted file mode 100644 index 2cca6cef7..000000000 --- a/include/safehtml/safehtml.class.php +++ /dev/null @@ -1,671 +0,0 @@ - - * @copyright 2004-2005 Roman Ivanov - * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) - * @version 1.3.7 - * @link http://pixel-apes.com/safehtml/ - */ - - -/** - * This package requires HTMLSax3 package - */ - define("XML_HTMLSAX3", ''); -require_once(XML_HTMLSAX3 . 'HTMLSax3.php'); - - -/** - * - * SafeHTML Parser - * - * This parser strips down all potentially dangerous content within HTML: - *
      - *
    • opening tag without its closing tag
    • - *
    • closing tag without its opening tag
    • - *
    • any of these tags: "base", "basefont", "head", "html", "body", "applet", - * "object", "iframe", "frame", "frameset", "script", "layer", "ilayer", "embed", - * "bgsound", "link", "meta", "style", "title", "blink", "xml" etc.
    • - *
    • any of these attributes: on*, data*, dynsrc
    • - *
    • javascript:/vbscript:/about: etc. protocols
    • - *
    • expression/behavior etc. in styles
    • - *
    • any other active content
    • - *
    - * It also tries to convert code to XHTML valid, but htmltidy is far better - * solution for this task. - * - * Example: - *
    - * $parser =& new SafeHTML();
    - * $result = $parser->parse($doc);
    - * 
    - * - * @category HTML - * @package SafeHTML - * @author Roman Ivanov - * @copyright 1997-2005 Roman Ivanov - * @license http://www.debian.org/misc/bsd.license BSD License (3 Clause) - * @version Release: @package_version@ - * @link http://pear.php.net/package/SafeHTML - */ -class SafeHTML -{ - /** - * Storage for resulting HTML output - * - * @var string - * @access private - */ - var $_xhtml = ''; - - /** - * Array of counters for each tag - * - * @var array - * @access private - */ - var $_counter = array(); - - /** - * Stack of unclosed tags - * - * @var array - * @access private - */ - var $_stack = array(); - - /** - * Array of counters for tags that must be deleted with all content - * - * @var array - * @access private - */ - var $_dcCounter = array(); - - /** - * Stack of unclosed tags that must be deleted with all content - * - * @var array - * @access private - */ - var $_dcStack = array(); - - /** - * Stores level of list (ol/ul) nesting - * - * @var int - * @access private - */ - var $_listScope = 0; - - /** - * Stack of unclosed list tags - * - * @var array - * @access private - */ - var $_liStack = array(); - - /** - * Array of prepared regular expressions for protocols (schemas) matching - * - * @var array - * @access private - */ - var $_protoRegexps = array(); - - /** - * Array of prepared regular expressions for CSS matching - * - * @var array - * @access private - */ - var $_cssRegexps = array(); - - /** - * List of single tags ("") - * - * @var array - * @access public - */ - var $singleTags = array('area', 'br', 'img', 'input', 'hr', 'wbr', ); - - /** - * List of dangerous tags (such tags will be deleted) - * - * @var array - * @access public - */ - var $deleteTags = array( - 'applet', 'base', 'basefont', 'bgsound', 'blink', 'body', - 'embed', 'frame', 'frameset', 'head', 'html', 'ilayer', - 'iframe', 'layer', 'link', 'meta', 'object', 'style', - 'title', 'script', - ); - - /** - * List of dangerous tags (such tags will be deleted, and all content - * inside this tags will be also removed) - * - * @var array - * @access public - */ - var $deleteTagsContent = array('script', 'style', 'title', 'xml', ); - - /** - * Type of protocols filtering ('white' or 'black') - * - * @var string - * @access public - */ - var $protocolFiltering = 'white'; - - /** - * List of "dangerous" protocols (used for blacklist-filtering) - * - * @var array - * @access public - */ - var $blackProtocols = array( - 'about', 'chrome', 'data', 'disk', 'hcp', - 'help', 'javascript', 'livescript', 'lynxcgi', 'lynxexec', - 'ms-help', 'ms-its', 'mhtml', 'mocha', 'opera', - 'res', 'resource', 'shell', 'vbscript', 'view-source', - 'vnd.ms.radio', 'wysiwyg', - ); - - /** - * List of "safe" protocols (used for whitelist-filtering) - * - * @var array - * @access public - */ - var $whiteProtocols = array( - 'ed2k', 'file', 'ftp', 'gopher', 'http', 'https', - 'irc', 'mailto', 'news', 'nntp', 'telnet', 'webcal', - 'xmpp', 'callto', - ); - - /** - * List of attributes that can contain protocols - * - * @var array - * @access public - */ - var $protocolAttributes = array( - 'action', 'background', 'codebase', 'dynsrc', 'href', 'lowsrc', 'src', - ); - - /** - * List of dangerous CSS keywords - * - * Whole style="" attribute will be removed, if parser will find one of - * these keywords - * - * @var array - * @access public - */ - var $cssKeywords = array( - 'absolute', 'behavior', 'behaviour', 'content', 'expression', - 'fixed', 'include-source', 'moz-binding', - ); - - /** - * List of tags that can have no "closing tag" - * - * @var array - * @access public - * @deprecated XHTML does not allow such tags - */ - var $noClose = array(); - - /** - * List of block-level tags that terminates paragraph - * - * Paragraph will be closed when this tags opened - * - * @var array - * @access public - */ - var $closeParagraph = array( - 'address', 'blockquote', 'center', 'dd', 'dir', 'div', - 'dl', 'dt', 'h1', 'h2', 'h3', 'h4', - 'h5', 'h6', 'hr', 'isindex', 'listing', 'marquee', - 'menu', 'multicol', 'ol', 'p', 'plaintext', 'pre', - 'table', 'ul', 'xmp', - ); - - /** - * List of table tags, all table tags outside a table will be removed - * - * @var array - * @access public - */ - var $tableTags = array( - 'caption', 'col', 'colgroup', 'tbody', 'td', 'tfoot', 'th', - 'thead', 'tr', - ); - - /** - * List of list tags - * - * @var array - * @access public - */ - var $listTags = array('dir', 'menu', 'ol', 'ul', 'dl', ); - - /** - * List of dangerous attributes - * - * @var array - * @access public - */ - var $attributes = array('dynsrc', 'id', 'name', ); - - /** - * List of allowed "namespaced" attributes - * - * @var array - * @access public - */ - var $attributesNS = array('xml:lang', ); - - /** - * Constructs class - * - * @access public - */ - function SafeHTML() - { - //making regular expressions based on Proto & CSS arrays - foreach ($this->blackProtocols as $proto) { - $preg = "/[\s\x01-\x1F]*"; - for ($i=0; $i_protoRegexps[] = $preg; - } - - foreach ($this->cssKeywords as $css) { - $this->_cssRegexps[] = '/' . $css . '/i'; - } - return true; - } - - /** - * Handles the writing of attributes - called from $this->_openHandler() - * - * @param array $attrs array of attributes $name => $value - * @return boolean - * @access private - */ - function _writeAttrs ($attrs) - { - if (is_array($attrs)) { - foreach ($attrs as $name => $value) { - - $name = strtolower($name); - - if (strpos($name, 'on') === 0) { - continue; - } - if (strpos($name, 'data') === 0) { - continue; - } - if (in_array($name, $this->attributes)) { - continue; - } - if (!preg_match("/^[a-z0-9]+$/i", $name)) { - if (!in_array($name, $this->attributesNS)) - { - continue; - } - } - - if (($value === TRUE) || (is_null($value))) { - $value = $name; - } - - if ($name == 'style') { - - // removes insignificant backslahes - $value = str_replace("\\", '', $value); - - // removes CSS comments - while (1) - { - $_value = preg_replace("!/\*.*?\*/!s", '', $value); - if ($_value == $value) break; - $value = $_value; - } - - // replace all & to & - $value = str_replace('&', '&', $value); - $value = str_replace('&', '&', $value); - - foreach ($this->_cssRegexps as $css) { - if (preg_match($css, $value)) { - continue 2; - } - } - foreach ($this->_protoRegexps as $proto) { - if (preg_match($proto, $value)) { - continue 2; - } - } - } - - $tempval = preg_replace('/&#(\d+);?/me', "chr('\\1')", $value); //"' - $tempval = preg_replace('/&#x([0-9a-f]+);?/mei', "chr(hexdec('\\1'))", $tempval); - - if ((in_array($name, $this->protocolAttributes)) && - (strpos($tempval, ':') !== false)) - { - if ($this->protocolFiltering == 'black') { - foreach ($this->_protoRegexps as $proto) { - if (preg_match($proto, $tempval)) continue 2; - } - } else { - $_tempval = explode(':', $tempval); - $proto = $_tempval[0]; - if (!in_array($proto, $this->whiteProtocols)) { - continue; - } - } - } - - $value = str_replace("\"", """, $value); - $this->_xhtml .= ' ' . $name . '="' . $value . '"'; - } - } - return true; - } - - /** - * Opening tag handler - called from HTMLSax - * - * @param object $parser HTML Parser - * @param string $name tag name - * @param array $attrs tag attributes - * @return boolean - * @access private - */ - function _openHandler(&$parser, $name, $attrs) - { - $name = strtolower($name); - - if (in_array($name, $this->deleteTagsContent)) { - array_push($this->_dcStack, $name); - $this->_dcCounter[$name] = isset($this->_dcCounter[$name]) ? $this->_dcCounter[$name]+1 : 1; - } - if (count($this->_dcStack) != 0) { - return true; - } - - if (in_array($name, $this->deleteTags)) { - return true; - } - - if (!preg_match("/^[a-z0-9]+$/i", $name)) { - if (preg_match("!(?:\@|://)!i", $name)) { - $this->_xhtml .= '<' . $name . '>'; - } - return true; - } - - if (in_array($name, $this->singleTags)) { - $this->_xhtml .= '<' . $name; - $this->_writeAttrs($attrs); - $this->_xhtml .= ' />'; - return true; - } - - // TABLES: cannot open table elements when we are not inside table - if ((isset($this->_counter['table'])) && ($this->_counter['table'] <= 0) - && (in_array($name, $this->tableTags))) - { - return true; - } - - // PARAGRAPHS: close paragraph when closeParagraph tags opening - if ((in_array($name, $this->closeParagraph)) && (in_array('p', $this->_stack))) { - $this->_closeHandler($parser, 'p'); - } - - // LISTS: we should close
  • if
  • of the same level opening - if ($name == 'li' && count($this->_liStack) && - $this->_listScope == $this->_liStack[count($this->_liStack)-1]) - { - $this->_closeHandler($parser, 'li'); - } - - // LISTS: we want to know on what nesting level of lists we are - if (in_array($name, $this->listTags)) { - $this->_listScope++; - } - if ($name == 'li') { - array_push($this->_liStack, $this->_listScope); - } - - $this->_xhtml .= '<' . $name; - $this->_writeAttrs($attrs); - $this->_xhtml .= '>'; - array_push($this->_stack,$name); - $this->_counter[$name] = isset($this->_counter[$name]) ? $this->_counter[$name]+1 : 1; - return true; - } - - /** - * Closing tag handler - called from HTMLSax - * - * @param object $parsers HTML parser - * @param string $name tag name - * @return boolean - * @access private - */ - function _closeHandler(&$parser, $name) - { - - $name = strtolower($name); - - if (isset($this->_dcCounter[$name]) && ($this->_dcCounter[$name] > 0) && - (in_array($name, $this->deleteTagsContent))) - { - while ($name != ($tag = array_pop($this->_dcStack))) { - $this->_dcCounter[$tag]--; - } - - $this->_dcCounter[$name]--; - } - - if (count($this->_dcStack) != 0) { - return true; - } - - if ((isset($this->_counter[$name])) && ($this->_counter[$name] > 0)) { - while ($name != ($tag = array_pop($this->_stack))) { - $this->_closeTag($tag); - } - - $this->_closeTag($name); - } - return true; - } - - /** - * Closes tag - * - * @param string $tag tag name - * @return boolean - * @access private - */ - function _closeTag($tag) - { - if (!in_array($tag, $this->noClose)) { - $this->_xhtml .= ''; - } - - $this->_counter[$tag]--; - - if (in_array($tag, $this->listTags)) { - $this->_listScope--; - } - - if ($tag == 'li') { - array_pop($this->_liStack); - } - return true; - } - - /** - * Character data handler - called from HTMLSax - * - * @param object $parser HTML parser - * @param string $data textual data - * @return boolean - * @access private - */ - function _dataHandler(&$parser, $data) - { - if (count($this->_dcStack) == 0) { - $this->_xhtml .= $data; - } - return true; - } - - /** - * Escape handler - called from HTMLSax - * - * @param object $parser HTML parser - * @param string $data comments or other type of data - * @return boolean - * @access private - */ - function _escapeHandler(&$parser, $data) - { - return true; - } - - /** - * Returns the XHTML document - * - * @return string Processed (X)HTML document - * @access public - */ - function getXHTML () - { - while ($tag = array_pop($this->_stack)) { - $this->_closeTag($tag); - } - - return $this->_xhtml; - } - - /** - * Clears current document data - * - * @return boolean - * @access public - */ - function clear() - { - $this->_xhtml = ''; - return true; - } - - /** - * Main parsing fuction - * - * @param string $doc HTML document for processing - * @return string Processed (X)HTML document - * @access public - */ - function parse($doc) - { - - // Save all '<' symbols - $doc = preg_replace("/<(?=[^a-zA-Z\/\!\?\%])/", '<', $doc); - - // Web documents shouldn't contains \x00 symbol - $doc = str_replace("\x00", '', $doc); - - // Opera6 bug workaround - $doc = str_replace("\xC0\xBC", '<', $doc); - - // UTF-7 encoding ASCII decode - $doc = $this->repackUTF7($doc); - - // Instantiate the parser - $parser= new XML_HTMLSax3(); - - // Set up the parser - $parser->set_object($this); - - $parser->set_element_handler('_openHandler','_closeHandler'); - $parser->set_data_handler('_dataHandler'); - $parser->set_escape_handler('_escapeHandler'); - - $parser->parse($doc); - - return $this->getXHTML(); - - } - - - /** - * UTF-7 decoding fuction - * - * @param string $str HTML document for recode ASCII part of UTF-7 back to ASCII - * @return string Decoded document - * @access private - */ - function repackUTF7($str) - { - return preg_replace_callback('!\+([0-9a-zA-Z/]+)\-!', array($this, 'repackUTF7Callback'), $str); - } - - /** - * Additional UTF-7 decoding fuction - * - * @param string $str String for recode ASCII part of UTF-7 back to ASCII - * @return string Recoded string - * @access private - */ - function repackUTF7Callback($str) - { - $str = base64_decode($str[1]); - $str = preg_replace_callback('/^((?:\x00.)*)((?:[^\x00].)+)/', array($this, 'repackUTF7Back'), $str); - return preg_replace('/\x00(.)/', '$1', $str); - } - - /** - * Additional UTF-7 encoding fuction - * - * @param string $str String for recode ASCII part of UTF-7 back to ASCII - * @return string Recoded string - * @access private - */ - function repackUTF7Back($str) - { - return $str[1].'+'.rtrim(base64_encode($str[2]), '=').'-'; - } -} - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * c-hanging-comment-ender-p: nil - * End: - */ - -?>