From bfeadae2c10b890eebed1b58efa78f9c1203b909 Mon Sep 17 00:00:00 2001
From: isaack <drericlaufer@gmx.de>
Date: Thu, 7 Jan 2021 15:56:48 +0100
Subject: [PATCH] 
 Language/layout.lib.php/autoload.php/anmelden.php/start.class.php
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Erste Schritte für Multilanguage hinzugekommen, momentan nur de noch
möglich. erweiterung auf andere sprachen und select kommen dazu
layout.lib.php mit functionen erweitert
mit der autoload.php wird es einfacher mehrere Datein zu includieren
anmelden.php erneuert und neue functionen sowie sprachdatei eingebaut
start.class.php überarbeitet und erweitert
---
 index.php                              |  26 +-----
 install/db.default.php                 |   4 +
 install/install.class.php              |   1 +
 lib/autoload.php                       |  30 +++++++
 lib/class/session.class.php            |   2 +
 lib/class/start.class.php              |   6 +-
 lib/functions.lib.php                  |   7 ++
 lib/lang/de/index.html                 |   0
 lib/lang/de/seiten/index.html          |   0
 lib/lang/de/seiten/intern/anmelden.php |  28 ++++++
 lib/lang/de/seiten/intern/index.html   |   0
 lib/layout.lib.php                     |  88 ++++++++++++++++++-
 lib/var.php                            |   1 +
 page/intern/anmelden.php               | 115 ++++++-------------------
 page/start.php                         |   7 +-
 15 files changed, 192 insertions(+), 123 deletions(-)
 create mode 100644 lib/autoload.php
 create mode 100644 lib/lang/de/index.html
 create mode 100644 lib/lang/de/seiten/index.html
 create mode 100644 lib/lang/de/seiten/intern/anmelden.php
 create mode 100644 lib/lang/de/seiten/intern/index.html

diff --git a/index.php b/index.php
index 6728918..5564d9b 100644
--- a/index.php
+++ b/index.php
@@ -3,32 +3,10 @@
 if(!file_exists (__dir__ .'/lib/db_config.php' )){
 	header ("location: /install/index.php");
 }
-session_start();
-require_once(__dir__ .'/lib/db_config.php');
-require_once(__dir__ .'/lib/class/db.class.php');
-require_once(__dir__ .'/lib/var.php');
-$grundconfig = $datenbank->get_row("SELECT * FROM ". PREFIX . CONFIG ." ",true);
-require_once(__dir__ .'/lib/session.lib.php');
-require_once(__dir__ .'/lib/lang/lang.de.php');
-require_once (__dir__ .'/lib/functions.lib.php');
-require_once (__dir__ .'/lib/run.inc.php');
-require_once (__dir__ .'/lib/layout.lib.php');
-require_once (__dir__ .'/lib/extras.lib.php');
-require_once (__dir__ .'/lib/extra/mail.php');
-ReloadDelete();
 
-if (!isset($_GET['page']) || empty ($_GET['page'])) 	$_GET['page'] = '/intern/startseite';
-if (!file_exists('page' . $_GET['page'] . '.php')) 		$_GET['page'] = '/error/keine_seite';
-if ($_GET['page'] == '/intern/startseite') 				require_once (__dir__ .'/lib/texte/alt_startseitenpopup.txt');
-if ($_GET['page'] == '/betteln') 						require_once (__dir__ .'/lib/texte/alt_bettelseitenpopup.txt');
+session_start();
 
-CheckLogin();
-$CountDownTime = 0;
-$start_reload = "SELECT * FROM ". PREFIX . RELOAD ." WHERE uid = '".$datenbank->escape($_SESSION['uid']) ."' and tan = 'startseitenaufruf' and bis >= '". time() ."'";
-if ($datenbank->num_rows($start_reload) != 0) {
-	$start = $datenbank->get_row($start_reload,true);
-	$CountDownTime = $start->bis;
-}
+require(__dir__ .'/lib/autoload.php');
 ?>
 
 <!DOCTYPE html>
diff --git a/install/db.default.php b/install/db.default.php
index b3d807a..0ffe8fc 100644
--- a/install/db.default.php
+++ b/install/db.default.php
@@ -57,4 +57,8 @@
 	
 	// Verschlsselungspasswort
 	define("VER_SCHLUESSEL","???SCHLUESSEL???");
+	
+	//Seitenconstante
+	
+	const DIR_FS = '???DIR???';
 ?>
diff --git a/install/install.class.php b/install/install.class.php
index 4483b4b..53c5001 100644
--- a/install/install.class.php
+++ b/install/install.class.php
@@ -43,6 +43,7 @@ class Install{
 		$file = str_replace("???PREFIX???",$this->array['prefix'],$file);
 		$file = str_replace("???SCHLUESSEL???", create_code(16),$file);
 		$file = str_replace("???PW???", create_code(4),$file);
+		$file = str_replace("???DIR???", __dir__ );
 		$datei = fopen("../lib/db_config.php","w");
 		fwrite($datei, $file,100000);
 		fclose($datei);
diff --git a/lib/autoload.php b/lib/autoload.php
new file mode 100644
index 0000000..dc527a9
--- /dev/null
+++ b/lib/autoload.php
@@ -0,0 +1,30 @@
+<?php
+
+require_once( 'db_config.php');
+require_once( 'class/db.class.php');
+require_once( 'var.php');
+$grundconfig = $datenbank->get_row("SELECT * FROM ". PREFIX . CONFIG ." ",true);
+require_once( 'session.lib.php');
+require_once( 'lang/lang.'. $_SESSION['lang'] .'.php');
+require_once ( 'functions.lib.php');
+require_once ( 'run.inc.php');
+require_once ( 'layout.lib.php');
+require_once ( 'extras.lib.php');
+require_once ( 'extra/mail.php');
+ReloadDelete();
+
+if (!isset($_GET['page']) || empty ($_GET['page'])) 	$_GET['page'] = '/intern/startseite';
+if (!file_exists('page' . $_GET['page'] . '.php')) 		$_GET['page'] = '/error/keine_seite';
+if ($_GET['page'] == '/intern/startseite') 				require_once ( 'texte/alt_startseitenpopup.txt');
+if ($_GET['page'] == '/betteln') 						require_once ( 'texte/alt_bettelseitenpopup.txt');
+LoadLanguageFile();
+
+CheckLogin();
+$CountDownTime = 0;
+$start_reload = "SELECT * FROM ". PREFIX . RELOAD ." WHERE uid = '".$datenbank->escape($_SESSION['uid']) ."' and tan = 'startseitenaufruf' and bis >= '". time() ."'";
+if ($datenbank->num_rows($start_reload) != 0) {
+	$start = $datenbank->get_row($start_reload,true);
+	$CountDownTime = $start->bis;
+}
+
+?>
\ No newline at end of file
diff --git a/lib/class/session.class.php b/lib/class/session.class.php
index 5105a1e..316f33f 100644
--- a/lib/class/session.class.php
+++ b/lib/class/session.class.php
@@ -68,6 +68,7 @@ class SESSION{
 					$_SESSION['admin'] = $user->admin;
 					$_SESSION['passwort'] = $user->passwort;
 					$_SESSION['login'] = true;
+					$_SESSION['lang'] = 'de';
 					$meldung = LOGIN_SESSION_TRUE;
 				}
 				header ("location: " . $grundconfig->domain);
@@ -109,6 +110,7 @@ class SESSION{
 					$_SESSION['passwort'] = $login_check->passwort;
 					$_SESSION['admin'] = $login_check->admin;
 					$_SESSION['login'] = true;
+					$_SESSION['lang'] = 'de';
 				}
 			}
 		}
diff --git a/lib/class/start.class.php b/lib/class/start.class.php
index ecb4d4d..a216f7b 100644
--- a/lib/class/start.class.php
+++ b/lib/class/start.class.php
@@ -1,6 +1,6 @@
 <?php
 
-class START{
+class start{
 	private $db;
 	private $session = array();
 	private $grund;
@@ -10,7 +10,7 @@ class START{
 	private $reload = 0;
 	private $ip;
 	
-	function __construct(){
+	public function __construct(){
 		global $datenbank,$_SESSION,$grundconfig;
 		$this->db = $datenbank;
 		$this->session = $this->db->escape($_SESSION);
@@ -39,7 +39,7 @@ class START{
 			"datum" => time(),
 			"betrag" => $this->grund->verdienst_start
 		);
-		$this->db->insert(START_LOG, $array);
+		$this->db->insert(PREFIX . START_LOG, $array);
 	}
 	
 	private function StatistikUpgrade(){
diff --git a/lib/functions.lib.php b/lib/functions.lib.php
index be27524..7bfd642 100644
--- a/lib/functions.lib.php
+++ b/lib/functions.lib.php
@@ -308,4 +308,11 @@ function IMGtoBase64 ( $file = NULL, $ordner = NULL ) {
 		return '';
 	}
 }
+
+function LoadLanguageFile(){
+	global $_GET;
+	if(file_exists(DIR_FS .'/lib/lang/'. $_SESSION['lang'] .'/seiten'. $_GET['page'] .'.php')){
+		require DIR_FS .'/lib/lang/'. $_SESSION['lang'] .'/seiten'. $_GET['page'] .'.php';
+	}
+}
 ?>
diff --git a/lib/lang/de/index.html b/lib/lang/de/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/lib/lang/de/seiten/index.html b/lib/lang/de/seiten/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/lib/lang/de/seiten/intern/anmelden.php b/lib/lang/de/seiten/intern/anmelden.php
new file mode 100644
index 0000000..2035d16
--- /dev/null
+++ b/lib/lang/de/seiten/intern/anmelden.php
@@ -0,0 +1,28 @@
+<?php
+
+const ANMELDEN_NEU = 'Neuanmeldung';
+
+const ANMELDEN_NICKNAME = 'Nickname';
+const ANMELDEN_VORNAME = 'Vorname';
+const ANMELDEN_NACHNAME = 'Nachname';
+const ANMELDEN_GEB = 'Geburtstag';
+const ANMELDEN_MAIL = 'E-Mail Adresse';
+const ANMELDEN_PASS = 'Passwort';
+const ANMELDEN_PASS_W = 'Passwort wiederholen';
+const ANMELDEN_WERBER = 'Werber';
+const ANMELDEN_NEWSLETTER = 'Newsletter entpfangen';
+const ANMELDEN_AGB = 'AGB gelesen und akzeptiert';
+const ANMELDEN_DATA = 'Datenschutzerkl&auml;rung gelesen und akzeptiert';
+
+const ANMELDEN_INFO = 'Vor dem Anmelden lese bitte die AGB und Datenschutzrichtlinien!';
+
+const ANMELDEN_TRUE = 'Anmeldung erfolgreich';
+
+const ANMELDEN_TRUE_MAIL = 'Deine Anmeldung war erfolgreich, Du bekommst jetzt eine Email mit Deinen Daten und einen Aktivierungslink.
+			Sobald Du deinen Account aktiviert hast kannst Du dich bei uns einloggen und diese Seite im vollen Umfang nutzen.<br>
+			<br>
+			Bitte beachte dass es auch etwas dauern kann bis die Aktivierungsmail bei Dir ankommt, dieses ist anhängig von Deinem Emailanbieter.<br>';
+
+const ANMELDEN_TRUE_MANUELL = 'Deine Anmeldung wurde erfolgreich registriert.<br>
+			Ein Admin wird nun diese Prüfen und gegebenfalls freischalten.<br>
+			&Uuml;ber diesen Vorgang wirst du per E-Mail Informiert.';
\ No newline at end of file
diff --git a/lib/lang/de/seiten/intern/index.html b/lib/lang/de/seiten/intern/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/lib/layout.lib.php b/lib/layout.lib.php
index f70bf49..4298cdd 100644
--- a/lib/layout.lib.php
+++ b/lib/layout.lib.php
@@ -71,10 +71,31 @@ echo'</div></div><hr>';
  * @example table_head("hier,jede,Spalte,eintragen","table table-striped");
  * @return  HTML Code für Tabellenkopf einer Tabelle
  */
-function table_head($style,$array){
+function table_head($array = NULL,$style = ''){
 	echo '<table class="'. $style .'">';
-	$tr = explode(",",$array);
-	foreach($tr as $t) echo '<th>'. $t .'</th>';
+	if($array != NULL){
+		$tr = explode(",",$array);
+		foreach($tr as $t) echo '<th>'. $t .'</th>';
+	}
+}
+
+/**
+ * table_body()
+ *
+ * @author vms1-scripte.de
+ * @example table_body(array(array("spalte 1.1","spalte 1.2"), array("Spalte 2.1", "Spalte 2.2")));
+ * @return  HTML Code für Tabellenkopf einer Tabelle
+ */
+function table_body($array){
+	$aus = '';
+	for($i = 0; $i <= count($array)-1; $i++){
+		$aus .= '<tr>';
+		for($ii = 0; $ii <= count($array[$i])-1; $ii++){
+			$aus .= '<td>'. $array[$i][$ii] .'</td>';
+		}
+		$aus .= '</tr>';
+	}
+	echo $aus;
 }
 
 /**
@@ -87,4 +108,65 @@ function table_head($style,$array){
 function table_foot(){
 	echo '</table>';
 }
+
+/**
+ * suee_add_input()
+ *
+ * @author vms1-scripte.de
+ * @example suee_add_input("name","text","Vorgabe","Platzhalter","andere variablen");
+ * @return HTML Code für Inputfeld
+ */
+
+function suee_add_input($name,$type,$value = NULL, $placeholder = NULL, $other = NULL){
+	$input = '<input type="';
+	$input .= $type .'"';
+	$input .= "name=\"$name\"";
+	
+	if($value != NULL){
+		$input .= "value=\"$value\"";
+	}
+	if($placeholder != NULL){
+		$input .= "placeholder=\"$placeholder\"";
+	}
+	
+	if($other != NULL){
+		$input .= $other;
+	}
+	
+	$input .= '>';
+	return $input;
+}
+
+/**
+ * suee_add_select()
+ * @author vms1-scripte.de
+ * @example suee_add_input("Name",array(array("value 1","Text 1), array("Value 2", "Text 2")));
+ * @return HTML Code für Select
+ */
+
+function suee_add_select($name,$option,$other = ''){
+	$select = '<select name="'. $name .'" '. $other .'>';
+	for($i = 0; $i <= count($option)-1; $i++){
+		$select .= '<option value="'. $option[$i][0] .'">'. $option[$i][1] .'</option>';
+	}
+	$select .= '</select>';
+	
+	return $select;
+}
+
+/**
+ * suee_add_alert()
+ * @author vms1-scripte.de
+ * $class kann success/alert/warning/info/danger sein
+ * @example suee_add_alert("Text im Alert","success", "text-bold text-center");
+ * @return HTML Code für div Alert
+ */
+
+function suee_add_alert($text,$class,$other = ''){
+	$alert = '<div class="alert alert-'. $class .' '. $other .'">';
+	$alert .= $text;
+	$alert .= '</div>';
+	
+	return $alert;
+}
 ?>
diff --git a/lib/var.php b/lib/var.php
index 10199a0..a5010a3 100644
--- a/lib/var.php
+++ b/lib/var.php
@@ -79,6 +79,7 @@ if(!isset($_SESSION['admin']))	{ $_SESSION['admin'] = 0;}
 if(!isset($_SESSION['login']))	{ $_SESSION['login'] = "";}
 if(!isset($_SESSION['werber'])) { $_SESSION['werber'] = "0";}
 if(!isset($_SESSION['uid'])) 	{ $_SESSION['uid'] = "0";}
+if(!isset($_SESSION['lang'])) 	{ $_SESSION['lang'] = "de";}
 
 //$_GET
 
diff --git a/page/intern/anmelden.php b/page/intern/anmelden.php
index 562b4d5..830dcc5 100644
--- a/page/intern/anmelden.php
+++ b/page/intern/anmelden.php
@@ -1,97 +1,34 @@
 <?php
 if ($anmeldeok != true) {
-    head("$grundconfig->seitenname - Neuanmeldung");?>
-        <center><b>Neuanmeldung</b></center>
-        <form action="" method="post">
-            <table class="table table-striped">
-                <tr>
-                    <td class="main"><b>Nickname:</b></td>
-                    <td class="main"><input type="text" class="form-control" name="nickname" value="<?php echo $_POST['nickname'];?>"></td>
-                </tr>
-                <tr>
-                    <td class="main"><b>Vorname:</b></td>
-                    <td class="main"><input type="text" class="form-control" name="vorname" value="<?php echo $_POST['vorname'];?>"></td>
-                </tr>
-				<tr>
-					<th>Nachname</th>
-					<td><input type="text" class="form-control" name="nachname" value="<?php echo $_POST['nachname'];?>">
-				</tr>
-                <tr>
-                    <td class="main"><b>Emailadresse:</b></td>
-                    <td class="main"><input type="text" class="form-control" name="emailadresse" value="<?php echo $_POST['emailadresse'];?>"></td>
-                </tr>
-				<tr>
-                    <td class="main"><b>Geburtsdatum:</b></td>
-                    <td class="main"><input type="date" class="tcal" name="bdate" value="<?php echo $_POST['bdate'];?>"></td>
-                </tr>
-                <tr>
-                    <td class="main">Werber:</td>
-                    <td class="main">
-                    <?php if ($_SESSION['werber'] == 0) {
-                        echo '<b>keinen</b>';
-                    } else {
-                        echo $_SESSION['werber'];
-                    } ?></td>
-                </tr>
-                <tr>
-                    <td class="main"><b>Passwort:</b></td>
-                    <td class="main"><input type="password" class="form-control" name="password1"></td>
-                </tr>
-                <tr>
-                    <td class="main"><b>Passwortbestätigung:</b></td>
-                    <td class="main"><input type="password" class="form-control" name="password2"></td>
-                </tr>
-                <tr>
-                    <td class="main"><b>Newsletter:</b></td>
-                    <td class="main"><select name="newsletter" class="form-control"><option value="1"
-                    <?php if ($_POST['newsletter'] == "1") {
-                        echo 'selected';
-                    } ?>>Ja</option><option value="0" <?php if ($_POST['newsletter'] != "1") {
-                        echo 'selected';
-                    } ?>>Nein</option></select></td>
-                </tr>
-                <tr>
-                    <td class="main"><b>AGB gelesen und akzeptiert:</b></td>
-                    <td class="main"><select name="agb" class="form-control"><option value="ja"
-                    <?php if ($_POST['agb'] == "ja") {
-                        echo 'selected';
-                    } ?>>Ja</option><option value="nein" <?php if ($_POST['agb'] != "ja") {
-                        echo 'selected';
-                    } ?>>Nein</option></select></td>
-                </tr>
-				<tr>
-                    <td class="main"><b>Datenschutzerkl&auml;rung gelesen und akzeptiert:</b></td>
-                    <td class="main"><select name="data" class="form-control"><option value="ja"
-                    <?php if ($_POST['data'] == "ja") {
-                        echo 'selected';
-                    } ?>>Ja</option><option value="nein" <?php if ($_POST['data'] != "ja") {
-                        echo 'selected';
-                    } ?>>Nein</option></select></td>
-                </tr>
-                <tr>
-                    <td class="main" class="alert alert-warning text-center" colspan="2">
-                        Vor dem Anmelden lese bitte die AGB und Datenschutzrichtlinien!<br><br>
-                        <input type="submit" name="run[anmelden]" value="Jetzt anmelden!">
-                    </td>
-                </tr>
-            </table>
-        </form>
-    <?php foot();
+	$Anmelden_Felder = array(
+		array(ANMELDEN_NICKNAME, suee_add_input("nickname","text",$_POST['nickname'],NULL,'class="form-control"')),
+		array(ANMELDEN_VORNAME, suee_add_input("vorname","text",$_POST['nickname'],NULL,'class="form-control"')),
+		array(ANMELDEN_NACHNAME, suee_add_input("nachname","text",$_POST['nickname'],NULL,'class="form-control"')),
+		array(ANMELDEN_MAIL, suee_add_input("emailadresse","text",$_POST['nickname'],NULL,'class="form-control"')),
+		array(ANMELDEN_GEB, suee_add_input("bdate","date",$_POST['nickname'],NULL,'class="form-control"','class="tcal"')),
+		array(ANMELDEN_PASS, suee_add_input("password1","password",$_POST['nickname'],NULL,'class="form-control"')),
+		array(ANMELDEN_PASS_W, suee_add_input("password2","password",$_POST['nickname'],NULL,'class="form-control"')),
+		array(ANMELDEN_WERBER, suee_add_input("","text",$_SESSION['werber'],NULL,'class="form-control" disabled="disabled"')),
+		array(ANMELDEN_NEWSLETTER, suee_add_select("newsletter", array(array(0,"Ja"), array(1,"Nein")), 'class="form-control"')),
+		array(ANMELDEN_AGB, suee_add_select("agb", array(array(0,"Nein"), array(1,"Ja")), 'class="form-control"')),
+		array(ANMELDEN_DATA, suee_add_select("data", array(array(0,"Nein"), array(1,"Ja")), 'class="form-control"')),
+	);
+    head($grundconfig->seitenname .'-'. ANMELDEN_NEU);
+		echo '<center><b>'. ANMELDEN_NEU .'</b></center>
+				<form action="" method="post">';
+		table_head(NULL,"table table-striped");
+		table_body($Anmelden_Felder);
+		table_foot();
+		echo suee_add_alert(ANMELDEN_INFO,"warning","text-bold text-center");
+		echo suee_add_input("run[anmelden]","submit","Jetzt anmelden!",NULL,'class="btn btn-success btn-block"');
+		echo '</form>';
+	foot();
 } else {
-    head("$grundconfig->seitenname - Anmeldung erfolgreich!");
+    head($grundconfig->seitenname .'-'. ANMELDEN_TRUE);
 		if($grundconfig->reg_free == 1){
-			echo 'Deine Anmeldung bei '.$grundconfig->seitenname.' war erfolgreich, Du bekommst jetzt eine Email mit Deinen Daten und einen Aktivierungslink.
-			Sobald Du deinen Account aktiviert hast kannst Du dich bei uns einloggen und diese Seite im vollen Umfang nutzen.<br>
-			<br>
-			Bitte beachte dass es auch etwas dauern kann bis die Aktivierungsmail bei Dir ankommt, dieses ist anhängig von Deinem Emailanbieter.<br>
-			';
+			echo suee_add_alert(ANMELDEN_TRUE_MAIL,"success", "text-dark");
 		}else{
-			echo 'Deine Anmeldung wurde erfolgreich registriert.<br>
-			Ein Admin wird nun diese Prüfen und gegebenfalls freischalten.<br>
-			&Uuml;ber diesen Vorgang wirst du per E-Mail Informiert.'
+			echo suee_add_alert(ANMELDEN_TRUE_MANUELL,"info","text-dark");
 		}
-		echo '<br>
-			Mit freundlichen Grüßen<br>
-			Das '.$grundconfig->seitenname.' Team<br>';
     foot();
 }
diff --git a/page/start.php b/page/start.php
index acedfe0..77b7572 100644
--- a/page/start.php
+++ b/page/start.php
@@ -1,15 +1,14 @@
 <?php
 
-require_once('lib/class/start.class.php');
-$Pay4Start = new START;
+$Pay4Start = Classloader('start');
 
 if ($grundconfig->popup_start == 0) {
 	head("");
 	$row = $Pay4Start->StartAbruf();
-	if($row->error == 1){ $alert = 'danger';}else{$alert = 'success';}
+	if($row['error'] == 1){ $alert = 'danger';}else{$alert = 'success';}
 	echo '
 		<div class="alert alert-'. $alert .'">
-			'. $row->meldung .'
+			'. $row['meldung'] .'
 		</div>
 	';
 	foot();
-- 
GitLab