From c8dd999773c9ec8055217b6de1c6d154fa0a2cc9 Mon Sep 17 00:00:00 2001
From: isaack <drericlaufer@gmx.de>
Date: Wed, 19 May 2021 13:06:14 +0200
Subject: [PATCH] [3.0.1.7] - 19.05.2021

- Einbau von Metatags aus dem Adminbereich
- Fix von Bugs
---
 CHANGELOG                          |  3 +
 README.MD                          |  3 +-
 euve/cont/class/menu.class.php     |  4 +-
 euve/cont/class/meta.class.php     | 92 ++++++++++++++++++++++++++++++
 euve/lang/de/de.lang.php           |  2 +
 euve/page/setting/include/meta.php | 37 ++++++++++++
 index.php                          |  1 +
 mysql-dump/Update 3.0.1.7.sql      | 36 ++++++++++++
 mysql-dump/isaack_suee3-1.sql      | 24 ++++++++
 page/startseite.php                |  2 +-
 template/meta.php                  |  7 +++
 template/sidebar.php               |  2 +-
 12 files changed, 209 insertions(+), 4 deletions(-)
 create mode 100644 euve/cont/class/meta.class.php
 create mode 100644 euve/page/setting/include/meta.php
 create mode 100644 mysql-dump/Update 3.0.1.7.sql
 create mode 100644 template/meta.php

diff --git a/CHANGELOG b/CHANGELOG
index 502ccb3..c38622d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+## [3.0.1.7] - 19.05.2021
+- Einbau von Metatags aus dem Adminbereich
+- Fix von Bugs
 ## [3.0.1.6] - 11.05.2021
 ### Adding Versionscheck / Referalsystem
 - Auf dem Dachboard kann nun die aktuell verfügbare Version angezeigt werden
diff --git a/README.MD b/README.MD
index 1914efa..f1b5637 100644
--- a/README.MD
+++ b/README.MD
@@ -2,7 +2,8 @@
 1. Alle Datein auf den Webspace laden
 2. Datei cont/default.config.php in cont/config.php ändern und bearbeiten
 3. Datei euve/cont/default.config.php in euve/cont/config.php ändern und bearbeiten
-8. Einstellungen im Admin vornehmen
+4. Logindaten: Nutzername: isaack, Passwort abcd123456
+5. Einstellungen im Admin vornehmen
 
 # Neuerungen:
 - Bootstrap 5.0 eingeführt
diff --git a/euve/cont/class/menu.class.php b/euve/cont/class/menu.class.php
index 332dafd..d7f90a6 100644
--- a/euve/cont/class/menu.class.php
+++ b/euve/cont/class/menu.class.php
@@ -31,10 +31,12 @@ class menu{
 			$SelAdmin = false;
 			$SelUser = false;
 			$SelNUser = false;
+			$SelAll = false;
 			
 			if($res->sichtbar == 'admin') $SelAdmin = true;
 			if($res->sichtbar == 'user') $SelUser = true;
 			if($res->sichtbar == 'nouser') $SelNUser = true;
+			if($res->sichtbar == 'all') $SelAll = true;
 			if($res->status == 1) $checked = 'checked="checked"';
 			
 			$aus .= '<tr>';
@@ -44,7 +46,7 @@ class menu{
 			$aus .= '<td>'. suee_add_input('','link','text',$res->link,NULL,'class="form-control"',NULL,false,NULL) .'</td>';
 			$aus .= '<td>'. suee_add_input('','url','text',$res->url,NULL,'class="form-control"',NULL,false,NULL) .'</td>';
 			$aus .= '<td>'. suee_add_input('','status','checkbox',1,NULL,'class="form-check-label" '. $checked,NULL,false,NULL) .'</td>';
-			$aus .= '<td>'. suee_add_select('sichtbar',array(array("nouser", TEXT_NUSER,$SelNUser), array("admin", TEXT_ADMIN, $SelAdmin), array("user", TEXT_USER, $SelUser)),'class="form-select"',NULL) .'</td>';
+			$aus .= '<td>'. suee_add_select('sichtbar',array(array("nouser", TEXT_NUSER,$SelNUser), array("admin", TEXT_ADMIN, $SelAdmin), array("user", TEXT_USER, $SelUser), array("all", TEXT_ALL, $SelAll),'class="form-select"',NULL) .'</td>';
 			$aus .= '<td>'. 
 				suee_add_input('','run[LinkEditSave]','submit',TEXT_SAVE,NULL,'class="btn btn-success"',NULL,false,NULL) .
 				suee_add_input('','run[LinkEditDel]','submit',TEXT_DEL,NULL,'class="btn btn-danger"',NULL,false,NULL) .'</td>';
diff --git a/euve/cont/class/meta.class.php b/euve/cont/class/meta.class.php
new file mode 100644
index 0000000..f5d2010
--- /dev/null
+++ b/euve/cont/class/meta.class.php
@@ -0,0 +1,92 @@
+<?php
+
+class meta{
+	private $db;
+	private $error = 0;
+	private $meldung;
+	private $post = array();
+	
+	public function __Construct(){
+		global $datenbank;
+		$this->db = $datenbank;
+	}
+	
+	private function make_array($post){
+		foreach($post AS $key => $value){
+			if($key != '' && $key != 'run' && $value != ''){
+				$this->post[$this->db->escape($key)] = $this->db->escape($value);
+			}
+		}
+	}
+	
+	public function MetaAdd($post){
+		$this->make_array($post);
+		if($this->db->insert('metatags', $this->post) == true){
+			$this->meldung = 'Daten wurden erfolgreich gespeichert.';
+		}else{
+			$this->error = 1;
+			$this->meldung = 'Daten konnten nicht gespeichert werden.';
+		}
+		
+		meldung($this->error, $this->meldung);
+	}
+	
+	public function Edit($post){
+		$this->make_array($post);
+		if($this->db->update('metatags', $this->post, array("id" => $this->post['id'])) == true){
+			$this->meldung = 'Daten wurden erfolgreich gespeichert.';
+		}else{
+			$this->error = 1;
+			$this->meldung = 'Daten konnten nicht gespeichert werden.';
+		}
+		
+		meldung($this->error,$this->meldung);
+	}
+	
+	public function Del($post){
+		$this->make_array($post);
+		if($this->db->delete('metatags', array("id" => $this->post['id'])) == true){
+			$this->meldung = 'Metadaten erfolgreich gel&ouml;scht.';
+		}else{
+			$this->error = 1;
+			$this->meldung = 'Metadaten konnten nicht gel&ouml;scht wertden.';
+		}
+		
+		meldung($this->error,$this->meldung);
+	}
+	
+	public function MetaListe(){
+		$aus = '';
+		foreach($this->db->get_results("SELECT id,name,content FROM metatags ") AS $res){
+			$aus .= suee_add_form('post','');
+			$aus .= suee_add_input('','id','hidden',$res->id,NULL,NULL,NULL,false,NULL);
+			$aus .= '
+					<div class="input-group mb-3">
+						<span class="input-group-text" id="basic-addon1">Name</span>
+						<input type="text" class="form-control" name="name" value="'. $res->name .'">
+						<div class="input-group-append">
+							<span class="input-group-text" id="basic-addon1">Content</span>
+						</div>
+						<input type="text" class="form-control" name="content" value="'. $res->content .'">
+			';
+			$aus .= suee_add_input('','run[metaedit]','submit','Speichern',NULL,'class="btn btn-info"',NULL,false,NULL);
+			$aus .= suee_add_input('','run[metadel]','submit','l&ouml;schen',NULL,'class="btn btn-danger"',NULL,false,NULL);
+			$aus .= '</div>';
+			$aus .= suee_close_form();
+		}
+		
+		return $aus;
+	}
+	
+	public function MetaAus(){
+		$aus = '';
+		foreach($this->db->get_results("SELECT name,content FROM metatags ") AS $res){
+			$aus .= ' <meta name="'. $res->name .'" content="'. $res->content .'">
+	';
+		}
+		
+		return $aus;
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/euve/lang/de/de.lang.php b/euve/lang/de/de.lang.php
index 2bd0bda..8b617df 100644
--- a/euve/lang/de/de.lang.php
+++ b/euve/lang/de/de.lang.php
@@ -3,6 +3,7 @@
 const TEXT_USER = 'User';
 const TEXT_ADMIN = 'Admin';
 const TEXT_NUSER = 'G&auml;ste';
+const TEXT_ALL = 'User/G&auml;ste';
 const TEXT_SAVE = 'Speichern';
 const TEXT_DEL = 'L&ouml;schen';
 const TEXT_NAME = 'Name';
@@ -78,6 +79,7 @@ const STATUS_INFO = 'Wartend auf Freischaltung';
 const STATUS_DANGER = 'Gesperrt';
 
 const USER_NOTIZ = 'Notiz';
+const USER_NO_NOTIZ = 'Noch keine Notiten angelegt';
 const USER_ADD_NOTIZ = 'Notiz hinzuf&uuml;gen';
 const USER_LANG = 'Standartsprache';
 const USER_ADMIN = 'Nutzerrechte';
diff --git a/euve/page/setting/include/meta.php b/euve/page/setting/include/meta.php
new file mode 100644
index 0000000..d4e4a5e
--- /dev/null
+++ b/euve/page/setting/include/meta.php
@@ -0,0 +1,37 @@
+<?php
+
+$meta = Classloader('meta',true);
+
+$inhalt['meta'] = array();
+
+$inhalt['meta']['head'] = '
+	<li class="nav-item" role="presentation">
+		<button class="nav-link" id="meta-tab" data-bs-toggle="tab" data-bs-target="#meta" type="button" role="tab" aria-controls="meta" aria-selected="true">'. META_HEAD .'</button>
+	</li>
+';
+$inhalt['meta']['content'] = '<div class="tab-pane fade show" id="meta" role="tabpanel" aria-labelledby="meta-tab">';
+$inhalt['meta']['content'] .= '<div class="card">
+	<div class="card-header">Metatags anlegen</div>
+	<div class="card-body">
+		<form method="post" action="">
+			<div class="form-group">
+				<label>Name</label>
+				<input type="text" class="form-control" name="name" placeholder="Name">
+				<small class="form-text text-muted">Metatag Name</small>
+			</div>
+			<div class="form-group">
+				<label>Content</label>
+				<input type="text" class="form-control" name="content" placeholder="Content">
+				<small class="form-text text-muted">Metatag Content</small>
+			</div>
+			<input type="submit" name="run[MetaAdd]" value="Speichern" class="btn btn-success">
+		</form>
+	</div>
+</div>
+<br>
+<h3>Liste aller bestehenden Meta Tags</h3>';
+
+$inhalt['meta']['content'] .= $meta->MetaListe();
+$inhalt['meta']['content'] .= '</div>';
+
+?>
\ No newline at end of file
diff --git a/index.php b/index.php
index c2bb6e5..7132512 100644
--- a/index.php
+++ b/index.php
@@ -14,6 +14,7 @@ require_once(DIR_FS .'/cont/autoload.php');
 		<!-- Required meta tags -->
 		<meta charset="utf-8">
 		<meta name="viewport" content="width=device-width, initial-scale=1">
+		<?php require_once(TEMP_DIR .'meta.php');?>
 
 		<!-- Bootstrap CSS -->
 		<link href="css/bootstrap.min.css" rel="stylesheet">
diff --git a/mysql-dump/Update 3.0.1.7.sql b/mysql-dump/Update 3.0.1.7.sql
new file mode 100644
index 0000000..4290313
--- /dev/null
+++ b/mysql-dump/Update 3.0.1.7.sql	
@@ -0,0 +1,36 @@
+--
+-- Tabellenstruktur für Tabelle `metatags`
+--
+
+CREATE TABLE `metatags` (
+  `id` int(11) NOT NULL,
+  `name` text NOT NULL,
+  `content` text NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+--
+-- Daten für Tabelle `metatags`
+--
+
+INSERT INTO `metatags` (`id`, `name`, `content`) VALUES
+(1, 'description', 'Testseite');
+
+--
+-- Indizes der exportierten Tabellen
+--
+
+--
+-- Indizes für die Tabelle `metatags`
+--
+ALTER TABLE `metatags`
+  ADD PRIMARY KEY (`id`);
+
+--
+-- AUTO_INCREMENT für exportierte Tabellen
+--
+
+--
+-- AUTO_INCREMENT für Tabelle `metatags`
+--
+ALTER TABLE `metatags`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
diff --git a/mysql-dump/isaack_suee3-1.sql b/mysql-dump/isaack_suee3-1.sql
index 373e8f0..14d8c31 100644
--- a/mysql-dump/isaack_suee3-1.sql
+++ b/mysql-dump/isaack_suee3-1.sql
@@ -204,6 +204,17 @@ INSERT INTO `link` (`id`, `child_from`, `ort`, `url`, `link`, `datei`, `sort`, `
 
 -- --------------------------------------------------------
 
+--
+-- Tabellenstruktur für Tabelle `metatags`
+--
+
+CREATE TABLE `metatags` (
+  `id` int(11) NOT NULL,
+  `name` text NOT NULL,
+  `content` text NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
+-- --------------------------------------------------------
 --
 -- Tabellenstruktur für Tabelle `module`
 --
@@ -430,6 +441,13 @@ ALTER TABLE `user`
 --
 ALTER TABLE `user_notiz`
   ADD PRIMARY KEY (`id`);
+  
+--
+-- Indizes für die Tabelle `metatags`
+--
+ALTER TABLE `metatags`
+  ADD PRIMARY KEY (`id`);
+
 
 --
 -- AUTO_INCREMENT für exportierte Tabellen
@@ -500,6 +518,12 @@ ALTER TABLE `user`
 --
 ALTER TABLE `user_notiz`
   MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
+
+--
+-- AUTO_INCREMENT für Tabelle `metatags`
+--
+ALTER TABLE `metatags`
+  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
   
 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
diff --git a/page/startseite.php b/page/startseite.php
index 029dba2..3841464 100644
--- a/page/startseite.php
+++ b/page/startseite.php
@@ -12,7 +12,7 @@ if($_SESSION['login'] === false){
 			<div class="card">
 				<div class="card-header">'. $res->name .'</div>
 				<div class="card-body">';
-				$inhalt .=	require_once(DIR_FS . ADMIN_DIR .'/template/boxes/'. $res->datei);
+				$inhalt .=	require_once(DIR_FS .'/template/boxes/'. $res->datei);
 		$inhalt .= '
 				</div>
 			</div>
diff --git a/template/meta.php b/template/meta.php
new file mode 100644
index 0000000..83a918e
--- /dev/null
+++ b/template/meta.php
@@ -0,0 +1,7 @@
+<?php
+
+foreach($datenbank->get_results("SELECT name,content FROM metatags") AS $res){
+	echo ' <meta name="'. $res->name .'" content="'. $res->content .'">';
+}
+
+?>
\ No newline at end of file
diff --git a/template/sidebar.php b/template/sidebar.php
index adb54ee..fad9e93 100644
--- a/template/sidebar.php
+++ b/template/sidebar.php
@@ -29,7 +29,7 @@
 		echo $aus;
 	}
 	
-	foreach($datenbank->get_results("SELECT id,link,datei FROM link WHERE child_from = 0 AND (sichtbar = '$user' OR sichtbar = 'alluser') AND ort = 'box' ORDER BY sort ASC ") AS $res){
+	foreach($datenbank->get_results("SELECT id,link,datei FROM link WHERE child_from = 0 AND (sichtbar = '$user' OR sichtbar = 'all') AND ort = 'box' ORDER BY sort ASC ") AS $res){
 		head($res->link);
 		if($res->datei != NULL){
 			require_once(TEMP_DIR .'/boxes/'. $res->datei);
-- 
GitLab