Préparer la version 1.0.0-rc.4

This commit is contained in:
Alexandre NOEL 2026-09-07 14:15:45 +02:00
commit 6e3beea211
38 changed files with 388 additions and 56 deletions

View file

@ -42,13 +42,20 @@
</div>
<div class="col-12"><label class="form-label"><?= h(t('public_site.theme')) ?></label>
<div class="row g-2">
<?php foreach (['warm' => ['🧡',t('public_site.theme_warm')],'nature' => ['🌿',t('public_site.theme_nature')],'minimal' => ['◻️',t('public_site.theme_minimal')]] as $key => $theme): ?>
<div class="col-md-4"><label class="form-selectgroup-item w-100"><input type="radio"
<?php foreach (['warm' => ['🧡',t('public_site.theme_warm')],'nature' => ['🌿',t('public_site.theme_nature')],'minimal' => ['◻️',t('public_site.theme_minimal')],'custom' => ['🎨',t('public_site.theme_custom')]] as $key => $theme): ?>
<div class="col-md-3"><label class="form-selectgroup-item w-100"><input type="radio"
name="public_site_theme" value="<?= h($key) ?>" class="form-selectgroup-input"
<?= ($settings['public_site_theme'] ?? 'warm') === $key ? 'checked' : '' ?>><span
class="form-selectgroup-label d-flex align-items-center gap-2"><?= $theme[0] ?>
<strong><?= h($theme[1]) ?></strong></span></label></div><?php endforeach; ?></div>
</div>
<div class="col-md-6"><label class="form-label"><?= h(t('public_site.site_name')) ?></label><input
class="form-control" name="public_site_name" value="<?= h($settings['public_site_name']) ?>"
placeholder="<?= h($settings['association_name']) ?>"></div>
<div class="col-12"><label class="form-label"><?= h(t('public_site.custom_css')) ?></label><textarea
class="form-control font-monospace" name="public_site_custom_css" rows="8"
placeholder=":root { --accent: #d87945; }"><?= h($settings['public_site_custom_css']) ?></textarea>
<div class="form-hint"><?= h(t('public_site.custom_css_help')) ?></div></div>
</div>
</div>
</div>
@ -60,7 +67,7 @@
<div class="col-12"><label class="form-label"><?= h(t('common.title')) ?></label><input class="form-control"
name="public_site_home_title" value="<?= h($settings['public_site_home_title']) ?>" required></div>
<div class="col-12"><label class="form-label"><?= h(t('common.text')) ?></label><textarea
class="form-control" name="public_site_home_text"
class="form-control public-rich-text" name="public_site_home_text"
rows="4"><?= h($settings['public_site_home_text']) ?></textarea></div>
</div>
</div>
@ -77,7 +84,7 @@
class="form-control" name="public_site_about_title"
value="<?= h($settings['public_site_about_title']) ?>"></div>
<div class="col-md-8"><label class="form-label"><?= h(t('common.text')) ?></label><textarea
class="form-control" name="public_site_about_text"
class="form-control public-rich-text" name="public_site_about_text"
rows="5"><?= h($settings['public_site_about_text']) ?></textarea></div>
</div>
</div>
@ -93,7 +100,7 @@
class="form-control" type="url" name="public_site_donation_url"
value="<?= h($settings['public_site_donation_url']) ?>" placeholder="https://..."></div>
<div class="col-12"><label class="form-label"><?= h(t('common.text')) ?></label><textarea
class="form-control" name="public_site_donation_text"
class="form-control public-rich-text" name="public_site_donation_text"
rows="4"><?= h($settings['public_site_donation_text']) ?></textarea></div>
</div>
</div>
@ -104,13 +111,18 @@
<div class="card-body row g-3">
<div class="col-12">
<div class="alert alert-info py-2"><?= h(t('public_site.contact_reuse')) ?></div><label
class="form-label"><?= h(t('common.text')) ?></label><textarea class="form-control"
class="form-label"><?= h(t('common.text')) ?></label><textarea class="form-control public-rich-text"
name="public_site_contact_text" rows="3"><?= h($settings['public_site_contact_text']) ?></textarea>
</div>
<div class="col-md-6"><label class="form-label">Facebook</label><input class="form-control" type="url"
name="public_site_facebook_url" value="<?= h($settings['public_site_facebook_url']) ?>"></div>
<div class="col-md-6"><label class="form-label">Instagram</label><input class="form-control" type="url"
name="public_site_instagram_url" value="<?= h($settings['public_site_instagram_url']) ?>"></div>
<?php foreach (['mastodon' => 'Mastodon','youtube' => 'YouTube','tiktok' => 'TikTok','bluesky' => 'Bluesky'] as $network => $label): ?>
<div class="col-md-6"><label class="form-label"><?= h($label) ?></label><input class="form-control"
type="url" name="public_site_<?= h($network) ?>_url"
value="<?= h($settings['public_site_' . $network . '_url']) ?>" placeholder="https://..."></div>
<?php endforeach; ?>
</div>
</div>
<div class="card mb-3">
@ -129,3 +141,25 @@
</div>
<div class="text-end mb-4"><button class="btn btn-primary"><?= h(t('common.save')) ?></button></div>
</form>
<script>
document.querySelectorAll('.public-rich-text').forEach((textarea) => {
const toolbar = document.createElement('div');
toolbar.className = 'btn-list mb-2';
const actions = [['B', '**', '**'], ['I', '*', '*'], ['Titre', '## ', ''], ['Liste', '- ', ''], ['Lien', '[', '](https://)']];
actions.forEach(([label, before, after]) => {
const button = document.createElement('button');
button.type = 'button';
button.className = 'btn btn-sm btn-outline-secondary';
button.textContent = label;
button.addEventListener('click', () => {
const start = textarea.selectionStart;
const end = textarea.selectionEnd;
const selected = textarea.value.slice(start, end);
textarea.setRangeText(before + selected + after, start, end, 'select');
textarea.focus();
});
toolbar.append(button);
});
textarea.before(toolbar);
});
</script>