mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-06-25 16:19:19 +02:00
- Skip required-field validation for orientation/ap/finality/licence/jury in admin add+edit
113 lines
5.6 KiB
PHP
113 lines
5.6 KiB
PHP
<?php
|
||
/**
|
||
* Shared partial — "Degrés d'ouverture et licences" fieldset.
|
||
*
|
||
* Renders:
|
||
* 1. Généralités (editable via form help blocks)
|
||
* 2. Radio choice: Libre / Interne / Interdit (filtered by enabled flags)
|
||
* 3. Licence dropdown + custom licence text input
|
||
* 4. CC2r checkbox
|
||
*
|
||
* Variables consumed:
|
||
* array $formData — raw form data for repopulation
|
||
* array $licenseTypes — [{id, name}]
|
||
* bool $libreEnabled — show Libre option (always true for admin)
|
||
* bool $interneEnabled — show Interne option
|
||
* bool $interditEnabled — show Interdit option
|
||
* string $generalitiesHtml — HTML content for Généralités section (editable)
|
||
* int $defaultAccessTypeId — default selected access type (default: 2)
|
||
*/
|
||
|
||
$formData = $formData ?? [];
|
||
$licenseTypes = $licenseTypes ?? [];
|
||
$libreEnabled = $libreEnabled ?? true;
|
||
$interneEnabled = $interneEnabled ?? true;
|
||
$interditEnabled = $interditEnabled ?? true;
|
||
$generalitiesHtml = $generalitiesHtml ?? '';
|
||
$defaultAccessTypeId = $defaultAccessTypeId ?? 2;
|
||
$adminMode = $adminMode ?? false;
|
||
?>
|
||
<fieldset class="licence-explanation">
|
||
<legend>Degrés d'ouverture et licences</legend>
|
||
|
||
<!-- Généralités -->
|
||
<div class="licence-generalites">
|
||
<h3>Généralités</h3>
|
||
<?php if ($generalitiesHtml): ?>
|
||
<div class="form-help-editable"><?= $generalitiesHtml ?></div>
|
||
<?php else: ?>
|
||
<ul>
|
||
<li>L'auteur·ice peut décider entre trois degrés de partage de son travail : <strong>libre</strong>, <strong>interne</strong>, <strong>interdit</strong>.</li>
|
||
<li>L'auteur·ice peut, à tout moment, décider de <strong>restreindre</strong> le degré d'accès à son travail. Il ne peut néanmoins pas l'ouvrir davantage.</li>
|
||
<li>Le choix effectué dans ce formulaire sera d'application <strong>une semaine après la soutenance orale</strong> de l'auteur·ice. Celui-ci peut donc décider de restreindre ce choix avant sa publication (mais pas l'ouvrir).</li>
|
||
<li>L'erg se réserve le droit de restreindre le degré d'ouverture du TFE – ce en accord avec le règlement.</li>
|
||
<li>Dans tous les cas, l'auteur·ice garde les droits d'auteurs, de diffusion, d'utilisation, etc. de son travail – sauf si la licence choisie restreindrait ses droits.</li>
|
||
<li>La diffusion « xamxam » est indépendante de la diffusion à la BAIU.</li>
|
||
</ul>
|
||
<?php endif; ?>
|
||
</div>
|
||
|
||
<!-- Degré d'ouverture -->
|
||
<div class="licence-choice">
|
||
<h3>J'autorise l'erg à archiver mon TFE de la manière suivante :</h3>
|
||
<?php $selectedAccess = $formData['access_type_id'] ?? (string)$defaultAccessTypeId; ?>
|
||
|
||
<?php if ($libreEnabled): ?>
|
||
<div class="licence-degree">
|
||
<label class="admin-checkbox-label">
|
||
<input type="radio" name="access_type_id" value="1"
|
||
<?= $selectedAccess === '1' ? 'checked' : '' ?> <?= $adminMode ? '' : 'required' ?>>
|
||
<strong>🔓 Libre</strong> — Mon TFE est en libre accès à tout le monde sur la plateforme des TFE ainsi que dans la bibliothèque de l'erg.
|
||
</label>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<?php if ($interneEnabled): ?>
|
||
<div class="licence-degree">
|
||
<label class="admin-checkbox-label">
|
||
<input type="radio" name="access_type_id" value="2"
|
||
<?= $selectedAccess === '2' ? 'checked' : '' ?> <?= $adminMode ? '' : 'required' ?>>
|
||
<strong>🔒 Interne</strong> — Mon TFE n'est accessible que sur place en physique. Une note descriptive est disponible sur le site.
|
||
</label>
|
||
</div>
|
||
<?php endif; ?>
|
||
|
||
<?php if ($interditEnabled): ?>
|
||
<div class="licence-degree">
|
||
<label class="admin-checkbox-label">
|
||
<input type="radio" name="access_type_id" value="3"
|
||
<?= $selectedAccess === '3' ? 'checked' : '' ?> <?= $adminMode ? '' : 'required' ?>>
|
||
<strong>🚫 Interdit</strong> — Mon TFE n'est pas disponible en physique ni sur le site. Une note descriptive est disponible sur le site.
|
||
</label>
|
||
</div>
|
||
<?php endif; ?>
|
||
<p class="licence-note"><em>L'auteur·ice peut, à tout moment, décider de restreindre son propre choix. Iel ne peut par contre pas l'ouvrir.</em></p>
|
||
</div>
|
||
|
||
<!-- Licence -->
|
||
<div class="licence-license-choice">
|
||
<h3>Licence du TFE</h3>
|
||
<?php
|
||
$name = 'license_id'; $label = 'Licence :'; $options = $licenseTypes;
|
||
$selected = $formData['license_id'] ?? ''; $placeholder = '— Sélectionner —'; $required = !$adminMode;
|
||
include APP_ROOT . '/templates/partials/form/select-field.php';
|
||
?>
|
||
|
||
<?php
|
||
$name = 'license_custom'; $label = 'Ou précisez une autre licence :';
|
||
$value = htmlspecialchars($formData['license_custom'] ?? '');
|
||
$hint = 'Ex: CC BY-NC 4.0, Tous droits réservés...';
|
||
include APP_ROOT . '/templates/partials/form/text-field.php';
|
||
?>
|
||
|
||
<div class="admin-form-group">
|
||
<label class="admin-checkbox-label">
|
||
<input type="checkbox" name="cc2r" value="1"
|
||
<?= !empty($formData['cc2r']) ? 'checked' : '' ?>>
|
||
J'accepte les Conditions Collectives de Réutilisation (CC2r)
|
||
</label>
|
||
<small><a href="https://cc2r.net/" target="_blank" rel="noopener">En savoir plus sur la CC2r ↗</a></small>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|