diff --git a/cis/menu.php b/cis/menu.php index 3930c4294..f1fb819d7 100644 --- a/cis/menu.php +++ b/cis/menu.php @@ -23,6 +23,9 @@ */ require_once('../config/cis.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/content.class.php'); +$sprache = getSprache(); ?> diff --git a/cms/admin.php b/cms/admin.php index 7606b102c..00c3da6df 100644 --- a/cms/admin.php +++ b/cms/admin.php @@ -19,6 +19,7 @@ * Andreas Oesterreicher and * Karl Burkhart . */ +session_start(); require_once('../config/cis.config.inc.php'); require_once('../include/content.class.php'); require_once('../include/template.class.php'); @@ -26,9 +27,11 @@ require_once('../include/functions.inc.php'); require_once('../include/sprache.class.php'); require_once('../include/gruppe.class.php'); require_once('../include/datum.class.php'); -require_once('../include/xsdformprinter/xsdformprinter.php'); +require_once('../include/mail.class.php'); +require_once('../include/benutzerfunktion.class.php'); require_once('../include/organisationseinheit.class.php'); require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/xsdformprinter/xsdformprinter.php'); require_once('../include/DifferenceEngine/DifferenceEngine.php'); $user = get_uid(); @@ -38,6 +41,8 @@ $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('basis/cms')) die('Sie haben keine Berechtigung fuer diese Seite'); + +$berechtigte_oe = $rechte->getOEkurzbz('basis/cms') ?> @@ -63,7 +68,7 @@ if(!$rechte->isBerechtigt('basis/cms')) 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,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontsizeselect", + theme_advanced_buttons1 : "code, bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontsizeselect", theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,|,forecolor,backcolor", theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,|,print,|,ltr,rtl,|,fullscreen", //theme_advanced_buttons4 : "insertfile,insertimage", @@ -71,7 +76,10 @@ if(!$rechte->isBerechtigt('basis/cms')) 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) @@ -123,12 +131,45 @@ if(!is_null($method)) { switch($method) { - case 'add_new_content': - $oe = new organisationseinheit(); - $oe->getAll(); - if(!isset($oe->result[0])) - die('Es ist keine Organisationseinheit vorhanden'); + case 'content_sperre': + if(!isset($_GET['contentsprache_id'])) + die('Falsche Parameteruebergabe'); + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + + $contentsprache_id=$_GET['contentsprache_id']; + if(isset($_POST['sperren'])) + { + $content = new content(); + if($content->sperren($contentsprache_id, $user)) + $message.='Eintrag gesperrt'; + else + $message.=''.$content->errormsg.''; + } + elseif(isset($_POST['freigeben'])) + { + $content = new content(); + if($content->freigeben($contentsprache_id, $user)) + $message.='Eintrag freigegeben'; + else + $message.=''.$content->errormsg.''; + } + else + { + $message.='Unbekannte Sperre'; + } + break; + case 'add_new_content': + if(!$rechte->isBerechtigt('basis/cms', null, 'sui')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + $template = new template(); $template->getAll(); if(!isset($template->result[0])) @@ -136,12 +177,14 @@ if(!is_null($method)) $content = new content(); $content->new = true; - $content->oe_kurzbz=$oe->result[0]->oe_kurzbz; + $content->oe_kurzbz=$berechtigte_oe[0]; $content->template_kurzbz=$template->result[0]->template_kurzbz; $content->titel = 'Neuer Eintrag'; + $content->aktiv=true; + $content->menu_open=true; $content->content = ''; $content->sichtbar=false; - $content->version='0'; + $content->version='1'; $content->sprache='German'; $content->insertvon = $user; $content->insertamum = date('Y-m-d H:i:s'); @@ -155,8 +198,77 @@ if(!is_null($method)) else $message .= ''.$content->errormsg.''; + break; + case 'add_uebersetzung': + if(!$rechte->isBerechtigt('basis/cms', null, 'sui')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + + $content = new content(); + $content->getContent($content_id); + + $content->new = true; + $content->sichtbar=false; + $content->sprache=$_POST['sprache']; + $content->insertvon = $user; + $content->insertamum = date('Y-m-d H:i:s'); + $content->updatevon = $user; + $content->updateamum = date('Y-m-d H:i:s'); + $content->reviewvon=''; + $content->reviewamum=''; + $content->gesperrt_uid=''; + + if($content->saveContentSprache()) + { + $message .= 'Eintrag wurde erfolgreich angelegt'; + $action='prefs'; + $sprache=$_POST['sprache']; + } + else + $message .= ''.$content->errormsg.''; + + break; + case 'add_newversion': + if(!$rechte->isBerechtigt('basis/cms', null, 'sui')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + + $content = new content(); + $content->getContent($content_id, $sprache); + $maxversion = $content->getMaxVersion($content_id, $content->sprache); + + $content->new = true; + $content->sichtbar=false; + $content->reviewvon=''; + $content->reviewamum=''; + $content->version=$maxversion+1; + $content->insertvon = $user; + $content->insertamum = date('Y-m-d H:i:s'); + $content->updatevon = $user; + $content->updateamum = date('Y-m-d H:i:s'); + $content->gesperrt_uid=''; + + if($content->saveContentSprache()) + { + $message .= 'Eintrag wurde erfolgreich angelegt'; + $action='prefs'; + $version = $content->version; + } + else + $message .= ''.$content->errormsg.''; + break; case 'rights_add_group': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + if(!isset($_POST['gruppe_kurzbz'])) die('Fehlender Parameter'); @@ -173,6 +285,12 @@ if(!is_null($method)) break; case 'rights_delete_group': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + if(!isset($_GET['gruppe_kurzbz'])) die('Fehlender Parameter'); @@ -184,10 +302,18 @@ if(!is_null($method)) break; case 'prefs_save': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + $content = new content(); $titel = $_POST['titel']; $oe_kurzbz=$_POST['oe_kurzbz']; $sichtbar=isset($_POST['sichtbar']); + $aktiv=isset($_POST['aktiv']); + $menu_open=isset($_POST['menu_open']); $template_kurzbz = $_POST['template_kurzbz']; if($content->getContent($content_id, $sprache, $version)) @@ -195,6 +321,8 @@ if(!is_null($method)) $content->titel = $titel; $content->oe_kurzbz = $oe_kurzbz; $content->sichtbar = $sichtbar; + $content->aktiv = $aktiv; + $content->menu_open = $menu_open; $content->template_kurzbz = $template_kurzbz; $content->updateamum=date('Y-m-d H:i:s'); $content->updatevon=$user; @@ -207,7 +335,167 @@ if(!is_null($method)) else $message.=''.$content->errormsg.''; break; + case 'prefs_reviewed': + $bf = new benutzerfunktion(); + if($bf->benutzerfunktion_exists($user, 'review')) + { + $content = new content(); + $content->getContent($content_id, $sprache, $version); + + $content->reviewamum = date('Y-m-d H:i:s'); + $content->reviewvon = $user; + + if($content->saveContentSprache(false)) + $message.='Erfolgreich reviewed'; + else + $message.=''.$content->errormsg.''; + } + else + { + $message.='Sie dürfen kein Review durchführen'; + } + break; + case 'prefs_requestreview': + $content = new content(); + $content->getContent($content_id, $sprache, $version); + + $oe = new organisationseinheit(); + $oe_arr = $oe->getParents($content->oe_kurzbz); + + foreach($oe_arr as $organisationseinheit) + { + echo $organisationseinheit; + $fkt = new benutzerfunktion(); + $fkt->getBenutzerFunktionen('review', $organisationseinheit); + if(count($fkt->result)>0) + break; + } + + if(count($fkt->result)==0) + $fkt->getBenutzerFunktionen('review'); + $to=''; + foreach($fkt->result as $row) + { + if($to!='') + $to.=','; + $to .= $row->uid.'@'.DOMAIN; + } + if($to!='') + { + $from = 'no-reply@'.DOMAIN; + $subject = 'CMS Review Request'; + $text = "Dies ist eine automatisch generierte E-Mail.\n\n + Es wurde ein Review für die Seite '$content->titel' ($sprache, Version $version) angefordert.\n + \n + (um den Link anzuzeigen müssen Sie in die HTML Ansicht wechseln) + \n + \n + Mit freundlichen Grüßen\n + \n + FH Technikum Wien\n + Hoechstaedtplatz 5, 1200 Wien, AUSTRIA"; + $texthtml = "Dies ist eine automatisch generierte E-Mail.

+ Es wurde ein Review für die Seite '$content->titel' ($sprache, Version $version) angefordert.
+
+ content_id."&sprache=$sprache&version=$version&action=content\">zum Artikel +
+
+ Mit freundlichen Grüßen
+
+ FH Technikum Wien
+ Hoechstaedtplatz 5, 1200 Wien, AUSTRIA + "; + + $mail = new mail($to, $from, $subject, $text); + $mail->setHTMLContent($texthtml); + if($mail->send()) + { + $message.='Review Anforderung wurde an '.$to.' versendet'; + } + else + { + $message.='Fehler beim Senden des Mails an '.$to.''; + } + } + else + { + $message.='Es ist kein Review Team vorhanden'; + } + break; + case 'prefs_requesttranslate': + $content = new content(); + $content->getContent($content_id, $sprache, $version); + + $oe = new organisationseinheit(); + $oe_arr = $oe->getParents($content->oe_kurzbz); + + foreach($oe_arr as $organisationseinheit) + { + echo $organisationseinheit; + $fkt = new benutzerfunktion(); + $fkt->getBenutzerFunktionen('translate', $organisationseinheit); + if(count($fkt->result)>0) + break; + } + + if(count($fkt->result)==0) + $fkt->getBenutzerFunktionen('translate'); + $to=''; + foreach($fkt->result as $row) + { + if($to!='') + $to.=','; + $to .= $row->uid.'@'.DOMAIN; + } + if($to!='') + { + $from = 'no-reply@'.DOMAIN; + $subject = 'CMS Review Request'; + $text = "Dies ist eine automatisch generierte E-Mail.\n\n + Es wurde ein Artikel angelegt/bearbeitet. Dieser kann nun übersetzt werden: '$content->titel'.\n + \n + (um den Link anzuzeigen müssen Sie in die HTML Ansicht wechseln) + \n + \n + Mit freundlichen Grüßen\n + \n + FH Technikum Wien\n + Hoechstaedtplatz 5, 1200 Wien, AUSTRIA"; + $texthtml = "Dies ist eine automatisch generierte E-Mail.

+ Es wurde ein Artikel angelegt/bearbeitet. Dieser kann nun übersetzt werden: '$content->titel'
+
+ content_id."&sprache=$sprache&version=$version)&action=content\">zum Artikel +
+
+ Mit freundlichen Grüßen
+
+ FH Technikum Wien
+ Hoechstaedtplatz 5, 1200 Wien, AUSTRIA + "; + + $mail = new mail($to, $from, $subject, $text); + $mail->setHTMLContent($texthtml); + if($mail->send()) + { + $message.='Übersetzungsanforderung wurde an '.$to.' versendet'; + } + else + { + $message.='Fehler beim Senden des Mails an '.$to.''; + } + } + else + { + $message.='Es ist kein Übersetzer eingetragen'; + } + break; case 'childs_add': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + $content = new content(); $content->content_id = $content_id; $content->child_content_id = $_POST['child_content_id']; @@ -219,6 +507,12 @@ if(!is_null($method)) $message.=''.$content->errormsg.''; break; case 'childs_delete': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + if(isset($_GET['contentchild_id'])) { $contentchild_id = $_GET['contentchild_id']; @@ -233,6 +527,48 @@ if(!is_null($method)) $message.='Fehler: ID wurde nicht uebergeben'; } break; + case 'childs_sort_up': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + + if(isset($_GET['contentchild_id'])) + { + $contentchild_id = $_GET['contentchild_id']; + $content = new content(); + if($content->SortUp($contentchild_id)) + $message.='Sortieren erfolgrecih'; + else + $message.=''.$content->errormsg.''; + } + else + { + $message.='Fehler: ID wurde nicht uebergeben'; + } + break; + case 'childs_sort_down': + if(!$rechte->isBerechtigt('basis/cms', null, 'su')) + { + $message.='Sie haben keine Berechtigung fuer diese Aktion'; + break; + } + + if(isset($_GET['contentchild_id'])) + { + $contentchild_id = $_GET['contentchild_id']; + $content = new content(); + if($content->SortDown($contentchild_id)) + $message.='Sortieren erfolgrecih'; + else + $message.=''.$content->errormsg.''; + } + else + { + $message.='Fehler: ID wurde nicht uebergeben'; + } + break; default: break; } } @@ -252,34 +588,66 @@ $db = new basis_db(); echo ' Neuen Eintrag hinzufügen

-'; -$qry = "SELECT * FROM ( - SELECT - distinct on(content_id) * - 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) - ) as a - ORDER BY contentchild_id, titel"; -if($result = $db->db_query($qry)) + +Content | +News + +
'; + +$menu='content'; +if(isset($_GET['menu'])) { + $_SESSION['cms/menu']=$_GET['menu']; + $menu=$_GET['menu']; +} +else +{ + if(isset($_SESSION['cms/menu'])) + $menu=$_SESSION['cms/menu']; + else + $menu='content'; +} + +$rootcontent = new content(); +$rootcontent->getRootContent(); + +foreach($rootcontent->result as $row) +{ + $output=''; + $output.= ''; + $content = new content(); + $content->getContent($row->content_id, $sprache, null, null, true); - while($row = $db->db_fetch_object($result)) + if($menu=='news' && $content->template_kurzbz!='news') + continue; + if($menu=='content' && $content->template_kurzbz=='news') + continue; + + if($content->template_kurzbz=='news') { - echo ''; - $content = new content(); - - echo ''; + $output.= ''; + } + else + { + $output.= ''; $submenu_depth=0; - drawsubmenu($row->content_id); - echo ''; + $output .= drawsubmenu($row->content_id); } + //Wenn im gesamten Subtree kein Eintrag vorhanden ist auf den eine Berechtigung vorhanden ist, + //dann wird der ganze Subtree nicht angezeigt. + if($output!='' && strstr($output,''; + } + echo '
'; - drawmenulink($row->content_id, $row->titel); - echo ''; + $output.= drawmenulink($row->content_id, $content->titel.' '.$content->insertamum, $content->oe_kurzbz); + + $output.= '
'; + $output.= drawmenulink($row->content_id, $content->titel, $content->oe_kurzbz); + + $output.= '
'; echo ''; @@ -287,12 +655,13 @@ echo ''; //Editieren if(!is_null($content_id)) { - echo get_content_link('prefs','Eigenschaften').' | '; - echo get_content_link('content','Inhalt').' | '; - echo get_content_link('preview','Vorschau').' | '; - echo get_content_link('rights','Rechte').' | '; - echo get_content_link('childs','Childs').' | '; - echo get_content_link('history','History'); + echo '

Content ID: '.$content_id.' | Version:'.$version.' | Sprache:'.$sprache.'

'; + $content = new content(); + $oe = $content->getOrganisationseinheit($content_id); + if(!in_array($oe, $berechtigte_oe)) + die('Sie haben keine Berechtigung fuer diesen Eintrag'); + + drawheader(); echo '
'.$message.'
'; echo '

'; @@ -306,9 +675,9 @@ if(!is_null($content_id)) case 'content': print_content(); break; - case 'preview': - echo '