CMS Modul Updates

News Modul Erstversion
This commit is contained in:
Andreas Österreicher
2011-06-21 09:02:50 +00:00
parent e36199a957
commit 0409ba0275
15 changed files with 953 additions and 74 deletions
+63
View File
@@ -0,0 +1,63 @@
<?php
/* Copyright (C) 2011 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
*
*/
require_once('../config/cis.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/sprache.class.php');
if(isset($_GET['sprache']))
{
$sprache = new sprache();
if($sprache->load($_GET['sprache']))
setSprache($_GET['sprache']);
else
die('Sprache invalid');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Sprache Umschalten</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">
</head>
<body>
<table class="tabcontent">
<tr>
<td>
<?php
echo 'Aktuelle Sprache: '.getSprache();
echo '<br><br>Sprache wechseln:';
$sprache = new sprache();
$sprache->getAll(true);
foreach($sprache->result as $row)
{
echo ' <a href="sprache.php?sprache='.$row->sprache.'" title="'.$row->sprache.'"><img src="../cms/image.php?src=flag&sprache='.$row->sprache.'" alt="'.$row->sprache.'"></a>';
}
?>
</td>
</tr>
</table>
</body>
</html>
+28 -8
View File
@@ -63,6 +63,7 @@ $berechtigte_oe = $rechte->getOEkurzbz('basis/cms')
{
mode : "textareas",
theme : "advanced",
language : "de",
file_browser_callback: "FHCFileBrowser",
plugins : "spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,inlinepopups,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras",
@@ -113,6 +114,7 @@ $action = isset($_GET['action'])?$_GET['action']:'';
$method = isset($_GET['method'])?$_GET['method']:null;
$message = '';
$submenu_depth=0;
$datum_obj = new datum();
//Inhalt Speichern
if(isset($_POST['XSDFormPrinter_XML']))
@@ -191,9 +193,14 @@ if(!is_null($method))
if($content->save())
{
$message .= '<span class="ok">Eintrag wurde erfolgreich angelegt</span>';
$action='prefs';
$content_id=$content->content_id;
if($content->saveContentSprache())
{
$message .= '<span class="ok">Eintrag wurde erfolgreich angelegt</span>';
$action='prefs';
$content_id=$content->content_id;
}
else
$message .= '<span class="error">'.$content->errormsg.'</span>';
}
else
$message .= '<span class="error">'.$content->errormsg.'</span>';
@@ -328,7 +335,12 @@ if(!is_null($method))
$content->updatevon=$user;
if($content->save())
$message.='<span class="ok">Daten erfolgreich gespeichert</span>';
{
if($content->saveContentSprache())
$message.='<span class="ok">Daten erfolgreich gespeichert</span>';
else
$message.='<span class="error">'.$content->errormsg.'</span>';
}
else
$message.='<span class="error">'.$content->errormsg.'</span>';
}
@@ -608,8 +620,16 @@ else
$menu='content';
}
$rootcontent = new content();
$rootcontent->getRootContent();
if($menu=='news')
{
$rootcontent = new content();
$rootcontent->getNews();
}
else
{
$rootcontent = new content();
$rootcontent->getRootContent();
}
foreach($rootcontent->result as $row)
{
@@ -626,7 +646,7 @@ foreach($rootcontent->result as $row)
if($content->template_kurzbz=='news')
{
$output.= '<td>';
$output.= drawmenulink($row->content_id, $content->titel.' '.$content->insertamum, $content->oe_kurzbz);
$output.= drawmenulink($row->content_id, mb_substr($content->titel,0,15).' '.$datum_obj->formatDatum($content->insertamum,'d.m.Y'), $content->oe_kurzbz);
$output.= '</td>';
}
@@ -653,7 +673,7 @@ echo '</table>';
echo '</td><td valign="top">';
//Editieren
if(!is_null($content_id))
if(!is_null($content_id) && $content_id!='')
{
echo '<h2>Content ID: '.$content_id.' | Version:'.$version.' | Sprache:'.$sprache.'</h2>';
$content = new content();
+4 -4
View File
@@ -25,16 +25,16 @@ require_once('../include/dms.class.php');
if(!isset($_GET['id']))
die('ID muss uebergeben werden');
if(!isset($_GET['version']))
die('Version muss uebergeben werden');
//if(!isset($_GET['version']))
// die('Version muss uebergeben werden');
$id = $_GET['id'];
$version = $_GET['version'];
$version = isset($_GET['version'])?$_GET['version']:null;
if(!is_numeric($id))
die('ID ist ungueltig');
if(!is_numeric($version))
if($version!='' && !is_numeric($version))
die('Version ist ungueltig');
$doc = new dms();
+234 -17
View File
@@ -20,36 +20,70 @@
* Karl Burkhart <karl.burkhart@technikum-wien.at>.
*/
/**
* Laedt den Content und das zugeordnete Template aus der Datenbank und
* zeigt diese an.
* Laedt die News und zeigt diese an
*
* Wenn kein Parameter uebergeben wird, werden nur die allgemeinen News angezeigt
* Wenn ein Studiengang uebergeben wird, werden rechts neben den News Studiengangsdetails angezeigt
*
* Parameter:
* stg_kz Studiengangskennzahl
* semester Semester
* edit Edit Buttons anzeigen
*
*/
require_once('../config/cis.config.inc.php');
require_once('../include/content.class.php');
require_once('../include/template.class.php');
require_once('../include/functions.inc.php');
require_once('../include/news.class.php');
require_once('../include/kontakt.class.php');
require_once('../include/benutzerfunktion.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/mitarbeiter.class.php');
require_once('../include/datum.class.php');
require_once('../include/phrasen.class.php');
$version = (isset($_GET['version'])?$_GET['version']:null);
$sprache = (isset($_GET['sprache'])?$_GET['sprache']:getSprache());
$sichtbar = !isset($_GET['sichtbar']);
$sprache = getSprache();
$datum_obj = new datum();
//XML Content laden
$content = new content();
$db = new basis_db();
$studiengang_kz = (isset($_GET['studiengang_kz'])?$_GET['studiengang_kz']:0);
$semester = (isset($_GET['semester'])?$_GET['semester']:null);
$qry = "SELECT content FROM campus.tbl_content JOIN campus.tbl_contentsprache USING(content_id) WHERE tbl_content.template_kurzbz='news'";
$content = '<?xml version="1.0" encoding="UTF-8"?><content>';
if($result = $db->db_query($qry))
$editable = isset($_GET['edit']);
$news = new news();
$news->getnews(MAXNEWSALTER, $studiengang_kz, $semester, false, null, MAXNEWS);
$xml = '<?xml version="1.0" encoding="UTF-8"?><content>';
foreach($news->result as $row)
{
while($row = $db->db_fetch_object($result))
{
$content .=$row->content;
}
$content = new content();
$content->getContent($row->content_id, $sprache,null, true, true);
//das Datum des News Eintrages ist nicht im XML enthalten, es muss extra hinzugefuegt werden
$datum = '<datum><![CDATA['.$datum_obj->formatDatum($row->datum,'d.m.Y').']]></datum>';
//Wenn der Parameter edit uebergeben wird, dann wird neben dem Datum ein Link zum Editieren des Eintrags angezeigt
if($editable)
$id = '<news_id><![CDATA['.$row->news_id.']]></news_id>';
else
$id='';
$xml .= mb_substr($content->content,0,mb_strlen($content->content)-7).$datum.$id.mb_substr($content->content,-7);
//$xml .= $content->content;
}
$content .= '</content>';
//echo $content;
$XML = new DOMDocument();
$XML->loadXML($content);
if($studiengang_kz!=0)
$xml.=getStgContent($studiengang_kz, $semester, $sprache);
$xml .= '</content>';
$doc = new DOMDocument();
$doc->loadXML($xml);
//XSLT Vorlage laden
$template = new template();
@@ -63,5 +97,188 @@ $xsltemplate->loadXML($template->xslt_xhtml);
$processor = new XSLTProcessor();
$processor->importStylesheet($xsltemplate);
echo $processor->transformToXML($XML);
echo $processor->transformToXML($doc);
/**
* Liefert ein XML mit den Details eines Studiengangs
* welche dann neben den News angezeigt werden
*
* @param $studiengang_kz
* @param $semester
* @param $sprache
*/
function getStgContent($studiengang_kz, $semester, $sprache)
{
$p = new phrasen($sprache);
$xml = '<stg_extras>';
$studiengang = new studiengang();
$studiengang->load($studiengang_kz);
//Studiengangsleitung
$stg_oe_obj = new studiengang();
$stgl = $stg_oe_obj->getLeitung($studiengang_kz);
$xml.='<stg_header><![CDATA['.$p->t('global/studiengangsmanagement').']]></stg_header>';
$xml.='<stg_ltg_name><![CDATA['.$p->t('global/studiengangsleitung').']]></stg_ltg_name>';
if(count($stgl)>0)
{
foreach ($stgl as $uid)
{
$row_course_leader = new mitarbeiter($uid);
$xml.='<stg_ltg>';
$xml.='<name><![CDATA['.$row_course_leader->titelpre.' '.$row_course_leader->vorname.' '.$row_course_leader->nachname.' '.$row_course_leader->titelpost.']]></name>';
if(isset($row_course_leader) && $row_course_leader->uid != "")
{
$xml.='<email><![CDATA['.$row_course_leader->uid.'@'.DOMAIN.']]></email>';
}
if(isset($row_course_leader) && $row_course_leader->telefonklappe != "")
{
$hauptnummer='';
if($row_course_leader->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$row_course_leader->telefonklappe.']]></telefon>';
}
$xml.='</stg_ltg>';
}
}
//geschaeftsf. Leitung auselesen
$xml.='<gf_ltg_name><![CDATA['.$p->t('global/geschaeftsfuehrendeltg').']]></gf_ltg_name>';
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('gLtg', $studiengang->oe_kurzbz);
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='')
{
$xml.='<gf_ltg>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
$xml.='</gf_ltg>';
}
}
//Studiengangsleiter Stellvertreter auselesen
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('stvLtg', $studiengang->oe_kurzbz);
$xml.='<stv_ltg_name><![CDATA['.$p->t('global/stellvertreter').']]></stv_ltg_name>';
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='')
{
$xml.='<stv_ltg>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
$xml.='</stv_ltg>';
}
}
//Assistenz
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('ass', $studiengang->oe_kurzbz);
$xml.='<ass_name><![CDATA['.$p->t('global/sekretariat').']]></ass_name>';
foreach($benutzerfkt->result as $row)
{
$ma = new mitarbeiter();
$ma->load($row->uid);
if($ma->uid!='')
{
$xml.='<ass>';
$xml.='<name><![CDATA['.$ma->titelpre.' '.$ma->vorname.' '.$ma->nachname.' '.$ma->titelpost.']]></name>';
$xml.='<email><![CDATA['.$ma->uid.'@'.DOMAIN.']]></email>';
if($ma->telefonklappe != '')
{
if($ma->standort_id!='')
{
$kontakt = new kontakt();
$kontakt->loadFirmaKontakttyp($row_course_leader->standort_id, 'telefon');
$hauptnummer = $kontakt->kontakt;
}
$xml.= '<telefon><![CDATA['.$hauptnummer.' - '.$ma->telefonklappe.']]></telefon>';
}
$xml.='</ass>';
}
}
//Zusatzinfo (Oeffnungszeiten etc)
$xml.='<zusatzinfo><![CDATA['.$studiengang->zusatzinfo_html.']]></zusatzinfo>';
//Studentenvertreter
$benutzerfkt = new benutzerfunktion();
$benutzerfkt->getBenutzerFunktionen('stdv', $studiengang->oe_kurzbz);
$xml.='<stdv_name><![CDATA['.$p->t('global/studentenvertreter').']]></stdv_name>';
foreach($benutzerfkt->result as $row)
{
$bn = new benutzer();
$bn->load($row->uid);
if($bn->uid!='')
{
$xml.='<stdv>';
$xml.='<name><![CDATA['.$bn->titelpre.' '.$bn->vorname.' '.$bn->nachname.' '.$bn->titelpost.']]></name>';
$xml.='<email><![CDATA['.$bn->uid.'@'.DOMAIN.']]></email>';
$xml.='</stdv>';
}
}
if(CIS_EXT_MENU)
{
$xml.='<cis_ext_menu>
<lehrziele_name><![CDATA['.$p->t('global/lehrziele').']]></lehrziele_name>
<download_name><![CDATA['.$p->t('global/allgemeinerdownload').']]></download_name>
<newsgroup_name><![CDATA['.$p->t('global/newsgroups').']]></newsgroup_name>
<kurzbz><![CDATA['.strtolower($studiengang->kuerzel).']]></kurzbz>
<kurzbzlang><![CDATA['.strtolower($studiengang->kurzbzlang).']]></kurzbzlang>
</cis_ext_menu>';
}
$xml.='</stg_extras>';
return $xml;
}
?>
+439
View File
@@ -0,0 +1,439 @@
<?php
/* Copyright (C) 2011 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
*/
require_once('../config/cis.config.inc.php');
require_once('../include/functions.inc.php');
require_once('../include/benutzerberechtigung.class.php');
require_once('../include/news.class.php');
require_once('../include/content.class.php');
require_once('../include/phrasen.class.php');
require_once('../include/studiengang.class.php');
require_once('../include/datum.class.php');
$uid = get_uid();
$sprache = getSprache();
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('basis/news'))
die('Sie haben keine Berechtigung für diese Seite');
$p = new phrasen($sprache);
if(isset($_GET['studiengang_kz']))
$studiengang_kz=$_GET['studiengang_kz'];
else
$studiengang_kz='0';
if(isset($_GET['semester']))
$semester = $_GET['semester'];
else
$semester = null;
$news_id = (isset($_REQUEST['news_id'])?$_REQUEST['news_id']:null);
$datum_obj = new datum();
//ToDo: markieren des richtigen Tabs
$tabselect=0;
$content = new content();
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../skin/style.css.php" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="../skin/styles/jquery.css" type="text/css">
<link rel="stylesheet" href="../skin/styles/jquery-ui.css" type="text/css">
<script src="../include/js/jquery.js" type="text/javascript"></script>
<script src="../include/js/jquery-ui.js" type="text/javascript"></script>
<script type="text/javascript" src="../include/tiny_mce/tiny_mce.js"></script>
<title>'.$p->t('news/newsverwaltung').'</title>
<script language="Javascript">
$(document).ready(function() {
$("#tabs").tabs();
$( "#tabs" ).tabs( "option", "selected", '.$tabselect.');
})
tinyMCE.init
(
{
mode : "textareas",
theme : "advanced",
language : "de",
file_browser_callback: "FHCFileBrowser",
plugins : "spellchecker,pagebreak,style,layer,table,advhr,advimage,advlink,inlinepopups,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras",
// Theme options
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,link,unlink,image,|,bullist,formatselect,fontsizeselect",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "center",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true,
force_br_newlines : true,
force_p_newlines : false,
forced_root_block : ""
}
);
function FHCFileBrowser(field_name, url, type, win)
{
cmsURL = "'.APP_ROOT.'cms/tinymce_dms.php?type="+type;
tinyMCE.activeEditor.windowManager.open({
file: cmsURL,
title : "FHComplete File Browser",
width: 750,
height: 550,
resizable: "yes",
close_previous: "no",
scrollbars: "yes",
popup_css : false
},{
window: win,
input: field_name
});
return false;
}
</script>
</head>
<body>';
if(isset($_GET['action']) && $_GET['action']=='add_uebersetzung')
{
$news = new news();
$news->load($_GET['news_id']);
$content = new content();
$content->getContent($news->content_id);
$content->new = true;
$content->sichtbar=true;
$content->sprache=$_GET['lang'];
$content->insertvon = $uid;
$content->insertamum = date('Y-m-d H:i:s');
$content->updatevon = $uid;
$content->updateamum = date('Y-m-d H:i:s');
$content->reviewvon='';
$content->reviewamum='';
$content->gesperrt_uid='';
if($content->saveContentSprache())
echo '<span class="ok">Eintrag wurde erfolgreich angelegt</span>';
else
echo '<span class="ok">'.$content->errormsg.'</span>';
}
if(isset($_GET['action']) && $_GET['action']=='delete')
{
if(!$rechte->isBerechtigt('basis/news',null, 'suid'))
die('Sie haben keine Berechtigung zum Löschen von Einträgen');
if(isset($_GET['news_id']) && is_numeric($_GET['news_id']))
{
$news_id = $_GET['news_id'];
$news = new news();
if($news->delete($news_id))
{
echo '<span class="ok">News wurde erfolgreich gelöscht</span>';
$news_id='';
}
else
{
echo '<span class="error">'.$news->errormsg.'</span>';
}
}
else
die('NewsID ist ungueltig');
}
if(isset($_POST['save']))
{
$news_id = $_POST['news_id'];
$news = new news();
if($news_id!='')
{
$news->load($news_id);
$news->new=false;
}
else
{
$news->new = true;
$news->uid = $uid;
$news->insertamum = date('Y-m-d H:i:s');
$news->insertvon = $uid;
}
$news->studiengang_kz=$_POST['studiengang_kz'];
$news->semester = $_POST['semester'];
$news->updateamum=date('Y-m-d H:i:s');
$news->updatevon = $uid;
$news->datum = $datum_obj->formatDatum($_POST['datum'],'Y-m-d');
$news->datum_bis = $datum_obj->formatDatum($_POST['datum_bis'],'Y-m-d');
if($news->content_id=='')
{
$studiengang = new studiengang();
$studiengang->load($_POST['studiengang_kz']);
$content = new content();
$content->template_kurzbz='news';
$content->oe_kurzbz=$studiengang->oe_kurzbz;
$content->aktiv=true;
$content->menu_open=false;
$content->insertamum=date('Y-m-d H:i:s');
$content->insertvon = $uid;
if(!$content->save(true))
die($content->errormsg);
$news->content_id = $content->content_id;
}
if(!$news->save())
die($news->errormsg);
$news_id = $news->news_id;
//ContentSprache
$sprachen = array(DEFAULT_LANGUAGE);
foreach($_POST as $key=>$value)
if(mb_strstr($key,'contentsprache_id_'))
$sprachen[] = mb_substr($key, strlen('contentsprache_id_'));
$sprachen = array_unique($sprachen);
foreach($sprachen as $lang)
{
$content = new content();
if(isset($_POST['contentsprache_id_'.$lang]) && $_POST['contentsprache_id_'.$lang]!='')
{
$content->loadContentSprache($_POST['contentsprache_id_'.$lang]);
$content->new = false;
}
else
{
$content->insertamum = date('Y-m-d H:i:s');
$content->insertvon = $uid;
$content->sichtbar=true;
$content->version=1;
$content->content_id=$news->content_id;
$content->new = true;
$content->sprache = $lang;
}
$xml = '<news>';
$xml.='<verfasser><![CDATA['.$_POST['verfasser_'.$lang].']]></verfasser>';
$xml.='<betreff><![CDATA['.$_POST['betreff_'.$lang].']]></betreff>';
$xml.='<text><![CDATA['.$_POST['text_'.$lang].']]></text>';
$xml.='</news>';
$content->content = $xml;
$content->updateamum = date('Y-m-d H:i:s');
$content->updatevon = $uid;
$content->titel = $_POST['betreff_'.$lang];
$content->saveContentSprache();
}
}
$sprachen = array(DEFAULT_LANGUAGE);
$news = new news();
if($news_id!='')
{
$news->load($news_id);
$sprachen = $content->getLanguages($news->content_id);
$studiengang_kz = $news->studiengang_kz;
$semester = $news->semester;
}
if($studiengang_kz=='0' && $semester=='')
$type=$p->t('news/allgemein');
elseif($studiengang_kz=='0' && $semester=='0')
$type=$p->t('news/freifach');
else
$type=$p->t('news/studiengang');
echo '<h1>'.$p->t('news/newsverwaltung').' - '.$type.'</h1>';
echo '<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
<input type="hidden" name="news_id" value="'.$news_id.'">
<table>
<tr>
<td>
<table>
<tr>
<td>'.$p->t('news/sichtbarab').'</td>
<td><input type="text" name="datum" size="10" value="'.($news->datum!=''?$datum_obj->formatDatum($news->datum,'d.m.Y'):date('d.m.Y')).'"></td>
</tr>
<tr>
<td>'.$p->t('news/sichtbarbis').'</td>
<td><input type="text" name="datum_bis" size="10" value="'.$datum_obj->formatDatum($news->datum_bis,'d.m.Y').'"></td>
</tr>
</table>
</td>
<td>';
//DropDown fuer Studiengang und Semester anzeigen
if($studiengang_kz!='0')
{
$studiengang = new studiengang();
$studiengang->getAll('typ, kurzbz', false);
echo '<table>
<tr>
<td>'.$p->t('global/studiengang').'</td>
<td>
<SELECT name="studiengang_kz">';
foreach($studiengang->result as $row)
{
if($row->studiengang_kz==$studiengang_kz)
$selected = 'selected';
else
$selected = '';
echo '<OPTION value="'.$row->studiengang_kz.'" '.$selected.'>'.$row->kuerzel.' ('.$row->kurzbzlang.')</OPTION>';
}
echo ' </SELECT>
</td>
</tr>';
echo '<tr>
<td>'.$p->t('global/semester').'</td>
<td>
<SELECT name="semester">';
echo '<OPTION value="0">'.$p->t('news/allesemester').'</OPTION>';
for($i=1;$i<=8;$i++)
{
if($i==$semester)
$selected='selected';
else
$selected='';
echo '<OPTION value="'.$i.'" '.$selected.'>'.$p->t('news/xsemester',array($i)).'</OPTION>';
}
echo '</SELECT>
</td>
</tr>
</table>
';
}
else
{
echo '<input type="hidden" name="studiengang_kz" value="'.$studiengang_kz.'">
<input type="hidden" name="semester" value="'.$semester.'">';
}
echo '</td></tr></table>';
echo '<div id="tabs" style="font-size:80%;">
<ul class="css-tabs">';
foreach($sprachen as $lang)
{
echo '<li><a href="#'.$lang.'">'.$lang.'</a></li>';
}
if($news->content_id!='')
{
echo '<li><a href="#add" title="'.$p->t('news/uebersetzen').'">+</a></li>';
}
echo '</ul>';
foreach($sprachen as $lang)
{
$verfasser='';
$betreff='';
$text='';
if($news->content_id!='')
{
$content->getContent($news->content_id, $lang, null, null, false);
$xml_inhalt = new DOMDocument();
if($content->content!='')
{
$xml_inhalt->loadXML($content->content);
}
if($xml_inhalt->getElementsByTagName('verfasser')->item(0))
$verfasser = $xml_inhalt->getElementsByTagName('verfasser')->item(0)->nodeValue;
if($xml_inhalt->getElementsByTagName('betreff')->item(0))
$betreff = $xml_inhalt->getElementsByTagName('betreff')->item(0)->nodeValue;
if($xml_inhalt->getElementsByTagName('text')->item(0))
$text = $xml_inhalt->getElementsByTagName('text')->item(0)->nodeValue;
}
echo '<div id="'.$lang.'">';
echo '<input type="hidden" name="contentsprache_id_'.$lang.'" value="'.$content->contentsprache_id.'">';
echo '<table>
<tr>
<td>'.$p->t('news/verfasser').'</td>
<td><input type="text" name="verfasser_'.$lang.'" size="40" value="'.$verfasser.'"></td>
</tr>
<tr>
<td>'.$p->t('news/betreff').'</td>
<td><input type="text" name="betreff_'.$lang.'" size="40" value="'.$betreff.'"></td>
</tr>
<tr>
<td>'.$p->t('news/text').'</td>
<td><textarea name="text_'.$lang.'" rows="15" cols="80">'.$text.'</textarea></td>
</tr>
</table>';
echo '</div>';
}
//DropDown zum Anlegen von Uebersetzungen
if($news->content_id!='')
{
echo '<div id="add">';
$content = new content();
if(!$vorhandene_sprachen = $content->getLanguages($news->content_id))
die($content->errormsg);
$sprache_obj = new sprache();
$sprache_obj->getAll(true);
//Wenn noch nicht alle Uebersetzungen vorhanden sind,
//wird ein Formular zum Erstellen der Uebersetzung angezeigt.
if(count($vorhandene_sprachen)<count($sprache_obj->result))
{
echo $p->t('news/uebersetzunganlegen');
foreach($sprache_obj->result as $row)
{
if(!in_array($row->sprache, $vorhandene_sprachen))
echo '<br /><a href="'.$_SERVER['PHP_SELF'].'?news_id='.$news_id.'&action=add_uebersetzung&lang='.$row->sprache.'">'.$row->bezeichnung_arr[$sprache].'</a>';
}
}
else
{
echo '<br />'.$p->t('news/uebersetzungenvorhanden').'<br />';
}
echo ' </div>';
}
echo '</div><br />';
echo '<input type="submit" name="save" value="'.$p->t('global/speichern').'">';
echo '</form>';
// Newseintraege Anzeigen
echo '<hr>
<iframe src="news.php?studiengang_kz='.$studiengang_kz.'&semester='.$semester.'&edit=true" style="width:99%; height:100%;position:absolute;">';
echo '</body>
</html>';
?>
+4 -4
View File
@@ -1256,13 +1256,13 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
{
return $token;
}
// If it's a string (of maximum 255 characters)
elseif (ereg("^\"[^\"]{0,255}\"$",$token))
// If it's a string (of maximum 255 characters)
elseif (preg_match("/^\"[^\"]{0,255}\"$/",$token))
{
return $token;
}
// if it's a function call
elseif (eregi("^[A-Z0-9\xc0-\xdc\.]+$",$token) and ($this->_lookahead == "("))
elseif (preg_match("/^[A-Z0-9\xc0-\xdc\.]+$/i",$token) and ($this->_lookahead == "("))
{
return $token;
}
@@ -1362,7 +1362,7 @@ class Spreadsheet_Excel_Writer_Parser extends PEAR
function _expression()
{
// If it's a string return a string node
if (ereg("^\"[^\"]{0,255}\"$", $this->_current_token)) {
if (preg_match("/^\"[^\"]{0,255}\"$/", $this->_current_token)) {
$result = $this->_createTree($this->_current_token, '', '');
$this->_advance();
return $result;
+48 -18
View File
@@ -393,16 +393,7 @@ class content extends basis_db
$this->addslashes($this->insertvon).','.
$this->addslashes($this->insertamum).','.
($this->aktiv?'true':'false').','.
($this->menu_open?'true':'false').');'.
'INSERT INTO campus.tbl_contentsprache(content, sprache, content_id, version, sichtbar, insertamum, insertvon, titel) VALUES('.
$this->addslashes($this->content).','.
$this->addslashes($this->sprache).','.
"currval('campus.seq_content_content_id'),".
$this->addslashes($this->version).','.
($this->sichtbar?'true':'false').','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).','.
$this->addslashes($this->titel).');';
($this->menu_open?'true':'false').');';
}
else
{
@@ -413,24 +404,19 @@ class content extends basis_db
" oe_kurzbz=".$this->addslashes($this->oe_kurzbz).','.
" aktiv=".($this->aktiv?'true':'false').','.
" menu_open=".($this->menu_open?'true':'false').
" WHERE content_id='".addslashes($this->content_id)."';".
"UPDATE campus.tbl_contentsprache SET ".
" titel=".($this->addslashes($this->titel)).','.
" sichtbar=".($this->sichtbar?'true':'false').
" WHERE contentsprache_id='".addslashes($this->contentsprache_id)."';";
" WHERE content_id='".addslashes($this->content_id)."';";
}
if($this->db_query($qry))
{
if($new)
{
$qry = "SELECT currval('campus.seq_content_content_id') as content_id, currval('campus.seq_contentsprache') as contentsprache_id";
$qry = "SELECT currval('campus.seq_content_content_id') as content_id";
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->content_id = $row->content_id;
$this->contentsprache_id = $row->contentsprache_id;
$this->db_query('COMMIT;');
return true;
}
@@ -688,7 +674,9 @@ class content extends basis_db
FROM
campus.tbl_content
LEFT JOIN campus.tbl_contentchild USING(content_id)
WHERE content_id NOT IN (SELECT child_content_id FROM campus.tbl_contentchild WHERE child_content_id=tbl_content.content_id)
WHERE
tbl_content.template_kurzbz<>'news' AND
content_id NOT IN (SELECT child_content_id FROM campus.tbl_contentchild WHERE child_content_id=tbl_content.content_id)
) as a
ORDER BY sort";
@@ -718,7 +706,49 @@ class content extends basis_db
return false;
}
}
/**
* Laedt alle Content Eintraege die keine Childs von anderen Contenteintraegen sind
* @return boolean
*/
public function getNews()
{
$qry = "SELECT
*
FROM
campus.tbl_content
JOIN campus.tbl_news USING(content_id)
WHERE
tbl_news.datum>=now()-'2 month'::interval
ORDER BY datum DESC LIMIT 100";
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object($result))
{
$obj = new content();
$obj->content_id = $row->content_id;
$obj->template_kurzbz = $row->template_kurzbz;
$obj->oe_kurzbz = $row->oe_kurzbz;
$obj->updatevon = $row->updatevon;
$obj->updateamum = $row->updateamum;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$obj->aktiv = ($row->aktiv=='t'?true:false);
$obj->menu_open = ($row->menu_open=='t'?true:false);
$this->result[] = $obj;
}
return false;
}
else
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
/**
* Sortiert einen Menueeintrag nach oben
* @param $contentchild_id
+6 -2
View File
@@ -35,15 +35,19 @@ class XSDFormPrinter
*
* Erzeugt das Formular
* @param $xsd XSD File (nicht der Filename)
* @param $xml XML mit den Daten die vorausgefuellt werden sollen
*/
public function output($xsd, $xml)
{
$dom = new DOMDocument();
$dom->loadXML($xsd);
$this->xml_inhalt = new DOMDocument();
$this->xml_inhalt->loadXML($xml);
$this->xml_inhalt = new DOMDocument();
if($xml!='')
{
$this->xml_inhalt->loadXML($xml);
}
if($dom===false)
{
echo 'Failed to load XSD into DOM';
+12 -2
View File
@@ -4,7 +4,17 @@ $this->phrasen['global/institut']='Institut';
$this->phrasen['global/semester']='Semester';
$this->phrasen['global/studienzentrum']='Studienzentrum';
$this->phrasen['global/studiengangsleitung']='Studiengangsleitung';
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
$this->phrasen['global/lehrveranstaltung']='Lehrveranstaltung';
$this->phrasen['global/studiengangsmanagement']='Studiengangsmanagement';
$this->phrasen['global/geschaeftsfuehrendeltg']='geschäftsf. Leitung';
$this->phrasen['global/stellvertreter']='Stellvertreter';
$this->phrasen['global/sekretariat']='Sekretariat';
$this->phrasen['global/studentenvertreter']='Studentenvertreter';
$this->phrasen['global/lehrziele']='Lehrziele';
$this->phrasen['global/allgemeinerdownload']='Allgemeiner Download';
$this->phrasen['global/newsgroups']='Newsgroups';
$this->phrasen['global/speichern']='Speichern';
$this->phrasen['global/loeschen']='Löschen';
@@ -45,4 +55,4 @@ $this->phrasen['global/erfolgreichgespeichert']='Erfolgreich gespeichert';
$this->phrasen['global/erfolgreichgelöscht']='Erfolgreich gelöscht';
$this->phrasen['global/fehleraufgetreten']='Es ist ein Fehler aufgetreten';
$this->phrasen['global/emailgesendetan']='E-Mail gesendet an';
?>
?>
+18 -1
View File
@@ -3,4 +3,21 @@ $this->phrasen['news/verwaltungstools']='Verwaltungstools';
$this->phrasen['news/newsverwaltung']='Newsverwaltung';
$this->phrasen['news/neuereintrag']='Neuen Eintrag anlegen';
$this->phrasen['news/verfasser']='Verfasser';
?>
$this->phrasen['news/betreff']='Betreff';
$this->phrasen['news/text']='Text';
$this->phrasen['news/sichtbarab']='Datum';
$this->phrasen['news/sichtbarbis']='Sichtbar bis';
$this->phrasen['news/allgemein']='Allgemein';
$this->phrasen['news/freifach']='Freifach';
$this->phrasen['news/studiengang']='Studiengang';
$this->phrasen['news/uebersetzunganlegen']='Übersetzung anlegen in';
$this->phrasen['news/uebersetzen']='Übersetzen';
$this->phrasen['news/anlegen']='Anlegen';
$this->phrasen['news/uebersetzungenvorhanden']='Der Newseintrag existiert bereits in allen zugelassenen Sprachen';
$this->phrasen['news/allesemester']='Alle Semester';
$this->phrasen['news/xsemester']='%s. Semester';
?>
+11 -1
View File
@@ -6,6 +6,16 @@ $this->phrasen['global/studienzentrum']='Study Center';
$this->phrasen['global/studiengangsleitung']='Head of Department';
$this->phrasen['global/lehrveranstaltung']='Subject';
$this->phrasen['global/studiengangsmanagement']='Study Management';
$this->phrasen['global/geschaeftsfuehrendeltg']='business Leadership';
$this->phrasen['global/stellvertreter']='Deputy';
$this->phrasen['global/sekretariat']='Secretariat';
$this->phrasen['global/studentenvertreter']='Student Representatives';
$this->phrasen['global/lehrziele']='Teaching goals';
$this->phrasen['global/allgemeinerdownload']='Global Download';
$this->phrasen['global/newsgroups']='Newsgroups';
$this->phrasen['global/speichern']='Save';
$this->phrasen['global/loeschen']='Delete';
$this->phrasen['global/editieren']='Edit';
@@ -45,4 +55,4 @@ $this->phrasen['global/erfolgreichgespeichert']='Successfully saved';
$this->phrasen['global/erfolgreichgelöscht']='Successfully deleted';
$this->phrasen['global/fehleraufgetreten']='Error occured';
$this->phrasen['global/emailgesendetan']='E-Mail sent to';
?>
?>
+18 -1
View File
@@ -3,4 +3,21 @@ $this->phrasen['news/verwaltungstools']='Managementtools';
$this->phrasen['news/newsverwaltung']='Newsmanagement';
$this->phrasen['news/neuereintrag']='Create a new Entry';
$this->phrasen['news/verfasser']='Author';
?>
$this->phrasen['news/betreff']='Subject';
$this->phrasen['news/text']='Text';
$this->phrasen['news/sichtbarab']='Date';
$this->phrasen['news/sichtbarbis']='Visible until';
$this->phrasen['news/allgemein']='Global';
$this->phrasen['news/freifach']='Optional Subject';
$this->phrasen['news/studiengang']='Study Program';
$this->phrasen['news/uebersetzunganlegen']='Create Translation in';
$this->phrasen['news/uebersetzen']='Translate';
$this->phrasen['news/anlegen']='Create';
$this->phrasen['news/uebersetzungenvorhanden']='no more Translations available';
$this->phrasen['news/allesemester']='All Semesters';
$this->phrasen['news/xsemester']='Semester %s';
?>
+17 -2
View File
@@ -2560,6 +2560,22 @@ if(!$result = @$db->db_query('SELECT zgvmaster_name FROM public.tbl_preincoming
else
echo ' public.tbl_preincoming: Spalte zgvmaster_name hinzugefuegt!<br>';
}
if(!$result = @$db->db_query('SELECT content_id FROM campus.tbl_news LIMIT 1;'))
{
$qry = "ALTER TABLE campus.tbl_news ADD COLUMN content_id integer;
DROP TABLE campus.tbl_newssprache;
ALTER TABLE campus.tbl_news ADD CONSTRAINT fk_content_news FOREIGN KEY (content_id) REFERENCES campus.tbl_content (content_id) ON DELETE RESTRICT ON UPDATE CASCADE;
CREATE INDEX idx_contentsprache_sprache ON campus.tbl_contentsprache (sprache);
CREATE INDEX idx_contentsprache_version ON campus.tbl_contentsprache (version);
CREATE INDEX idx_contentsprache_content_id ON campus.tbl_contentsprache (content_id);";
if(!$db->db_query($qry))
echo '<strong>campus.tbl_news: '.$db->db_last_error().'</strong><br>';
else
echo 'campus.tbl_news: Spalte content_id hinzugefuegt, tbl_newssprache entfernt, div. Indizes hinzugefuegt!<br>';
}
echo '<br>';
$tabellen=array(
@@ -2599,8 +2615,7 @@ $tabellen=array(
"campus.tbl_legesamtnote" => array("student_uid","lehreinheit_id","note","benotungsdatum","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_lvgesamtnote" => array("lehrveranstaltung_id","studiensemester_kurzbz","student_uid","note","mitarbeiter_uid","benotungsdatum","freigabedatum","freigabevon_uid","bemerkung","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_lvinfo" => array("lehrveranstaltung_id","sprache","titel","lehrziele","lehrinhalte","methodik","voraussetzungen","unterlagen","pruefungsordnung","anmerkung","kurzbeschreibung","genehmigt","aktiv","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_news" => array("news_id","uid","studiengang_kz","fachbereich_kurzbz","semester","betreff","text","datum","verfasser","updateamum","updatevon","insertamum","insertvon","datum_bis"),
"campus.tbl_newssprache" => array("sprache","news_id","betreff","text","updateamum","updatevon","insertamum","insertvon"),
"campus.tbl_news" => array("news_id","uid","studiengang_kz","fachbereich_kurzbz","semester","betreff","text","datum","verfasser","updateamum","updatevon","insertamum","insertvon","datum_bis","content_id"),
"campus.tbl_notenschluessel" => array("lehreinheit_id","note","punkte"),
"campus.tbl_notenschluesseluebung" => array("uebung_id","note","punkte"),
"campus.tbl_paabgabetyp" => array("paabgabetyp_kurzbz","bezeichnung"),
+14 -6
View File
@@ -56,16 +56,24 @@ if($result = $db->db_query($qry))
$content->version = 1;
if($content->save(true))
{
$qry = "UPDATE campus.tbl_news SET content_id='".$content->content_id."' WHERE news_id='".$row->news_id."';";
if($db->db_query($qry))
if($content->saveContentSprache(true))
{
echo "ID $row->news_id angelegt<br>";
$ok++;
$qry = "UPDATE campus.tbl_news SET content_id='".$content->content_id."' WHERE news_id='".$row->news_id."';";
if($db->db_query($qry))
{
echo "ID $row->news_id angelegt<br>";
$ok++;
}
else
{
echo "News Update Failed $row->news_id<br>";
$fehler++;
}
}
else
{
echo "News Update Failed $row->news_id<br>";
echo "Content Sprache Update Failed $row->news_id<br>";
$fehler++;
}
}
+37 -8
View File
@@ -13,7 +13,14 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<td valign="top">
<h1>News</h1>
<div id="news">
<xsl:apply-templates select="content/news" />
<xsl:choose>
<xsl:when test="content/news">
<xsl:apply-templates select="content/news" />
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="news" />
</xsl:otherwise>
</xsl:choose>
</div>
</td>
<xsl:if test="content/stg_extras" >
@@ -33,7 +40,21 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<table width="100%">
<tr>
<td width="60%" align="left"><xsl:value-of select="betreff"/></td>
<td width="40%" align="right"><xsl:value-of select="verfasser"/> <span style="font-weight: normal"> ( <xsl:value-of select="datum"/> )</span></td>
<td width="40%" align="right">
<xsl:value-of select="verfasser"/>
<span style="font-weight: normal"> ( <xsl:value-of select="datum"/> )</span>
<xsl:if test="news_id">
<xsl:variable name="news_id" select="news_id"></xsl:variable>
<xsl:text> </xsl:text><a href="newsverwaltung.php?news_id={news_id}" target="content">edit</a>
<xsl:text> </xsl:text><a href="newsverwaltung.php?news_id={news_id}&amp;action=delete" target="content" onclick="return confdel();">delete</a>
<script type="text/javascript">
function confdel()
{
return confirm('Soll dieser Eintrag wirklich gelöscht werden?');
}
</script>
</xsl:if>
</td>
</tr>
</table>
</div>
@@ -44,34 +65,35 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<br />
</xsl:template>
<xsl:template match="stg_extras">
<h2><b>Studiengangsmanagement</b></h2>
<h2><b><xsl:value-of select="stg_header" /></b></h2>
<font face='Arial, Helvetica, sans-serif' size='2'>
<br />
Studiengangsleitung:<br />
<xsl:value-of select="stg_ltg_name" /><br />
<xsl:apply-templates select="stg_ltg" />
<br />
<xsl:if test="gf_ltg">
geschäftsf. Leitung:<br />
<xsl:value-of select="gf_ltg_name" /><br />
<xsl:apply-templates select="gf_ltg" />
<br />
</xsl:if>
<xsl:if test="stv_ltg">
Stellvertreter:<br />
<xsl:value-of select="stv_ltg_name" /><br />
<xsl:apply-templates select="stv_ltg" />
<br />
</xsl:if>
<xsl:if test="ass">
Sekretariat:<br />
<xsl:value-of select="ass_name" /><br />
<xsl:apply-templates select="ass" />
<br />
</xsl:if>
<xsl:value-of select="zusatzinfo" disable-output-escaping="yes"/>
<xsl:if test="stdv">
<br />
Studentenvertreter:<br />
<xsl:value-of select="stdv_name" /><br />
<xsl:apply-templates select="stdv" />
<br />
</xsl:if>
<xsl:apply-templates select="cis_ext_menu" />
</font>
</xsl:template>
@@ -107,4 +129,11 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="mail" select="email"></xsl:variable>
<a href="mailto:{mail}"><xsl:value-of select="name" /></a><br />
</xsl:template>
<xsl:template match="cis_ext_menu">
<xsl:variable name="kurzbz" select="kurzbz"></xsl:variable>
<xsl:variable name="kurzbzlang" select="kurzbzlang"></xsl:variable>
<img src="../skin/images/seperator.gif" /><xsl:text> </xsl:text><a href="../documents/{kurzbz}/lehrziele/" class="Item" target="_blank"><xsl:value-of select="lehrziele_name" /></a><br />
<img src="../skin/images/seperator.gif" /><xsl:text> </xsl:text><a href="../documents/{kurzbz}/download/" class="Item" target="_blank"><xsl:value-of select="download_name" /></a><br />
<img src="../skin/images/seperator.gif" /><xsl:text> </xsl:text><a href="news://news.technikum-wien.at/{kurzbzlang}" class="Item" target="_blank"><xsl:value-of select="newsgroup_name" /></a><br />
</xsl:template>
</xsl:stylesheet >