require_once ("../lib/user.inc.php");
require_once ("../lib/group.inc.php");
require_once ("../lib/i18n.inc.php");
class Welcome
{
private $status;
public function __construct ()
{
session_id () || session_start ();
$this->status = $this->status ();
}
//***************************
// GETTER / SETTER
//***************************
public function __get ($name)
{
switch ($name) {
case "is_admin":
return User::get ("is_admin");
case "may_edit_users":
return User::get ("is_admin") || User::get ("may_edit_users");
case "may_make_backups":
return User::get ("is_admin") || User::get ("may_make_backups");
case "may_edit_i18n":
return User::get ("is_admin") || User::get ("may_edit_i18n");
case "install_disabled":
return Setting::get ("config", "disable_install");
case "cms_disabled":
return Setting::get ("system", "disable_cms");
case "cms_disabled_message":
return preg_replace ("/\n/s", "
", Setting::get ("system", "disable_message"));
default:
return $this->$name;
}
}
public function __set ($name, $value)
{
}
private function status ()
{
$status = array ();
$status['user'] = User::get ();
$status['user']['realname'] = isset ($status['user']['realname']) ? $status['user']['realname'] : "Nobody";
// anzahl Änderungen
$changes = Group::getEditList ();
foreach ($changes as $key => $row) {
if (!Ticket::useTickets () && ($row['status'] & Base::STATUS_ONLINE)) {
// online stehende Gruppen aus Liste entfernen
unset ($changes[$key]);
}
}
$status['version'] = Setting::VERSION.".".Setting::REVISION;
$status['changes'] = count ($changes);
$ticket = Ticket::get (Ticket::selected ());
$status['ticket'] = ($ticket && Ticket::useTickets ()) ? (($ticket['id']==Ticket::SERVER_ID) ? I18n::tr ("edit", "ticket/default ticket", "default ticket") : $ticket['name']) : "";
$status['ticket_selected'] = (!Ticket::useTickets () || Ticket::selected ());
$status['messages'] = array ();
if (User::get ("is_admin") && Setting::get ("system", "errors")) {
$status['messages'][] = array ('type' => "error", 'onclose' => "delErrors ()", 'text' => preg_replace ("/\n/s", "
", Setting::get ("system", "errors")));
}
$status['quickbar']['disabledButtons']['previous'] = true;
$status['quickbar']['disabledButtons']['next'] = true;
$lc = I18n::lc ();
$lc = (file_exists (Setting::get ("config", "documentRoot")."/".Setting::get ("config", "cmsPath")."/docu/usermanual_$lc.pdf")) ? $lc : "en";
$status['help'] = Setting::get ("config", "cmsPath") . "/docu/usermanual_$lc.pdf";
$status['statusbar']['value'] = "Powered by Spitfire";
if (User::get ("is_admin")) {
$status['statusbar']['value'] .= "";
}
return $status;
}
public function logout ()
{
User::logout ();
}
public function message ($text)
{
return I18n::tr ("edit", "main/$text", $text);
}
public function delErrors ()
{
Setting::del ("system", "errors", false);
}
public function tips ()
{
$path = Setting::get ("config", "documentRoot")."/".Setting::get ("config", "cmsPath")."/docu/";
$lc = I18n::lc ();
$lc = (file_exists ($path."tips_$lc.xml")) ? $lc : "en";
$tips = file_get_contents ($path . "tips_$lc.xml");
$tips = preg_replace ("/\<\!--.*?--\>/", "", $tips);
$tips = preg_replace ("/\>\s+\", "><", $tips);
return $tips;
}
// Wandelt das gegebene Array/Text in eine Form um, die direkt einer JavaScript Variablen zugewiesen werden kann
public function toJavaScript ($value)
{
if (is_array ($value)) {
$values = array ();
foreach ($value as $key => $val) {
$values[] = "'$key':".$this->toJavaScript ($val);
}
return "{".implode (",", $values)."}";
} else {
$value = Database::escape ($value);
return ($value===true) ? "true" : (($value===false) ? "false" : "'$value'");
}
}
}
?>