entity_lifecycle
Summary
Entity Lifecycle automatically tracks content freshness for nodes, media, and user entities, ensuring sites stay accurate and credible. New to Drupal? This module provides a systematic review cycle to flag outdated pages—like past events or policies—and identify inactive user accounts, preventing manual tracking hassles and misleading visitors.
Features
Basic functionality: Entity Lifecycle solves content staleness by automatically tracking freshness for nodes, media, and users. It implements an automated review cycle: When content is created or edited, it's marked as "Current" with a timestamp. A cron-based scanner evaluates content against configurable conditions (age, usage, login activity, etc.). Content matching these conditions is assigned a status like "Needs Review" or "Outdated". Editors see a banner when viewing content that needs attention. Editing the content resets it to "Current", restarting the cycle. This creates a continuous feedback loop that surfaces stale content without requiring manual tracking.
Unique features:
- Automatic lifecycle status on every save
- Configurable statuses with colors and review flags
- Extensible condition plugin system with groups
- Per-bundle configuration (enable scanning only for specific content types)
- Review validity period per content type
- Banner notification for content needing review
- Configurable scan intervals (every cron run, 6h, 12h, daily, 2 days, weekly)
- Views integration for editorial dashboards
- Drush commands for manual scanning
When and why would someone use this module? Websites accumulate content over time, but not all of it stays accurate or relevant. Pages about past events, outdated policies, or deprecated features can mislead visitors and damage credibility. Inactive user accounts pose security risks. Manual tracking of content freshness doesn't scale – editors and administrators need a systematic way to identify what needs attention.
What use cases are there? Keep your content fresh and relevant on content-heavy sites like news portals, event calendars, or policy hubs. Identify unused media files cluttering your library. Find inactive user accounts for cleanup or security review.
Post-Installation
How does this module actually work once I install it? Inspired by the timeless "Circle of Life," this module guides your content through a natural, cyclical journey—ensuring nothing valuable fades into obscurity without a gentle nudge. Here's the elegant rhythm in five stages:
- The Dawn of Creation (Birth & Vitality): When content is created or edited, it's marked as "Current" with a timestamp—like a story stepping into the spotlight, full of promise and relevance.
- The Quiet Vigil (The Scan Awakens): A cron-based scanner evaluates content against configurable conditions (age, usage, login activity, etc.), acting as the wise observer in the circle, attuned to the subtle shifts of time.
- The Twilight Call (Awakening Awareness): Content matching these conditions is assigned a status like "Needs Review" or "Outdated"—a soft echo reminding us that even the mightiest tales need renewal to endure.
- The Editor's Touch (The Renewal Rite): Editors see a banner when viewing content that needs attention, inviting a simple intervention to breathe new life into the narrative.
- The Eternal Loop (Rebirth & Harmony): Editing the content resets it to "Current," restarting the cycle. This creates a continuous feedback loop that surfaces stale content without requiring manual tracking—like the savanna's rhythm, where endings seamlessly feed new beginnings.
Visit Configuration > Content authoring > Entity Lifecycle to enable per-bundle scanning, define statuses, set conditions, configure scan intervals, and tune validity periods. For user lifecycle management, enable the User submodule and configure at Configuration > People > Account settings.
Supported Entity Types
The module supports the following entity types:
- Nodes: Full support with per-content-type configuration
- Media: Track unused or outdated media files
- Users: Identify inactive accounts based on login activity (via submodule)
The architecture supports bundleless entity types and is designed to accommodate additional entity types through submodules.
Condition System
Conditions determine when content should change status. The module uses a flexible groups architecture:
- Multiple condition groups per status, combined with AND operator
- Multiple plugins per group for precise targeting
- Weight-based evaluation – first matching condition wins
Example: Mark content as "Needs Review" if it's unchanged for 6 months AND completely unused. Mark as "Outdated" if unchanged for 12 months AND has broken links.
Submodules
Extend Entity Lifecycle with optional integrations:
Submodule Description Requires Entity Lifecycle User User account lifecycle tracking with last login and account age conditions. Includes dedicated review dashboard at People > Lifecycle Review. Core only Entity Lifecycle Entity Usage Identify unused or orphaned content based on reference counts. Find media files uploaded but never used. Entity Usage Entity Lifecycle Radioactivity Conditions based on content popularity/engagement energy levels. Radioactivity Entity Lifecycle Linkchecker Conditions based on broken link counts in content. Link checkerRequirements
- Drupal 10.x or 11.x
- PHP 8.1+
Documentation
For developers looking to extend the module or create custom condition plugins, see the Developer Documentation covering architecture, APIs, hooks, and extension points.