orchardcore-placement

Configure Orchard Core shape placement with placement.json rules and custom providers.

13|3|Updated Feb 6, 2026
One-click install
npx skills add https://github.com/CrestApps/CrestApps.AgentSkills --skill orchardcore-placement
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: orchardcore-placement
Source: https://github.com/CrestApps/CrestApps.AgentSkills/tree/main/src/CrestApps.AgentSkills.Skills/orchardcore/orchardcore-placement
Command: npx skills add https://github.com/CrestApps/CrestApps.AgentSkills --skill orchardcore-placement

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Orchard Core developers often struggle to predict and control how shapes render across layouts and zones. This skill provides a declarative approach to placement configuration using placement.json, IShapePlacementProvider, and wrappers to ensure consistent layouts across modules and themes.

Core Features & Use Cases

  • Placement.json mappings to assign shapes to zones and positions with optional content type and display type scoping.
  • Support for alternates and wrappers to customize templates and markup per shape.
  • Extensibility via a custom IShapePlacementProvider for dynamic or data-driven placement decisions.

Quick Start

Create a basic placement.json that maps a shape to a zone, then extend with alternates and wrappers as needed.

Frequently Asked Questions about orchardcore-placement

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure Orchard Core shape placement to control where shapes render?

To configure Orchard Core shape placement, you apply placement.json rules that map shapes to specific zones and positions. This declarative approach ensures deterministic rendering across your modules and themes, with optional scoping for content types and display types.

What is the best way to customize shape templates per content type in Orchard Core?

The best way to customize shape templates per content type is by using alternates and wrappers within your placement configuration. This allows you to override default templates and inject custom markup dynamically based on the specific content type and display type being rendered.

Does Orchard Core support dynamic shape placement decisions based on data?

Yes, Orchard Core supports dynamic shape placement through custom IShapePlacementProvider implementations. This extensibility allows you to override declarative placement.json rules and make data-driven or dynamic decisions for rendering shapes across zones and layouts.

Why does my Orchard Core shape render in the wrong zone despite layout settings?

Shape placement rendering issues often occur when placement.json rules lack proper content type or display type scoping. Applying deterministic placement configurations with explicit zone mappings and position values ensures shapes render in the correct layout zones.

Can I scope placement.json rules to specific display types in Orchard Core?

Yes, you can scope placement.json rules to specific display types in Orchard Core. This allows you to apply different placement mappings for summary, detail, or other custom display types, ensuring shapes render correctly based on the current view context.

When should I use an IShapePlacementProvider instead of placement.json in Orchard Core?

You should use an IShapePlacementProvider instead of placement.json when you need dynamic, data-driven placement decisions. While placement.json provides deterministic, declarative mappings, custom providers enable complex logic for assigning shapes to zones based on runtime data.