modules courses WIP

This commit is contained in:
Fred Tempez 2023-10-19 11:41:54 +02:00
parent b88e99e31d
commit 93fc2f3aae
5 changed files with 276 additions and 1 deletions

View File

@ -64,7 +64,7 @@
<div class="row">
<div class="col4">
<?php echo template::select('courseEditAccess', $module::$courseAccess, [
'label' => 'Accès',
'label' => 'Modalités d\'ouverture',
'selected' => $this->getdata(['course', $this->getUrl(2), 'access'])
]); ?>
</div>

103
module/courses/courses.php Normal file
View File

@ -0,0 +1,103 @@
<?php
/**
* This file is part of Zwii.
* For full copyright and license information, please see the LICENSE
* file that was distributed with this source code.
*
* @author Rémi Jean <remi.jean@outlook.com>
* @copyright Copyright (C) 2008-2018, Rémi Jean
* @author Frédéric Tempez <frederic.tempez@outlook.com>
* @copyright Copyright (C) 2018-2023, Frédéric Tempez
* @license CC Attribution-NonCommercial-NoDerivatives 4.0 International
* @link http://zwiicms.fr/
*/
class courses extends common
{
const VERSION = '1.0';
const REALNAME = 'Liste des cours';
const DATADIRECTORY = ''; // Contenu localisé inclus par défaut (page.json et module.json)
public static $actions = [
'config' => self::GROUP_ADMIN,
'index' => self::GROUP_VISITOR
];
public static $courseCategories = [
'all' => 'Toutes les catégories'
];
public static $coursesLayout = [
1 => 'Une colonne',
2 => 'Deux colonnes',
3 => 'Trois colonnes',
4 => 'Quatre colonnes',
5 => 'Cinq colonnes',
6 => 'Six colonnes',
];
public static $coursesDetails = [];
/**
* Configuration
*/
public function config()
{
// Soumission du formulaire
if (
$this->getUser('permission', __CLASS__, __FUNCTION__) === true &&
$this->isPost()
) {
$this->setData([
'module',
$this->getUrl(0),
'config',
[
'category' => $this->getInput('coursesConfigCategories'),
'title' => $this->getInput('coursesConfigShowTitle', helper::FILTER_BOOLEAN),
'shortTitle' => $this->getInput('coursesConfigShowShortTitle', helper::FILTER_BOOLEAN),
'author' => $this->getInput('coursesConfigShowAuthor', helper::FILTER_BOOLEAN),
'description' => $this->getInput('coursesConfigShowDescription', helper::FILTER_BOOLEAN),
'access' => $this->getInput('coursesConfigShowAccess', helper::FILTER_BOOLEAN),
'opening' => $this->getInput('coursesConfigShowOpening', helper::FILTER_BOOLEAN),
'closing' => $this->getInput('coursesConfigShowClosing', helper::FILTER_BOOLEAN),
'enrolment' => $this->getInput('coursesConfigShowEnrolment', helper::FILTER_BOOLEAN),
'urlText' => $this->getInput('coursesConfigUrlText', helper::FILTER_STRING_SHORT),
'layout' => $this->getInput('coursesConfigLayout', helper::FILTER_INT),
'template' => $this->getInput('coursesConfigTemplate', helper::FILTER_BOOLEAN),
]
]);
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . $this->getUrl(),
'notification' => helper::translate('Modifications enregistrées'),
'state' => true
]);
}
// Liste des catégories de cours
self::$courseCategories = array_merge(self::$courseCategories, $this->getData(['category']));
// Valeurs en sortie
$this->addOutput([
'title' => helper::translate('Configuration du module'),
'view' => 'config'
]);
}
public function index()
{
// Valeurs en sortie
$this->addOutput([
'showBarEditButton' => true,
'showPageContent' => true,
'view' => 'index'
]);
// Valeurs en sortie
$this->addOutput([
'showBarEditButton' => true,
'showPageContent' => true,
'view' => 'index',
]);
}
}

View File

@ -0,0 +1,19 @@
/**
* This file is part of Zwii.
*
* For full copyright and license information, please see the LICENSE
* file that was distributed with this source code.
*
* @author Rémi Jean <remi.jean@outlook.com>
* @copyright Copyright (C) 2008-2018, Rémi Jean
* @author Frédéric Tempez <frederic.tempez@outlook.com>
* @copyright Copyright (C) 2018-2023, Frédéric Tempez
* @license CC Attribution-NonCommercial-NoDerivatives 4.0 International
* @link http://zwiicms.fr/
*/
/** NE PAS EFFACER
* admin.css
*/

View File

@ -0,0 +1,123 @@
<?php echo template::formOpen('coursesConfig'); ?>
<div class="row">
<div class="col1">
<?php echo template::button('coursesConfigBack', [
'class' => 'buttonGrey',
'href' => helper::baseUrl() . 'page/edit/' . $this->getUrl(0),
'value' => template::ico('left')
]); ?>
</div>
<div class="col2 offset9">
<?php echo template::submit('coursesConfigSubmit'); ?>
</div>
</div>
<div class="row">
<div class="col8">
<div class="block">
<h4>
<?php echo helper::translate('Elements à afficher'); ?>
</h4>
<div class="row">
<div class="col12">
<?php echo template::checkbox('coursesConfigShowTitle', true, 'Titre', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'title'])
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::checkbox('coursesConfigShowShortTitle', true, 'Titre court', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'shortTitle'])
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::checkbox('coursesConfigShowAuthor', true, 'Nom de l\'auteur', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'author'])
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::checkbox('coursesConfigShowDescription', true, 'Description', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'description'])
]); ?>
</div>
</div>
<div class="row">
<div class="col4">
<?php echo template::checkbox('coursesConfigShowAccess', true, 'Modalités d\'ouverture', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'access'])
]); ?>
</div>
<div class="col4">
<?php echo template::checkbox('coursesConfigShowOpening', true, 'Date d\'ouverture', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'opening']),
'help' => 'Affiché si l\'accès est limité dans le temps',
]); ?>
</div>
<div class="col4">
<?php echo template::checkbox('coursesConfigShowClosing', true, 'Date de fermeture', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'closing']),
'help' => 'Affiché si l\'accès est limité dans le temps',
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::checkbox('coursesConfigShowEnrolment', true, 'Modalités d\'inscription', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'enrolment'])
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::text('coursesConfigUrlText', [
'label' => 'Texte du lien vers le cours',
'value' => $this->getData(['module', $this->getUrl(0), 'config', 'urlText'])
]); ?>
</div>
</div>
</div>
</div>
<div class="col4">
<div class="block">
<h4>
<?php echo helper::translate('Paramètres'); ?>
</h4>
<div class="row">
<div class="col12">
<?php echo template::select('coursesConfigCategories', $module::$courseCategories, [
'label' => 'Catégorie à afficher',
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'category'])
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::select('coursesConfigLayout', $module::$coursesLayout, [
'label' => 'Présentation en colonnes',
'selected' => $this->getData(['module', $this->getUrl(0), 'config', 'layout']),
'help' => 'Chaque cours est présenté dans une colonne'
]); ?>
</div>
</div>
<div class="row">
<div class="col12">
<?php echo template::checkbox('coursesConfigTemplate', true, 'Bordure', [
'checked' => $this->getData(['module', $this->getUrl(0), 'config', 'template']),
'help' => 'Template bordure de TinyMCE, le titre en évidence'
]); ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php echo template::formClose(); ?>
<div class="moduleVersion">Version
<?php echo $module::VERSION; ?>
</div>

View File

@ -0,0 +1,30 @@
<?php foreach ($this->getData(['course']) as $courseId => $courseValue): ?>
<!-- Layout en colonnes -->
<div class="col<?php echo $this->getData(['module', $this->getUrl(0), 'config', 'layout']) ?>">
<!-- Affchage par bloc et bordure -->
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'template']) === true): ?>
<div class="block">
<h4>
<?php endif; ?>
<!-- Insère le titre ou le titre court dans tous les cas -->
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'title']) === true): ?>
<?php echo $courseValue['title'] ?>
<?php else: ?>
<?php echo $courseValue['shortTitle'] ?>
<?php endif; ?>
<!-- Fin du bloc et bordure titre 4 -->
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'template']) === true): ?>
</h4>
<?php endif; ?>
<!-- Fin du bloc et bordure -->
<?php if ($this->getData(['module', $this->getUrl(0), 'config', 'template']) === true): ?>
</div>
<?php endif; ?>
</div>
<?php endforeach; ?>