Changeset da6fd02 in Klonkt
- Timestamp:
- 06/19/2026 08:37:28 AM (3 months ago)
- Branches:
- main
- Children:
- a474bd2
- Parents:
- 7eb35ae
- Location:
- src
- Files:
-
- 4 edited
-
middleware/render.js (modified) (1 diff)
-
routes/admin-settings.js (modified) (2 diffs)
-
views/pages/admin-settings.ejs (modified) (1 diff)
-
views/partials/footer.ejs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/middleware/render.js
r7eb35ae rda6fd02 87 87 tenancy: res.locals.tenancy || 'solo', 88 88 hubTitle: getSetting('hub_title') || '', 89 footerNewsletter: getSetting('footer_newsletter') === '1', // nieuwsbrief-aanmelding in footer (premium) 89 90 platforms_catalog: PLATFORMS_CATALOG, 90 91 permissions: PermissionsService, -
src/routes/admin-settings.js
r7eb35ae rda6fd02 85 85 }, 86 86 smtp: mailerStatus(), 87 footerNewsletter: getSetting('footer_newsletter') === '1', 87 88 success: req.query.success || null, 88 89 error: req.query.error || null, … … 170 171 }); 171 172 173 // Nieuwsbrief-aanmelding in de footer aan/uit. 174 router.post('/footer', requireGod, (req, res) => { 175 setSetting('footer_newsletter', req.body.footer_newsletter ? '1' : '0'); 176 res.redirect('/admin/settings?success=' + encodeURIComponent('Footer-instelling opgeslagen')); 177 }); 178 172 179 // Testmail sturen naar een opgegeven adres (of de ingelogde gebruiker). 173 180 router.post('/smtp/test', requireGod, async (req, res) => { -
src/views/pages/admin-settings.ejs
r7eb35ae rda6fd02 112 112 <% } %> 113 113 </section> 114 115 <%# Nieuwsbrief-aanmelding in de footer (premium). %> 116 <% if (typeof premiumUnlocked === 'undefined' || premiumUnlocked) { %> 117 <section class="set-card" style="margin-top:1rem"> 118 <h2>Nieuwsbrief</h2> 119 <p class="set-help">Toon een <strong>aanmeldveld in de footer</strong> van je site zodat bezoekers zich op elke pagina kunnen inschrijven. (De volledige aanmeldpagina blijft op <code><%= (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '' %>/nieuwsbrief</code>.)</p> 120 <form method="post" action="/admin/settings/footer" class="set-form"> 121 <label class="set-toggle" style="display:flex;align-items:center;gap:.6rem;cursor:pointer"> 122 <input type="checkbox" name="footer_newsletter" value="1" <%= footerNewsletter ? 'checked' : '' %>> 123 <span>Aanmeldveld in de footer tonen</span> 124 </label> 125 <div class="set-actions"><button type="submit" class="btn btn-primary">Opslaan</button></div> 126 </form> 127 </section> 128 <% } %> 114 129 115 130 <%# E-mail / SMTP — nodig voor nieuwsbrief versturen, notify-mails en wachtwoord-reset. %> -
src/views/partials/footer.ejs
r7eb35ae rda6fd02 1 1 <footer class="site-footer"> 2 <% if (typeof footerNewsletter !== 'undefined' && footerNewsletter && (typeof premiumUnlocked === 'undefined' || premiumUnlocked) && typeof site !== 'undefined' && site) { %> 3 <div class="container footer-nl"> 4 <span class="footer-nl-label">📬 Blijf op de hoogte</span> 5 <form method="post" action="<%= (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '' %>/nieuwsbrief" class="footer-nl-form"> 6 <input type="email" name="email" required placeholder="jouw@email.nl" autocomplete="email" aria-label="E-mailadres"> 7 <button type="submit">Inschrijven</button> 8 </form> 9 </div> 10 <% } %> 2 11 <div class="container site-footer-inner"> 3 12 <div> … … 62 71 } 63 72 } 73 .footer-nl { 74 max-width: 800px; margin: 0 auto 1.5rem; padding: 0 1rem; 75 display: flex; align-items: center; justify-content: center; gap: .8rem; flex-wrap: wrap; 76 } 77 .footer-nl-label { font-weight: 600; color: var(--ink); } 78 .footer-nl-form { display: flex; gap: .5rem; flex-wrap: wrap; } 79 .footer-nl-form input { 80 padding: .5rem .7rem; border-radius: 8px; border: 1px solid var(--rule); 81 background: var(--paper); color: var(--ink); font-size: .9rem; min-width: 200px; 82 } 83 .footer-nl-form button { 84 padding: .5rem 1rem; border-radius: 8px; border: none; cursor: pointer; 85 background: var(--accent); color: #fff; font-weight: 600; font-size: .9rem; 86 } 87 @media (max-width: 600px) { .footer-nl { flex-direction: column; } .footer-nl-form input { min-width: 0; flex: 1; } } 88 64 89 .site-footer-inner { 65 90 max-width: 800px;
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)