Aller au contenu principal
Version: 26.0.8.0

Contrôleurs

Les contrôleurs Elementum simplifient le développement en fournissant des méthodes pratiques pour gérer les services, les réponses et les redirections.

Accès aux services

Méthodes de raccourci

Accédez facilement aux services courants :

  • customize()Appareance
  • postTypes()PostTypes
  • adminPages()AdminPages
  • templates()Templates
  • flash()FlashBag

Accès générique aux services

Pour les services non listés, utilisez getService() avec la constante NAME du service :

$router = $this->getService(Router::NAME);

Gestion des réponses

Affichage de vues

// Affiche une vue Twig avec des données optionnelles
$this->render('mon-template.html.twig', ['titre' => 'Accueil']);

Réponses JSON

// Retourne une réponse JSON
$this->json(['status' => 'success', 'data' => $mesDonnees]);

Gestion des redirections

Redirections de base

// Redirection vers une URL
$this->redirect('https://exemple.com/mapage');

// Redirection vers une route nommée
$this->redirectToRoute('nom_de_ma_route');

Redirections avancées

// Retour à la page précédente (ou page d'accueil)
$this->redirectBack();

// Redirection vers un article
$this->redirectToPost(123); // Par ID
$this->redirectToPost($monObjetPost); // Ou par objet WP_Post

Récupération de contenu

// Récupère un type de contenu personnalisé
$monTypeContenu = $this->getPostType('mon-type');

// Fonctionne aussi avec les types natifs
$articles = $this->getPostType('post');
$pages = $this->getPostType('page');

Helper Response

Le helper Response (namespace Elementum\Helpers) permet de définir le code de statut HTTP ou d'envoyer une réponse JSON depuis n'importe quel controller.

Response::send(int $code)

Définit le code de statut HTTP. Pour un 404, appelle également $wp_query->set_404() en interne.

use Elementum\Helpers\Response;

Response::send(404);
return $this->render('@elementum/login/404.html.twig', []);

Response::json(array $data)

Encode le tableau en JSON et arrête immédiatement l'exécution (équivalent à wp_send_json()).

Response::json([
    'success' => true,
    'message' => 'Élément créé.',
]);

Messages flash

Ajout de messages

// Message personnalisé
$this->flashAdd('info', 'Action effectuée avec succès');

// Méthodes dédiées
$this->flashSuccess('Opération réussie !');
$this->flashError('Une erreur est survenue');
$this->flashWarning('Attention : action requise');
$this->flashInfo('Information importante');

Types de messages disponibles

  • flashSuccess() → Clé 'success'
  • flashError() → Clé 'error'
  • flashWarning() → Clé 'warning'
  • flashInfo() → Clé 'info'