mirror of
https://github.com/quentin-g-dev/afup.git
synced 2026-03-25 01:32:08 +01:00
103 lines
3.1 KiB
PHP
103 lines
3.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Affiche un message puis redirige le visiteur vers une URL spécifiée
|
|
* @param string $message Message à afficher
|
|
* @param string $url URL vers laquelle rediriger le visiteur
|
|
* @param bool $erreur S'agit-il d'une erreur
|
|
* @return void
|
|
*/
|
|
function afficherMessage($message, $url, $erreur = false) {
|
|
$_SESSION['flash']['message'] = $message;
|
|
$_SESSION['flash']['erreur'] = $erreur;
|
|
header('Location: ' . $url);
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Renvoit l'instance d'un formulaire
|
|
*
|
|
* Un formulaire est instancié, configuré puis renvoyé
|
|
*
|
|
* @param string $url URL pour l'attribut "action" du formulaire
|
|
* @param string $nom Nom du formulaire
|
|
* @return HTML_QuickForm
|
|
*/
|
|
function instancierFormulaire($url = null, $nom = 'formulaire') {
|
|
if (is_null($url)) {
|
|
$url = $_SERVER['REQUEST_URI'];
|
|
}
|
|
$formulaire = new \AppBundle\Association\Form\HTML_QuickForm($nom, 'post', $url);
|
|
$formulaire->removeAttribute('name');
|
|
return $formulaire;
|
|
}
|
|
|
|
/**
|
|
* Renvoit un tableau contenant les éléments d'un formulaire
|
|
*
|
|
* @param object $formulaire Formulaire à traiter
|
|
* @return array
|
|
*/
|
|
function genererFormulaire(HTML_QuickForm &$formulaire) {
|
|
foreach ($formulaire->getElements() as $el) {
|
|
$attrs = $el->getAttributes();
|
|
if ($el instanceof HTML_QuickForm_submit) {
|
|
$attrs['class'] = 'ui primary button';
|
|
}
|
|
$el->setAttributes($attrs);
|
|
}
|
|
|
|
$renderer = new HTML_QuickForm_Renderer_Array(true, true);
|
|
$formulaire->accept($renderer);
|
|
$resultat = $renderer->toArray();
|
|
unset($renderer);
|
|
return $resultat;
|
|
}
|
|
|
|
/**
|
|
* Vérifie qu'une action est disponible et si ce n'est pas le cas, renvoit l'action par défaut
|
|
*
|
|
* L'action par défaut est la première des actions disponibles.
|
|
*
|
|
* @param array $actions_disponibles Actions disponibles
|
|
* @return string
|
|
*/
|
|
function verifierAction($actions_disponibles) {
|
|
if (!is_array($actions_disponibles) || count($actions_disponibles) == 0) {
|
|
trigger_error("Les actions disponibles doivent être passées sous forme d'un tableau d'au moins un élément", E_USER_ERROR);
|
|
return false;
|
|
}
|
|
|
|
if (!empty($_GET['action']) && in_array($_GET['action'], $actions_disponibles)) {
|
|
return $_GET['action'];
|
|
} else {
|
|
return $actions_disponibles[0];
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Remplace une caractère accentué par sa version non accentuée
|
|
*
|
|
* @param string $texte Texte à traiter
|
|
* @return string Texte traité
|
|
*/
|
|
function supprimerAccents($texte) {
|
|
$texte = htmlentities($texte);
|
|
return preg_replace('/&([a-z])[a-z]+;/i',"$1", $texte);
|
|
}
|
|
|
|
function obtenirTitre($pages, $page) {
|
|
foreach ($pages as $_page => $_page_details) {
|
|
if ($page == $_page) {
|
|
return $_page_details['nom'];
|
|
}
|
|
if (isset($_page_details['elements']) and is_array($_page_details['elements'])) {
|
|
foreach ($_page_details['elements'] as $_element => $_element_details) {
|
|
if ($page == $_element) {
|
|
return $_element_details['nom'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|