Compare commits
35 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
4b9bc8754b | |
|
|
980b4d3056 | |
|
|
602bd21f99 | |
|
|
4e8c12b631 | |
|
|
aff20577d0 | |
|
|
212789faa9 | |
|
|
3aba261ba3 | |
|
|
e45e783d39 | |
|
|
962529cbc9 | |
|
|
93b1f8d61a | |
|
|
a05d497774 | |
|
|
7d4138dd18 | |
|
|
d0f53eb1f4 | |
|
|
d5de8365ee | |
|
|
12cf3f7767 | |
|
|
b8f1efbe12 | |
|
|
5a040d69da | |
|
|
d69b2fb342 | |
|
|
70b7a63694 | |
|
|
50e232cae7 | |
|
|
0f06a5838d | |
|
|
e297ff8669 | |
|
|
cffe00216c | |
|
|
051a0805b9 | |
|
|
3d0210dc6d | |
|
|
c99958525e | |
|
|
308c2aefa8 | |
|
|
925b8bf56e | |
|
|
5adc7458b2 | |
|
|
e7af1e1164 | |
|
|
29f8fe38ca | |
|
|
0ef8c498a2 | |
|
|
cf266fb4aa | |
|
|
8b8474e6eb | |
|
|
8b43c9c08d |
|
|
@ -20,7 +20,7 @@ final class ErrorPageData implements JsonSerializable
|
|||
public function __construct($exception, $title = null)
|
||||
{
|
||||
$this->exception = $exception;
|
||||
$this->title = !empty($title) ? (string)$title : 'OpenXE: Es ist ein unerwarteter Fehler aufgetreten!';
|
||||
$this->title = !empty($title) ? (string)$title : 'DBXE: Es ist ein unerwarteter Fehler aufgetreten!';
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16752,7 +16752,7 @@ INSERT INTO `geschaeftsbrief_vorlagen` (`id`, `sprache`, `betreff`, `text`, `sub
|
|||
(17, 'deutsch', 'Ihre Gutschrift {BELEGNR} von {FIRMA}', '{ANSCHREIBEN},<br><br>anbei finden Sie Ihre Gutschrift. Gerne stehen wir Ihnen weiterhin zur Verfügung.<br><br>Ihre Gutschrift ist im PDF-Format erstellt worden. Um sich die Gutschrift ansehen zu können, klicken Sie auf den Anhang und es öffnet sich automatisch der Acrobat Reader. Sollten Sie keinen Acrobat Reader besitzen, haben wir für Sie den Link zum kostenlosen Download von Adobe Acrobat Reader mit angegeben. Er führt Sie automatisch auf die Downloadseite von Adobe. So können Sie sich Ihre Gutschrift auch für Ihre Unterlagen ausdrucken.<br><br>http://www.adobe.com/products/acrobat/readstep2.html<br><br>{IF}{INTERNET}{THEN}Internet-Bestellnr.: {INTERNET}{ELSE}{ENDIF}', 'Gutschrift', 1, 1);
|
||||
|
||||
|
||||
/* OpenXE 2024-01-24 für datatablelabel */
|
||||
/* DBXE 2024-01-24 für datatablelabel */
|
||||
INSERT INTO `hook` (`name`, `aktiv`, `parametercount`, `alias`, `description`) VALUES
|
||||
('eproosystem_ende', 1, 0, '', ''),
|
||||
('parseuservars', 1, 0, '', ''),
|
||||
|
|
@ -16767,7 +16767,7 @@ INSERT INTO `hook_register` (`hook_action`, `function`, `aktiv`, `position`, `ho
|
|||
(0, 'DataTableLabelsDokumentSendHook', 1, 1, (SELECT id FROM hook WHERE name = 'dokumentsend_ende'), 'Datatablelabels', 0),
|
||||
(0, 'DatatablelabelsOrderSent', 1, 1, (SELECT id FROM hook WHERE name = 'auftrag_versand_ende'), 'Datatablelabels', 0),
|
||||
(0, 'DatatablelabelsTransferDocumentIncomming', 1, 1, (SELECT id FROM hook WHERE name = 'transfer_document_incoming'), 'Datatablelabels', 0);
|
||||
/* OpenXE 2024-01-24 für datatablelabel */
|
||||
/* DBXE 2024-01-24 für datatablelabel */
|
||||
|
||||
/* OpenXE 2024-02-03 für belegvorlagen */
|
||||
INSERT INTO `hook` (`name`, `aktiv`, `parametercount`, `alias`, `description`) VALUES
|
||||
|
|
@ -16780,7 +16780,7 @@ INSERT INTO `hook_register` (`hook_action`, `function`, `aktiv`, `position`, `ho
|
|||
(0, 'Belegevorlagenajax_filter_hook1', 1, 2, (SELECT id FROM hook WHERE name = 'ajax_filter_hook1' LIMIT 1), 'belegevorlagen', 0),
|
||||
(0, 'BelegevorlagenBelegPositionenButtons', 1, 2, (SELECT id FROM hook WHERE name = 'BelegPositionenButtons' LIMIT 1), 'belegevorlagen', 0)
|
||||
;
|
||||
/* OpenXE 2024-02-03 für belegvorlagen */
|
||||
/* DBXE 2024-02-03 für belegvorlagen */
|
||||
|
||||
/*
|
||||
BelegPositionenButtons
|
||||
|
|
@ -18210,7 +18210,7 @@ INSERT INTO `wiedervorlage_stages` (`id`, `kurzbezeichnung`, `name`, `hexcolor`,
|
|||
(12, 'Stay', 'Stay (Erhalt)', '#A2D624', 0, 1, 4, 4, NULL),
|
||||
(13, 'Okay', 'Okay (Befürwortung)', '#A2D624', 0, 1, 5, 4, NULL);
|
||||
INSERT INTO `wiki` (`id`, `name`, `content`, `lastcontent`) VALUES
|
||||
(1, 'StartseiteWiki', '\n<p>Herzlich Willkommen in Ihrem OpenXE, dem freien ERP.<br><br>Wir freuen uns Sie als Benutzer begrüßen zu dürfen. Mit OpenXE organisieren Sie Ihre Firma schnell und einfach. Sie haben alle wichtigen Zahlen und Vorgänge im Überblick.<br><br>Für Einsteiger sind die folgenden Themen wichtig:<br><br></p>\n<ul>\n<li> <a href="index.php?module=firmendaten&action=edit" target="_blank"> Firmendaten</a> (dort richten Sie Ihr Briefpapier ein)</li>\n<li> <a href="index.php?module=adresse&action=list" target="_blank"> Stammdaten / Adressen</a> (Kunden und Lieferanten anlegen)</li>\n<li> <a href="index.php?module=artikel&action=list" target="_blank"> Artikel anlegen</a> (Ihr Artikelstamm)</li>\n<li> <a href="index.php?module=angebot&action=list" target="_blank"> Angebot</a> / <a href="index.php?module=auftrag&action=list" target="_blank"> Auftrag</a> (Alle Dokumente für Ihr Geschäft)</li>\n<li> <a href="index.php?module=rechnung&action=list" target="_blank"> Rechnung</a> / <a href="index.php?module=gutschrift&action=list" target="_blank"> Gutschrift</a></li>\n<li> <a href="index.php?module=lieferschein&action=list" target="_blank"> Lieferschein</a></li>\n</ul>\n<p><br><br>Kennen Sie unsere Zusatzmodule die Struktur und Organisation in das tägliche Geschäft bringen?<br><br></p>\n<ul>\n<li> <a href="index.php?module=kalender&action=list" target="_blank"> Kalender</a></li>\n<li> <a href="index.php?module=wiki&action=list" target="_blank"> Wiki</a></li>\n</ul>', NULL);
|
||||
(1, 'StartseiteWiki', '\n<p>Herzlich Willkommen in Ihrem DBXE, dem freien ERP.<br><br>Wir freuen uns Sie als Benutzer begrüßen zu dürfen. Mit DBXE organisieren Sie Ihre Firma schnell und einfach. Sie haben alle wichtigen Zahlen und Vorgänge im Überblick.<br><br>Für Einsteiger sind die folgenden Themen wichtig:<br><br></p>\n<ul>\n<li> <a href="index.php?module=firmendaten&action=edit" target="_blank"> Firmendaten</a> (dort richten Sie Ihr Briefpapier ein)</li>\n<li> <a href="index.php?module=adresse&action=list" target="_blank"> Stammdaten / Adressen</a> (Kunden und Lieferanten anlegen)</li>\n<li> <a href="index.php?module=artikel&action=list" target="_blank"> Artikel anlegen</a> (Ihr Artikelstamm)</li>\n<li> <a href="index.php?module=angebot&action=list" target="_blank"> Angebot</a> / <a href="index.php?module=auftrag&action=list" target="_blank"> Auftrag</a> (Alle Dokumente für Ihr Geschäft)</li>\n<li> <a href="index.php?module=rechnung&action=list" target="_blank"> Rechnung</a> / <a href="index.php?module=gutschrift&action=list" target="_blank"> Gutschrift</a></li>\n<li> <a href="index.php?module=lieferschein&action=list" target="_blank"> Lieferschein</a></li>\n</ul>\n<p><br><br>Kennen Sie unsere Zusatzmodule die Struktur und Organisation in das tägliche Geschäft bringen?<br><br></p>\n<ul>\n<li> <a href="index.php?module=kalender&action=list" target="_blank"> Kalender</a></li>\n<li> <a href="index.php?module=wiki&action=list" target="_blank"> Wiki</a></li>\n</ul>', NULL);
|
||||
|
||||
|
||||
INSERT INTO `konten` (`id`, `bezeichnung`, `kurzbezeichnung`, `type`, `erstezeile`, `datevkonto`, `blz`, `konto`, `swift`, `iban`, `lastschrift`, `hbci`, `hbcikennung`, `inhaber`, `aktiv`, `keineemail`, `firma`, `schreibbar`, `importletztenzeilenignorieren`, `liveimport`, `liveimport_passwort`, `liveimport_online`, `importtrennzeichen`, `codierung`, `importerstezeilenummer`, `importdatenmaskierung`, `importnullbytes`, `glaeubiger`, `geloescht`, `projekt`, `saldo_summieren`, `saldo_betrag`, `saldo_datum`, `importfelddatum`, `importfelddatumformat`, `importfelddatumformatausgabe`, `importfeldbetrag`, `importfeldbetragformat`, `importfeldbuchungstext`, `importfeldbuchungstextformat`, `importfeldwaehrung`, `importfeldwaehrungformat`, `importfeldhabensollkennung`, `importfeldkennunghaben`, `importfeldkennungsoll`, `importextrahabensoll`, `importfeldhaben`, `importfeldsoll`, `cronjobaktiv`, `cronjobverbuchen`) VALUES
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"host": "https://github.com/openxe-org/openxe.git",
|
||||
"host": "http://repo.dbxe.de/dbxe/dbxe.git",
|
||||
"branch": "master"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do
|
|||
$remote_file_name = $datafolder."/remote.json";
|
||||
$schema_file_name = "db_schema.json";
|
||||
|
||||
echo_out("--------------- OpenXE upgrade ---------------\n");
|
||||
echo_out("--------------- DBXE upgrade ---------------\n");
|
||||
echo_out("--------------- ".date("Y-m-d H:i:s")." ---------------\n");
|
||||
|
||||
//require_once($directory.'/../cronjobs/githash.php');
|
||||
|
|
@ -485,8 +485,8 @@ function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do
|
|||
}
|
||||
|
||||
function info() {
|
||||
echo_out("OpenXE upgrade tool\n");
|
||||
echo_out("Copyright 2022 (c) OpenXE project\n");
|
||||
echo_out("DBXE upgrade tool\n");
|
||||
echo_out("Copyright 2024 (c) DBXE project\n");
|
||||
echo_out("\n");
|
||||
echo_out("Upgrade files and database\n");
|
||||
echo_out("Options:\n");
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
$version="OSS";
|
||||
$version_revision="1.11";
|
||||
$version_revision="1.0.2";
|
||||
$githash = file_get_contents("../githash.txt");
|
||||
if (!empty($githash)) {
|
||||
$version_revision .= " (".substr($githash,0,8).")";
|
||||
|
|
|
|||
4408
www/eproosystem.php
4408
www/eproosystem.php
File diff suppressed because it is too large
Load Diff
|
|
@ -15,7 +15,7 @@
|
|||
<div class="col-xs-14 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|OpenXE Upgrade-System|}</legend>
|
||||
<legend>{|DBXE Upgrade-System|}</legend>
|
||||
Das Upgrade funktioniert in 2 Schritten: Dateien aktualisieren, Datenbank auffrischen. Wenn das Upgrade lange läuft, kann der Fortschritt in einem neuen Fenster mit "Anzeige auffrischen" angezeigt werden.<br><br>
|
||||
Falls nach einem Abbruch oder schwerwiegenden Fehler kein Upgrade möglich ist, im Hauptordner den Ordner ".git" löschen und das Upgrade in der Konsole erneut durchführen.
|
||||
Dazu im Unterordner "upgrade" diesen Befehl starten: <pre>./upgrade.sh -do</pre>
|
||||
|
|
@ -37,7 +37,7 @@ Dazu im Unterordner "upgrade" diesen Befehl starten: <pre>./upgrade.sh -do</pre>
|
|||
<fieldset>
|
||||
<legend>{|Aktuelle Version|}</legend>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<b>OpenXE [CURRENT]</b>
|
||||
<b>DBXE [CURRENT]</b>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* Copyright (c) 2022 OpenXE project
|
||||
* Copyright (c) 2024 DBXE project
|
||||
*/
|
||||
|
||||
use Xentral\Components\Database\Exception\QueryFailureException;
|
||||
|
|
@ -295,7 +295,7 @@ $width = array('10%'); // Fill out manually later
|
|||
$result[0]['angezeigtername'],
|
||||
array($result[0]['email']),
|
||||
array($result[0]['angezeigtername']),
|
||||
'OpenXE ERP: Testmail',
|
||||
'DBXE ERP: Testmail',
|
||||
'Dies ist eine Testmail für Account "'.$result[0]['email'].'".',
|
||||
'',0,false,'','',
|
||||
true
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
/*
|
||||
* Copyright (c) 2022 OpenXE project
|
||||
*/
|
||||
/* AUSKOMMENTIERT FB
|
||||
|
||||
use Xentral\Components\Database\Exception\QueryFailureException;
|
||||
|
||||
class upgrade {
|
||||
|
|
@ -22,7 +22,7 @@ class upgrade {
|
|||
public function Install() {
|
||||
/* Fill out manually later */
|
||||
}
|
||||
/* AUSKOMMENTIERT FB
|
||||
|
||||
function upgrade_overview() {
|
||||
|
||||
$submit = $this->app->Secure->GetPOST('submit');
|
||||
|
|
@ -120,4 +120,4 @@ class upgrade {
|
|||
|
||||
|
||||
}
|
||||
AUSKOMMENTIERT FB */
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,448 +1,448 @@
|
|||
<?php
|
||||
session_start();
|
||||
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
|
||||
ini_set('display_errors', 1);
|
||||
$config_file = 'setup.conf.php';
|
||||
$output_folder = '../../conf/';
|
||||
|
||||
if(!is_file($config_file) ) { echo 'Config-File is missing'; return; }
|
||||
include_once($config_file);
|
||||
|
||||
#########################################################################
|
||||
$max_steps = count(array_filter($setup))+1;
|
||||
|
||||
$step = (($_GET['step']!='') ? $_GET['step'] : 1);
|
||||
$submit = $_POST['_SUBMIT'];
|
||||
|
||||
|
||||
$isSecure = false;
|
||||
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
|
||||
$isSecure = true;
|
||||
}
|
||||
elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
|
||||
$isSecure = true;
|
||||
}
|
||||
$REQUEST_PROTOCOL = $isSecure ? 'https' : 'http';
|
||||
|
||||
//$weburl = $REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].":".$_SERVER['SERVER_PORT'].str_replace('setup/setup.php?step=5','',$_SERVER['REQUEST_URI'])."index.php?module=welcome&action=cronjob";
|
||||
//$weburllink = $REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].":".$_SERVER['SERVER_PORT'].str_replace('setup/setup.php?step=5','',$_SERVER['REQUEST_URI']);
|
||||
|
||||
if($_SERVER['SCRIPT_URI'] != '')
|
||||
{
|
||||
$weburl = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['SCRIPT_URI'])."index.php?module=welcome&action=cronjob";
|
||||
// $weburllink = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['SCRIPT_URI']);
|
||||
}elseif($_SERVER['REQUEST_URI'] != '' && $_SERVER['SERVER_ADDR']!='' && $_SERVER['SERVER_ADDR']!='::1' && strpos($_SERVER['SERVER_SOFTWARE'],"nginx")===false)
|
||||
{
|
||||
$weburl = (isset($_SERVER['SERVER_ADDR']) && $_SERVER['SERVER_ADDR']?$REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443?':'.$_SERVER['SERVER_PORT']:''):'').str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['REQUEST_URI'])."index.php?module=welcome&action=cronjob";
|
||||
// $weburllink = (isset($_SERVER['SERVER_ADDR']) && $_SERVER['SERVER_ADDR']?$REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443?':'.$_SERVER['SERVER_PORT']:''):'').str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['REQUEST_URI']);
|
||||
} elseif($_SERVER['SERVER_NAME']!="") //MAMP auf macos
|
||||
{
|
||||
$weburl = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$REQUEST_PROTOCOL."://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].$_SERVER['REQUESR_URI'].$_SERVER['SCRIPT_NAME'])."index.php?module=welcome&action=cronjob";
|
||||
// $weburllink = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$REQUEST_PROTOCOL."://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].$_SERVER['REQUESR_URI'].$_SERVER['SCRIPT_NAME']);
|
||||
}
|
||||
else{
|
||||
$weburl = '../index.php?module=welcome&action=cronjob';
|
||||
$weburllink = '../';
|
||||
}
|
||||
|
||||
$weburllink = '../';
|
||||
|
||||
if($step>=$max_steps){
|
||||
//GenerateConfigFiles($output_folder);
|
||||
//if($config['postinstall']) PostInstall();
|
||||
$webserverUser = DetermineWebserverUser();
|
||||
$phpBinary = DeterminePhpBinary();
|
||||
$baseDir = DetermineInstallationDir();
|
||||
$cronjobStarterPath = $baseDir . '/cronjobs/starter2.php';
|
||||
$cronjobLine = htmlspecialchars(sprintf('* * * * * %s %s > /dev/null 2>&1', $phpBinary, $cronjobStarterPath));
|
||||
|
||||
$page = HtmlTemplate(
|
||||
"<h2>Setup erfolgreich beendet!</h2>
|
||||
<p>Um den Prozessstarter nutzen zu können: Tragen Sie folgendes Script in ihrer crontab ein:</p>
|
||||
<pre style=\"font-size:9pt\">php {$cronjobStarterPath}</pre>
|
||||
<p>Am besten eignet sich ein Interval von einer Minute. Wichtig ist dass der Cronjob unter dem Benutzer des Webservers läuft.</p>
|
||||
<br>
|
||||
<div id=\"crontab\">
|
||||
<h3>Anleitung – Crontab einrichten</h3>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Nachfolgendes Kommando ausführen:</p>
|
||||
<pre class=\"console\">sudo crontab -u {$webserverUser} -e</pre>
|
||||
</li>
|
||||
<li>
|
||||
<p>Anschließend öffnet sich ein Editor. Dort folgende Zeile einfügen und die Datei speichern:</p>
|
||||
<pre class=\"console\">{$cronjobLine}</pre>
|
||||
</li>
|
||||
<li>
|
||||
<p>Nach dem Verlassen des Editors sollte diese Ausgabe als Bestätigung erscheinen:</p>
|
||||
<pre class=\"console\">crontab: installing new crontab</pre>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br><br>
|
||||
<center>
|
||||
<a href=\"$weburllink\">Anmelden mit Benutzer: <i>admin</i> und Passwort: <i>admin</i></a>
|
||||
<br><br>
|
||||
Bitte nach der Installation das <a href=\"".$weburllink."index.php?module=upgrade\" target=\"_blank\">Datenbank-Upgrade</a> durchführen.</a>
|
||||
</center>
|
||||
");
|
||||
}else{
|
||||
$ok = true;
|
||||
if($step == 1)
|
||||
{
|
||||
$setup[$step]['description'] = stepMessage($step);
|
||||
$ok = stepFehler($step);
|
||||
}else $ok = stepFehler($step);
|
||||
$page = GenerateHtml($step, $setup);
|
||||
if($ok){$page = str_replace('[BUTTON]', (($step<=$max_steps)?"<input type=\"submit\" name=\"_SUBMIT\" value=\"Weiter\" class=\"btn\">":""), $page);}else{$page = str_replace('[BUTTON]','',$page);}
|
||||
}
|
||||
if($submit!='') {
|
||||
$configfile = $_POST['_CONFIGFILE'];
|
||||
$action = $_POST['_ACTION'];
|
||||
unset($_POST['_CONFIGFILE']);
|
||||
unset($_POST['_ACTION']);
|
||||
unset($_POST['_SUBMIT']);
|
||||
|
||||
$error = ((function_exists($action ?? '')) ? $action() : '');
|
||||
if($configfile=='') $error .= "<br>'configfile' for this step is missing";
|
||||
|
||||
if($error=='') {
|
||||
// Convert Fields to Session
|
||||
foreach($_POST as $key=>$value)
|
||||
$_SESSION['setup'][$configfile][$key] = $value;
|
||||
if($step == 3)GenerateConfigFiles($output_folder);
|
||||
if($step == 3)CreateUserdata();
|
||||
if($step == 3)PostInstall();
|
||||
// execute Sql-Files
|
||||
$sql_prefix = "sql_";
|
||||
|
||||
foreach($_POST as $key=>$value) {
|
||||
if(strlen($key)>strlen($sql_prefix) && substr($key,0,strlen($sql_prefix))==$sql_prefix &&
|
||||
$_SESSION['setup'][$configfile][substr($key,strlen($sql_prefix), strlen($key)-strlen($sql_prefix))]!=''){
|
||||
unset($_SESSION['setup'][$configfile][$key]);
|
||||
if($value != '../../database/struktur.sql' && $value != '../../database/beispiel.sql')continue;
|
||||
|
||||
if(is_file($value)){
|
||||
if(is_file(__DIR__.'/../../conf/user.inc.php'))
|
||||
{
|
||||
$import = file_get_contents($value);
|
||||
|
||||
$import = preg_replace ("%/\*(.*)\*/%Us", '', $import);
|
||||
$import = preg_replace ("%^--(.*)\n%mU", '', $import);
|
||||
$import = preg_replace ("%^$\n%mU", '', $import);
|
||||
|
||||
$db= mysqli_connect($_SESSION['setup'][$configfile]['WFdbhost'],$_SESSION['setup'][$configfile]['WFdbuser'],$_SESSION['setup'][$configfile]['WFdbpass']);
|
||||
if($db)
|
||||
{
|
||||
if(mysqli_select_db($db,$_SESSION['setup'][$configfile]['WFdbname']))
|
||||
{
|
||||
mysqli_set_charset($db,"utf8");
|
||||
mysqli_query($db,"SET SESSION SQL_MODE :=''");
|
||||
//mysqli_real_escape_string($db,$import);
|
||||
|
||||
if($value == '../../database/struktur.sql')
|
||||
{
|
||||
// Clear target DB
|
||||
mysqli_query($db,'SET foreign_key_checks = 0');
|
||||
if ($result = mysqli_query($db,"SHOW TABLES"))
|
||||
{
|
||||
while($row = $result->fetch_array(MYSQLI_NUM))
|
||||
{
|
||||
mysqli_query($db,'DROP TABLE IF EXISTS '.$row[0]);
|
||||
}
|
||||
}
|
||||
mysqli_query($db,'SET foreign_key_checks = 1');
|
||||
}
|
||||
|
||||
|
||||
$import = explode (";\n", $import);
|
||||
|
||||
foreach ($import as $imp){
|
||||
if ($imp != '' && $imp != ' ' && trim($imp) != ''){
|
||||
mysqli_query($db,$imp);
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['BeispielTpl']) && $_POST['BeispielTpl'])
|
||||
mysqli_query($db, "INSERT INTO `user` (`id`, `username`, `password`, `repassword`, `description`, `settings`, `parentuser`, `activ`, `type`, `adresse`, `fehllogins`, `standarddrucker`, `firma`, `logdatei`, `startseite`, `hwtoken`, `hwkey`, `hwcounter`, `motppin`, `motpsecret`, `passwordmd5`, `externlogin`, `projekt_bevorzugen`, `email_bevorzugen`, `projekt`, `rfidtag`, `vorlage`, `kalender_passwort`, `kalender_ausblenden`, `kalender_aktiv`, `gpsstechuhr`, `standardetikett`, `standardfax`, `internebezeichnung`, `hwdatablock`) VALUES
|
||||
(3, 'demomitarbeiter', 'pllIX0pw7JU9c', 0, '', 'a:6:{s:16:\"pos_list_projekt\";s:1:\"0\";s:18:\"pos_list_kassierer\";s:1:\"0\";s:22:\"pos_list_kassierername\";s:1:\"0\";s:18:\"pos_list_lkadresse\";s:1:\"0\";s:18:\"lohnabrechnung_von\";s:0:\"\";s:18:\"lohnabrechnung_bis\";s:0:\"\";}', 0, 1, 'standard', 6, 0, 0, 1, '2015-10-26 16:01:23', '', 0, '', 0, '', '', '2ad71933e4b074c4671425c8e6b48021', 0, 0, 1, 0, '', '', '', 0, 0, 0, 0, 0, NULL, '');
|
||||
");
|
||||
$_SESSION['setup'][$value] = 1;
|
||||
}
|
||||
mysqli_close($db);
|
||||
}
|
||||
/*
|
||||
if(exec("mysql --user='{$_SESSION['setup'][$configfile]['WFdbuser']}' --password='{$_SESSION['setup'][$configfile]['WFdbpass']}' --host='{$_SESSION['setup'][$configfile]['WFdbhost']}' --database='{$_SESSION['setup'][$configfile]['WFdbname']}' < '$value'", $sql_out, $sql_status)==2)
|
||||
$error = "Konnte '$value' nicht ausführen";
|
||||
}else
|
||||
$error .= "Konnte '$value' nicht finden";
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// remove Readonly-Fields
|
||||
$ro_prefix = "ro_";
|
||||
foreach($_POST as $key=>$value) {
|
||||
if(strlen($key)>strlen($ro_prefix) && substr($key,0,strlen($ro_prefix))==$ro_prefix){
|
||||
unset($_SESSION['setup'][$configfile][substr($key,strlen($ro_prefix), strlen($key)-strlen($ro_prefix))]);
|
||||
unset($_SESSION['setup'][$configfile][$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if($error=='') {
|
||||
header('Location: ./setup.php?step='.++$step);
|
||||
exit;
|
||||
}else
|
||||
$page = str_replace('[MESSAGE]', "<div class=\"inputerror\">$error</div>", $page);
|
||||
}else
|
||||
$page = str_replace('[MESSAGE]', "<div class=\"inputerror\">$error</div>", $page);
|
||||
}
|
||||
|
||||
$page = str_replace('[MESSAGE]','', $page);
|
||||
echo $page;
|
||||
|
||||
if($step == 5 && stepFehler(5))
|
||||
{
|
||||
@unlink(__DIR__ . '/setup.conf.php');
|
||||
@unlink(__DIR__ . '/setup-cli.php');
|
||||
@unlink(__DIR__ . '/setup.css');
|
||||
@unlink(__FILE__);
|
||||
@rmdir(__DIR__);
|
||||
}
|
||||
|
||||
function GenerateConfigFiles($output_folder)
|
||||
{
|
||||
if(!stepFehler(3)) {
|
||||
return false;
|
||||
}
|
||||
$fehler = true;
|
||||
foreach($_SESSION['setup'] as $file=>$vars) {
|
||||
$fehler = false;
|
||||
}
|
||||
foreach($_SESSION['setup'] as $file=>$vars) {
|
||||
if($file !== 'user.inc.php')
|
||||
{
|
||||
$fehler = true;
|
||||
continue;
|
||||
}
|
||||
if(!is_dir($output_folder))
|
||||
{
|
||||
$fehler = true;
|
||||
continue;
|
||||
}
|
||||
$out = "<?php\n";
|
||||
|
||||
$WFdbhost = '';
|
||||
$WFdbname = '';
|
||||
$WFdbpass = '';
|
||||
$WFdbuser = '';
|
||||
$WFuserdata = '';
|
||||
|
||||
foreach($vars as $key=>$value)
|
||||
{
|
||||
if(in_array($key, array('WFdbhost', 'WFdbname', 'WFdbuser','WFdbpass','WFuserdata'))) {
|
||||
$$key = $value;
|
||||
}
|
||||
}
|
||||
if($WFdbname == '' || $WFdbuser == '')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$db= mysqli_connect($WFdbhost,$WFdbuser,$WFdbpass);
|
||||
if(!$db)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!mysqli_select_db($db,$WFdbname))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach($vars as $key=>$value)
|
||||
{
|
||||
if(!in_array($key, array('WFdbhost', 'WFdbname', 'WFdbuser','WFdbpass','WFuserdata'))) {
|
||||
continue;
|
||||
}
|
||||
if($key === 'WFuserdata' && !is_dir($value))
|
||||
{
|
||||
$fehler = true;
|
||||
continue;
|
||||
}
|
||||
if(strpos($key, 'WF') !== false){
|
||||
if($value==='true' || $value==='false'){
|
||||
$out .= '$this->' . $key . '=' . $value . ';' . "\n";
|
||||
}
|
||||
else{
|
||||
$out .= '$this->' . $key . '=\'' . (str_replace('\'', '\\\'', str_replace('\\', '\\\\', $value))) . '\';' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*$out2 = "<?php\n";
|
||||
$out2 .= " define('USEFPDF2',true);\r\n";
|
||||
$out2 .= "?>";
|
||||
if(!file_put_contents(dirname(__FILE__).'/../../conf/user_defined.php', $out2))$fehler = true;*/
|
||||
if(!file_put_contents($output_folder.$file, $out)) {
|
||||
$fehler = true;
|
||||
}
|
||||
}
|
||||
return !$fehler;
|
||||
}
|
||||
|
||||
function GenerateHtml($step, $setup)
|
||||
{
|
||||
if(!array_key_exists($step, $setup)) { return "<h2>Page doesnt exist</h2>"; }
|
||||
|
||||
$html = "";
|
||||
if(array_key_exists('description',$setup[$step])) $html .= "<h2>{$setup[$step]['description']}</h2>";
|
||||
if(array_key_exists('configfile',$setup[$step])) $html .= "<input type=\"hidden\" name=\"_CONFIGFILE\" value=\"{$setup[$step]['configfile']}\">";
|
||||
if(array_key_exists('action',$setup[$step])) $html .= "<input type=\"hidden\" name=\"_ACTION\" value=\"{$setup[$step]['action']}\">";
|
||||
|
||||
$fields = '';
|
||||
foreach($setup[$step]['fields'] as $key=>$value)
|
||||
{
|
||||
$name = $key;
|
||||
$text = ((array_key_exists('text',$value)) ? $value['text'] : $value);
|
||||
$type = ((array_key_exists('type',$value)) ? $value['type'] : "text");
|
||||
$note = ((array_key_exists('note',$value)) ? $value['note'] : "");
|
||||
$default = ((array_key_exists('default',$value)) ? $value['default'] : "");
|
||||
$options = ((array_key_exists('options',$value)) ? $value['options'] : array());
|
||||
$fvalue = ((array_key_exists('value',$value)) ? $value['value'] : "");
|
||||
$readonly = ((array_key_exists('readonly',$value)) ? $value['readonly'] : "");
|
||||
$sql = ((array_key_exists('sql',$value)) ? $value['sql'] : "");
|
||||
$invisible = ((array_key_exists('invisible',$value)) ? $value['invisible'] : "");
|
||||
|
||||
if($readonly!="") $ro = "<input type=\"hidden\" name=\"ro_$name\" value=\"$name\">";
|
||||
if($sql!="") $mysql = "<input type=\"hidden\" name=\"sql_$name\" value=\"$sql\">";
|
||||
|
||||
if($invisible=="")
|
||||
{
|
||||
if($type=='text'){
|
||||
$input = "<input type=\"text\" name=\"$name\" value=\"$default\" placeholder=\"$text\">";
|
||||
}
|
||||
if($type=='password'){
|
||||
$input = "<input type=\"password\" name=\"$name\" value=\"$default\" placeholder=\"$text\">";
|
||||
}
|
||||
|
||||
if($type=='checkbox'){
|
||||
$input = "<label><input type=\"checkbox\" name=\"$name\" value=\"$fvalue\"> $text</label>";
|
||||
}
|
||||
|
||||
if($type=='select') {
|
||||
$opt_out = '';
|
||||
foreach($options as $opt_value=>$opt_text){
|
||||
$selected = (($default!="" && $default==$opt_value) ? 'selected' : '');
|
||||
$opt_out .= "<option value=\"$opt_value\" $selected>$opt_text</option>";
|
||||
}
|
||||
$input = "<select name=\"$name\">$opt_out</select>";
|
||||
}
|
||||
$field = "<div class=\"row\"><div>{$input}{$ro}{$mysql}</div><div>$note</div></div>\n";
|
||||
}else
|
||||
$field = "<input type=\"hidden\" name=\"$name\" value=\"1\">{$ro}{$mysql}";
|
||||
|
||||
$fields .= $field;
|
||||
}
|
||||
$html .= "\n[MESSAGE]\n$fields\n[BUTTON]";
|
||||
|
||||
$page = HtmlTemplate($html, $step);
|
||||
|
||||
return $page;
|
||||
}
|
||||
|
||||
function HtmlTemplate($html)
|
||||
{
|
||||
global $step;
|
||||
|
||||
// CSS inline einbinden; ansonsten wird die letzte Seite nicht korrekt angezeigt
|
||||
// Auf der letzten Seite werden alle Dateien im setup-Order gelöscht.
|
||||
$cssContent = file_get_contents(__DIR__ . '/setup.css');
|
||||
|
||||
return
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
|
||||
<html><head>
|
||||
<style type=\"text/css\">{$cssContent}</style>
|
||||
<title>OpenXE Installer</title>
|
||||
</head><body class=\"slide-{$step}\"><div id=\"main\"><div class=\"header\"><h1 class=\"headline\">OpenXE Installer</h1></div><div class=\"content\"><form action=\"\" method=\"POST\">
|
||||
{$html}
|
||||
</form></div>
|
||||
<!--
|
||||
<div class=\"footer\"><p>Nutzen Sie unseren <a href=\"https://shop.xentral.biz/sonstige/1-jahr-zugang-updateserver-open-source-version.html?c=164?c=164\" target=\"_blank\">Update-Server</a> um auch mit der Open-Source Version mit Updates versorgt zu sein.</p></div>
|
||||
--!>
|
||||
<div class=\"footer\"><p>
|
||||
OpenXE is free open source software under AGPL/EGPL license, based on <a href=\"https://xentral.com\" target=\"_blank\">Xentral®</a> by Xentral ERP Software GmbH.</p></div>
|
||||
</div></body></html>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine under which linux user runs the webserver
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function DetermineWebserverUser()
|
||||
{
|
||||
$username = @getenv('USERNAME') ?: @getenv('USER');
|
||||
if ($username !== false && !empty($username)) {
|
||||
return $username;
|
||||
}
|
||||
$username = $_SERVER['USERNAME'] ?: $_SERVER['USER'];
|
||||
if (!empty($username)) {
|
||||
return $username;
|
||||
}
|
||||
$username = trim(@shell_exec('whoami'));
|
||||
if (!empty($username)) {
|
||||
return $username;
|
||||
}
|
||||
|
||||
return get_current_user(); // Eventuell falsch unter IIS
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the full path of the php binary
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function DeterminePhpBinary()
|
||||
{
|
||||
if (!empty(PHP_BINDIR)) {
|
||||
return PHP_BINDIR . '/php';
|
||||
}
|
||||
$binary = trim(@shell_exec('which php'));
|
||||
if (!empty($binary)) {
|
||||
return $binary;
|
||||
}
|
||||
|
||||
return '/usr/bin/env php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the full path of the installation directory; without trailing slash
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function DetermineInstallationDir()
|
||||
{
|
||||
$baseDir = null;
|
||||
if (!empty(__FILE__)) {
|
||||
$offset = strpos(__FILE__, '/www/setup/setup.php');
|
||||
if ($offset !== false) {
|
||||
$baseDir = substr_replace(__FILE__, '', $offset);
|
||||
}
|
||||
}
|
||||
if (!empty($baseDir)) {
|
||||
return $baseDir;
|
||||
}
|
||||
|
||||
if (!empty($_SERVER['SCRIPT_FILENAME'])) {
|
||||
$offset = strpos($_SERVER['SCRIPT_FILENAME'], '/www/setup/setup.php');
|
||||
if ($offset !== false) {
|
||||
$baseDir = substr_replace($_SERVER['SCRIPT_FILENAME'], '', $offset);
|
||||
}
|
||||
}
|
||||
|
||||
return $baseDir;
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
session_start();
|
||||
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
|
||||
ini_set('display_errors', 1);
|
||||
$config_file = 'setup.conf.php';
|
||||
$output_folder = '../../conf/';
|
||||
|
||||
if(!is_file($config_file) ) { echo 'Config-File is missing'; return; }
|
||||
include_once($config_file);
|
||||
|
||||
#########################################################################
|
||||
$max_steps = count(array_filter($setup))+1;
|
||||
|
||||
$step = (($_GET['step']!='') ? $_GET['step'] : 1);
|
||||
$submit = $_POST['_SUBMIT'];
|
||||
|
||||
|
||||
$isSecure = false;
|
||||
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
|
||||
$isSecure = true;
|
||||
}
|
||||
elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
|
||||
$isSecure = true;
|
||||
}
|
||||
$REQUEST_PROTOCOL = $isSecure ? 'https' : 'http';
|
||||
|
||||
//$weburl = $REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].":".$_SERVER['SERVER_PORT'].str_replace('setup/setup.php?step=5','',$_SERVER['REQUEST_URI'])."index.php?module=welcome&action=cronjob";
|
||||
//$weburllink = $REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].":".$_SERVER['SERVER_PORT'].str_replace('setup/setup.php?step=5','',$_SERVER['REQUEST_URI']);
|
||||
|
||||
if($_SERVER['SCRIPT_URI'] != '')
|
||||
{
|
||||
$weburl = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['SCRIPT_URI'])."index.php?module=welcome&action=cronjob";
|
||||
// $weburllink = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['SCRIPT_URI']);
|
||||
}elseif($_SERVER['REQUEST_URI'] != '' && $_SERVER['SERVER_ADDR']!='' && $_SERVER['SERVER_ADDR']!='::1' && strpos($_SERVER['SERVER_SOFTWARE'],"nginx")===false)
|
||||
{
|
||||
$weburl = (isset($_SERVER['SERVER_ADDR']) && $_SERVER['SERVER_ADDR']?$REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443?':'.$_SERVER['SERVER_PORT']:''):'').str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['REQUEST_URI'])."index.php?module=welcome&action=cronjob";
|
||||
// $weburllink = (isset($_SERVER['SERVER_ADDR']) && $_SERVER['SERVER_ADDR']?$REQUEST_PROTOCOL."://".$_SERVER['SERVER_ADDR'].(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443?':'.$_SERVER['SERVER_PORT']:''):'').str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$_SERVER['REQUEST_URI']);
|
||||
} elseif($_SERVER['SERVER_NAME']!="") //MAMP auf macos
|
||||
{
|
||||
$weburl = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$REQUEST_PROTOCOL."://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].$_SERVER['REQUESR_URI'].$_SERVER['SCRIPT_NAME'])."index.php?module=welcome&action=cronjob";
|
||||
// $weburllink = str_replace(array('setup/setup.php?step=5','setup/setup.php'),array('',''),$REQUEST_PROTOCOL."://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].$_SERVER['REQUESR_URI'].$_SERVER['SCRIPT_NAME']);
|
||||
}
|
||||
else{
|
||||
$weburl = '../index.php?module=welcome&action=cronjob';
|
||||
$weburllink = '../';
|
||||
}
|
||||
|
||||
$weburllink = '../';
|
||||
|
||||
if($step>=$max_steps){
|
||||
//GenerateConfigFiles($output_folder);
|
||||
//if($config['postinstall']) PostInstall();
|
||||
$webserverUser = DetermineWebserverUser();
|
||||
$phpBinary = DeterminePhpBinary();
|
||||
$baseDir = DetermineInstallationDir();
|
||||
$cronjobStarterPath = $baseDir . '/cronjobs/starter2.php';
|
||||
$cronjobLine = htmlspecialchars(sprintf('* * * * * %s %s > /dev/null 2>&1', $phpBinary, $cronjobStarterPath));
|
||||
|
||||
$page = HtmlTemplate(
|
||||
"<h2>Setup erfolgreich beendet!</h2>
|
||||
<p>Um den Prozessstarter nutzen zu können: Tragen Sie folgendes Script in ihrer crontab ein:</p>
|
||||
<pre style=\"font-size:9pt\">php {$cronjobStarterPath}</pre>
|
||||
<p>Am besten eignet sich ein Interval von einer Minute. Wichtig ist dass der Cronjob unter dem Benutzer des Webservers läuft.</p>
|
||||
<br>
|
||||
<div id=\"crontab\">
|
||||
<h3>Anleitung – Crontab einrichten</h3>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Nachfolgendes Kommando ausführen:</p>
|
||||
<pre class=\"console\">sudo crontab -u {$webserverUser} -e</pre>
|
||||
</li>
|
||||
<li>
|
||||
<p>Anschließend öffnet sich ein Editor. Dort folgende Zeile einfügen und die Datei speichern:</p>
|
||||
<pre class=\"console\">{$cronjobLine}</pre>
|
||||
</li>
|
||||
<li>
|
||||
<p>Nach dem Verlassen des Editors sollte diese Ausgabe als Bestätigung erscheinen:</p>
|
||||
<pre class=\"console\">crontab: installing new crontab</pre>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<br><br>
|
||||
<center>
|
||||
<a href=\"$weburllink\">Anmelden mit Benutzer: <i>admin</i> und Passwort: <i>admin</i></a>
|
||||
<br><br>
|
||||
Bitte nach der Installation das <a href=\"".$weburllink."index.php?module=upgrade\" target=\"_blank\">Datenbank-Upgrade</a> durchführen.</a>
|
||||
</center>
|
||||
");
|
||||
}else{
|
||||
$ok = true;
|
||||
if($step == 1)
|
||||
{
|
||||
$setup[$step]['description'] = stepMessage($step);
|
||||
$ok = stepFehler($step);
|
||||
}else $ok = stepFehler($step);
|
||||
$page = GenerateHtml($step, $setup);
|
||||
if($ok){$page = str_replace('[BUTTON]', (($step<=$max_steps)?"<input type=\"submit\" name=\"_SUBMIT\" value=\"Weiter\" class=\"btn\">":""), $page);}else{$page = str_replace('[BUTTON]','',$page);}
|
||||
}
|
||||
if($submit!='') {
|
||||
$configfile = $_POST['_CONFIGFILE'];
|
||||
$action = $_POST['_ACTION'];
|
||||
unset($_POST['_CONFIGFILE']);
|
||||
unset($_POST['_ACTION']);
|
||||
unset($_POST['_SUBMIT']);
|
||||
|
||||
$error = ((function_exists($action ?? '')) ? $action() : '');
|
||||
if($configfile=='') $error .= "<br>'configfile' for this step is missing";
|
||||
|
||||
if($error=='') {
|
||||
// Convert Fields to Session
|
||||
foreach($_POST as $key=>$value)
|
||||
$_SESSION['setup'][$configfile][$key] = $value;
|
||||
if($step == 3)GenerateConfigFiles($output_folder);
|
||||
if($step == 3)CreateUserdata();
|
||||
if($step == 3)PostInstall();
|
||||
// execute Sql-Files
|
||||
$sql_prefix = "sql_";
|
||||
|
||||
foreach($_POST as $key=>$value) {
|
||||
if(strlen($key)>strlen($sql_prefix) && substr($key,0,strlen($sql_prefix))==$sql_prefix &&
|
||||
$_SESSION['setup'][$configfile][substr($key,strlen($sql_prefix), strlen($key)-strlen($sql_prefix))]!=''){
|
||||
unset($_SESSION['setup'][$configfile][$key]);
|
||||
if($value != '../../database/struktur.sql' && $value != '../../database/beispiel.sql')continue;
|
||||
|
||||
if(is_file($value)){
|
||||
if(is_file(__DIR__.'/../../conf/user.inc.php'))
|
||||
{
|
||||
$import = file_get_contents($value);
|
||||
|
||||
$import = preg_replace ("%/\*(.*)\*/%Us", '', $import);
|
||||
$import = preg_replace ("%^--(.*)\n%mU", '', $import);
|
||||
$import = preg_replace ("%^$\n%mU", '', $import);
|
||||
|
||||
$db= mysqli_connect($_SESSION['setup'][$configfile]['WFdbhost'],$_SESSION['setup'][$configfile]['WFdbuser'],$_SESSION['setup'][$configfile]['WFdbpass']);
|
||||
if($db)
|
||||
{
|
||||
if(mysqli_select_db($db,$_SESSION['setup'][$configfile]['WFdbname']))
|
||||
{
|
||||
mysqli_set_charset($db,"utf8");
|
||||
mysqli_query($db,"SET SESSION SQL_MODE :=''");
|
||||
//mysqli_real_escape_string($db,$import);
|
||||
|
||||
if($value == '../../database/struktur.sql')
|
||||
{
|
||||
// Clear target DB
|
||||
mysqli_query($db,'SET foreign_key_checks = 0');
|
||||
if ($result = mysqli_query($db,"SHOW TABLES"))
|
||||
{
|
||||
while($row = $result->fetch_array(MYSQLI_NUM))
|
||||
{
|
||||
mysqli_query($db,'DROP TABLE IF EXISTS '.$row[0]);
|
||||
}
|
||||
}
|
||||
mysqli_query($db,'SET foreign_key_checks = 1');
|
||||
}
|
||||
|
||||
|
||||
$import = explode (";\n", $import);
|
||||
|
||||
foreach ($import as $imp){
|
||||
if ($imp != '' && $imp != ' ' && trim($imp) != ''){
|
||||
mysqli_query($db,$imp);
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($_POST['BeispielTpl']) && $_POST['BeispielTpl'])
|
||||
mysqli_query($db, "INSERT INTO `user` (`id`, `username`, `password`, `repassword`, `description`, `settings`, `parentuser`, `activ`, `type`, `adresse`, `fehllogins`, `standarddrucker`, `firma`, `logdatei`, `startseite`, `hwtoken`, `hwkey`, `hwcounter`, `motppin`, `motpsecret`, `passwordmd5`, `externlogin`, `projekt_bevorzugen`, `email_bevorzugen`, `projekt`, `rfidtag`, `vorlage`, `kalender_passwort`, `kalender_ausblenden`, `kalender_aktiv`, `gpsstechuhr`, `standardetikett`, `standardfax`, `internebezeichnung`, `hwdatablock`) VALUES
|
||||
(3, 'demomitarbeiter', 'pllIX0pw7JU9c', 0, '', 'a:6:{s:16:\"pos_list_projekt\";s:1:\"0\";s:18:\"pos_list_kassierer\";s:1:\"0\";s:22:\"pos_list_kassierername\";s:1:\"0\";s:18:\"pos_list_lkadresse\";s:1:\"0\";s:18:\"lohnabrechnung_von\";s:0:\"\";s:18:\"lohnabrechnung_bis\";s:0:\"\";}', 0, 1, 'standard', 6, 0, 0, 1, '2015-10-26 16:01:23', '', 0, '', 0, '', '', '2ad71933e4b074c4671425c8e6b48021', 0, 0, 1, 0, '', '', '', 0, 0, 0, 0, 0, NULL, '');
|
||||
");
|
||||
$_SESSION['setup'][$value] = 1;
|
||||
}
|
||||
mysqli_close($db);
|
||||
}
|
||||
/*
|
||||
if(exec("mysql --user='{$_SESSION['setup'][$configfile]['WFdbuser']}' --password='{$_SESSION['setup'][$configfile]['WFdbpass']}' --host='{$_SESSION['setup'][$configfile]['WFdbhost']}' --database='{$_SESSION['setup'][$configfile]['WFdbname']}' < '$value'", $sql_out, $sql_status)==2)
|
||||
$error = "Konnte '$value' nicht ausführen";
|
||||
}else
|
||||
$error .= "Konnte '$value' nicht finden";
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// remove Readonly-Fields
|
||||
$ro_prefix = "ro_";
|
||||
foreach($_POST as $key=>$value) {
|
||||
if(strlen($key)>strlen($ro_prefix) && substr($key,0,strlen($ro_prefix))==$ro_prefix){
|
||||
unset($_SESSION['setup'][$configfile][substr($key,strlen($ro_prefix), strlen($key)-strlen($ro_prefix))]);
|
||||
unset($_SESSION['setup'][$configfile][$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if($error=='') {
|
||||
header('Location: ./setup.php?step='.++$step);
|
||||
exit;
|
||||
}else
|
||||
$page = str_replace('[MESSAGE]', "<div class=\"inputerror\">$error</div>", $page);
|
||||
}else
|
||||
$page = str_replace('[MESSAGE]', "<div class=\"inputerror\">$error</div>", $page);
|
||||
}
|
||||
|
||||
$page = str_replace('[MESSAGE]','', $page);
|
||||
echo $page;
|
||||
|
||||
if($step == 5 && stepFehler(5))
|
||||
{
|
||||
@unlink(__DIR__ . '/setup.conf.php');
|
||||
@unlink(__DIR__ . '/setup-cli.php');
|
||||
@unlink(__DIR__ . '/setup.css');
|
||||
@unlink(__FILE__);
|
||||
@rmdir(__DIR__);
|
||||
}
|
||||
|
||||
function GenerateConfigFiles($output_folder)
|
||||
{
|
||||
if(!stepFehler(3)) {
|
||||
return false;
|
||||
}
|
||||
$fehler = true;
|
||||
foreach($_SESSION['setup'] as $file=>$vars) {
|
||||
$fehler = false;
|
||||
}
|
||||
foreach($_SESSION['setup'] as $file=>$vars) {
|
||||
if($file !== 'user.inc.php')
|
||||
{
|
||||
$fehler = true;
|
||||
continue;
|
||||
}
|
||||
if(!is_dir($output_folder))
|
||||
{
|
||||
$fehler = true;
|
||||
continue;
|
||||
}
|
||||
$out = "<?php\n";
|
||||
|
||||
$WFdbhost = '';
|
||||
$WFdbname = '';
|
||||
$WFdbpass = '';
|
||||
$WFdbuser = '';
|
||||
$WFuserdata = '';
|
||||
|
||||
foreach($vars as $key=>$value)
|
||||
{
|
||||
if(in_array($key, array('WFdbhost', 'WFdbname', 'WFdbuser','WFdbpass','WFuserdata'))) {
|
||||
$$key = $value;
|
||||
}
|
||||
}
|
||||
if($WFdbname == '' || $WFdbuser == '')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$db= mysqli_connect($WFdbhost,$WFdbuser,$WFdbpass);
|
||||
if(!$db)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!mysqli_select_db($db,$WFdbname))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach($vars as $key=>$value)
|
||||
{
|
||||
if(!in_array($key, array('WFdbhost', 'WFdbname', 'WFdbuser','WFdbpass','WFuserdata'))) {
|
||||
continue;
|
||||
}
|
||||
if($key === 'WFuserdata' && !is_dir($value))
|
||||
{
|
||||
$fehler = true;
|
||||
continue;
|
||||
}
|
||||
if(strpos($key, 'WF') !== false){
|
||||
if($value==='true' || $value==='false'){
|
||||
$out .= '$this->' . $key . '=' . $value . ';' . "\n";
|
||||
}
|
||||
else{
|
||||
$out .= '$this->' . $key . '=\'' . (str_replace('\'', '\\\'', str_replace('\\', '\\\\', $value))) . '\';' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*$out2 = "<?php\n";
|
||||
$out2 .= " define('USEFPDF2',true);\r\n";
|
||||
$out2 .= "?>";
|
||||
if(!file_put_contents(dirname(__FILE__).'/../../conf/user_defined.php', $out2))$fehler = true;*/
|
||||
if(!file_put_contents($output_folder.$file, $out)) {
|
||||
$fehler = true;
|
||||
}
|
||||
}
|
||||
return !$fehler;
|
||||
}
|
||||
|
||||
function GenerateHtml($step, $setup)
|
||||
{
|
||||
if(!array_key_exists($step, $setup)) { return "<h2>Page doesnt exist</h2>"; }
|
||||
|
||||
$html = "";
|
||||
if(array_key_exists('description',$setup[$step])) $html .= "<h2>{$setup[$step]['description']}</h2>";
|
||||
if(array_key_exists('configfile',$setup[$step])) $html .= "<input type=\"hidden\" name=\"_CONFIGFILE\" value=\"{$setup[$step]['configfile']}\">";
|
||||
if(array_key_exists('action',$setup[$step])) $html .= "<input type=\"hidden\" name=\"_ACTION\" value=\"{$setup[$step]['action']}\">";
|
||||
|
||||
$fields = '';
|
||||
foreach($setup[$step]['fields'] as $key=>$value)
|
||||
{
|
||||
$name = $key;
|
||||
$text = ((array_key_exists('text',$value)) ? $value['text'] : $value);
|
||||
$type = ((array_key_exists('type',$value)) ? $value['type'] : "text");
|
||||
$note = ((array_key_exists('note',$value)) ? $value['note'] : "");
|
||||
$default = ((array_key_exists('default',$value)) ? $value['default'] : "");
|
||||
$options = ((array_key_exists('options',$value)) ? $value['options'] : array());
|
||||
$fvalue = ((array_key_exists('value',$value)) ? $value['value'] : "");
|
||||
$readonly = ((array_key_exists('readonly',$value)) ? $value['readonly'] : "");
|
||||
$sql = ((array_key_exists('sql',$value)) ? $value['sql'] : "");
|
||||
$invisible = ((array_key_exists('invisible',$value)) ? $value['invisible'] : "");
|
||||
|
||||
if($readonly!="") $ro = "<input type=\"hidden\" name=\"ro_$name\" value=\"$name\">";
|
||||
if($sql!="") $mysql = "<input type=\"hidden\" name=\"sql_$name\" value=\"$sql\">";
|
||||
|
||||
if($invisible=="")
|
||||
{
|
||||
if($type=='text'){
|
||||
$input = "<input type=\"text\" name=\"$name\" value=\"$default\" placeholder=\"$text\">";
|
||||
}
|
||||
if($type=='password'){
|
||||
$input = "<input type=\"password\" name=\"$name\" value=\"$default\" placeholder=\"$text\">";
|
||||
}
|
||||
|
||||
if($type=='checkbox'){
|
||||
$input = "<label><input type=\"checkbox\" name=\"$name\" value=\"$fvalue\"> $text</label>";
|
||||
}
|
||||
|
||||
if($type=='select') {
|
||||
$opt_out = '';
|
||||
foreach($options as $opt_value=>$opt_text){
|
||||
$selected = (($default!="" && $default==$opt_value) ? 'selected' : '');
|
||||
$opt_out .= "<option value=\"$opt_value\" $selected>$opt_text</option>";
|
||||
}
|
||||
$input = "<select name=\"$name\">$opt_out</select>";
|
||||
}
|
||||
$field = "<div class=\"row\"><div>{$input}{$ro}{$mysql}</div><div>$note</div></div>\n";
|
||||
}else
|
||||
$field = "<input type=\"hidden\" name=\"$name\" value=\"1\">{$ro}{$mysql}";
|
||||
|
||||
$fields .= $field;
|
||||
}
|
||||
$html .= "\n[MESSAGE]\n$fields\n[BUTTON]";
|
||||
|
||||
$page = HtmlTemplate($html, $step);
|
||||
|
||||
return $page;
|
||||
}
|
||||
|
||||
function HtmlTemplate($html)
|
||||
{
|
||||
global $step;
|
||||
|
||||
// CSS inline einbinden; ansonsten wird die letzte Seite nicht korrekt angezeigt
|
||||
// Auf der letzten Seite werden alle Dateien im setup-Order gelöscht.
|
||||
$cssContent = file_get_contents(__DIR__ . '/setup.css');
|
||||
|
||||
return
|
||||
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
|
||||
<html><head>
|
||||
<style type=\"text/css\">{$cssContent}</style>
|
||||
<title>DBXE Installer</title>
|
||||
</head><body class=\"slide-{$step}\"><div id=\"main\"><div class=\"header\"><h1 class=\"headline\">DB Installer</h1></div><div class=\"content\"><form action=\"\" method=\"POST\">
|
||||
{$html}
|
||||
</form></div>
|
||||
<!--
|
||||
<div class=\"footer\"><p>Nutzen Sie unseren <a href=\"https://shop.xentral.biz/sonstige/1-jahr-zugang-updateserver-open-source-version.html?c=164?c=164\" target=\"_blank\">Update-Server</a> um auch mit der Open-Source Version mit Updates versorgt zu sein.</p></div>
|
||||
--!>
|
||||
<div class=\"footer\"><p>
|
||||
DBXE is free open source software under AGPL/EGPL license, based on OpenXE, <a href=\"https://xentral.com\" target=\"_blank\">Xentral®</a> by Xentral ERP Software GmbH.</p></div>
|
||||
</div></body></html>";
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine under which linux user runs the webserver
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function DetermineWebserverUser()
|
||||
{
|
||||
$username = @getenv('USERNAME') ?: @getenv('USER');
|
||||
if ($username !== false && !empty($username)) {
|
||||
return $username;
|
||||
}
|
||||
$username = $_SERVER['USERNAME'] ?: $_SERVER['USER'];
|
||||
if (!empty($username)) {
|
||||
return $username;
|
||||
}
|
||||
$username = trim(@shell_exec('whoami'));
|
||||
if (!empty($username)) {
|
||||
return $username;
|
||||
}
|
||||
|
||||
return get_current_user(); // Eventuell falsch unter IIS
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the full path of the php binary
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function DeterminePhpBinary()
|
||||
{
|
||||
if (!empty(PHP_BINDIR)) {
|
||||
return PHP_BINDIR . '/php';
|
||||
}
|
||||
$binary = trim(@shell_exec('which php'));
|
||||
if (!empty($binary)) {
|
||||
return $binary;
|
||||
}
|
||||
|
||||
return '/usr/bin/env php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the full path of the installation directory; without trailing slash
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function DetermineInstallationDir()
|
||||
{
|
||||
$baseDir = null;
|
||||
if (!empty(__FILE__)) {
|
||||
$offset = strpos(__FILE__, '/www/setup/setup.php');
|
||||
if ($offset !== false) {
|
||||
$baseDir = substr_replace(__FILE__, '', $offset);
|
||||
}
|
||||
}
|
||||
if (!empty($baseDir)) {
|
||||
return $baseDir;
|
||||
}
|
||||
|
||||
if (!empty($_SERVER['SCRIPT_FILENAME'])) {
|
||||
$offset = strpos($_SERVER['SCRIPT_FILENAME'], '/www/setup/setup.php');
|
||||
if ($offset !== false) {
|
||||
$baseDir = substr_replace($_SERVER['SCRIPT_FILENAME'], '', $offset);
|
||||
}
|
||||
}
|
||||
|
||||
return $baseDir;
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 21 KiB |
|
|
@ -0,0 +1,92 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xml:space="preserve"
|
||||
style="enable-background:new 0 0 1440 1024;"
|
||||
viewBox="0 0 300 104"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="Layer_1"
|
||||
version="1.1"><metadata
|
||||
id="metadata35"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs33" />
|
||||
<style
|
||||
id="style2"
|
||||
type="text/css">
|
||||
.st0{fill:#008AC2;}
|
||||
.st1{fill:#6E6F72;}
|
||||
</style>
|
||||
<g
|
||||
transform="matrix(0.5179558,0,0,0.5179558,-222.92818,-213.2424)"
|
||||
id="g28">
|
||||
<polygon
|
||||
style="fill:#008ac2"
|
||||
id="polygon4"
|
||||
points="466.7,527.6 501.7,492.6 430.4,456.6 430.4,544.8 466.7,560.4 "
|
||||
class="st0" />
|
||||
<polygon
|
||||
style="fill:#008ac2"
|
||||
id="polygon6"
|
||||
points="584.2,450.5 509.6,411.7 435,450.5 509.1,486.3 "
|
||||
class="st0" />
|
||||
<polygon
|
||||
style="fill:#008ac2"
|
||||
id="polygon8"
|
||||
points="472.3,531.2 472.3,612.3 506,575.5 506,495.4 "
|
||||
class="st0" />
|
||||
<path
|
||||
style="fill:#6e6f72"
|
||||
id="path10"
|
||||
d="m 567.1,483.3 c -30.8,0 -45.8,23.5 -45.8,46.9 0,23.4 14.5,45.9 45.8,45.9 31.3,0 45.4,-23 45.6,-46 0.3,-23.3 -14.9,-46.8 -45.6,-46.8 z m 0,77.4 c -21,0 -28.9,-15.6 -29.2,-30.3 -0.4,-15 8.3,-31.9 29.2,-31.9 21,0 29.4,16.8 29.1,31.8 -0.2,14.6 -8.1,30.4 -29.1,30.4 z"
|
||||
class="st1" />
|
||||
<path
|
||||
style="fill:#6e6f72"
|
||||
id="path12"
|
||||
d="m 659.8,510.7 c -7.1,0 -15.5,3.1 -20.3,10 l -1,-10 H 624 V 601 h 15.5 v -33.6 c 4.4,6.9 14.2,8.9 20.8,8.9 20.1,0 31.6,-14.5 31.6,-32.8 0,-18.4 -12.8,-32.8 -32.1,-32.8 z m -1.2,50.6 c -10.5,0 -17.8,-8 -17.8,-17.8 0,-9.8 6.6,-17.8 17.8,-17.8 11.2,0 17.8,8 17.8,17.8 0,9.8 -7.2,17.8 -17.8,17.8 z"
|
||||
class="st1" />
|
||||
<path
|
||||
style="fill:#6e6f72"
|
||||
id="path14"
|
||||
d="m 733.8,510.7 c -20.3,0 -33.3,13.6 -33.3,32.4 0,19.9 12.8,33 34.4,33 9.5,0 20.3,-3.3 26.9,-10.1 l -9.9,-9.7 c -3.6,3.6 -11.1,5.8 -16.8,5.8 -10.9,0 -17.7,-5.5 -18.7,-13.2 h 48.9 c 2.5,-25.3 -10.6,-38.2 -31.5,-38.2 z m -17.1,25.7 c 2.3,-8 9.2,-12.1 17.5,-12.1 8.9,0 15.3,4 16.3,12.1 z"
|
||||
class="st1" />
|
||||
<path
|
||||
style="fill:#6e6f72"
|
||||
id="path16"
|
||||
d="m 812.4,510.7 c -7.9,0 -14.2,3.2 -20.6,9.6 l -1,-9.6 H 777 v 65.1 h 15.4 v -32.7 c 0,-9.7 6.5,-17.9 16,-17.9 9.9,0 15.1,7.4 15.1,17.1 v 33.5 H 839 v -33.6 c 0,-20.2 -11.8,-31.5 -26.6,-31.5 z"
|
||||
class="st1" />
|
||||
<path
|
||||
style="fill:#008ac2"
|
||||
id="path18"
|
||||
d="m 1009.6,500.3 v -17 H 943 c 0,30.9 0,62 0,92.9 h 66.6 v -17.3 h -50 v -21 h 48.2 v -16.3 h -48.2 v -21.4 h 50 z"
|
||||
class="st0" />
|
||||
<polygon
|
||||
style="fill:#008ac2"
|
||||
id="polygon20"
|
||||
points="911.7,576.1 931,576.2 931,574.5 909.1,541 897.9,554.7 911.7,576.1 "
|
||||
class="st0" />
|
||||
<rect
|
||||
style="fill:#008ac2"
|
||||
id="rect22"
|
||||
height="0"
|
||||
width="0"
|
||||
class="st0"
|
||||
y="485.10001"
|
||||
x="932.40002" />
|
||||
<polygon
|
||||
style="fill:#008ac2"
|
||||
id="polygon24"
|
||||
points="912.1,483.3 900.2,501.4 901.3,503.1 902.9,505.4 909.4,515.4 931,484.5 931,483.3 914,483.3 912.1,483.3 "
|
||||
class="st0" />
|
||||
<polygon
|
||||
style="fill:#008ac2"
|
||||
id="polygon26"
|
||||
points="871.5,483.3 871.4,483.3 851.9,483.3 851.9,484.6 866.5,506.9 881,529.2 881,529.2 881.1,529.2 881,529.3 851.9,573.5 851.9,573.5 851.9,576.2 868.9,576.2 869,576.2 872.6,571 887.4,548.5 890.5,543.7 900.7,528.2 900.7,528.1 891.6,514.1 891.3,513.7 "
|
||||
class="st0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
|
|
@ -25,11 +25,11 @@
|
|||
</div>
|
||||
<div id="login-wrapper">
|
||||
|
||||
<!--<img src="[TPLLOGOFIRMA]" heigth="72">
|
||||
</img>-->
|
||||
<img src="[TPLLOGOFIRMA]" heigth="72">
|
||||
</img>
|
||||
|
||||
<div class="intro">
|
||||
Willkommen beim ERP von [FIRMENNAME]<br/>
|
||||
Willkommen beim ERP von <b>[FIRMENNAME] </b><br/>
|
||||
Bitte gib Deinen Benutzernamen und Passwort ein!
|
||||
</div>
|
||||
<div [LOGINWARNING_VISIBLE] class="warning"><p>[LOGINWARNING_TEXT]</p></div>
|
||||
|
|
|
|||
|
|
@ -1,34 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
|
||||
<title>OpenXE - Passwort vergessen</title>
|
||||
<link id="shortcuticon" rel="shortcut icon" href="./themes/new/images/favicon/favicon.ico" type="image/x-icon">
|
||||
<link id="favicon" rel="icon" href="./themes/new/images/favicon/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" type="image/png" href="./themes/new/images/favicon/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="icon" type="image/png" href="./themes/new/images/favicon/favicon-32x32.png" sizes="32x32">
|
||||
<script type="text/javascript" src="./js/jquery/jquery-3.5.0.min.js"></script>
|
||||
<script type="text/javascript" src="[JQUERYMIGRATESRC]"></script>
|
||||
<link rel="stylesheet" href="./themes/[THEME]/css/login.css?v=2">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="login-wrapper">
|
||||
<div class="loginbox">
|
||||
|
||||
<img id="logo" src="themes/new/images/openxe_logo.svg" width="100%">
|
||||
</img>
|
||||
|
||||
|
||||
[SPERRMELDUNGNACHRICHT]
|
||||
[PAGE]
|
||||
|
||||
<div class="copyright">
|
||||
© [YEAR] OpenXE-org & Xentral ERP Software GmbH
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
|
||||
<title>DBXE - Passwort vergessen</title>
|
||||
<link id="shortcuticon" rel="shortcut icon" href="./themes/new/images/favicon/favicon.ico" type="image/x-icon">
|
||||
<link id="favicon" rel="icon" href="./themes/new/images/favicon/favicon.ico" type="image/x-icon">
|
||||
<link rel="icon" type="image/png" href="./themes/new/images/favicon/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="icon" type="image/png" href="./themes/new/images/favicon/favicon-32x32.png" sizes="32x32">
|
||||
<script type="text/javascript" src="./js/jquery/jquery-3.5.0.min.js"></script>
|
||||
<script type="text/javascript" src="[JQUERYMIGRATESRC]"></script>
|
||||
<link rel="stylesheet" href="./themes/[THEME]/css/login.css?v=2">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="login-wrapper">
|
||||
<div class="loginbox">
|
||||
|
||||
<img id="logo" src="themes/new/images/openxe_logo.svg" width="100%">
|
||||
</img>
|
||||
|
||||
|
||||
[SPERRMELDUNGNACHRICHT]
|
||||
[PAGE]
|
||||
|
||||
<div class="copyright">
|
||||
© [YEAR] DBXE & OpenXE-org & Xentral ERP Software GmbH
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
|
||||
<title>OpenXE Login</title>
|
||||
<link rel="stylesheet" href="themes/new/css/login.css?v=2">
|
||||
</head>
|
||||
<body>
|
||||
<div class="permission-box">
|
||||
<h1>OpenXE Login</h1>
|
||||
<p class="error">Sie haben nicht das Recht auf diese Seite zugreifen zu dürfen!</p>
|
||||
<p><a href="BACK" class="btn btn-primary">Zurück zur vorherigen Seite</a></p>
|
||||
<p><a href="index.php?module=welcome&action=logout" class="btn btn-secondary">Erneut einloggen</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
|
||||
<title>OpenXE Login</title>
|
||||
<link rel="stylesheet" href="themes/new/css/login.css?v=2">
|
||||
</head>
|
||||
<body>
|
||||
<div class="permission-box">
|
||||
<h1>DBXE Login</h1>
|
||||
<p class="error">Sie haben nicht das Recht auf diese Seite zugreifen zu dürfen!</p>
|
||||
<p><a href="BACK" class="btn btn-primary">Zurück zur vorherigen Seite</a></p>
|
||||
<p><a href="index.php?module=welcome&action=logout" class="btn btn-secondary">Erneut einloggen</a></p>
|
||||
<p>Sie benötigen diesen Zugriff? Bitten Sie um Freigabe unter zugriff@dbxe.de</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
</svg>
|
||||
</div>
|
||||
|
||||
<a class="logo-index" href="index.php" title="OpenXE">
|
||||
<a class="logo-index" href="index.php" title="DBXE">
|
||||
[SIDEBARLOGO]
|
||||
</a>
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 12 KiB |
|
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xml:space="preserve"
|
||||
style="enable-background:new 0 0 1440 1024;"
|
||||
viewBox="0 0 410 104"
|
||||
height="26"
|
||||
width="115"
|
||||
y="0px"
|
||||
x="0px"
|
||||
id="Layer_1"
|
||||
version="1.1"
|
||||
sodipodi:docname="sidebar_logo.svg"
|
||||
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="9.1565217"
|
||||
inkscape:cx="57.5"
|
||||
inkscape:cy="13.050807"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g28" /><metadata
|
||||
id="metadata35"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs33" />
|
||||
<style
|
||||
id="style2"
|
||||
type="text/css">
|
||||
.st0{fill:#ffffff;}
|
||||
.st1{fill:#fffffE;}
|
||||
</style>
|
||||
<g
|
||||
transform="matrix(0.5179558,0,0,0.5179558,-222.92818,-213.2424)"
|
||||
id="g28">
|
||||
<polygon
|
||||
style="fill:#ffffff"
|
||||
id="polygon4"
|
||||
points="466.7,527.6 501.7,492.6 430.4,456.6 430.4,544.8 466.7,560.4 "
|
||||
class="st0" />
|
||||
<polygon
|
||||
style="fill:#ffffff"
|
||||
id="polygon6"
|
||||
points="584.2,450.5 509.6,411.7 435,450.5 509.1,486.3 "
|
||||
class="st0" />
|
||||
<polygon
|
||||
style="fill:#ffffff"
|
||||
id="polygon8"
|
||||
points="472.3,531.2 472.3,612.3 506,575.5 506,495.4 "
|
||||
class="st0" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<rect
|
||||
style="fill:#ffffff"
|
||||
id="rect22"
|
||||
height="0"
|
||||
width="0"
|
||||
class="st0"
|
||||
y="485.10001"
|
||||
x="932.40002" />
|
||||
|
||||
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-weight:500;font-size:123.563px;line-height:1.5;font-family:'AG Book Pro';-inkscape-font-specification:'AG Book Pro Medium';fill:#e20020;stroke-width:46.3214;stroke-linecap:round;stroke-linejoin:round"
|
||||
x="527.25061"
|
||||
y="576.20001"
|
||||
id="text1"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:'AG Book Pro';-inkscape-font-specification:'AG Book Pro Bold';fill:#ffffff;stroke-width:46.3214"
|
||||
x="527.25061"
|
||||
y="576.20001">dBXE</tspan></text></g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
Loading…
Reference in New Issue