Weave 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 Testimonials Bundle Laravel Package

manuxi/sulu-testimonials-bundle

A Sulu CMS bundle for managing testimonials: create and organize customer quotes in the admin area, assign them to pages, and render them on the frontend through templates. A simple way to publish social proof without building custom content types yourself.

View on GitHub
Deep Wiki
Context7

Getting Started

This is a PHP CMS bundle (Sulu) for managing and rendering testimonials — not a Laravel package, so the day-to-day integration work happens through Sulu's bundle config, content templates, and repository rather than Eloquent models and Blade.

  1. composer require the bundle, then register it in config/bundles.php (Symfony Flex style) alongside the Sulu bundles.
  2. Generate/verify the testimonial template XML and import it (bin/adminconsole sulu:build), then confirm the entity appears in the admin under Content.
  3. Look first at three things: the template XML (what fields a testimonial exposes), the repository/filter layer (how published state is resolved), and the sitemap/search providers (what gets indexed).
  4. First use case: create a testimonial in the admin, publish it, and render it on a page via a smart content selection or a direct repository query. If it shows up in the admin but not on the website, the published-state logic is your first suspect (see Gotchas).

Implementation Patterns

  • Querying published testimonials: use the bundle's published repository filter rather than hand-rolling a where on workflow state. As of 1.9.1 this filter correctly resolves Sulu 3 content, where the live row has no workflowPlace.
  • Smart content selections: prefer the smart content type for listing testimonials on pages — editors get draft/published preview semantics for free, and 1.9.1 removes the stale "published with draft" indicator for Sulu 3 content.
  • Rendering: keep presentation in a Twig template bound to the testimonial template XML; resolve references through the content repository rather than raw SQL so cache invalidation and workflow state stay consistent.
  • Sitemap + search: rely on the bundle's providers. The sitemap provider builds URLs from route.slug (not route.path) — if you're extending or overriding the query, mirror that field name.
  • Counting / dashboards: the published count helper is Sulu-3-aware as of 1.9.1; use it instead of count() over a custom query, which will under-count live content.
  • Reindex workflow: after publishing or bulk-importing testimonials, run the website search reindex; 1.9.1 fixes discovery of Sulu 3 published rows during reindex, so previously "missing" testimonials should now appear.

Gotchas and Tips

  • Sulu 3 live rows have no workflowPlace. Any custom query, filter, or report you wrote that keys off workflowPlace IS NOT NULL will silently miss Sulu 3 content. Audit your own code, not just the bundle — 1.9.1 fixed the bundle's internals but not yours.
  • route.slug, not route.path. If you forked or overrode the sitemap query, this was a hard failure (query error, empty sitemap), not a silent bug. Grep for route.path after upgrading.
  • The "published with draft" indicator is cosmetic but was misleading for editors — it's fixed for Sulu 3 in 1.9.1, so expect editor reports about it to stop rather than require config changes.
  • 1.9.1 is a patch release — no BC breaks, no config changes required. It's a safe drop-in, but clear the website cache and re-run the search reindex to pick up the fixed discovery logic.
  • Debug order when a testimonial is invisible: (1) is it published in the admin? (2) does the published filter return it? (3) is it in the sitemap/search index? (4) is the page cache stale? This sequence isolates workflow-state bugs from cache bugs quickly.
  • Extension points: the sitemap provider and repository filter are the two places to override if you need custom URL structure or additional publication rules — both were touched in this release, so re-check any subclass after upgrading.
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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource