From fd8d1730e8ed829a9e6d1ae2aeafe47a7fc4ccd7 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 29 Aug 2026 10:57:48 +0200 Subject: [PATCH] Add Terms and Conditions page and link it from registration/footer Adds a /terms page and links it from the site footer and from the "I agree to the Terms and Conditions" checkbox on registration, which previously didn't point anywhere. --- src/Website/Controller/HomeController.php | 7 ++ templates/layout/site.html.twig | 2 + .../tech/registration/register.html.twig | 3 + templates/website/home/terms.html.twig | 107 ++++++++++++++++++ translations/messages.en.yaml | 1 + translations/messages.nl.yaml | 1 + 6 files changed, 121 insertions(+) create mode 100644 templates/website/home/terms.html.twig diff --git a/src/Website/Controller/HomeController.php b/src/Website/Controller/HomeController.php index f162caa..972590b 100644 --- a/src/Website/Controller/HomeController.php +++ b/src/Website/Controller/HomeController.php @@ -35,6 +35,13 @@ final class HomeController extends AbstractController 'website/home/help_wanted.html.twig'); } + #[Route(path: '/terms', name: 'website_terms')] + public function terms(): Response + { + return $this->render( + 'website/home/terms.html.twig'); + } + #[Route(path: '/donation/cancel', name: 'website_donation_cancel')] public function donationCancel(): Response { diff --git a/templates/layout/site.html.twig b/templates/layout/site.html.twig index 2fc06a0..79a5730 100644 --- a/templates/layout/site.html.twig +++ b/templates/layout/site.html.twig @@ -68,6 +68,8 @@
© {{ "now"|date("Y") }} {{ 'site.name'|trans }}
diff --git a/templates/tech/registration/register.html.twig b/templates/tech/registration/register.html.twig index dec8d99..cf6468f 100644 --- a/templates/tech/registration/register.html.twig +++ b/templates/tech/registration/register.html.twig @@ -10,6 +10,9 @@ {{ form_row(registrationForm.username) }} {{ form_row(registrationForm.plainPassword) }} {{ form_row(registrationForm.agreeTerms) }} +

+ Read the Terms and Conditions +

{{ form_row(registrationForm.marketingOptIn) }} {{ form_row(registrationForm.captcha) }} diff --git a/templates/website/home/terms.html.twig b/templates/website/home/terms.html.twig new file mode 100644 index 0000000..e1aa430 --- /dev/null +++ b/templates/website/home/terms.html.twig @@ -0,0 +1,107 @@ +{% extends 'layout/site.html.twig' %} + +{% block title %}Terms and Conditions | {{ 'site.name'|trans }}{% endblock %} + +{% block body %} +
+
+
+

Terms and Conditions

+

Last updated: 29 August 2026

+
+ +
+
+

+ Welcome to EscapePage. These Terms and Conditions ("Terms") govern your use of this + website and the online escape-room game(s) offered on it (together, the "Service"). By + creating an account or otherwise using the Service, you agree to these Terms. +

+ +

1. The Service

+

+ EscapePage is a hobby project offering collaborative, browser-based escape-room + experiences. The Service is under active development: games, features, and content may + change, be added, or be removed at any time, without notice. +

+ +

2. Accounts

+

+ You need an account to play. You are responsible for keeping your login details + confidential and for all activity under your account. You must provide accurate + information when registering, and you must be at least 16 years old, or the minimum age + required in your country to consent to online services without parental approval, + whichever is higher. +

+ +

3. Acceptable Use

+

You agree not to:

+
    +
  • attempt to cheat, exploit bugs, or bypass the intended puzzle mechanics in a way that spoils the game for other players;
  • +
  • harass, abuse, or send unlawful or offensive content to other players or the operator;
  • +
  • use automated tools to scrape, overload, or attack the Service;
  • +
  • use the Service for any unlawful purpose.
  • +
+

+ Accounts that break these rules may be suspended or removed at the operator's discretion. +

+ +

4. Feedback and Submitted Content

+

+ If you submit feedback, ratings, or written comments through the Service, you grant the + operator a non-exclusive, royalty-free right to use, store, and display that content + (for example, as aggregate feedback scores or anonymised testimonials) in connection with + the Service. +

+ +

5. Donations

+

+ The Service may offer an optional way to support its development through a third-party + payment provider (currently PayPal). Donations are voluntary, are not required to play, + do not unlock any in-game advantage, and are non-refundable except where required by law. +

+ +

6. Availability and "As Is" Service

+

+ The Service is provided free of charge, "as is" and "as available," without warranties of + any kind, express or implied. As a small, self-hosted hobby project, uptime, data + retention, and long-term availability are not guaranteed. +

+ +

7. Intellectual Property

+

+ The game stories, puzzles, artwork, and source code are the property of the operator or + used under licence, except where third-party or open-source components state otherwise. + You may not copy, redistribute, or republish game content without permission. +

+ +

8. Limitation of Liability

+

+ To the fullest extent permitted by law, the operator is not liable for any indirect, + incidental, or consequential damages arising from your use of, or inability to use, the + Service. +

+ +

9. Changes to These Terms

+

+ These Terms may be updated from time to time; the "Last updated" date above will reflect + the most recent change. Continuing to use the Service after a change means you accept the + updated Terms. +

+ +

10. Governing Law

+

+ These Terms are governed by the laws of the Netherlands, without regard to its conflict + of law principles. +

+ +

11. Contact

+

+ Questions about these Terms are welcome. Please reach out to the operator through the + contact details available on this site. +

+
+
+
+
+{% endblock %} diff --git a/translations/messages.en.yaml b/translations/messages.en.yaml index 14bd9a3..f49c75f 100644 --- a/translations/messages.en.yaml +++ b/translations/messages.en.yaml @@ -10,6 +10,7 @@ nav.logout: Logout link.enter_game: Enter the Game Area link.back_to_website: Back to Website footer.help_wanted: Looking for Help +footer.terms: Terms and Conditions # Home page home.title: "Welcome | EscapePage" diff --git a/translations/messages.nl.yaml b/translations/messages.nl.yaml index f2c6108..4716b4c 100644 --- a/translations/messages.nl.yaml +++ b/translations/messages.nl.yaml @@ -10,6 +10,7 @@ nav.logout: Uitloggen link.enter_game: Ga naar het Speelgedeelte link.back_to_website: Terug naar Website footer.help_wanted: Op zoek naar hulp +footer.terms: Algemene Voorwaarden # Home pagina home.title: "Welkom | %{site}%"