Aller au contenu principal
Version: Next

Récupération des valeurs

Le service customize d'Elementum permet d'accéder facilement aux valeurs des options de personnalisation depuis n'importe quel contrôleur ou service de votre thème.

Accès au service

Le service customize est automatiquement injecté dans tous les contrôleurs. Vous pouvez y accéder via $this->customize().

Méthodes de récupération

Récupérer une section

Pour récupérer les options d'une section spécifique :

app/Controllers/MyController.php
// Accès direct aux options d'une section
$fontFamily = $this->customize()->getSection('typography')->font_family;

Récupérer un panel

Pour accéder aux sections d'un panel :

app/Controllers/MyController.php
// Accès aux sections d'un panel
$headerSection = $this->customize()->getPanel('header')->top_bar;
$logoUrl = $headerSection->logo_url;

Récupérer une option spécifique

Vous pouvez chaîner les appels pour accéder directement à une option :

app/Controllers/MyController.php
// Accès direct à une option spécifique
$primaryColor = $this->customize()->getPanel('colors')->main_colors->primary_color;

Sections dynamiques

Pour les sections dynamiques (avec iteration), utilisez le paramètre castArray: true :

app/Controllers/MyController.php
// Récupération des sections dynamiques et envoi à la vue
$socialNetworks = $this->customize()
    ->getPanel('social_networks', castArray: true);

// Filtrage des réseaux actifs
$activeNetworks = array_filter($socialNetworks, fn($n) => $n->is_active);

// Envoi à la vue Twig
return $this->render('components/social-networks.html.twig', [
    'networks' => $activeNetworks
]);
templates/components/social-networks.html.twig
<div class="social-networks">
    {% for network in networks %}
        <a href="{{ network.url }}"
           class="social-network"
           target="{{ network.open_in_new_tab ? '_blank' : '_self' }}"
           rel="noopener noreferrer">
            <i class="{{ network.icon|default('ri-share-line') }}"></i>
            <span class="sr-only">{{ network.name }}</span>
        </a>
    {% endfor %}
</div>

Notes importantes

  • Les IDs sont automatiquement convertis en snake_case
  • Les méthodes retournent null si une section ou une option n'existe pas
  • Utilisez l'opérateur de fusion null (??) pour définir des valeurs par défaut

Dépannage

Si vous n'arrivez pas à accéder à une valeur :

  1. Vérifiez que l'ID de la section/du panel est correct
  2. Assurez-vous que l'option est bien enregistrée dans la configuration YAML
  3. Vérifiez les logs d'erreurs PHP pour des erreurs potentielles