Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Sulu Site Configuration Bundle Laravel Package

agence-raid/sulu-site-configuration-bundle

View on GitHub
Deep Wiki
Context7

Sulu Site Configuration Bundle

Adds a Configuration tab in the Sulu webspace view to manage per-webspace, per-locale site settings (phone, email, social links, logo, etc.) stored as a flexible JSON entity.

Installation

1. Require the package

composer require agence-raid/sulu-site-configuration-bundle

2. Register the bundle

In config/bundles.php:

AgenceRaid\SuluSiteConfigurationBundle\SuluSiteConfigurationBundle::class => ['all' => true],

3. Register the routes

In config/routes/admin.yaml:

agence_raid_sulu_site_configuration_admin:
    resource: '@SuluSiteConfigurationBundle/config/routes/admin.yaml'

4. Run the migration

bin/adminconsole doctrine:migrations:diff
bin/adminconsole doctrine:migrations:migrate

5. Create your form

Create config/forms/webspace_configs/default.xml with the fields you need:

<?xml version="1.0" ?>
<form xmlns="http://schemas.sulu.io/template/template"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://schemas.sulu.io/template/template http://schemas.sulu.io/template/form-1.0.xsd">

    <key>site_configuration</key>

    <properties>
        <property name="logo" type="single_media_selection">
            <meta>
                <title lang="fr">Logo</title>
            </meta>
        </property>
        <property name="website_email" type="text_line">
            <meta>
                <title lang="fr">Email</title>
            </meta>
        </property>
    </properties>
</form>

To override the form for a specific webspace, create config/forms/webspace_configs/{webspace-key}.xml with key site_configuration_{webspace-key}.

6. Grant permissions

Go to Settings → Roles in the Sulu admin and grant {webspace-key}.configuration permissions to the relevant roles.

Usage

In Twig templates

{{ site_config('website_email') }}
{{ site_config('phone', '+33 0 00 00 00 00') }}

{% set logo = sulu_resolve_media(site_config('logo').id, app.request.locale) %}
<img src="{{ logo.url }}" alt="Logo" />

In PHP services

use AgenceRaid\SuluSiteConfigurationBundle\Service\SiteConfigurationService;

public function __construct(
    private readonly SiteConfigurationService $configurationService,
) {}

$email = $this->configurationService->get('my-webspace', 'fr', 'website_email');
$all   = $this->configurationService->getAll('my-webspace', 'fr');
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
nasirkhan/laravel-sharekit
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony