Initial commit

This commit is contained in:
philipp lang 2024-10-09 16:36:58 +02:00
commit a994ca6f77
63 changed files with 4411 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.DS_Store
.idea
node_modules

7
.prettierrc Normal file
View File

@ -0,0 +1,7 @@
{
"printWidth": 200,
"singleQuote": true,
"tabWidth": 4,
"quoteProps": "consistent",
"bracketSpacing": false
}

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Marco Messa
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

32
README.md Normal file
View File

@ -0,0 +1,32 @@
# Vite + TailwindCSS WinterCMS starter theme
![alt text](https://github.com/marcomessa/wn-vite-tailwind-theme/blob/main/vite-theme.jpg?raw=true)
Vite + TailwindCSS is a blank starter theme for WinterCMS powered by [Vite](https://vitejs.dev/) and [TailwindCSS](https://tailwindcss.com/). It includes a simple folder structure, postcss files already divided according to TailwindCSS directives and two npm scripts for development and production.
## Features
- use Vite for your frontend's assets
- TailwindCSS 3 ready
- crazy fast with a tiny node_modules folder
- browser autoreload with hot module replacement
- PostCSS ready with the following plugins:
- postcss-import
- tailwindcss-nesting
- autoprefixer
## Requirements
In order to work, the theme needs its sister plugin [**Vite**](https://github.com/marcomessa/wn-vite-plugin): the theme layout file already includes the reference to the necessary components, and will not work without first installing it
## Installation
1. require the theme: `composer require marcomessa/wn-vite-tailwind-theme`
2. require the plugin: `composer require marcomessa/wn-vite-plugin`
3. be sure plugin is installed: `php artisan plugin:refresh Marcomessa.Vite`
4. navigate to theme's folder: `cd <project-root>/themes/vite-tailwind`
5. install dependencies: `npm install` or `yarn install`
## Npm scripts
- development: `npm run dev`
- production: `npm run production`
## License
The MIT License (MIT). Please see [License File](https://github.com/marcomessa/wintercms-vite-tailwind-theme/blob/master/LICENSE) for more information.

18
composer.json Normal file
View File

@ -0,0 +1,18 @@
{
"name": "marcomessa/wn-vite-tailwind-theme",
"type": "winter-theme",
"description": "A starter blank theme powered by Vite and TailwindCSS",
"keywords": ["winter","vite", "tailwind", "tailwindcss", "starter", "blank", "theme"],
"license": "MIT",
"version": "1.0.4",
"authors": [
{
"name": "Marco Messa",
"role": "Maintainer"
}
],
"require": {
"php": ">=7.2",
"composer/installers": "~1.0"
}
}

View File

@ -0,0 +1,166 @@
[viewBag]
title = "Datenschutzerklärung"
url = "/datenschutzerklaerung"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 0
==
<h2>1. Datenschutz auf einen Blick</h2>
<h3>Allgemeine Hinweise</h3>
<p>Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können. Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem Text aufgeführten Datenschutzerklärung.</p>
<h3>Datenerfassung auf dieser Website</h3>
<h4>Wer ist verantwortlich für die Datenerfassung auf dieser Website?</h4>
<p>Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten können Sie dem Abschnitt „Hinweis zur Verantwortlichen Stelle“ in dieser Datenschutzerklärung entnehmen.</p>
<h4>Wie erfassen wir Ihre Daten?</h4>
<p>Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen. Hierbei kann es sich z.&nbsp;B. um Daten handeln, die Sie in ein Kontaktformular eingeben.</p>
<p>Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch der Website durch unsere IT-Systeme erfasst. Das sind vor allem technische Daten (z.&nbsp;B. Internetbrowser, Betriebssystem oder Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie diese Website betreten.</p>
<h4>Wofür nutzen wir Ihre Daten?</h4>
<p>Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu gewährleisten. Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet werden.</p>
<h4>Welche Rechte haben Sie bezüglich Ihrer Daten?</h4>
<p>Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung oder Löschung dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur Datenverarbeitung erteilt haben, können Sie diese Einwilligung jederzeit für die Zukunft widerrufen. Außerdem haben Sie das Recht, unter bestimmten Umständen die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Des Weiteren steht Ihnen ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu.</p>
<p>Hierzu sowie zu weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit an uns wenden.</p>
<h2>2. Hosting</h2>
<h3>Externes Hosting</h3>
<p>Diese Website wird bei einem externen Dienstleister gehostet (Hoster). Die personenbezogenen Daten, die auf dieser Website erfasst werden, werden auf den Servern des Hosters gespeichert. Hierbei kann es sich v. a. um IP-Adressen, Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten, Kontaktdaten, Namen, Websitezugriffe und sonstige Daten, die über eine Website generiert werden, handeln.</p>
<p>Der Einsatz des Hosters erfolgt zum Zwecke der Vertragserfüllung gegenüber unseren potenziellen und bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO) und im Interesse einer sicheren, schnellen und effizienten Bereitstellung unseres Online-Angebots durch einen professionellen Anbieter (Art. 6 Abs. 1 lit. f DSGVO). Sofern eine entsprechende Einwilligung abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG, soweit die Einwilligung die Speicherung von Cookies oder den Zugriff auf Informationen im Endgerät des Nutzers (z.&nbsp;B. Device-Fingerprinting) im Sinne des TTDSG umfasst. Die Einwilligung ist jederzeit widerrufbar.</p>
<p>Unser Hoster wird Ihre Daten nur insoweit verarbeiten, wie dies zur Erfüllung seiner Leistungspflichten erforderlich ist und unsere Weisungen in Bezug auf diese Daten befolgen.</p>
<p>Wir setzen folgenden Hoster ein:</p>
<p>IP-Projects GmbH &amp; Co. KG
<br>Am Vogelherd 14
<br>D - 97295 Waldbrunn</p>
<h2>3. Allgemeine Hinweise und Pflicht­informationen</h2>
<h3>Datenschutz</h3>
<p>Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend den gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.</p>
<p>Wenn Sie diese Website benutzen, werden verschiedene personenbezogene Daten erhoben. Personenbezogene Daten sind Daten, mit denen Sie persönlich identifiziert werden können. Die vorliegende Datenschutzerklärung erläutert, welche Daten wir erheben und wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem Zweck das geschieht.</p>
<p>Wir weisen darauf hin, dass die Datenübertragung im Internet (z.&nbsp;B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.</p>
<h3>Hinweis zur verantwortlichen Stelle</h3>
<p>Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:</p>
<p>Philipp Lang
<br>Itterstr 3
<br>42719 Solingen</p>
<p>E-Mail: post@stamm-silva.de</p>
<p>Verantwortliche Stelle ist die natürliche oder juristische Person, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten (z.&nbsp;B. Namen, E-Mail-Adressen o. Ä.) entscheidet.</p>
<h3>Speicherdauer</h3>
<p>Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt wurde, verbleiben Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung entfällt. Wenn Sie ein berechtigtes Löschersuchen geltend machen oder eine Einwilligung zur Datenverarbeitung widerrufen, werden Ihre Daten gelöscht, sofern wir keine anderen rechtlich zulässigen Gründe für die Speicherung Ihrer personenbezogenen Daten haben (z.&nbsp;B. steuer- oder handelsrechtliche Aufbewahrungsfristen); im letztgenannten Fall erfolgt die Löschung nach Fortfall dieser Gründe.</p>
<h3>Allgemeine Hinweise zu den Rechtsgrundlagen der Datenverarbeitung auf dieser Website</h3>
<p>Sofern Sie in die Datenverarbeitung eingewilligt haben, verarbeiten wir Ihre personenbezogenen Daten auf Grundlage von Art. 6 Abs. 1 lit. a DSGVO bzw. Art. 9 Abs. 2 lit. a DSGVO, sofern besondere Datenkategorien nach Art. 9 Abs. 1 DSGVO verarbeitet werden. Sofern Sie in die Speicherung von Cookies oder in den Zugriff auf Informationen in Ihr Endgerät (z.&nbsp;B. via Device-Fingerprinting) eingewilligt haben, erfolgt die Datenverarbeitung zusätzlich auf Grundlage von § 25 Abs. 1 TTDSG. Die Einwilligung ist jederzeit widerrufbar. Sind Ihre Daten zur Vertragserfüllung oder zur Durchführung vorvertraglicher Maßnahmen erforderlich, verarbeiten wir Ihre Daten auf Grundlage des Art. 6 Abs. 1 lit. b DSGVO. Des Weiteren verarbeiten wir Ihre Daten, sofern diese zur Erfüllung einer rechtlichen Verpflichtung erforderlich sind auf Grundlage von Art. 6 Abs. 1 lit. c DSGVO. Die Datenverarbeitung kann ferner auf Grundlage unseres berechtigten Interesses nach Art. 6 Abs. 1 lit. f DSGVO erfolgen. Über die jeweils im Einzelfall einschlägigen Rechtsgrundlagen wird in den folgenden Absätzen dieser Datenschutzerklärung informiert.</p>
<h3>Widerruf Ihrer Einwilligung zur Datenverarbeitung</h3>
<p>Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können eine bereits erteilte Einwilligung jederzeit widerrufen. Die Rechtmäßigkeit der bis zum Widerruf erfolgten Datenverarbeitung bleibt vom Widerruf unberührt.</p>
<h3>Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie gegen Direktwerbung (Art. 21 DSGVO)</h3>
<p>WENN DIE DATENVERARBEITUNG AUF GRUNDLAGE VON ART. 6 ABS. 1 LIT. E ODER F DSGVO ERFOLGT, HABEN SIE JEDERZEIT DAS RECHT, AUS GRÜNDEN, DIE SICH AUS IHRER BESONDEREN SITUATION ERGEBEN, GEGEN DIE VERARBEITUNG IHRER PERSONENBEZOGENEN DATEN WIDERSPRUCH EINZULEGEN; DIES GILT AUCH FÜR EIN AUF DIESE BESTIMMUNGEN GESTÜTZTES PROFILING. DIE JEWEILIGE RECHTSGRUNDLAGE, AUF DENEN EINE VERARBEITUNG BERUHT, ENTNEHMEN SIE DIESER DATENSCHUTZERKLÄRUNG. WENN SIE WIDERSPRUCH EINLEGEN, WERDEN WIR IHRE BETROFFENEN PERSONENBEZOGENEN DATEN NICHT MEHR VERARBEITEN, ES SEI DENN, WIR KÖNNEN ZWINGENDE SCHUTZWÜRDIGE GRÜNDE FÜR DIE VERARBEITUNG NACHWEISEN, DIE IHRE INTERESSEN, RECHTE UND FREIHEITEN ÜBERWIEGEN ODER DIE VERARBEITUNG DIENT DER GELTENDMACHUNG, AUSÜBUNG ODER VERTEIDIGUNG VON RECHTSANSPRÜCHEN (WIDERSPRUCH NACH ART. 21 ABS. 1 DSGVO).</p>
<p>WERDEN IHRE PERSONENBEZOGENEN DATEN VERARBEITET, UM DIREKTWERBUNG ZU BETREIBEN, SO HABEN SIE DAS RECHT, JEDERZEIT WIDERSPRUCH GEGEN DIE VERARBEITUNG SIE BETREFFENDER PERSONENBEZOGENER DATEN ZUM ZWECKE DERARTIGER WERBUNG EINZULEGEN; DIES GILT AUCH FÜR DAS PROFILING, SOWEIT ES MIT SOLCHER DIREKTWERBUNG IN VERBINDUNG STEHT. WENN SIE WIDERSPRECHEN, WERDEN IHRE PERSONENBEZOGENEN DATEN ANSCHLIESSEND NICHT MEHR ZUM ZWECKE DER DIREKTWERBUNG VERWENDET (WIDERSPRUCH NACH ART. 21 ABS. 2 DSGVO).</p>
<h3>Beschwerde­recht bei der zuständigen Aufsichts­behörde</h3>
<p>Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht besteht unbeschadet anderweitiger verwaltungsrechtlicher oder gerichtlicher Rechtsbehelfe.</p>
<h3>Recht auf Daten­übertrag­barkeit</h3>
<p>Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich oder an einen Dritten in einem gängigen, maschinenlesbaren Format aushändigen zu lassen. Sofern Sie die direkte Übertragung der Daten an einen anderen Verantwortlichen verlangen, erfolgt dies nur, soweit es technisch machbar ist.</p>
<h3>SSL- bzw. TLS-Verschlüsselung</h3>
<p>Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen oder Anfragen, die Sie an uns als Seitenbetreiber senden, eine SSL- bzw. TLS-Verschlüsselung. Eine verschlüsselte Verbindung erkennen Sie daran, dass die Adresszeile des Browsers von „http://“ auf „https://“ wechselt und an dem Schloss-Symbol in Ihrer Browserzeile.</p>
<p>Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen werden.</p>
<h3>Auskunft, Löschung und Berichtigung</h3>
<p>Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der Datenverarbeitung und ggf. ein Recht auf Berichtigung oder Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema personenbezogene Daten können Sie sich jederzeit an uns wenden.</p>
<h3>Recht auf Einschränkung der Verarbeitung</h3>
<p>Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Hierzu können Sie sich jederzeit an uns wenden. Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen:</p>
<ul>
<li>Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten, benötigen wir in der Regel Zeit, um dies zu überprüfen. Für die Dauer der Prüfung haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.</li>
<li>Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah/geschieht, können Sie statt der Löschung die Einschränkung der Datenverarbeitung verlangen.</li>
<li>Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung, Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht, statt der Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.</li>
<li>Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht, wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu verlangen.</li>
</ul>
<p>Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten eingeschränkt haben, dürfen diese Daten von ihrer Speicherung abgesehen nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der Rechte einer anderen natürlichen oder juristischen Person oder aus Gründen eines wichtigen öffentlichen Interesses der Europäischen Union oder eines Mitgliedstaats verarbeitet werden.</p>
<h2>4. Datenerfassung auf dieser Website</h2>
<h3>Cookies</h3>
<p>Unsere Internetseiten verwenden so genannte „Cookies“. Cookies sind kleine Textdateien und richten auf Ihrem Endgerät keinen Schaden an. Sie werden entweder vorübergehend für die Dauer einer Sitzung (Session-Cookies) oder dauerhaft (permanente Cookies) auf Ihrem Endgerät gespeichert. Session-Cookies werden nach Ende Ihres Besuchs automatisch gelöscht. Permanente Cookies bleiben auf Ihrem Endgerät gespeichert, bis Sie diese selbst löschen&nbsp;oder eine automatische Löschung durch Ihren Webbrowser erfolgt.</p>
<p>Teilweise können auch Cookies von Drittunternehmen auf Ihrem Endgerät gespeichert werden, wenn Sie unsere Seite betreten (Third-Party-Cookies). Diese ermöglichen uns oder Ihnen die Nutzung bestimmter Dienstleistungen des Drittunternehmens (z.&nbsp;B. Cookies zur Abwicklung von Zahlungsdienstleistungen).</p>
<p>Cookies haben verschiedene Funktionen. Zahlreiche Cookies sind technisch notwendig, da bestimmte Websitefunktionen ohne diese nicht funktionieren würden (z.&nbsp;B. die Warenkorbfunktion oder die Anzeige von Videos). Andere Cookies dienen dazu, das Nutzerverhalten auszuwerten&nbsp;oder Werbung anzuzeigen.</p>
<p>Cookies, die zur Durchführung des elektronischen Kommunikationsvorgangs, zur Bereitstellung bestimmter, von Ihnen erwünschter Funktionen (z.&nbsp;B. für die Warenkorbfunktion) oder zur Optimierung der Website (z.&nbsp;B. Cookies zur Messung des Webpublikums) erforderlich sind (notwendige Cookies), werden auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO gespeichert, sofern keine andere Rechtsgrundlage angegeben wird. Der Websitebetreiber hat ein berechtigtes Interesse an der Speicherung von notwendigen Cookies zur technisch fehlerfreien und optimierten Bereitstellung seiner Dienste. Sofern eine Einwilligung zur Speicherung von Cookies und vergleichbaren Wiedererkennungstechnologien abgefragt wurde, erfolgt die Verarbeitung ausschließlich auf Grundlage dieser Einwilligung (Art. 6 Abs. 1 lit. a DSGVO und § 25 Abs. 1 TTDSG); die Einwilligung ist jederzeit widerrufbar.</p>
<p>Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies beim Schließen des Browsers aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität dieser Website eingeschränkt sein.</p>
<p>Soweit Cookies von Drittunternehmen oder zu Analysezwecken eingesetzt werden, werden wir Sie hierüber im Rahmen dieser Datenschutzerklärung gesondert informieren und ggf. eine Einwilligung abfragen.</p>
<h3>Server-Log-Dateien</h3>
<p>Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:</p>
<ul>
<li>Browsertyp und Browserversion</li>
<li>verwendetes Betriebssystem</li>
<li>Referrer URL</li>
<li>Hostname des zugreifenden Rechners</li>
<li>Uhrzeit der Serveranfrage</li>
<li>IP-Adresse</li>
</ul>
<p>Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen.</p>
<p>Die Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der Websitebetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien Darstellung und der Optimierung seiner Website hierzu müssen die Server-Log-Files erfasst werden.</p>
<h3>Anfrage per E-Mail, Telefon oder Telefax</h3>
<p>Wenn Sie uns per E-Mail, Telefon oder Telefax kontaktieren, wird Ihre Anfrage inklusive aller daraus hervorgehenden personenbezogenen Daten (Name, Anfrage) zum Zwecke der Bearbeitung Ihres Anliegens bei uns gespeichert und verarbeitet. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.</p>
<p>Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO) sofern diese abgefragt wurde.</p>
<p>Die von Ihnen an uns per Kontaktanfragen übersandten Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z.&nbsp;B. nach abgeschlossener Bearbeitung Ihres Anliegens). Zwingende gesetzliche Bestimmungen insbesondere gesetzliche Aufbewahrungsfristen bleiben unberührt.</p>
<p>Quelle: <a href="https://www.e-recht24.de">https://www.e-recht24.de</a></p>

View File

@ -0,0 +1,46 @@
[viewBag]
title = "Friedenslicht"
url = "/friedenslicht"
layout = "friedenslicht"
is_hidden = 0
navigation_hidden = 0
header_image = "header/friedenslicht.jpg"
show_submenu = 0
==
<p>Hiermit laden wir euch herzlich ein zur Friedenslicht-Aktion 2022 mit nach Köln zu fahren und das Licht mit nach Solingen Wald zu bringen.</p>
<p>Die Flamme wird in der Geburtsgrotte Jesu Christi in Betlehem entzündet und von Vertretern der anerkannten Pfadfinderinnen- und Pfadfinderverbände in Wien abgeholt. Per Zug wird das Licht am Sonntag, 11. Dezember, in über 30 zentrale Bahnhöfe in Deutschland getragen: von München bis Kiel und von Aachen bis Görlitz sowie in andere Länder Europas und sogar bis nach Amerika.</p>
<p>Als Symbol für Frieden, Wärme, Solidarität und Mitgefühl soll das Licht an alle „Menschen guten Willens“ weitergegeben werden. Wer das Licht empfängt, kann damit selbst die Kerzen von Freunden und Bekannten entzünden, damit an vielen Orten ein Schimmer des Friedens erfahrbar wird, auf den die Menschen in der Weihnachtszeit besoners hoffen.</p>
<p>Wenn du dabei sein willst, dann <strong>fülle das Formular aus</strong> und komm am <strong>11.12.2022 um 14:00 zum SG-Hbf</strong> und hole das Friedenslicht aus Köln mit nach Solingen!</p>
<p>Die Fahrt kostet für dich nichts (dank freundlicher Unterstützung <a href="https://dpsg-koeln.de/" rel="noopener noreferrer" target="_blank">der Diözesanebene</a>), allerdings müssen wir im Vorfeld wissen wie viele Bahntickets wir benötigen. Gebe das deswegen unbedingt bei der Anmeldung mit an!</p>
<p><strong>Anmeldeschluss: 9.12.2022</strong></p>
<p>Der Wortgottesdienst zur Aussendungsfeier für Solingen Wald startet danach am <strong>11. Dezember um 18:00 Uhr nach unserer Rückkehr in St. Katharina</strong>, wo jeder (<strong>auch Eltern und Angehörige</strong>) die Möglichkeit hat, sich selbst eine Kerze anzuzünden und ein Friedenslicht mit nach Hause zu nehmen.</p>
<h2>Das wichtigste in Kürze</h2>
<ul>
<li>Beginn: 11.12., 14:00 Uhr am SG HBF</li>
<li>Ende: ca 19:00 Uhr in st. Katharina</li>
</ul>
<h2>Das solltest du mitbringen</h2>
<ul>
<li>Einen Kugelschreiber</li>
<li>Kluft, Halstuch</li>
<li>Wenn vorhanden: Eine Laterne o.ä. um das Licht mit nach Hause zu nehmen</li>
<li>3 €, wenn du einen <a href="https://www.ruesthaus.de/friedenslicht/3148/aufnaeher-friedenslicht-betlehem" rel="noopener noreferrer" target="_blank">Aufnäher</a> für die Aktion haben willst</li>
</ul>
<p>
<br>
</p>
<p>
<br>
</p>

View File

@ -0,0 +1,20 @@
[viewBag]
title = "Impressum"
url = "/impressum"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 0
==
<h2>Angaben gemäß § 5 TMG</h2>
<p>Philipp Lang
<br>Itterstr 3
<br>42719 Solingen</p>
<h2>Kontakt</h2>
<p>E-Mail: pille@stamm-silva.de</p>
<p>Quelle: <a href="https://www.e-recht24.de">https://www.e-recht24.de</a></p>

10
content/static-pages/index.htm Executable file
View File

@ -0,0 +1,10 @@
[viewBag]
title = "Stamm Silva Solingen Wald"
url = "/"
layout = "home"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 0
==
<p>Der DPSG Stamm Silva ist einer von 8 Pfadfinderstämmen im Bergischen Land.</p>

View File

@ -0,0 +1,53 @@
[viewBag]
title = "Kontakt"
url = "/kontakt"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 0
==
<h2>Unser Gemeindeheim befindet sich hier</h2>
<ul>
<li>Adolf-Kolping-Str 47</li>
<li>42719 Solingen</li>
</ul>
<h2>per Post</h2>
<ul>
<li>Stammesvorstand</li>
<li>Philipp Lang</li>
<li>Itterstr 3</li>
<li>42719 Solingen</li>
</ul>
<h2>per E-Mail</h2>
<ul>
<li><a href="mailto:post@stamm-silva.de">post@stamm-silva.de</a></li>
</ul>
<h2>Bankverbindung</h2>
<ul>
<li>Stamm Silva</li>
<li>Kontonummer 214551</li>
<li>Stadt-Sparkasse Solingen, BLZ 34250000</li>
<li>IBAN DE40 3425 0000 0000 2145 51</li>
<li>BIC SOLSDE33XXX</li>
<li>kasse@stamm-silva.de</li>
</ul>
<p>TN-Beitrag: 50€ pro Jahr, bzw 40€ pro Jahr für Geschwisterkinder</p>
<h2>Materialteam und Zeltverleih</h2>
<p>David Bielemeier</p>
<p><a href="mailto:material@stamm-silva.de">material@stamm-silva.de</a></p>
<p>
<br>
</p>

View File

@ -0,0 +1,14 @@
[viewBag]
title = "Anmeldung"
url = "/service/anmeldung"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Das Kürzel "NaMi" steht für "Namentliche Mitgliedermeldung". Darunter ist die elektronische Erfassung aller Mitglieder der DPSG zu verstehen, die durch einen Administrator über das Internet erledigt wird. Um lückelos alle Daten für die Erfassung zusammen zu haben, füllen die Mitglieder ein Formular aus und geben es an den Gruppenleiter weiter, damit dieser es an den Administrator aushändigen kann. Für die Vollständigkeit Erfassung der Stufenmitglieder ist der jeweilige Stufenleiter verantwortlich.</p>
<p>Lästigerweise muss man das Formular immer wieder bei der DPSG nachbestellen, deswegen haben wir uns ein eigenes gebastelt... ;o)</p>
<p><a href="/storage/app/media/dokumente/NaMi-Formular-neu.pdf" rel="noopener noreferrer" target="_blank">Hier geht's zum NaMi-Formular (PDF)</a></p>

View File

@ -0,0 +1,58 @@
[viewBag]
title = "Kluft & Aufnäher"
url = "/service/kluft-aufnaeher"
layout = "sections"
is_hidden = 0
navigation_hidden = 0
sections[0][heading] = "Wie komme ich an eine Kluft?"
sections[0][content] = "<p>Die Kluft bestellst du in der Regel selbst direkt beim <a href=\"https://www.ruesthaus.de/dpsg-artikel/pfadfinderkluft/hemden-blusen/\" rel=\"noopener noreferrer\" target=\"_blank\">Rüsthaus</a> in der für dich passenden Größe. Wir empfehlen die langärmlige Kluft, da sie für die meisten Zwecke besser geeignet ist als eine kurzärmlige.</p>
<p>Es gibt häufig auch günstigere Angebote von gebrauchten Kluften - z.B. bei <a href=\"https://www.ebay-kleinanzeigen.de/\" rel=\"noopener noreferrer\" target=\"_blank\">Ebay Kleinanzeigen</a>. Jedoch trägst du eine Kluft i.d.R. mehrere Jahre bis sie dir nicht mehr passt. Daher ist es auf jeden Fall eine gute Investition.</p>
<p>Du bekommst nur das Hemd in Blanko - also ohne Aufnäher und Halstuch. Wir empfehlen dir zudem, ein <a href=\"https://nextcloud.stammsilva.de/s/eKGQrK39abfcZB3\" rel=\"noopener noreferrer\" target=\"_blank\">Standard-Aufnäher-Paket</a> direkt bei uns zu kaufen nachdem du deine Kluft angeschafft hast. Mehr dazu weiter unten.</p>"
sections[0][subcontent] = ""
sections[0][image] = ""
sections[1][heading] = "Welche Aufnäher gehören auf die Kluft?"
sections[1][content] = "<p>Es gibt 6 Aufnäher, die standardmäßig <strong>auf jeder Kluft an vorgesehenen Positionen sein müssen</strong>. Dies wären die folgenden:</p>
<ul>
<li>Stammesabzeichen \"Stamm Silva\" auf rechter Tasche</li>
<li>Stufenabzeichen auf rechter Taschen-Abdeckung</li>
<li>Darüber: Nationalitäten-Abzeichen Deutschland</li>
<li>Bezirkslogo \"DPSG Bergisch Land\" auf linker Tasche</li>
<li>Weltbundlilie lila auf linker Taschen-Abdeckung</li>
<li>Darüber: ICCS</li>
</ul>"
sections[1][subcontent] = "<p>Du findest im Schaubild die passenden Aufnäher und die Positionen markiert. Diese Aufnäher kannst du (mit Ausnahme des Stufenabzeichens) <strong>als ein Paket direkt bei der Gruppenstunde bei uns vor Ort</strong> für 7.30 € kaufen. Melde dich dazu einfach bei deinem*r Gruppenleitenden. Das Stufenabzeichen gibt's hingegen beim Versprechen.</p>
<p><a href=\"https://nextcloud.stammsilva.de/s/eKGQrK39abfcZB3\" rel=\"noopener noreferrer\" target=\"_blank\">Hier geht's zur Preisliste.</a></p>"
sections[1][image] = "/seiten/positionen.jpg"
sections[2][heading] = "Kann ich andere Aufnäher aufnähen?"
sections[2][content] = "<p>Es gibt noch viele andere bunte Abzeichen in jeglicher Form, die du auf Lagern erwerben, dir selbst zulegen oder auch mit anderen Pfadfinder*innen tauschen kannst.</p>
<p>Wo du die aufnähst ist völlig egal. Und auch die Menge an Aufnähern kannst du selbst bestimmen.</p>
<p>Einige kannst du ebenfalls bei uns kaufen. <a href=\"https://nextcloud.stammsilva.de/s/eKGQrK39abfcZB3\" rel=\"noopener noreferrer\" target=\"_blank\">Hier</a> kannst du sehen, welche wir zzt anbieten. Dies hat folgende Vorteile:</p>
<ul>
<li>Du musst die Aufnäher nicht lästig im Rüsthaus bestellen</li>
<li>Du sparst dir die Versandkosten</li>
</ul>
<p>Spreche dazu einfach mit deinem*r Gruppenleitenden.</p>
<p>Wenn du Aufnäher gerne haben willst, die wir aber noch nicht haben, spreche uns auch gerne an.</p>"
sections[2][subcontent] = ""
sections[2][image] = ""
sections[3][heading] = "Wo bekomme ich das Halstuch / Stufenabzeichen her und wie viel kostet das?"
sections[3][content] = "<p>Das Halstuch und das Stufenabzeichen gibt es beim <strong>Versprechen</strong>. Dies wird in der Regel alle zwei Jahre abgelegt wenn ihr in eine neue Altersstufe aufsteigt.</p>
<p>Die Kosten hierfür sind durch den Jahresbeitrag gedeckt, sodass ihr hierfür alle zwei Jahre ein Stufenabzeichen und ein Halstuch bekommt. Lediglich bei Verlust muss dieses nachgekauft werden. Der Halstuchknoten muss einmalig extra erworben werden, denn den behälst du i.d.R. ein Leben lang.</p>
<p>Außerdem kannst du bei uns unabhängig von deinem Stufen-Halstuch ein Stammeshalstuch zum Preis von 20 € erwerben.</p>"
sections[3][subcontent] = ""
sections[3][image] = "/seiten/halstuch.png"
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Das beige Hemd was wir alle tragen wird "Kluft" genannt. Jeder Pfadfinder sollte eine Kluft besitzen. Daher gibt es hier eine kleine FAQ-Sektion zur Kluft.</p>

View File

@ -0,0 +1,12 @@
[viewBag]
title = "Materialverleih"
url = "/service/materialverleih"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Du brauchst ein 20-Mann-Zelt oder eine Jurte für gemütliche Lagerfeuer-Atmosphäre bei der nächsten Geburtstagsfete, Hochzeit oder einfach nur so zum Spaß? Zu diesem Zweck kommen wir vorbei und bauen die Zelte selbstständig für dich auf und wieder ab.</p>
<p>Spreche uns bei Interesse einfach an: <a href="mailto:material@stamm-silva.de">material@stamm-silva.de</a>.</p>

View File

@ -0,0 +1,22 @@
[viewBag]
title = "Wichtige Downloads"
url = "/service/wichtige-downloads"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Hier findet ihr wichtige Dateien zum Download, die euch im Pfadfinder-Alltag weiterhelfen:</p>
<h3>Packliste</h3>
<p>Wenn du dich an diese Packliste hälst, solltest du das nach unserer Meinung wichtigste für ein bevorstahendes Lager eingepackt haben. Wir erheben keinen Anspruch auf Vollständigkeit. Außerdem immer aufs Wetter / Außentemperaturen achten!</p>
<figure data-inspector-id="inspectorid-1334912507128" data-property-href="https://nextcloud.stammsilva.de/s/8Wfa6EYs73Zi8Qy" data-property-label="Zur Packliste" data-snippet="button">&nbsp;</figure>
<h3>Gesundheitsbogen</h3>
<p>Damit wir alle wichtigen Informationen zur Gesundheit eures Kindes bei Abreise parat haben, haben wir diesen Gesundheitsbogen entworfen.</p>
<p>Hier werden neben Allergien, Impfungen, etc auch praktische Dinge, wie z.B. "kann / darf Ihr Kind schwimmen" abgefragt.</p>
<figure data-inspector-id="inspectorid-97555434332" data-property-href="https://nextcloud.stammsilva.de/s/jEDcWNwWza9q5Ng" data-property-label="Zum Gesundheitsbogen" data-snippet="button">&nbsp;</figure>

View File

@ -0,0 +1,8 @@
[viewBag]
title = "Service"
url = "/service"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
show_submenu = 0
==

View File

@ -0,0 +1,23 @@
[viewBag]
title = "Bezirk Bergisch Land"
url = "/stamm/bezirk-bergisch-land"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Der&nbsp;<a href="http://www.dpsgbergischland.de/" target="_blank">"Bezirk Bergisch Land"</a> wurde in seiner heutigen Form am 1. April 1969 gegründet und umfasst heute 8 Stämme:</p>
<ul>
<li>Solingen Weeg "Sugambrer" (1. Januar 1929)</li>
<li>Remscheid Lennep "Bonaventura" (1. April 1941)</li>
<li>Solingen Ohligs "von Berg" (1. Januar 1947)</li>
<li>Solingen Löhdorf "Tenkterer" (10. Mai 1969)</li>
<li>Wuppertal "Gallier" (15. Oktober 1981)</li>
<li>Solingen Gräfrath "Gravenrode" (17. August 1984)</li>
<li>Solingen Wald "Silva" (1. Mai 1986)</li>
<li>Solingen Mangenberg "Gandalf" (1997)</li>
</ul>
<p>1928 wurden erste katholische Pfadfindergruppen in Deutschland gegründet, darunter auch eine in Wuppertal. Diese war auch dabei, als am 7. Oktober 1929 die DPSG, die Deutsche Pfadfinderschaft St. Georg, in Altenberg gegründet wurde. Somit gehört der Bezirk Bergisch Land mit zu den Gründungsmitgliedern der DPSG.</p>

View File

@ -0,0 +1,72 @@
[viewBag]
title = "DPSG"
url = "/stamm/dpsg"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Die Deutsche Pfadfinderschaft Sankt Georg (DPSG) bietet 95.000 Kindern, Jugendlichen und jungen Erwachsenen mehr als ein Abenteuer. Der größte katholische Pfadfinderverband in Deutschland wurde 1929 gegründet. Er versteht sich als Erziehungsverband - die Mitglieder lernen, aufrichtig und engagiert ihr Leben und ihr Umfeld zu gestalten. In Gruppen mit Gleichaltrigen lässt sich dieses Erziehungsziel gut erreichen:</p>
<ul>
<li>Die Wölflinge (7 bis 10 Jahre) entdecken und gestalten ihren Alltag.</li>
<li>Die Jungpfadfinder (10 bis 13 Jahre) erleben gemeinsam den Beginn der Jugend.</li>
<li>Pfadfinder (13 bis 16 Jahre) wagen es, ihren eigenen Weg zu gehen.</li>
<li>Rover (16 bis 20 Jahre) sind unterwegs, erkunden die Welt und packen Probleme an.</li>
</ul>
<p>Begleitet werden die Kinder und Jugendlichen durch erwachsene Leiterinnen und Leiter.</p>
<h2>International und katholisch</h2>
<p>Die DPSG ist über den Ring deutscher Pfadfinderverbände Mitglied in der von Lord Robert Baden-Powell gegründeten Weltpfadfinderbewegung. In der Internationalen Arbeit spiegelt sich der Anspruch der Mitglieder, Freund aller Menschen und Friedenspfadfinder zu sein. Gemeinsam mit katholischen Pfadfinderverbänden aus anderen Ländern ist die DPSG Mitglied in der Internationalen Katholischen Konferenz des Pfadfindertums (ICCS), die vom Heiligen Stuhl als internationale katholische Organisation anerkannt ist.</p>
<h2>Flinke Hände, flinke Füße</h2>
<p>Mädchen und Jungen, Frauen und Männer setzen sich in der DPSG gemeinsam für Benachteiligte ein, zum Beispiel bei der Jahresaktion. Seit 1961 gehört sie fest zum Jahresplan der DPSG-Gruppen. Unter dem Motto »Flinke Hände, flinke Füße« sammeln die Gruppen vor Ort Geld. Außerdem ist die Jahresaktion ein Feld zum Lernen: Wie fühlt es sich an, wenn man nicht sehen kann? Wie kommt man mit einem Rollstuhl durch den Straßenverkehr? Wie leben Kinder in Rwanda oder Bolivien? Die Themen der Jahresaktion richten sich nach den Engagement-Feldern der DPSG: Menschen mit Behinderung, Internationale Gerechtigkeit und Ökologie.</p>
<p>Die DPSG im Internet:&nbsp;<a href="http://www.dpsg.de/" target="_blank">www.dpsg.de</a></p>
<h3>Der Song: Flinke Hände - Flinke Füße</h3>
<p><strong>1. Strophe:</strong>
<br>Kriecht aus eurem Schneckenhaus
<br>zieht die alten Kleider aus
<br>Wir wollen fair und ehrlich sein
<br>setzen uns're Kräfte ein.</p>
<p><strong>Ref.:</strong>
<br>Kommt, lasst uns den Anfang machen.
<br>Wir probieren neue Sachen.
<br>Wir brauchen Mut und Phantasie,
<br>sonst verändern wir die Erde nie!
<br>Hey hey hey
<br>Flinke Hände,Flinke Füße,
<br>wache Augen,weites Herz,
<br>Freundschaft die zusammen hält,
<br>so verändern wir die Welt.</p>
<p><strong>2. Strophe:</strong>
<br>Steht nicht abseits schließt den Kreis,
<br>jeder neue Freunde weiß.
<br>Wir brauchen Menschen, die mit uns gehn,
<br>die Welt mit ihrem Herzen sehn</p>
<p><strong>Ref.</strong></p>
<p><strong>3. Strophe:</strong>
<br>Seht die Welt mit wachen Augen,
<br>lasst die Sprüche die nichts taugen.
<br>Wir glauben an den guten Geist,
<br>der den rechten Pfad uns weist.</p>
<p><strong>Ref.</strong></p>
<p><strong>4. Strophe:</strong>
<br>Singt die Lieder, tanzt, seit heiter,
<br>sagt es allen Menschen weiter:
<br>Wir haben Hoffnung, die uns trägt,
<br>die Brücken zu den Menschen schlägt.</p>
<p><strong>Ref</strong></p>

View File

@ -0,0 +1,30 @@
[viewBag]
title = "Gemeinde und Pfarrverband"
url = "/stamm/gemeinde-und-pfarrverband"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Unsere Gemeinde St. Katharina ist in jeder Alterstufe sehr aktiv. Besonders die <strong>Jugendarbeit</strong> ist dabei sehr ausgeprägt. Sie beinhaltet zwei Kinderchöre und den Jungen Chor genauso wie Ministranten, die Schützen und natürlich die Pfadfinder.</p>
<p>Außerdem gibt es in unserer Gemeinde viele <strong>Familienkreise</strong> mit Kindern in unterschiedlichen Altersstufen, eine Tanzgruppe und eine Kontaktgruppe für Frauen im besten Alter, die bei ihren gemeinsamen Treffen und Aktivitäten viel Spaß haben.</p>
<p>Der nun schon seit über 100 Jahren bestehende, traditionsreiche <strong>Kirchenchor</strong> ist bei jedem Hochamt vertreten und repräsentiert verschiedene Generationen der Gemeinde. Alle diese Gruppierungen treffen sich mehr oder weniger regelmäßig in unserem Pfarrheim zu ihren Treffen.</p>
<p>Für die <strong>älteste Generation</strong> gibt es den Club 65, der sich regelmäßig unter der Woche im Sälchen trifft. Desweiteren steht unserer Gemeinde der Eine-Welt-Laden zweimal wöchentlich zur Verfügung. Ihr seht also, unsere Gemeinde ist sehr lebendig und macht einfach Spaß, wenn du dabei bist!</p>
<h3>Die Disco St. Katharina - Der Partyraum</h3>
<p>Im eigenen Disco-Raum finden in unregelmäßigen Abständen immer wieder Partys statt, ausgerichtet von Jugendlichen, die sich im Disco-Team engagieren. Auch kann der <strong>Partyraum</strong> an jede und jeden vermietet werden. Für Mietanfragen und weitere Infos schaut mal unter <a data-fr-linked="true" href="https://disco-st-katharina.de" rel="noopener noreferrer" target="_blank">https://disco-st-katharina.de</a> vorbei.</p>
<h2>Der Pfarrverband Solingen-West</h2>
<p>Seit 2009 haben sich die Gemeinden St. Joseph in Ohligs, St. Katharina in Wald, St. Mariä Empfängnis in Merscheid und Liebfrauen in Löhdorf zu einer <strong>Pfarreiengemeinschaft</strong> (ugs. Pfarrverband) zusammengeschlossen. Dies gab einerseits Veränderungen in der Organisation und in der Stellenbesetzung der einzelnen Gemeinden, andererseits aber auch einige Umstrukturierungen in den verschiedenen Bereichen der Gemeindearbeit.</p>
<p>Für die Kinder- und Jugendarbeit heißt das, dass es einen <strong>Jugendausschuss</strong> auf Pfarrverbandsebene gibt, der sich in seinen monatlichen Treffen um die Belange aller Messdienergruppen und Pfadfinderstämme der verschiedenen Gemeinden kümmert und verschiedene gemeinsame Aktionen für Kinder und Jugendliche plant und durchführt.So sind alle Gemeinden untereinander vernetzt und können so besser zusammenarbeiten.</p>
<h2>Die Geschichte der Kirche St. Katharina</h2>
<p>Der Grundstein zum Bau der Kirche wurde am 16. August 1831 gelegt. Am 31. März 1833 konnten die ersten heiligen Messen dort zelebriert werden. Die endgültige Fertigstellung zog sich allerdings noch zehn Jahre hin. Doch in dieser Zeit wurde nicht allein die Kirche erbaut, sondern es entstanden noch ein Pastorat, eine Pfarrschule und ein Küsterhaus. Außerdem wurde ein eigener Friedhof hinter der Kirche angelegt, so dass ein für die damalige Zeit vorbildliches Pfarrzentrum errichtet worden war.In den Jahren 1901 - 1906 wurde eine Erweiterung der Kirche vollzogen. Ursprünglich war es vorgesehen, den alten Teil später durch einen neuen im neuromantischen Stil zu ersetzen, doch durch den ersten Weltkrieg wurden diese Pläne zunichte gemacht.Der zweite Weltkrieg richtete großen Schaden am Pfarrzentrum an: Im Dezember 1944 zerstörte eine Luftmine das Pastorat und das Dach der Kirche. Erst nach der Beendigung des Krieges konnte die Kirche unter einigen architektonischen Veränderungen wieder aufgebaut werden.In den Jahren 1969 - 1972 wurde erneut eine Renovierung durchgeführt, da das zweite vatikanische Konzil einige bauliche Veränderungen forderte.</p>

View File

@ -0,0 +1,147 @@
[viewBag]
title = "Geschichte"
url = "/stamm/geschichte"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<p>Der Stamm Silva ist immer im Wandel, aber in den letzten Jahren hat sich eine erfreuliche Kontinuität entwickelt:</p>
<ul>
<li>wir sind seit Jahren rund 70 Silvaner</li>
<li>wir haben 10 - 15 aktive Leiter &amp; Mitarbeiter</li>
<li>alle Stufen sind gut mit Kindern und Jugendlichen gefüllt</li>
<li>wir lieben Musik, veranstalten Singeabende und Konzerte</li>
<li>wir schauen über den Tellerrand und wollen die Welt kennenlernen</li>
<li>wir suchen immer neue Erlebnisse statt aufgewärmte Aktionen - manche mögen dies als "hyperaktiv" bezeichnen... ;o)</li>
</ul>
<h2>Die Geschichte des Stammes</h2>
<p>Innerhalb des Bezirks Bergisch Land ist der Stamm Silva ein noch recht junger Stamm, auch wenn das fulminante 25-jährige Jubiläum auf der Solinger Lichternacht bereits hinter uns liegt. Werfen wir also einen Blick zurück:</p>
<h3>Die Gründung des Stammes Silva (01.05.1986)</h3>
<ul>
<li>Pater Mathieu Pouls motiviert Matthias Pohl, der als Walder Jugendlicher in Löhdorf Pfadfinder ist, weil es in St. Katharina keine Pfadfindergruppe gibt, in Wald eine Pfadfindergruppe zu eröffnen</li>
<li>Matthias Pohl und Udo Reder fahren mit den Kindern des Kommunionjahrgangs 1986 als Pfadfinder nach SG-Burg in die Jugendherberge - dieses erste Lager ist quasi die Geburtsstunde der Walder Pfadfinder</li>
<li>In der Pfarrgemeinde wird vorerst eine Regelung getroffen: Mädchen können nach der Kommunion in die KJG (Katholische Junge Gemeinde) eintreten, Jungs in die DPSG (Deutsche Pfadfinderschaft St. Georg), damit beide Verbände genug Mitglieder "abbekommen"</li>
<li>diese Regelung hält sich recht lange, so bleibt der Walder Stamm bis 1999 ein reiner "Jungenclub"</li>
</ul>
<h3>Erste Schritte - von der Gruppe zum großen Stamm</h3>
<ul>
<li><strong>1987</strong> - Nach ca. 1 Jahr Pfadfindergruppenarbeit schließen sich die Walder dem Stamm Tenkterer aus Löhdorf als Siedlung an</li>
<li><strong>1991</strong> - Nach ca. 5 Jahren bestand die Walder Siedlung aus den benötigten drei funktionierenden Stufen, um als selbständiger Stamm starten zu können</li>
<li>der neue Stamm braucht natürlich einen Namen: "Silva" gefällt den damals aktiven Leitern besonders gut, denn Silva ist das lateinische Wort für "Wald" und symbolisiert damit somit sowohl unsere Verbundenheit zur Natur als auch zu unserem Stadtteil</li>
<li>das Stammeswappen wird entworfen: das Wappen von Solingen Wald verschmilzt mit der Pfadfinder-Weltbundlilie und den gekreuzten Klingen des Solinger Wappens</li>
<li>alle vier Stufen füllen sich immer besser, der Stamm umfasst zeitweise mehr als 20 Leiter und fast 100 Mitglieder (nur Jungs!)</li>
</ul>
<h3>Koedukation - die Geschichte von Jungs und Mädchen (1999)</h3>
<ul>
<li>in den 13 Jahren, die der Stamm besteht, wird es immer wieder diskutiert: will bzw. darf der Stamm Silva sich für Mädchen öffnen?</li>
<li>die Befürworter und die Entscheidung dafür werden immer wieder aus den unterschiedlichsten Gründen blockiert - mal von alten KJG-Leitern, mal von einzelnen DPSG-Leitern</li>
<li><strong>1999</strong> - es ist soweit: die alte Regelung verliert ihre Gültigkeit, denn selbst die bestehenden KJG-Mädchengruppen möchten größtenteils zur DPSG wechseln</li>
<li>die bestehenden Gruppen werden zusammengeführt, neue Gruppen nach der Kommunion werden für Mädchen und Jungs gleichermaßen angeboten</li>
<li>ein Meilenstein der Stammesgeschichte ist endlich geschafft</li>
</ul>
<h3>Die Stammesreform - frischer Wind für Stamm Silva (2002)</h3>
<ul>
<li>Anfang des neuen Jahrtausends sind die Leiterrunden und Gruppenstunden leider meist schlecht besucht</li>
<li>Stamm Silva ist in einer Flaute, die Motivation geht zurück</li>
<li><strong>09.11.2002</strong> - die Leiterrunde geht das Problem während ihres Planungswochenendes an und beschließt eine umfassende Stammesreform</li>
<li>In einer 11-Stündigen Marathon-Sitzung wird der marode Stamm neu aufgestellt. Neue Ziele werden gesteckt und wurden anschließend innerhalb kurzer Zeit verwirklicht</li>
<li>gleichmäßige Aufgabenverteilung</li>
<li>Methodisches Arbeiten</li>
<li>Reflexion des Erlebten</li>
<li>Kindermitbestimmung und Stammesversammlung</li>
<li>Elternarbeit / Elternstammtisch</li>
</ul>
<h3>Alles wird anders: die Reformjahre (2003 &amp; 2004)</h3>
<ul>
<li><strong>02.02.2003</strong> - Elternnachmittag - als Auftakt des Elternstammtisches</li>
<li><strong>04. - 06.07.2003</strong> - das Stammeslager findet als abenteuerlicher Hike durch das Bergische Land statt</li>
<li><strong>03. - 10.08.2003</strong> - erstes großes Auslandslager im Gilwell Park / England (zusammen mit 4 weiteren DPSG-Stämmen der Diözese Köln)</li>
<li><strong>11.10.2003</strong> - der legendäre erste Herbstball im Jugendheim</li>
<li><strong>13.12.2003</strong> - Auszeichnung des Stammes durch den Agendapreis der Stadt Solingen für besonderes Engagement in der Jugendarbeit und das Projekt Camino Seguro (Straßenkinder in Guatemala)</li>
<li><strong>03.03.2004</strong> - erster Elternstammtisch</li>
<li><strong>25.07. - 08.08.2004</strong> - Sommerlager in Irland mit Hike der Jugendstufen</li>
<li><strong>18.09.2004</strong> - die erste ordentliche Stammesversammlung findet statt - hier bestimmen die Kinder mit und der Vorstand wird vom ganzen Stamm gewählt</li>
</ul>
<h2>Meilensteine des Stammes</h2>
<h3>Sommer 2006: Silva wird größenwahnsinnig</h3>
<ul>
<li>die Stammesversammlung 2005 beschließt eineProjektreise nach Südafrika für den Sommer 2006: "Silva goes South Africa"</li>
<li><strong>19 Teilnehmer</strong> allen Alters ab 12 Jahre finden sich und erleben drei Wochen lang Pfadfinderabenteuer 11.000 km entfernt von der Heimat in einem Land mit ganz anderer Kultur</li>
<li>im Mittelpunkt der Fahrt steht die Begegnung mit südafrikanischen Pfadfindern, der kulturelle Austausch und natürlich das Erleben der dort ganz besonderen Natur</li>
</ul>
<h3>Scouting Sunrise - 100 Jahre Pfadfinder (01.08.2007)</h3>
<ul>
<li>Stamm Silva nimmt am "Scouting Sunrise" teil und feiert gleichzeitig (bzw. zeitversetzt) mit der ganzen Welt das 100-jährige Jubiläum der Pfadfinderbewegung</li>
<li>viele Silvaner erneuern ihr Pfadfinderversprechen gemeinsam mit 36 Millionen Pfadfindern auf der ganzen Welt - teilweise zusammen, teilweise mit sogenannten "Travel Bags" in ihrem Sommerurlaub</li>
</ul>
<h3>72 Stunden Aktion (07. - 10.05.2009)</h3>
<ul>
<li>Silva renoviert den Vogelpark Solingen im Zuge der BDKJ-Aktion "Uns schickt der Himmel"</li>
<li>Silvaner, Geschwister, Eltern, Freunde - alle packen mit an und leisten großartiges</li>
<li>laut BDKJ Köln eines von zwei Musterprojekten, die überregional Beachtung gefunden haben</li>
</ul>
<h3>Ein neues Logo für Stamm Silva (Mai 2009)</h3>
<ul>
<li>Stamm Silva beschließt auf der Stammesversammlung ein neues, modernes Logo für T-Shirts und andere Medien, welches neben dem Stammeswappen zum Einsatz kommen soll</li>
<li>in dem darauffolgenden Kreativwettbewerb setzt sich mit großer Mehrheit eine Abwandlung des "Hard Rock Café"-Logos durch, das seitdem auf schwarzen und olivfarbenen T-Shirts prangt</li>
</ul>
<h3>Der Waldi - das eigene Songbook (Juni 2011)</h3>
<ul>
<li>um das Singen im Stamm Silva zu fördern, sollte schon seit Jahren ein eigenes Songbook her</li>
<li>nach einigen Übergangslösungen mit Lose-Blatt-Sammlungen wurde in mühevoller und langwieriger Arbeit ein richtiges, gebundenes Büchlein hergestellt - der "Waldi"!</li>
<li>der Waldi erfreut sich auch über den Stamm hinaus großer Beliebtheit und wir beliefern immer wieder andere Pfadfinder aus Deutschland und ganz Europa damit</li>
</ul>
<h3>Sommer 2011: Silva fliegt nach Island</h3>
<ul>
<li>auf der Stammesversammlung 2008 wurde eine zweite große Projektreise im Stil von "Silva goes South Africa" beschlossen</li>
<li>nach zweijährige Vorbereitung unter kompletter Einbeziehung aller Silvaner steht 2010 fest: es geht nach Island in den hohen Norden Europas</li>
<li>wieder im Mittelpunkt: Pfadfinderbegegnung, Kulturaustausch, Natur erleben</li>
<li><strong>Mai 2011</strong> - zur richtigen Einstimmung wird der isländische Liedermacher Svavar Knútur eingeladen, ein Konzert zu geben, welches von mehr als 100 begeisterten Zuhörern verfolgt wird. Der Beginn einer wundervollen Freundschaft :o) Und der Auftakt der seitdem jährlich stattfindenden Konzertreihe mit Svavar</li>
<li><strong>Juli / August 2011</strong> - "Silva gós Iceland"! 31 tapfere Silvaner machen sich auf in das Land aus Feuer und Eis</li>
</ul>
<h3>25 Jahre Silva (September 2010)</h3>
<ul>
<li>Wir lassen es krachen! Unser Jubiläum feiern wir im Rahmen der Solinger Lichternacht</li>
<li>Eine wundervoll beleuchtete Großjurte mit Anbauten lädt alle Besucher ein, Live-Musik von vier verschiedenen Bands zu erleben</li>
<li>Das Silva-Museum stellt den Besuchern den Stamm vor in Bildern und Texten</li>
<li>Es wird zu Stockbrot und Tschai am Lagerfeuer eingeladen</li>
<li>Zum Abschluss zünden wir unser eigenes, professionelles, zehn Minuten langes Feuerwerk und sorgen für Ohs und Ahs</li>
</ul>
<h3>Auch mal mit Traditionen brechen - das neue "Silva-Jahr" (2013)</h3>
<ul>
<li>Die Leiterrunde krempelt den seit acht Jahren bestehenden Jahresablauf um</li>
<li>Besonderheit: die Gruppen werden aufgefordert, Ihrem Versprechen durch ganz besondere Momente, die sie sich selber gestalten, einen besonderen Glanz zu geben</li>
<li>Stufenwechsel ist nicht mehr nach den Sommerferien, sondern zum Jahreswechsel</li>
</ul>

View File

@ -0,0 +1,49 @@
[viewBag]
title = "Pfadfindergesetz"
url = "/stamm/pfadfindergesetz"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
header_image = "header/weinberg.jpg"
show_submenu = 1
==
<h2>Das Pfadfindergesetz der DPSG</h2>
<p><strong>Als Pfadfinderin... Als Pfadfinder...</strong></p>
<ul>
<li>.... begegne ich allen Menschen mit Respekt und habe alle Pfadfinderinnen und Pfadfinder als Geschwister</li>
<li>.... gehe ich zuversichtlich und mit wachen Augen durch die Welt</li>
<li>.... bin ich höflich und helfe da, wo es notwendig ist</li>
<li>.... mache ich nichts halb und gebe auch in Schwierigkeiten nicht auf</li>
<li>.... entwickle ich eine eigene Meinung und stehe für diese ein</li>
<li>.... sage ich, was ich denke, und tue, was ich sage</li>
<li>.... lebe ich einfach und umweltbewusst</li>
<li>.... stehe ich zu meiner Herkunft und zu meinem Glauben.</li>
</ul>
<h2>Das originale Pfadfindergesetz von BP</h2>
<p>Auf die Ehre eines Pfadfinders ist Verlass.
<br>A Scout's duty is to be useful and to help others.</p>
<p>Ein Pfadfinder ist ein Freund zu allen und ein Bruder eines jeden Pfadfinders, egal zu welcher gesellschaftlichen Klasse der Andere gehört.
<br>A Scout is a friend to all, and a brother to every other Scout, no matter to what social class the other belongs.</p>
<p>Ein Pfadfinder ist höflich.
<br>A Scout is courteous.</p>
<p>Ein Pfadfinder ist Freund aller Tiere.
<br>A Scout is a friend to animals.</p>
<p>Ein Pfadfinder befolgt die Anweisungen seiner Eltern, seines Kornetts oder Pfadfinderleiters ohne Frage.
<br>A Scout obeys orders of his parents, Patrol-leader, or Scout-master without question.</p>
<p>Ein Pfadfinder lächelt und pfeift in allen Schwierigkeiten.
<br>A Scout smiles and whistles under all difficulties.</p>
<p>Ein Pfadfinder ist sparsam.
<br>A Scout is thrifty.</p>
<p>Ein Pfadfinder ist rein in Gedanken, Worten und Taten.
<br>A Scout is clean in thought, word and deed.</p>

7
content/static-pages/stamm.htm Executable file
View File

@ -0,0 +1,7 @@
[viewBag]
title = "Stamm"
url = "/stamm"
layout = "app"
is_hidden = 0
navigation_hidden = 0
==

46
content/static-pages/stufen.htm Executable file
View File

@ -0,0 +1,46 @@
[viewBag]
title = "Stufen"
url = "/stufen"
layout = "stufen"
is_hidden = 0
navigation_hidden = 0
groups[0][contact_mail] = "woes@stamm-silva.de"
groups[0][align] = "right"
groups[0][image] = "/logos/woelflinge.png"
groups[0][header] = "Wölflinge"
groups[0][content] = "<p>Die jüngsten Pfadfinder zwischen 7 und 10 Jahren werden Wölflinge (=\"<strong>Wös</strong>\") genannt. In ihrer Wölflingsmeute - unterteilt in mehrere Wölflingsrudel - steht der Spaß an erster Stelle. Hier können die Kinder das Pfadfinderleben spielerisch kennenlernen und erste Erfahrungen mit Zelten, Lagerleben und anderen Aktionen machen.</p>
<h3>Wös sind supa</h3>
<p>Die Wölflinge sind zurzeit ein kleines Trüppchen von 10 Kindern. Auch hier treffen wir uns wöchentlich, wobei Spiel und Spaß im Vordergrund stehen. Die Gruppenstunden finden <strong>Freitags zwischen 17:00 Uhr und 18:30 Uhr</strong> statt.</p>
<figure>
<a href=\"https://www.stammsilva.de/data/stufen/1_l.jpg\" rel=\"fancybox-single\" title=\"2015\"></a></figure>"
groups[1][contact_mail] = "juffis@stamm-silva.de"
groups[1][align] = "left"
groups[1][image] = "/logos/juffi.png"
groups[1][header] = "Jungpfadfinder"
groups[1][content] = "<p>Jungpfadfinder werden Pfadfinder im Alter von 10 und 13 Jahren genannt. Die Juffistufe ist zzt etwas dünn besetzt, daher finden die Gruppenstunden zzt mit den Pfadis <strong>Freitags zwischen 17:00 und 18:30 Uhr</strong> statt.</p>
<figure>
<a href=\"https://www.stammsilva.de/data/stufen/2_l.jpg\" rel=\"fancybox-single\" title=\"2011\"></a></figure>"
groups[2][contact_mail] = "pfadis@stamm-silva.de"
groups[2][align] = "right"
groups[2][image] = "/logos/pfadi.png"
groups[2][header] = "Pfadfinder"
groups[2][content] = "<p>Pfadis werden die Pfadfinder zwischen 13 und 16 Jahren genannt. Ob DVD-Nacht, lustige Gruppenstunden oder tolle Lager... Hier darf jeder mitmischen und mitplanen. Der Pfadfinder-Trupp besteht zurzeit aus ca 8 Leuten. Die Gruppenstunden der Pfadis finden <strong>Freitags zwischen 18:00 Uhr und 19:30 Uhr</strong> statt.</p>
<figure>
<a href=\"https://www.stammsilva.de/data/stufen/3_l.jpg\" rel=\"fancybox-single\" title=\"2012\"></a></figure>"
groups[3][contact_mail] = "rover@stamm-silva.de"
groups[3][align] = "left"
groups[3][image] = "/logos/rover.png"
groups[3][header] = "Rover"
groups[3][content] = "<p>Wer 16 Jahre oder älter ist, ist bei uns herzlich willkommen.</p>
<h3>PADDEL DEIN KANU SELBST</h3>
<p>Von der Leiterrunde nur organisatorisch begleitet, nehmen die Rover das Ruder selbst in die Hand. Die wöchentlichen Treffen werden von den Jugendlichen und jungen Erwachsenen selbst gestaltet. Auch vor großen Projekten wird dabei nicht zurückgeschreckt. Ein Rovermobil? Überdachte Feuerstelle? Rent-a-Rover für alle Lebenslagen? Touren rund um die Welt nur mit den Rovern? Bei uns wird all das möglich...</p>
<p>Die Gruppenstunden der Rover finden <strong>Freitags zwischen 18:00 Uhr und 19:30 Uhr</strong> statt.</p>"
header_image = "header/weinberg.jpg"
show_submenu = 0
==
<p>In der DPSG gibt es 5 Altersstufen, die getrennt voneinander Gruppenstunden haben. So ist altersgerechte Arbeit möglich.</p>

View File

@ -0,0 +1,8 @@
[viewBag]
title = "Termine"
url = "/termine"
layout = "fliesstext"
is_hidden = 0
navigation_hidden = 0
show_submenu = 0
==

View File

@ -0,0 +1,17 @@
[viewBag]
title = "Filmnacht"
url = "/veranstaltungen/filmnacht"
layout = "event"
is_hidden = 0
navigation_hidden = 0
event_id = 3
header_image = "header/weinberg.jpg"
show_submenu = 0
==
<p>Unsere Filmnacht findet vom 24.-25.11. statt.</p>
<p>Beginn: 18:30 Uhr</p>
<p>Folgendes solltet ihr mitbringen: Schlafsachen (Schlafsack, Isomatte), Trinkflasche, kleine Schüssel (kein Glas / Porzellan)</p>
<p>Am Freitag wird es außerdem ein Abendessen mit allen geben. Die Aktion endet Samstag Morgens gegen 12 Uhr nach dem Frühstück.</p>

11
layouts/base.htm Normal file
View File

@ -0,0 +1,11 @@
[headAssets]
==
<!doctype html>
<html lang="it">
{% partial 'shared/head' %}
<body class="font-sans">
{% partial 'shared/header' %}
{% page %}
{% partial 'shared/footer' %}
</body>
</html>

19
layouts/event.htm Normal file
View File

@ -0,0 +1,19 @@
[secondmenu]
[staticMenu mainmenu]
code = "mainmenu"
[staticMenu footmenu]
code = "footmenu"
==
{% partial 'site/head' logo='logos/wappen.png' header_image='header/weinberg.jpg' %}
<h1 class="font-semibold font-arvo bg-primary-200 py-3">
<div class="container text-primary-800 text-xl font-arvo flex items-baseline">
{{'dpsgstart' | sprite('w-8 h-4 text-dpsgred mr-2')}}
<span class="text-sm md:text-base font-semibold">
{{this.page.title}}
</span>
</div>
</h1>
{% page %}
{% partial 'site/foot' %}

32
layouts/fliesstext.htm Normal file
View File

@ -0,0 +1,32 @@
[staticPage]
useContent = 1
default = 0
[secondmenu]
[staticMenu mainmenu]
code=mainmenu
[staticMenu footmenu]
code=footmenu
==
{% partial 'site/head' logo='logos/wappen.png' %}
<h1 class="font-semibold font-arvo bg-primary-200 py-3">
<div class="container text-primary-800 text-xl font-arvo flex items-baseline">
{{'dpsgstart' | sprite('w-8 h-4 text-dpsgred mr-2')}}
<span class="text-sm md:text-base font-semibold">
{{this.page.title}}
</span>
</div>
</h1>
<div class="container flex py-12">
<div class="flex-none w-64 mr-6 hidden navbar:block">
<div class="sticky top-6">
{% partial 'site/side.htm' %}
</div>
</div>
<div class="text-gray-800 c">
{% page %}
</div>
</div>
{% partial 'site/foot' %}

38
layouts/friedenslicht.htm Executable file
View File

@ -0,0 +1,38 @@
[staticPage]
useContent = 1
default = 0
[secondmenu]
[staticMenu mainmenu]
code = "mainmenu"
[staticMenu footmenu]
code = "footmenu"
[eventform]
==
{% partial 'site/head' logo='logos/friedenslicht.png' %}
<h1 class="font-semibold font-arvo bg-primary-200 py-3">
<div class="container text-primary-800 text-xl font-arvo flex items-baseline">
{{'dpsgstart' | sprite('w-8 h-4 text-dpsgred mr-2')}}
<span class="text-sm md:text-base font-semibold">
{{this.page.title}}
</span>
</div>
</h1>
<div class="container flex items-center flex-col py-12">
<div class="mt-8 flex flex-col lg:flex-row items-start">
<div class="c text-gray-800 text-lg">
{% page %}
</div>
<div class="p-6 lg:ml-6 flex-none w-full lg:w-72 shadow rounded-lg bg-white">
<h3 class="c">Anmeldung zur Friedenslicht-Aktion 2022</h3>
<div class="mt-5">
{% component 'eventform' %}
</div>
</div>
</div>
</div>
{% partial 'site/foot' %}

36
layouts/home.htm Executable file
View File

@ -0,0 +1,36 @@
[staticPage]
useContent = 1
default = 0
[secondmenu]
[staticMenu mainmenu]
code = "mainmenu"
[facebookpagefeed]
pageid = 1
logo = "logos/facebook-slider.png"
[staticMenu footmenu]
code=footmenu
==
{% partial 'shared/head' logo='logos/wappen.png' %}
<h1 class="font-semibold font-arvo bg-primary-200 py-3">
<div class="container text-primary-800 text-xl font-arvo flex items-baseline">
{{'dpsgstart' | sprite('w-8 h-4 text-dpsgred mr-2')}}
<span class="text-sm md:text-base font-semibold">
{{this.page.title}}
</span>
</div>
</h1>
<div class="container flex items-center flex-col py-12">
<img {{'seiten/dpsgstart.png' | resize}}>
<div class="text-gray-800 c text-lg mt-8">
{% page %}
</div>
<h2 class="mt-12 text-center font-arvo font-semibold text-2xl text-primary-700">Neuigkeiten</h2>
{% component 'facebookpagefeed' %}
</div>
{% partial 'shared/foot' %}

52
layouts/sections.htm Normal file
View File

@ -0,0 +1,52 @@
[staticPage]
useContent = 1
default = 0
[secondmenu]
[staticMenu mainmenu]
code=mainmenu
[staticMenu footmenu]
code=footmenu
==
{% partial 'site/head' logo='logos/wappen.png' %}
<h1 class="font-semibold font-arvo bg-primary-200 py-3">
<div class="container text-primary-800 text-xl font-arvo flex items-baseline">
{{'dpsgstart' | sprite('w-8 h-4 text-dpsgred mr-2')}}
<span class="text-sm md:text-base font-semibold">
{{this.page.title}}
</span>
</div>
</h1>
<div class="container flex py-12">
<div class="flex-none w-64 mr-6 hidden navbar:block">
<div class="sticky top-6">
{% partial 'site/side.htm' %}
</div>
</div>
<div>
<div class="text-gray-800 c">
{% page %}
</div>
{repeater name="sections" tab="Sektionen" prompt="Neue Sektion"}
<div class="hidden">
{text name="heading" label="Überschrift"}{/text}
{richeditor name="content" label="Inhalt"}{/richeditor}
{richeditor name="subcontent" label="Unter Inhalt"}{/richeditor}
{mediafinder name="image" label="Bild"}{/mediafinder}
</div>
<h2 class="c">{{fields.heading}}</h2>
<div class="flex lg:space-x-3 flex-col lg:flex-row">
<div class="c">{{fields.content | raw}}</div>
{% if fields.image %}
<div class="w-64 flex-none mt-3 lg:mt-0">
<img {{fields.image|resize("original", "calc(100vw-3rem)|750:calc(100vw-20rem)|1024:256px")}} />
</div>
{% endif %}
</div>
<div class="c mt-6 lg:mt-3">{{fields.subcontent | raw}}</div>
{/repeater}
</div>
</div>
{% partial 'site/foot' %}

47
layouts/stufen.htm Normal file
View File

@ -0,0 +1,47 @@
[staticPage]
useContent = 1
default = 0
[secondmenu]
[staticMenu mainmenu]
code=mainmenu
[staticMenu footmenu]
code=footmenu
==
{% partial 'site/head' logo='logos/wappen.png' %}
<h1 class="font-semibold font-arvo bg-primary-200 py-3">
<div class="container text-primary-800 text-xl font-arvo flex items-baseline">
{{'dpsgstart' | sprite('w-8 h-4 text-dpsgred mr-2')}}
<span class="text-sm md:text-base font-semibold">
{{this.page.title}}
</span>
</div>
</h1>
<div class="container flex py-12 items-start">
<div class="text-gray-800 c">
{% page %}
{repeater name="groups" tab="Gruppen" prompt="Neuer Eintrag"}
<div class="hidden">
{text name="contact_mail" label="E-Mail"}{/text}
{radio name="align" label="Ausrichtung des Bildes" options="right:Rechts|left:Links"}{/radio}
{mediafinder name="image" label="Bild" span="left"}{/mediafinder}
</div>
<div class="flex {% if fields.align == 'left' %} flex-col-reverse md:flex-row-reverse {% else %} flex-col-reverse md:flex-row {% endif %} items-center mt-10">
<div class="{% if fields.align == 'left' %} ml-0 md:ml-4 {% else %} mr-0 md:mr-4 {% endif %}">
<div class="flex flex-col sm:flex-row items-baseline">
<h2 class="text-lg font-arvo font-semibold text-primary-700 mr-4">{text name="header" label="Überschrift"}{/text}</h2>
<a href="mailto:{{html_email(fields.contact_mail)}}" class="bg-primary-100 text-primary-500 text-sm p-1">{{html_email(fields.contact_mail)}}</a>
</div>
<div class="c">{richeditor name="content" label="Inhalt" hidden}{/richeditor}</div>
</div>
<div class="flex-none">
<img {{fields.image | resize('original', '80px|768:256px')}} class="w-20 md:w-64 h-20 md:h-64 object-contain">
</div>
</div>
{/repeater}
</div>
</div>
{% partial 'site/foot' %}

26
meta/menus/footmenu.yaml Executable file
View File

@ -0,0 +1,26 @@
items:
-
title: Datenschutzerklärung
nesting: 0
type: static-page
url: null
code: ''
reference: datenschutzerklaerung
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Impressum
nesting: 0
type: static-page
code: ''
reference: impressum
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
name: Footmenu

182
meta/menus/mainmenu.yaml Executable file
View File

@ -0,0 +1,182 @@
items:
-
title: Stamm
nesting: 0
type: static-page
url: null
code: ''
reference: stamm-geschichte
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
items:
-
title: Geschichte
nesting: 0
type: static-page
url: null
code: ''
reference: stamm-geschichte
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: DPSG
nesting: 0
type: static-page
url: null
code: ''
reference: stamm-dpsg
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: 'Gemeinde und Pfarrverband'
nesting: 0
type: static-page
url: null
code: ''
reference: stamm-gemeinde-und-pfarrverband
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: 'Bezirk Bergisch Land'
nesting: 0
type: static-page
url: null
code: ''
reference: stamm-bezirk-bergisch-land
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Pfadfindergesetz
nesting: 0
type: static-page
url: null
code: ''
reference: stamm-pfadfindergesetz
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Kontakt
nesting: 0
type: static-page
url: null
code: ''
reference: kontakt
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Stufen
nesting: 0
type: static-page
url: null
code: ''
reference: stufen
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Service
nesting: 0
type: static-page
url: null
code: ''
reference: service-anmeldung
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
items:
-
title: Anmeldung
nesting: 0
type: static-page
url: null
code: ''
reference: service-anmeldung
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Materialverleih
nesting: 0
type: static-page
url: null
code: ''
reference: service-materialverleih
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: 'Kluft & Aufnäher'
nesting: 0
type: static-page
url: null
code: ''
reference: service-kluft-aufnaeher
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: 'Wichtige Downloads'
nesting: 0
type: static-page
url: null
code: ''
reference: service-wichtige-downloads
cmsPage: null
replace: 0
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
-
title: Anmeldung
type: cms-page
code: ''
reference: event-index
viewBag:
isHidden: '0'
cssClass: ''
isExternal: '0'
name: Mainmenu

17
meta/static-pages.yaml Executable file
View File

@ -0,0 +1,17 @@
static-pages:
index: { }
stamm:
stamm-geschichte: { }
stamm-dpsg: { }
stamm-gemeinde-und-pfarrverband: { }
stamm-bezirk-bergisch-land: { }
stamm-pfadfindergesetz: { }
kontakt: { }
stufen: { }
service:
service-anmeldung: { }
service-kluft-aufnaeher: { }
service-materialverleih: { }
service-wichtige-downloads: { }
datenschutzerklaerung: { }
impressum: { }

2617
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

31
package.json Normal file
View File

@ -0,0 +1,31 @@
{
"name": "vite-theme",
"version": "1.0.0",
"description": "Vite Theme",
"main": "index.js",
"directories": {
"test": "tests"
},
"scripts": {
"dev": "vite",
"production": "vite build",
"prod": "npm run production"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@spiriit/vite-plugin-svg-spritemap": "^2.2.4",
"autoprefixer": "^10.4.0",
"postcss": "^8.4.4",
"postcss-import": "^16.0",
"tailwindcss": "^3.4",
"vite": "^5.0",
"vite-plugin-live-reload": "^3.0",
"vite-plugin-svg-spritemap": "^1.0.1"
},
"dependencies": {
"@tailwindcss/typography": "^0.5.0",
"alpinejs": "^3.14.1"
}
}

12
pages/event-index.htm Normal file
View File

@ -0,0 +1,12 @@
title = "Anmeldung"
url = "/anmeldung"
layout = "event"
is_hidden = 0
[adrema_event_index]
indexPage = "event-index.htm"
singlePage = "event-single.htm"
registerPage = "event-register.htm"
eventSlug = ":slug"
==
{% component 'adrema_event_index' %}

37
pages/event-register.htm Normal file
View File

@ -0,0 +1,37 @@
title = "Anmeldung Register"
url = "/anmeldung/:slug/register"
layout = "event"
is_hidden = 0
[adrema_event_register]
indexPage = "event-index.htm"
singlePage = "event-single.htm"
registerPage = "event-register.htm"
eventSlug = "{{ :slug }}"
[adrema_event_description]
indexPage = "event-index.htm"
singlePage = "event-single.htm"
registerPage = "event-register.htm"
eventSlug = "{{ :slug }}"
==
function onEnd() {
$this->page['title'] = $this->event['name'];
}
==
{% put pagetitle %}{{event.name}}{% endput %}
<div class="container flex py-12">
<div class="flex-none w-64 mr-6 hidden navbar:block">
<div class="sticky top-6">
{% partial 'site/side.htm' %}
</div>
</div>
<div class="grow">
{% component 'adrema_event_description' %}
<div class="mt-10">
{% component 'adrema_event_register' %}
</div>
</div>
</div>

12
pages/event-single.htm Normal file
View File

@ -0,0 +1,12 @@
title = "Anmeldung"
url = "/anmeldung/:slug"
layout = "event"
is_hidden = 0
[adrema_event_index]
indexPage = "event-index.htm"
singlePage = "event-single.htm"
registerPage = "event-register.htm"
eventSlug = "{{ :slug }}"
==
{% component 'adrema_event_index' %}

View File

@ -0,0 +1,11 @@
{% if devServerIsRunning %}
<script type="module" src="http://localhost:3000/themes/vite-tailwind/@vite/client"></script>
<script type="module" src="http://localhost:3000/themes/vite-tailwind/resources/js/app.js"></script>
{% else %}
{% for css in cssPaths %}
<link rel="stylesheet" href="{{ ('assets/public/' ~ css)|theme }}">
{% endfor %}
{% put scripts %}
<script type="module" src="{{ ('assets/public/' ~ jsPath)|theme }}"></script>
{% endput %}
{% endif %}

44
partials/shared/foot.htm Normal file
View File

@ -0,0 +1,44 @@
[viewBag]
==
</main>
<footer class="py-12 bg-white">
<div class="container">
<div class="flex flex-col md:flex-row -mx-6">
<div class="px-6 md:self-center">
<img class="w-20 h-auto mr-6" {{'logos/wappen.png' | resize('original', '128|1280:192|1536:256')}}>
</div>
<div class="flex flex-col px-6 mt-6 md:mt-0">
<h3 class="font-arvo text-primary-700 text-lg mb-3">Links</h3>
{% for link in footmenu.menuItems %}
{% partial 'ui/menulink' title=link.title active=link.isActive link=link.url class=class blank=link.blank %}
{% endfor %}
</div>
<div class="px-6 mt-6 md:mt-0">
<h3 class="font-arvo text-primary-700 text-lg mb-3">Kontakt</h3>
<p>DPSG Stamm Silva</p>
<p>Adolf-Kolping-Str 47</p>
<p>42719 Solingen</p>
<p><a class="font-semibold text-primary-700 mt-2 block" href="mailto:{{html_email('post@stamm-silva.de')}}">{{html_email('post@stamm-silva.de')}}</a></p>
</div>
</div>
</div>
</footer>
{% scripts %}
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//stamm-silva.de/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '2']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'proxy.php'; s.parentNode.insertBefore(g,s);
})();
</script>
</body>
</html>

22
partials/shared/head.htm Normal file
View File

@ -0,0 +1,22 @@
[headAssets]
==
<!doctype html>
<html lang="de" class="h-screen">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400&family=Lato:wght@300;400&display=swap" rel="stylesheet">
<title>{{this.page.title}} | DPSG Stamm Silva</title>
{% styles %}
{% component 'headAssets' %}
{% placeholder metatags %}
</head>
<body class="flex flex-col min-h-screen bg-back bg-gray-100" {{bodyTag}}>
{% partial 'shared/header' logo=logo %}
<main class="flex-grow font-sans">

131
partials/shared/header.htm Normal file
View File

@ -0,0 +1,131 @@
[staticMenu mainmenu]
code = "hauptmenu"
==
function onEnd() {
$this['baseMenuTitle'] = config('app.name');
$this['activeMenuIndex'] = collect($this['menuItems'])->filter(fn ($entry) => ($entry->isChildActive || $entry->isActive) && count($entry->items))->keys()->first() ?? 'null';
$this['activeMenuTitle'] = collect($this['menuItems'])->filter(fn ($entry) => ($entry->isChildActive || $entry->isActive) && count($entry->items))->first()?->title ?: config('app.name');
}
==
<nav class="bg-cyan-900">
<div x-data="{ open: false, active: {{activeMenuIndex}}, maintitle: '{{activeMenuTitle}}' }" :class="{'active': open === true, 'inactive': open === false, 'issubmenu': active !== null}"
class="inactive container items-center group flex [@media(min-width:900px)]:hidden"
>
<nav class="flex items-center justify-between h-12 bg-primary-700">
<a href="#" @click.prevent="open = true" data-backstop-navbar-toggle>
{% partial 'ui/sprite' icon='menu' class='w-5 h-5 fill-current text-cyan-100' %}
</a>
</nav>
<div class="flex items-start fixed top-0 left-0 w-full h-full z-50 duration-300
group-[.active]:visible group-[.active]:bg-black/50
group-[.inactive]:bg-transparent group-[.inactive]:invisible
" @click.self="open = false">
<nav class="w-64 h-full relative overflow-y-auto overflow-x-hidden shadow-2xl bg-gray-900 duration-300 flex flex-col
group-[.inactive]:-left-64 group-[.active]:left-0
">
<div class="sticky top-0 z-10 bg-gray-800 text-white flex justify-between items-center p-4">
<a href="#" @click.prevent="active = null; maintitle='{{baseMenuTitle}}'" class="absolute -left-6 duration-300 group-[.issubmenu]:left-3">
{% partial 'ui/sprite' icon='chevron' class='w-4 h-4 text-cyan-100 rotate-90 relative left-0 duration-200 relative' %}
</a>
<span class="duration-300 ml-0 font-semibold font-barlow text-cyan-100 font-goudy text-2xl ml-0 group-[.issubmenu]:ml-6" x-text="maintitle"></span>
</div>
<div class="pt-4 relative grow">
<div class="flex flex-col duration-300 relative right-0 group-[.issubmenu]:right-full">
{% for index, link in menuItems %}
<a href="{% if link.items | length %}#{% else %}{{link.url}}{% endif %}" {% if link.items | length %}@click.prevent="active = {{index}}; maintitle='{{link.title}}'"{% endif %} class="px-4 flex items-center justify-between group/sublink font-goudy text-cyan-100 text-lg py-3 active:bg-gray-800 hover:bg-gray-800 duration-200">
<span>{{link.title}}</span>
{% if link.items | length %}
{% partial 'sprite' icon='chevron' class='w-3 h-3 relative left-0 -rotate-90 text-cyan-100 duration-200 group-hover/sublink:left-1 relative' %}
{% endif %}
</a>
{% endfor %}
</div>
{% for index, link in menuItems %}
<div class="overflow-x-hidden overflow-y-auto absolute pt-4 top-0 w-full h-full left-full duration-300" :class="{'left-full': active !== {{index}}, 'left-0': active === {{index}} }">
{% for sublink in link.items %}
<a href="{{sublink.url}}" class="px-4 flex items-center justify-between font-goudy text-cyan-100 text-lg py-3 active:bg-gray-800 hover:bg-gray-800 duration-200 {% if sublink.isActive %} font-bold text-white {% endif %}">
{{sublink.title}}
</a>
<div class="ml-5 border-l border-gray-800">
{% for subsublink in sublink.items %}
<a href="{{subsublink.url}}" class="px-4 flex items-center justify-between text-cyan-100 text-sm py-3 active:bg-gray-800 hover:bg-gray-800 duration-200 {% if subsublink.isActive %} font-bold text-white {% endif %}">
{{subsublink.title}}
</a>
{% endfor %}
</div>
{% endfor %}
</div>
{% endfor %}
</div>
</nav>
<a href="#" class="relative mt-3 ml-3 duration-300
group-[.inactive]:-left-64 group-[.inactive]:opacity-0 group-[.inactive]:invisible
group-[.active]:left-0 group-[.active]:opacity-100 group-[.active]:visible
" @click="open = false">
<svg class="w-6 h-6 text-white fill-current" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z" /></svg>
</a>
</div>
</div>
<div class="container hidden [@media(min-width:900px)]:flex space-x-3 items-center">
{% for item in menuItems %}
<div class="relative group">
<a class="h-14 text-xl text-cyan-100 hover:bg-cyan-700 duration-200 flex items-center px-6"
href="{% if item.items | length > 0 %}#{% else %}{{ item.url }}{% endif %}" {% if item.viewBag.isExternal %} target="_BLANK" {% endif %}
>
{{ item.title }}
{% if item.items|length %}
{% partial 'sprite' icon='chevron' class='w-3 h-3 ml-2 relative top-[0.15rem] text-cyan-100 relative left-0 duration-200 relative' %}
{% endif %}
</a>
{% if item.items | length > 0 %}
<div class="absolute py-4 bg-blue-400 hidden group-hover:block rounded-b-xl shadow-xl">
{% for subitem in item.items %}
<a class="block px-6 duration-200 hover:bg-blue-500 py-2 text-teal-50" href="{{ subitem.url }}">{{ subitem.title }}</a>
{% endfor %}
</div>
{% endif %}
</div>
{% endfor %}
</div>
<nav class="bg-primary-700 border-b-4 border-solid border-dpsgred justify-center hidden navbar:flex">
{% for item in mainmenu.menuItems | nothidden %}
<div class="relative group">
<a class="font-sans text-white text-xl py-3 px-4 transition-color duration-100 hover:bg-primary-600 block" href="{{item.url}}">{{item.title}}</a>
{% if item.items | length %}
<div class="absolute z-10 pt-5 left-1/2 w-64 -ml-32 hidden group-hover:block">
<div class="bg-white rounded-lg shadow-xl flex flex-col py-4 relative">
<div class="absolute top-0 -mt-3 flex justify-center w-full">
<svg viewBox="0 0 26 16" class="fill-current text-white" width="26" height="16">
<path d="M0,16 L26,16 L13,0 L0,16"></path>
</svg>
</div>
{% for subitem in item.items | nothidden %}
<a href="{{subitem.url}}" class="text-center px-4 hover:bg-gray-100 py-2">{{subitem.title}}</a>
{% endfor %}
</div>
</div>
{% endif %}
</div>
{% endfor %}
</nav>
</nav>
<div class="relative">
<img {{header_image | resize('header')}} class="h-64 object-cover lg:h-auto">
<div class="absolute w-full h-full top-0 left-0">
<div class="container flex justify-center md:justify-end items-center h-full">
<a href="/">
<img {{logo | resize('original', '128|1280:192|1536:256') }} class="w-32 xl:w-48 xxl:w-64 h-auto">
</a>
</div>
</div>
</div>

View File

@ -0,0 +1,22 @@
{% set imageLeft = section.image_position == 'left' %}
<div class="section-simple_text mt-10 md:mt-20">
<div class="container">
<div class="flex flex-wrap -mx-4 overflow-hidden">
<div class="w-full {{ imageLeft ? 'justify-end'}} flex">
<div class="w-full md:w-1/2 px-4">
<h2 class="text-5xl uppercase font-serif pb-5 border-b border-black leading-none">
{{ section.title }}
</h2>
</div>
</div>
<div class="w-full md:w-1/2 px-4 {{ imageLeft ? 'md:order-2' }}">
<div class="prose prose max-w-none mt-5">
{{ section.text|raw }}
</div>
</div>
<div class="w-full md:w-1/2 px-4 flex items-center mt-5 md:mt-0 {{ not imageLeft ? 'justify-end'}} {{ imageLeft ? 'md:order-1' }}">
<img class="w-full md:w-4/5" src="{{ section.image|media }}" alt="{{ section.title }}">
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,12 @@
<div class="section-simple_text mt-10 md:mt-20">
<div class="container">
<div class="flex flex-col">
<h2 class="text-5xl uppercase font-serif pb-5 border-b border-black leading-none">
{{ section.title }}
</h2>
<div class="prose prose max-w-none mt-5">
{{ section.text|raw }}
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,10 @@
<div class="section-title py-8 h-72 bg-gray-500 bg-blend-multiply text-white font-serif bg-cover bg-center"
style="background-image: url({{ section.image|media }})">
<div class="container h-full">
<div class="flex h-full items-end">
<div class="w-full md:w-1/2">
<h1 class="text-white text-7xl uppercase leading-none">{{ section.text|nl2br }}</h1>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,5 @@
{% if __SELF__.menuItems %}
<ul class="flex -mx-4">
{% partial __SELF__ ~ "::items" items=__SELF__.menuItems %}
</ul>
{% endif %}

View File

@ -0,0 +1,15 @@
{% for item in items if not item.viewBag.isHidden %}
<li role="presentation" class="{{ item.isActive ? 'active underline' : '' }} {{ item.isChildActive ? 'child-active underline' : '' }} {{ item.viewBag.cssClass }} text-lg hover:underline px-4">
{% if item.url %}
<a href="{{ item.url }}" {{ item.viewBag.isExternal ? 'target="_blank"' }}>
{{ item.title }}
</a>
{% else %}
<span>{{ item.title }}</span>
{% endif %}
{% if item.items %}
<ul>{% partial __SELF__ ~ "::items" items=item.items %}</ul>
{% endif %}
</li>
{% endfor %}

4
partials/ui/menulink.htm Normal file
View File

@ -0,0 +1,4 @@
<a href="{{link}}" {% if alpineAction %} @click.prevent="{{alpineAction}}" {% endif %} {% if alpineClass %} :class="{{alpineClass | raw}}" {% endif %} class="{% if class %} {{class}} {% endif %} flex items-center hover:text-dpsgred" {% if blank %} target="_BLANK" {% endif %}>
{{'chevron' | sprite('text-dpsgred w-3 h-3 transform -rotate-90 mr-2') | raw }}
<span>{{title}}</span>
</a>

7
partials/ui/sprite.htm Normal file
View File

@ -0,0 +1,7 @@
==
function onStart() {
$json = Cache::rememberForever('manifestcontent', fn () => json_decode((file_get_contents(themes_path('vite-tailwind/assets/public/manifest.json'))), true));
$this['file'] = $json['spritemap.svg']['file'];
}
==
<svg class="{{class}}"><use xlink:href="/themes/vite-tailwind/assets/public/{{file}}#sprite-{{icon}}"></use></svg>

8
postcss.config.js Normal file
View File

@ -0,0 +1,8 @@
module.exports = {
plugins: [
require('postcss-import'),
require('tailwindcss/nesting'),
require('tailwindcss'),
require('autoprefixer'),
]
}

View File

View File

View File

View File

@ -0,0 +1 @@
@tailwind base;

View File

@ -0,0 +1 @@
@tailwind components;

View File

@ -0,0 +1 @@
@tailwind utilities;

14
resources/css/app.css Normal file
View File

@ -0,0 +1,14 @@
@import '_tailwind-base.css';
/*@import "_custom-base-styles.css";*/
@import '_tailwind-components.css';
/*@import '_custom-components.css';*/
@import '_tailwind-utilities.css';
/*@import "_custom-utilities.css";*/
@layer components {
.container {
@apply max-w-[1440px] mx-auto px-6 md:px-10;
}
}

8
resources/js/app.js Normal file
View File

@ -0,0 +1,8 @@
import '../css/app.css';
import Alpine from 'alpinejs';
window.Alpine = Alpine;
document.addEventListener('alpine:init', () => {});
Alpine.start();

7
tailwind.config.js Normal file
View File

@ -0,0 +1,7 @@
module.exports = {
content: ['./**/*.htm'],
theme: {
extend: {},
},
plugins: [],
};

5
theme.yaml Normal file
View File

@ -0,0 +1,5 @@
name: 'Vite Theme'
description: 'Blank theme for Vite based development'
author: 'Marco Messa'
homepage: ''
code: ''

BIN
vite-theme.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

25
vite.config.js Normal file
View File

@ -0,0 +1,25 @@
import liveReload from 'vite-plugin-live-reload';
import VitePluginSvgSpritemap from '@spiriit/vite-plugin-svg-spritemap';
export default ({command}) => {
return {
base: command === 'serve' ? '/themes/vite-tailwind/' : '/themes/vite-tailwind/assets/public/',
publicDir: 'resources/public',
build: {
manifest: 'manifest.json',
outDir: 'assets/public',
assetsDir: '',
rollupOptions: {
input: 'resources/js/app.js',
},
},
server: {
strictPort: true,
port: 3000,
},
resolve: {
extensions: ['.js', '.mjs'],
},
plugins: [liveReload('./**/*.htm'), VitePluginSvgSpritemap('./resources/icons/*.svg')],
};
};