Files
Kundenverwaltung/oldindex.php
T
adminandClaude Opus 5 e2124220e5 Initialer Commit: Kundenverwaltung (PHP/Smarty)
Bestehende Codebasis als Ausgangsstand aufgenommen.

- .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache
  (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen;
  Verzeichnisstruktur ueber .gitkeep erhalten
- .gitattributes: Zeilenenden normalisiert (LF im Repo),
  Binaerformate markiert
- db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der
  Anwendung aus der externen Konfiguration statt hartkodiert aus der
  Datei; Passwort wird ueber eine temporaere Optionsdatei statt per
  Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet,
  Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 16:41:18 +02:00

248 lines
6.8 KiB
PHP

<?php
ob_start();
session_start();
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
ini_set("display_errors", "1");
require_once("incs/constants.php");
require_once("update/database-update.php");
require_once("incs/settings.php");
require_once("incs/update.php");
require_once("incs/funcs.php");
if(isset($_GET["action"]))
$action = $_GET["action"];
else
$action = "";
$errors = array();
$warnings = array();
$messages = array();
$version = getthisversion();
if($version == -1)
{
$errors[] = "Versions-datei kann nicht beschrieben werden, bitte setzen Sie Schreibrechte für das Verzeichnis update/thisversion/";
}
$settings=readsettings();
if($settings != "valid")
{
$firma = "UNKONFIGURIERT";
$action = "setup";
}
if(!isset($_SESSION["login"]))
{
$_SESSION['login'] = "invalid";
}
if(!isset($_SESSION["zoom"]))
$_SESSION['zoom'] = 1;
if(!isset($_SESSION["globalNotes"]))
$_SESSION["globalNotes"]="";
if(!isset($_SESSION["privateNotes"]))
$_SESSION["privateNotes"]="";
$text_version = substr($version, 0, 1).".".substr($version, 1, 1).".".substr($version, 2, 1);
echo <<<ENDE
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Kundenverwaltung V$text_version --$firma--</title>
<meta name="description" content="Software zur Kunden- und Terminverwaltung der Firma $firma">
<meta name="keywords" content="Kundenverwaltung, wagner-markisen, verwaltung, termine, kunden, adressen">
<meta name="language" content="de">
<script type="text/javascript" src="./js/jquery.tools.min(1).js" language="javascript"></script>
<script type="text/javascript" src="js/bumpbox/mootools.js" language="javascript"></script>
<script type="text/javascript" src="js/bumpbox/bumpbox-2.1.js" language="javascript"></script>
<script type="text/javascript" src="js/bumpbox/assets.js" language="javascript"></script>
<script type="text/javascript" src="js/pwdmeter.js" language="javascript"></script>
<script type="text/javascript" src="js/interface.js" language="javascript"></script>
<script type="text/javascript" src="js/forms.js" language="javascript"></script>
<link rel="stylesheet" href="styles/default.css" type="text/css">
<link rel="stylesheet" href="styles/pwdmeter.css" type="text/css">
<link rel="shortcut icon" href="./pics/favicon.png">
<meta http-equiv="imagetoolbar" content="no">
</head>
ENDE;
echo "<body onload='zoom(".$_SESSION["zoom"].")'>";
if($settings == "valid" && $action != "setup")
{
if(!$dbconn = @mysqli_connect($mysql_server, $mysql_user, $mysql_pw))
$err = error("Verbindung zur Datenbank fehlgeschlagen!!");
if(!$geodbconn = @mysqli_connect($mysql_server, $mysql_user, $mysql_pw))
$err = error("Verbindung zur OpenGeoDB Datenbank fehlgeschlagen!!");
if(!@mysqli_select_db($geodbconn,$mysql_opengeodb))
$err = error("OpengeoDB nicht gefunden!! ($mysql_opengeodb)");
if(!@mysqli_select_db($dbconn,$mysql_db))
$err = error("Datenbank nicht gefunden!! ($mysql_db)");
$newversion = checknewversion($version);
$status = manageupdate($version, $newversion);
$version = $status[1];
}
if($_SESSION["login"] != "valid")
{
$_SESSION["nick"] = "Anmelden";
$termine = "Anmelden";
}
else
{
$qry = mysqli_query($dbconn,"SELECT id FROM termine WHERE done = 0 AND termtime+termdauer > NOW()");
$termine = mysqli_num_rows($qry);
}
echo "
<div id='notes'>
<div class='noteshead'>Persönliche Notizen:</div>
<textarea id='personalnotes' onkeyup='ajax_saveprivatenotes(this.value)'>".htmlspecialchars($_SESSION["privateNotes"])."</textarea>
<div class='noteshead'>Notizen für alle:</div>
<textarea id='globalnotes' onkeyup='ajax_saveglobalnotes(this.value)'>".htmlspecialchars($_SESSION["globalNotes"])."</textarea>
</div>
<div id='statusbar'><div class='stat'><b>Benutzer: </b>".$_SESSION["nick"]."</div><div class='stat'><b>Termine: </b>$termine</div>
<div class='dblstat'></div>
<div class='stat'><b>Datum: </b>".date("D, d.m.Y")."</div><div class='stat'><b>Zoom: </b><span id='zoomdisplay'>".($_SESSION["zoom"]*100)."%</span></div></div>";
echo <<<ENDE
<div id='schnellbar'>
<a href='?action=kunden'><img src='pics/icons/kunden.png' class='schnellicon' /></a>
<a href='?action=termine'><img src='pics/icons/termine.png' class='schnellicon' /></a>
<a href='?action=suchen'><img src='pics/icons/search.png' class='schnellicon' /></a>
<a href='#' onClick='zoom("out")' class='noloading'><img src='pics/icons/zoom-out.png' class='schnellicon' /></a>
<a href='#' onClick='zoom(1)' class='noloading'><img src='pics/icons/zoom-original.png' class='schnellicon' /></a>
<a href='#' onClick='zoom("in")' class='noloading'><img src='pics/icons/zoom-in.png' class='schnellicon' /></a>
<a href='?action=neu'><img src='pics/icons/newdoc.png' class='schnellicon' /></a>
<a href='?action=charts'><img src='pics/icons/chart.png' class='schnellicon' /></a>
<a href='?action=settings'><img src='pics/icons/einstellungen.png' class='schnellicon' /></a>
</div>
<div id='include_content'>
<center>
ENDE;
if($_SESSION["login"] == "valid")
{
switch($action)
{
case "setup":
include("./update/firststart.php");
break;
case "rebuild_settings":
include("./update/rebuild-settings.php");
break;
default:
include("./sites/start.php");
break;
}
}
else
{
switch($action)
{
case "setup":
include("./update/firststart.php");
break;
case "rebuild_settings":
include("./update/rebuild-settings.php");
break;
default:
include("./sites/start.php");
break;
}
}
echo <<<ENDE
<div id='loading'>
<p>Bitte warten, es wird geladen...</p>
</div>
<!-- external page is given in the href attribute (as it should be) -->
<a href="./sites/start.php" class="noloading" rel="#overlay" style="text-decoration:none">
<!-- remember that you can use any element inside the trigger -->
<button type="button">Show external page in overlay</button>
</a>
<!-- another link. uses the same overlay -->
<a href="external-content2.htm" class="noloading" rel="#overlay" style="text-decoration:none">
<button type="button">Show another page</button>
</a>
<!-- overlayed element -->
<div class="apple_overlay" id="overlay">
<!-- the external content is loaded inside this tag -->
<div class="contentWrap"></div>
</div>
<!-- make all links with the 'rel' attribute open overlays -->
<script>
$(function() {
// if the function argument is given to overlay,
// it is assumed to be the onBeforeLoad event listener
$("a[rel]").overlay({
mask: {
color: '#000',
loadSpeed: 200,
opacity: 0.6
},
closeOnClick: 'true',
closeOnEsc: 'true',
speed: 'slow',
onBeforeLoad: function() {
// grab wrapper element inside content
var wrap = this.getOverlay().find(".contentWrap");
// load the page specified in the trigger
wrap.load(this.getTrigger().attr("href"));
}
});
});
</script>
</center>
<div class='bottomspace'></div>
</div>
</body
</html>
ENDE;
ob_end_flush();
?>