Entities

Content structure via 4 entity types

Blackcube structures content via 4 entity types. Once mastered, they allow organizing any site. These entities are complementary and address different needs: hierarchy, freedom, tagging and grouping.

Crucial point: all entities can contain blocs and generate a complete page. A section can display blocs and list articles. A tag can display blocs and list tagged content. A category can display blocs and list its tags or all tagged content. Each entity is a full page, with its own content and its own lists.

The 4 Content Entities

Info

All entities can contain blocs to create a complete page. The choice depends on the desired organization: Node for hierarchy, Composite for free content, Tag for transversal tagging, Category to group tags.

Node: The Tree

Nodes are content organized in hierarchical tree structure.

Use cases:

  1. Site sections (Content organization)
  2. Structured navigation
  3. List pages (news, blog, portfolio)

Capabilities:

  1. Contains blocs: Can display a complete page with title, content, images, etc.
  2. Ordered Composite list: Displays linked articles with manual order managed in backoffice
  3. Can be tagged: Allows finding the section via a tag
  4. Parent/child hierarchy: Tree organization
  5. Combines content and list: A section can display its own blocs AND the list of articles
  6. Ultra-fast thanks to Hazel Tree

Info

Nodes are the only entity allowing manual article ordering. Order is managed via the link table in the backoffice.

Concrete example:

    Node "News" (/en/news)
├─ Blocs: [hero, intro, filters]
├─ List: 15 articles (linked Composites)
└─ Rendering: Page with content + article list

Node "Services" (/en/services)
├─ Blocs: [hero, text, features, cta]
└─ No list: Pure content page
    

Tree example:

    Root (automatic redirect) (Node)
├── Root/fr (Node)
│   ├── /fr (Home FR)
│   ├── /fr/a-propos  (Composite)
│   ├── /fr/services (Node)
│   └── /fr/actualites (Node)
└── Root/en
    ├── /en (Home EN)
    ├── /en/about (Composite)
    ├── /en/services (Node)
    └── /en/news (Node)
    

Composite: Free Content

Composites are content without hierarchy.

Use cases:

  1. Blog articles
  2. News
  3. Case studies
  4. Testimonials
  5. Standalone pages (About, Contact)

Capabilities:

  1. Contains blocs: Displays a complete page with all necessary blocs
  2. No hierarchy: Independent content, not linked to a tree structure
  3. Can be linked to a Node: To appear in a list (e.g., article listed in News section)
  4. Can be tagged: Allows finding content via a tag

Concrete example:

    Composite "New 2025 Range" (/en/news/new-range-2025)
├─ Type: news
├─ Blocs: [hero, text, image-gallery, cta]
├─ Linked to: Node "News" (to appear in list)
├─ Tags: "Products", "Innovation"
└─ Rendering: Complete article page

Composite "About" (/en/about)
├─ Type: page-standard
├─ Blocs: [hero, text, team, timeline]
├─ Not linked to Node: Standalone page
└─ Rendering: Content page
    

Tag: Tagging

Tags are labels to categorize content transversally.

Use cases:

  1. Tag by media type (Podcast, Video, Article)
  2. Tag by theme (Tech, Marketing, HR)
  3. Tag by format (Tutorial, Interview, Analysis)
  4. Tag pages with editorial content

Capabilities:

  1. Contains blocs: Displays a complete page dedicated to the tag with intro, description, filters
  2. List of tagged Composites: Displays all articles/content with this tag (automatic order)
  3. List of tagged Nodes: Displays all sections with this tag (automatic order)
  4. Combines content and lists: Tag page with editorial content + tagged content list

Warning

Lists generated by Tags are automatic and cannot be manually ordered. Order depends on criteria like creation date, update date, etc.

Concrete example:

    Tag "Podcast" (/en/media/podcasts)
├─ Type: media-tag
├─ Blocs: [hero, description, featured-podcasts]
├─ Composite list: 15 podcast episodes
├─ Node list: 2 sections (Tech Podcast, Business Podcast)
└─ Rendering: Page with presentation + complete podcast list

Tag "Innovation" (/en/themes/innovation)
├─ Type: theme-tag
├─ Blocs: [title, intro]
├─ Composite list: 42 articles tagged "Innovation"
└─ Rendering: Thematic page with article list
    

Category: Tag Grouping

Categories group Tags by family and allow two-level navigation.

Use cases:

  1. Category "Media" grouping "Podcast", "Video", "Infographic"
  2. Category "Sectors" grouping "Industry", "Services", "Public"
  3. Category pages with overview

Capabilities:

  1. Contains blocs: Displays a complete page with category presentation
  2. Lists Tags: Displays all tags of this category (automatic order)
  3. Lists tagged Composites: Directly displays all articles with a category tag (automatic order)
  4. Lists tagged Nodes: Displays all sections with a category tag (automatic order)
  5. Two-level navigation: Category → Tags → Content
  6. Combines everything: Blocs + tag list + content list simultaneously

Warning

As with Tags, lists generated by Categories are automatic and cannot be manually ordered. Order depends on automatic criteria.

Concrete example:

    Category "Media" (/en/media)
├─ Type: media-category
├─ Blocs: [hero, intro, featured]
├─ Tag list: [Podcast (15), Video (8), Article (42)]
├─ Composite list: 65 total content (all content from 3 tags)
├─ Node list: 3 media sections
└─ Rendering: Category page with overview + tag access + all content

Variant 1: Focus on tags
Category "Formats"
├─ Blocs: [title, description]
├─ Tag list only: [Tutorial, Interview, Analysis]
└─ Rendering: Navigation page to tags

Variant 2: Complete list
Category "Sectors"
├─ Blocs: [hero, stats]
├─ Composite list directly: All articles from all sectors
└─ Rendering: Page with all aggregated content
    

Common Principle to All Entities

All entities can generate a complete page:

  1. Blocs: Each entity can contain blocs to create its content (hero, text, images, CTA, etc.)
  2. Lists: Each entity can display lists according to its type:
  3. Combination: Blocs + lists can coexist on same page
  1. Node: Lists its linked Composites with manual order managed in backoffice
  2. Composite: Doesn't display list (it's the listed content)
  3. Tag: Lists tagged content (Composites and/or Nodes) with automatic order
  4. Category: Lists its Tags and/or all tagged content with automatic order

Important

Only Nodes allow manual ordering of listed content. Tags and Categories generate automatic lists based on criteria (creation date, update date, etc.) without manual ordering possibility.

Complete example of a "Blog" section:

    // Node "Blog" with content AND list
$node->blocs = [
    BlocType "hero": Title + blog description
    BlocType "featured": Featured articles
    BlocType "text": Editorial line presentation
];

$node->composites = [
    Article 1, Article 2, Article 3... (paginated list)
];

// Final rendering:
// - Custom hero
// - Featured section (chosen articles)
// - Intro text
// - Complete article list
    

Key Points to Remember

  1. 4 complementary entities: Node (hierarchy), Composite (free), Tag (tagging), Category (grouping)
  2. All generate pages: Each entity can contain blocs and display content
  3. All can list: Except Composite, all entities can display content lists
  4. Total flexibility: Combine blocs and lists according to each page's needs
  5. Unique slugs: Each content has a unique automatically managed URL
  6. Organization freedom: Entity choice depends on desired structure, no imposed constraint