From 084d48a3c09fdb4e9f7f8da267221645419c989f Mon Sep 17 00:00:00 2001
From: Karl Hasselbring <karl@suma-ev.de>
Date: Fri, 13 Jul 2018 10:36:55 +0200
Subject: [PATCH] Resolve "Jugendschutz"

---
 resources/age/age-de.xml                     | 37 ++++++++++++++++
 resources/age/age.xml                        | 44 ++++++++++++++++++++
 resources/age/miracle.xml                    | 22 ++++++++++
 resources/lang/de/jugendschutz.php           |  6 +++
 resources/lang/de/titles.php                 |  1 +
 resources/views/jugendschutz.blade.php       | 10 +++++
 resources/views/layouts/resultPage.blade.php |  1 +
 routes/web.php                               | 17 ++++++++
 8 files changed, 138 insertions(+)
 create mode 100644 resources/age/age-de.xml
 create mode 100644 resources/age/age.xml
 create mode 100644 resources/age/miracle.xml
 create mode 100644 resources/lang/de/jugendschutz.php
 create mode 100644 resources/views/jugendschutz.blade.php

diff --git a/resources/age/age-de.xml b/resources/age/age-de.xml
new file mode 100644
index 000000000..e9fee012a
--- /dev/null
+++ b/resources/age/age-de.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- age classification (age-label.com) -->
+<!-- label generator: age-label.com -->
+<age-declaration>
+  <ageblock-basic>
+    <age-issuer>metager.de</age-issuer>
+    <last-change>2018-07-06</last-change>
+    <country>de</country>
+    <label-version>1.0</label-version>
+    <revisit-after>1days</revisit-after>
+  </ageblock-basic>
+  <ageblock-labeltype>
+    <httpheader>false</httpheader>
+    <htmlmeta>true</htmlmeta>
+    <label-z>false</label-z>
+    <xmlfile>true</xmlfile>
+    <default-age>0</default-age>
+    <alternate>https://www.metager.de/jugendschutz</alternate>
+  </ageblock-labeltype>
+  <ageblock-labeltype-definition>
+    <labeltype-htmlmeta-definition>
+      <label class="name1">
+        <scope>*.metager.de</scope>
+        <scope>*.metager3.de</scope>
+      </label>
+    </labeltype-htmlmeta-definition>
+    <labeltype-xmlfile>
+      <label class="website">
+        <age>0</age>
+        <min-age>0</min-age>
+        <default-age>0</default-age>
+        <scope>*.metager.de</scope>
+        <scope>*.metager3.de</scope>
+      </label>
+    </labeltype-xmlfile>
+  </ageblock-labeltype-definition>
+</age-declaration>
\ No newline at end of file
diff --git a/resources/age/age.xml b/resources/age/age.xml
new file mode 100644
index 000000000..cd405b22c
--- /dev/null
+++ b/resources/age/age.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!-- age classification (age-label.com) -->
+<!-- label generator: age-label.com -->
+<!-- file type: age.xml -->
+<age-declaration>
+  <ageblock-basic>
+    <age-issuer>metager.de</age-issuer>
+    <last-change>2018-07-06</last-change>
+    <country>de</country>
+    <label-version>2.0</label-version>
+    <revisit-after>1days</revisit-after>
+  </ageblock-basic>
+  <ageblock-country>
+    <country class="age.xml">
+      <country-code>all</country-code>
+    </country>
+    <country-default>age.xml</country-default>
+  </ageblock-country>
+  <ageblock-labeltype>
+    <httpheader>false</httpheader>
+    <htmlmeta>true</htmlmeta>
+    <phraselabel>false</phraselabel>
+    <agesubmit>false</agesubmit>
+    <label-z>false</label-z>
+    <xmlfile>true</xmlfile>
+    <default-age>0</default-age>
+    <alternate>https://www.metager.de/jugendschutz</alternate>
+  </ageblock-labeltype>
+  <ageblock-labeltype-definition>
+    <labeltype-htmlmeta-definition>
+      <label class="name1">
+        <scope>*.metager.de/*</scope>
+        <scope>*.metager3.de/*</scope>
+      </label>
+    </labeltype-htmlmeta-definition>
+    <labeltype-xmlfile>
+      <label class="website">
+        <age>0</age>
+        <scope>*.metager.de/*</scope>
+        <scope>*.metager3.de/*</scope>
+      </label>
+    </labeltype-xmlfile>
+  </ageblock-labeltype-definition>
+</age-declaration>
\ No newline at end of file
diff --git a/resources/age/miracle.xml b/resources/age/miracle.xml
new file mode 100644
index 000000000..d05cc1286
--- /dev/null
+++ b/resources/age/miracle.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+  <label xmlns="http://www.miracle-label.eu/ns/2.0/">
+    <age-declaration>
+      <issuer>
+        <age-issuer>metager.de</age-issuer>
+        <last-change>2018-07-06</last-change>
+        <country>
+          <country-code>all</country-code>
+        </country>
+        <custom></custom>
+      </issuer>
+      <scope>
+        <scope-urls>
+          <scope-url class="web-url">*.metager.de/*</scope-url>
+          <scope-url class="web-url">*.metager3.de/*</scope-url>
+        </scope-urls>
+      </scope>
+      <rating>
+        <age>0</age>
+      </rating>
+    </age-declaration>
+  </label>
\ No newline at end of file
diff --git a/resources/lang/de/jugendschutz.php b/resources/lang/de/jugendschutz.php
new file mode 100644
index 000000000..e145ce38b
--- /dev/null
+++ b/resources/lang/de/jugendschutz.php
@@ -0,0 +1,6 @@
+<?php
+
+return [
+    'title' => 'Jugendschutz',
+    'text' => 'Unsere Suche liefert Suchergebnisse zu verschiedensten Bereichen des Internets. Einige diese Bereiche sind für Menschen in deinem Alter nicht geeignet. Wenn du trotzdem etwas im Internet suchen willst, frage deine Eltern oder benutze eine andere Suchmaschine, zum Beispiel <a href="https://www.blinde-kuh.de/">Blinde Kuh</a>.'
+];
diff --git a/resources/lang/de/titles.php b/resources/lang/de/titles.php
index afc4068d3..97b23a0fb 100644
--- a/resources/lang/de/titles.php
+++ b/resources/lang/de/titles.php
@@ -20,4 +20,5 @@ return [
     'languages.edit' => 'Sprachdateien bearbeiten - MetaGer',
     'app'            => 'Apps - MetaGer',
     'faktencheck'    => 'Fakten-Prüfung contra Fake-News',
+    'jugendschutz'   => 'Jugendschutz'
 ];
diff --git a/resources/views/jugendschutz.blade.php b/resources/views/jugendschutz.blade.php
new file mode 100644
index 000000000..98fe5e6fc
--- /dev/null
+++ b/resources/views/jugendschutz.blade.php
@@ -0,0 +1,10 @@
+@extends('layouts.subPages')
+
+@section('title', $title )
+
+@section('content')
+	<h1 class="page-title">{!! trans('jugendschutz.title') !!}</h1>
+	<div class="card-heavy">
+        <p>{!! trans('jugendschutz.text') !!}</p>
+	</div>
+@endsection
\ No newline at end of file
diff --git a/resources/views/layouts/resultPage.blade.php b/resources/views/layouts/resultPage.blade.php
index a72e8b247..6d3b6ab12 100644
--- a/resources/views/layouts/resultPage.blade.php
+++ b/resources/views/layouts/resultPage.blade.php
@@ -17,6 +17,7 @@
 		<link type="text/css" rel="stylesheet" href="/fonts/liberation-fonts/liberation-fonts.css" />
 		<link id="theme" type="text/css" rel="stylesheet" href="/css/theme.css.php" />
 		<meta name="referrer" content="origin">
+		<meta name="age-meta-label" content="age=18"/>
 		@include('parts.utility')
 	</head>
 	<body id="resultpage-body">
diff --git a/routes/web.php b/routes/web.php
index 200357026..742d93d83 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -130,6 +130,23 @@ Route::group(
 
         Route::get('zitat-suche', 'ZitatController@zitatSuche');
 
+        Route::get('jugendschutz', function () {
+            return view('jugendschutz')
+                ->with('title', trans('titles.jugendschutz'));
+        });
+
+        Route::get('age.xml', function () {
+            $response = Response::make(file_get_contents(resource_path('age/age.xml')));
+            $response->header('Content-Type', "application/xml");
+            return $response;
+        });
+
+        Route::get('age-de.xml', function () {
+            $response = Response::make(file_get_contents(resource_path('age/age-de.xml')));
+            $response->header('Content-Type', "application/xml");
+            return $response;
+        });
+
         Route::group([/*'middleware' => ['referer.check'],*/ 'prefix' => 'admin'], function () {
             Route::get('/', 'AdminInterface@index');
             Route::match(['get','post'], 'count', 'AdminInterface@count');
-- 
GitLab