manuxi / sulu-testimonials-bundle
Say hello to Sulu testimonials!
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 0
Type:symfony-bundle
pkg:composer/manuxi/sulu-testimonials-bundle
Requires
- php: ^8.2
- doctrine/doctrine-bundle: ^2.13
- sulu/sulu: ^3.0
- symfony/config: ^6.4 | ^7.0
- symfony/dependency-injection: ^6.4 | ^7.0
- symfony/framework-bundle: ^6.4 | ^7.0
- symfony/http-foundation: ^6.4 | ^7.0
- symfony/http-kernel: ^6.4 | ^7.0
- symfony/intl: ^6.4 | ^7.0
- symfony/security-core: ^6.4 | ^7.0
- symfony/translation: ^6.4 | ^7.0
- twig/extra-bundle: ^3.23
- twig/intl-extra: ^3.23
Requires (Dev)
- jackalope/jackalope-doctrine-dbal: ^1.3.4
- phpspec/prophecy: ^1.17
- phpspec/prophecy-phpunit: ^2.4
- phpunit/phpunit: ^9.5 | ^10.0
- symfony/browser-kit: ^6.4 | ^7.0
- symfony/console: ^6.4 | ^7.0
- symfony/phpunit-bridge: ^6.4 | ^7.0
README
English | Deutsch
A Sulu CMS bundle for managing customer testimonials, reviews, and quotes with configurable star ratings.
โจ Features
- 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
Breaking change
- uuid - since 1.5.0 (not compatible to previous versions)
๐ Requirements
- PHP 8.2+
- Sulu CMS 3.0+
- Symfony 6.4+ / 7.0+
๐ฉ๐ปโ๐ญ Installation
Step 1: Install via Composer
composer require manuxi/sulu-testimonials-bundle
Step 2: Register the Bundle
If not using Symfony Flex, add to config/bundles.php:
return [ // ... Manuxi\SuluTestimonialsBundle\SuluTestimonialsBundle::class => ['all' => true], ];
Step 3: Configure Routes
Add to config/routes/sulu_admin.yaml:
SuluTestimonialsBundle: resource: '@SuluTestimonialsBundle/Resources/config/routes_admin.yaml'
Step 4: Update Database
# Preview changes php bin/console doctrine:schema:update --dump-sql # Apply changes php bin/console doctrine:schema:update --force
Step 5: Build Admin Assets
cd assets/admin
npm install
npm run build
Step 6: Grant Permissions
- Go to Settings โ User Roles in Sulu Admin
- Select the appropriate role
- Enable permissions for Testimonials
- Save and reload
๐งถ Configuration
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.
๐ฃ Usage
Smart Content
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>
Selection Types
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>
Twig Template
{% 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 %}
๐ Documentation
๐ Optional Integrations
Star Rating in Admin Lists
If you have SuluTweaksBundle installed, you can enable star rating display in admin lists. See Admin List Documentation.
๐ฉโ๐ณ Contributing
Contributions are welcome! Please feel free to submit issues or pull requests.
๐ License
This bundle is released under the MIT License.
