Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sulu/suluthemebundle
https://github.com/sulu/suluthemebundle
php sulu sulu-bundle
Last synced: 7 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/sulu/suluthemebundle
- Owner: sulu
- License: mit
- Created: 2016-05-20T08:47:56.000Z (over 8 years ago)
- Default Branch: 3.1
- Last Pushed: 2024-07-24T15:19:47.000Z (5 months ago)
- Last Synced: 2024-11-23T16:06:24.731Z (29 days ago)
- Topics: php, sulu, sulu-bundle
- Language: PHP
- Homepage:
- Size: 69.3 KB
- Stars: 18
- Watchers: 10
- Forks: 15
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
SuluThemeBundle
The **SuluThemeBundle** provides the functionality to add multiple themes for different look and feel using multiple
webspaces in the [Sulu](https://sulu.io/) content management system.To achieve this, the bundle uses the [SyliusThemeBundle](https://github.com/Sylius/SyliusThemeBundle) to render different
twig templates and asset files. Each webspace can have it's own theme.## 🚀 Installation and Usage
### Install the bundle
Execute the following [composer](https://getcomposer.org/) command to add the bundle to the dependencies of your
project:```bash
composer require sulu/theme-bundle
```### Enable the bundle
Enable the bundle by adding it to the list of registered bundles in the `config/bundles.php` file of your project:
```php
return [
/* ... */
Sulu\Bundle\ThemeBundle\SuluThemeBundle::class => ['all' => true],
];
```### Configure the SyliusThemeBundle
In order to use the bundle you have to add at least the following default configuration:
```yaml
# ./config/packages/sylius_theme.yamlsylius_theme:
sources:
filesystem: ~
```By default, the bundle seeks for the themes in the `%kernel.project_dir%/themes` directory and looks for a
theme configuration file named `composer.json`. This can be changed via the yaml configuration:```yaml
sylius_theme:
sources:
filesystem:
filename: theme.json
```For more detailed information about the configuration sources go to the [SyliusThemeBundle documentation](https://github.com/Sylius/SyliusThemeBundle/blob/master/docs/configuration_sources.md).
### Configure your themes
Every theme must have its own configuration file in form of a `theme.json`.
Go to the [Theme Configuration Reference](https://github.com/Sylius/SyliusThemeBundle/blob/master/docs/theme_configuration_reference.md)
for the detailed documentation about the configuration options.The minimal configuration for a theme would be the following:
```json
// ./themes//theme.json{
"name": "vendor/"
}
```It is important, that the `name` matches the naming convention of composer (`vendor/name`).
### Create a theme
First you have to create the directory `themes` inside your project.
To create a theme you have to create a new directory in the themes folder with the name of the new theme.
In the newly created directory you have to add the theme configuration file `theme.json`.
See [Configure your themes](#configure-your-themes). Additonally you have to create the `templates` directory next to
the `theme.json`. Afterwards you have to fill this folder with all the used templates and assets for this theme.This results in the following project structure:
```
ProjectName
├── composer.json
├── assets
├── bin
├── config
├── templates
├── themes
│ ├──
│ │ ├── templates
│ │ │ └── base.html.twig
│ │ └── theme.json
│ └──
│ ├── templates
│ │ └── base.html.twig
│ └── theme.json
├── ...
└── ...
```### Add one of your themes to a webspace
Each webspace can use a different theme. A theme can be enabled for a specific webspace by adding the theme name
`vendor/theme-name` to your webspace:```xml
example.com
example
...
vendor/theme-name
...```
## ❤️ Support and Contributions
The Sulu content management system is a **community-driven open source project** backed by various partner companies.
We are committed to a fully transparent development process and **highly appreciate any contributions**.In case you have questions, we are happy to welcome you in our official [Slack channel](https://sulu.io/services-and-support).
If you found a bug or miss a specific feature, feel free to **file a new issue** with a respective title and description
on the the [sulu/SuluThemeBundle](https://github.com/sulu/SuluThemeBundle) repository.## 📘 License
The Sulu content management system is released under the under terms of the [MIT License](LICENSE).