gCore

TemplateManager

Unified template management system for gCore. Consolidates template registration, rendering, form handling, and security into a single coherent manager.

Overview

TemplateManager provides template capabilities:

Access via gCore

$gCore = \gCore\Modules\Core\gCore::getInstance();
$templates = $gCore->getService('TemplateManager');

Key Methods

Rendering

// Render a template string
$html = $templates->render('Hello, {{ name }}!', ['name' => 'World']);

// Register a template
$templates->registerTemplate('my-template', $templateContent, [
    'dependencies' => [],
    'ttl' => 3600
]);

Forms

// Process form submission (from traits)
$result = $templates->processFormSubmission($formId, $data);

// Generate CSRF token
$token = $templates->generateCsrfToken('contact-form');

Operating Modes

Mode Rendering Features
Extension Tera engine via gNode Full template syntax: loops, conditionals, inheritance, filters
Free-tier PHP fallback Basic {{ variable }} substitution

Capability Vector

[
    'template' => 1.0,
    'rendering' => 0.95,
    'forms' => 0.9,
    'library' => 0.85,
    'tera_engine' => 0.9,
    'comms' => 0.7
]

Configuration

$templates->initialize([
    'site_id' => 'my-site',
    'node_id' => 'node1',
    'default_ttl' => 3600,
    'csrf_ttl' => 3600,
    'rate_limit' => [
        'submissions_per_hour' => 10,
        'submissions_per_day' => 50
    ],
    'honeypot_fields' => ['website_url', 'phone_number_2'],
    'min_submit_time' => 3
]);

Built-in Templates

Migration from TemplateLibrary/TemplateRenderer

TemplateManager replaces both TemplateLibrary and TemplateRenderer. Update your code:

// Old
$library = $gCore->getService('TemplateLibrary');
$renderer = $gCore->getService('TemplateRenderer');

// New
$templates = $gCore->getService('TemplateManager');
// All functionality available through single manager

Dependencies

Status

$status = $templates->getStatus();
// Returns: initialized, site_id, mode, metrics, etc.