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 Content Extra Bundle Laravel Package

alengo/sulu-content-extra-bundle

Extends Sulu CMS 3.x Pages and Articles with an Additional Data tab, built-in entities, configurable mapping for localized/unlocalized fields, auto entity registration, navigation link markers, and sortable template groups. PHP 8.2+, Symfony 7.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Content Customization Without Heavy Development: Justifies adopting a pre-built solution to add structured metadata to Sulu CMS Pages/Articles, reducing backend complexity and accelerating feature delivery. Ideal for teams prioritizing agility over custom development.
  • Localization Strategy: Enables granular control over localized vs. unlocalized fields (e.g., storing template_theme globally while allowing notes per language), aligning with multilingual content workflows and reducing duplication.
  • Navigation and Tracking Enhancements: Supports advanced use cases like redirect tracking, dynamic template logic, or third-party integrations by exposing sourceLink/sourceUuid markers for link-type pages. Example: Powering analytics dashboards or conditional UI logic based on linked content.
  • Performance Optimization: Validates the trade-off of disabling proxy generation in production (auto_generate_proxy_classes: false), reducing deploy complexity and server load—a critical consideration for high-traffic Sulu instances.
  • Roadmap Prioritization:
    • Build vs. Buy Decision: Avoids reinventing JSON field storage for Sulu, leveraging a maintained, battle-tested bundle with minimal maintenance burden.
    • Phased Rollout: Supports incremental adoption (e.g., start with Pages, then extend to Articles or custom entities via configuration).
  • Use Cases:
    • Marketing Campaigns: Store campaign-specific metadata (e.g., campaign_id, landing_page_variant) directly in content.
    • Developer Tooling: Attach arbitrary data to content for dynamic features (e.g., A/B test variants, SEO overrides, or API payloads).
    • Third-Party Integrations: Expose structured data to external systems (e.g., additionalData.api_key for webhooks or CMS-to-CRM syncs).
    • Editorial Workflows: Add internal notes, workflow tags, or approval statuses without cluttering the main content fields.

When to Consider This Package

  • Adopt if:
    • Your project uses Sulu CMS 3.x with Symfony 7.x and PHP 8.2+, ensuring compatibility with the bundle’s requirements.
    • You need structured JSON fields for Pages/Articles without building custom entities, reducing technical debt.
    • Your content strategy requires localization-aware field mapping (e.g., some fields shared across languages, others localized per dimension).
    • You want to enhance navigation links with metadata (e.g., tracking redirects, dynamic template logic, or source attribution).
    • You prioritize zero-config setup for basic use cases (auto-registers entities and tabs) but are willing to define custom forms.
    • Your team lacks bandwidth to develop and maintain custom entity extensions for simple JSON storage needs.
  • Look elsewhere if:
    • You’re using Sulu < 3.0.6, as the bundle requires Doctrine/Gedmo compatibility fixes included in that version.
    • You need complex validation or rich UI components (e.g., file uploads, nested forms) beyond JSON storage—the bundle provides raw JSON fields with minimal built-in validation.
    • Your project already has a mature custom entity system for content extensions, and this bundle’s approach (extending core entities) conflicts with your architecture.
    • Performance in development is critical, as the bundle’s proxy generation workaround adds overhead during cache:warmup (though this is mitigated in production).
    • You require multi-tab forms with non-JSON data types (e.g., WYSIWYG editors, media galleries) that aren’t supported by the bundle’s form model.

How to Pitch It (Stakeholders)

For Executives/Business Leaders

*"This bundle empowers our content teams to add flexible, structured metadata to Pages and Articles—without requiring custom development. Here’s how it drives value:

  • Marketing Agility: Tag content with campaign IDs, SEO overrides, or promotional flags directly in the admin panel, enabling targeted campaigns or analytics tracking.
  • Developer Efficiency: Attach arbitrary data (e.g., A/B test variants, API keys) to content to power dynamic features without schema migrations or custom entities.
  • Integration Enablement: Expose structured data to third-party systems (e.g., CRM syncs, webhooks) with minimal effort, reducing integration complexity.
  • Navigation Intelligence: Enhance internal linking with metadata like sourceLink/sourceUuid, enabling smarter redirects or dynamic UI logic (e.g., ‘Show a banner if this page links to a product’).

Why invest now? It’s a low-risk, high-reward solution:

  • Zero upfront coding for basic use cases.
  • Scales to custom needs via configuration.
  • Aligns with our Sulu CMS roadmap and avoids reinventing the wheel.

Example Impact:

  • Launch a new marketing campaign in hours by adding metadata to existing pages.
  • Reduce developer backlog by offloading metadata management to content editors.
  • Unlock new features like dynamic content variants or third-party integrations without heavy lift.

Let’s pilot this with a non-critical content type (e.g., blog articles) to validate the model before scaling."*


For Engineering/Technical Stakeholders

*"This bundle provides a drop-in solution for adding configurable ‘Additional Data’ tabs to Sulu Pages/Articles, with these technical advantages:

  • Zero-Config Entity Registration: Extends Sulu’s core Page/Article classes automatically via PrependExtensionInterface, eliminating boilerplate.
  • Localization Control: YAML config maps fields to unlocalized (shared) or localized (per-language) storage, supporting multilingual workflows.
  • Navigation Enhancements: Adds sourceLink/sourceUuid markers to link-type pages, enabling dynamic template logic (e.g., conditional rendering based on linked content).
  • Performance: Disables proxy generation in production (auto_generate_proxy_classes: false), optimizing deployments.

Trade-offs:

  • Raw JSON Storage: Fields are stored as JSON with no built-in validation (you’ll need to implement this in forms or business logic).
  • No Default Forms: You must define page_additional_data.xml/article_additional_data.xml in your project.
  • Sulu 3.0.6+ Required: Uses Doctrine/Gedmo fixes bundled in that version.

Recommendation: Pilot with a non-critical content type (e.g., blog articles) to validate the JSON model before rolling out to Pages. The bundle’s flexibility makes it ideal for:

  • Storing metadata for marketing campaigns (e.g., campaign_id, variant).
  • Enabling A/B testing or dynamic content variants.
  • Integrating with third-party APIs or analytics tools.

Implementation Steps:

  1. Add the bundle to bundles.php and configure alengo_content_extra.yaml.
  2. Define custom forms for page_additional_data and/or article_additional_data.
  3. Test with a small set of fields (e.g., template_theme, campaign_id) before scaling.

Why This Over Custom Development?

  • Faster Delivery: No need to build or maintain custom Doctrine entities.
  • Future-Proof: Bundle is actively maintained (last release: 2026-05-23).
  • Scalable: Supports incremental adoption (e.g., start with Pages, then extend to Articles).

Next Steps:

  • Review the configuration docs to align with your localization strategy.
  • Prototype a form for page_additional_data to validate the JSON model.
  • Assess performance impact in staging (focus on cache:warmup time)."*
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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
codifyo/ts-generator-bundle
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor