English | Deutsch
A Sulu CMS bundle for managing customer testimonials, reviews, and quotes with configurable star ratings.
- Testimonial Management - Create, edit, and publish customer testimonials
- Star Rating System - Configurable 5 or 10 point rating scale with star symbols
- Contact Integration - Link testimonials to Sulu contacts
- Smart Content Provider - Use testimonials in any Sulu page via Smart Content
- Selection Content Types - Single and multiple testimonial selection
- Workflow Support - Draft/Published workflow with versioning
- Multi-language - Full translation support
- SEO & Sitemap - Built-in SEO and sitemap integration
- Search Integration - Admin and website search indexes
- Trash Support - Restore deleted testimonials
- Activity Logging - Track all changes
- uuid - since 1.5.0 (not compatible to previous versions)
- PHP 8.2+
- Sulu CMS 3.0+
- Symfony 6.4+ / 7.0+
composer require manuxi/sulu-testimonials-bundleIf not using Symfony Flex, add to config/bundles.php:
return [
// ...
Manuxi\SuluTestimonialsBundle\SuluTestimonialsBundle::class => ['all' => true],
];Add to config/routes/sulu_admin.yaml:
SuluTestimonialsBundle:
resource: '@SuluTestimonialsBundle/Resources/config/routes_admin.yaml'# Preview changes
php bin/console doctrine:schema:update --dump-sql
# Apply changes
php bin/console doctrine:schema:update --forcecd assets/admin
npm install
npm run build- Go to Settings β User Roles in Sulu Admin
- Select the appropriate role
- Enable permissions for Testimonials
- Save and reload
Create config/packages/sulu_testimonials.yaml:
sulu_testimonials:
rating:
max_value: 5 # 5 or 10 point scale
default_value: 3 # Default rating for new testimonials
use_star_symbols: true # Show stars in admin dropdown
use_star_widget: false # Use interactive star widget (future)See Configuration Documentation for all options.
Use testimonials in any page template:
<property name="testimonials" type="smart_content">
<meta>
<title lang="en">Testimonials</title>
<title lang="de">Testimonials</title>
</meta>
<params>
<param name="provider" value="testimonials"/>
<param name="max_per_page" value="5"/>
<param name="page_parameter" value="page"/>
</params>
</property>Single testimonial:
<property name="featured_testimonial" type="single_testimonial_selection">
<meta>
<title lang="en">Featured Testimonial</title>
</meta>
</property>Multiple testimonials:
<property name="testimonials" type="testimonial_selection">
<meta>
<title lang="en">Testimonials</title>
</meta>
</property>{% for testimonial in testimonials %}
<div class="testimonial">
<blockquote>{{ testimonial.text|raw }}</blockquote>
{% if testimonial.contact %}
<cite>{{ testimonial.contact.fullName }}</cite>
{% endif %}
{# Rating display - uses global variable #}
{% if testimonial.rating >= 0 %}
{% set maxRating = testimonials_rating_max_value %}
<div class="rating">
{{ testimonial.rating }}/{{ maxRating }}
</div>
{% endif %}
</div>
{% endfor %}If you have SuluTweaksBundle installed, you can enable star rating display in admin lists. See Admin List Documentation.
Contributions are welcome! Please feel free to submit issues or pull requests.
This bundle is released under the MIT License.
