====== ThemeRendererInterface ====== **Layer:** ''Core'' · **Source:** ''lib/core/ThemeRendererInterface.php:18'' (lines 18–71) ---- interface ThemeRendererInterface Contract for theme rendering in the application. Implementations are responsible for locating the active theme directory, resolving fallback themes when the primary is missing, and rendering header / content / footer templates in the correct sequence. Each rendering method outputs HTML directly via include statements. Callers must not assume output buffering is active. ======= Inheritance ======= //No parent, interface or trait. This is a root type.// ======= Constants (0) ======= //None.// ======= Properties (0) ======= //None declared.// ======= Methods (6) ======= ^ Visibility ^ Method ^ Summary ^ Line ^ | public | ''render()'' | Render a full page: header, content template, and footer. | 28 | | public | ''renderHeader()'' | Include the current theme's header template. | 36 | | public | ''renderContent()'' | Include a content template from the current theme directory. | 46 | | public | ''renderFooter()'' | Include the current theme's footer template. | 51 | | public | ''render404()'' | Render a 404 response. | 60 | | public | ''getThemeDir()'' | Return the resolved absolute path to the active theme directory. | 70 | ======== render() ======== public function render(string $template, int $statusCode = 200): void //line 28// Render a full page: header, content template, and footer. Sets the HTTP response code before any output is sent. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$template'' | ''string'' | //required// | Content template name (without .php extension). | | ''$statusCode'' | ''int'' | ''200'' | HTTP status code (default 200). | **Returns:** ''void'' ======== renderHeader() ======== public function renderHeader(): void //line 36// Include the current theme's header template. Outputs the opening HTML structure (doctype, head, navigation). Called internally by {@see render()}. //Takes no parameters.// **Returns:** ''void'' ======== renderContent() ======== public function renderContent(string $template): void //line 46// Include a content template from the current theme directory. The template name is sanitized with {@see basename()} before inclusion to prevent directory traversal attacks. ^ Parameter ^ Type ^ Default ^ Description ^ | ''$template'' | ''string'' | //required// | Content template name (without .php extension). | **Returns:** ''void'' ======== renderFooter() ======== public function renderFooter(): void //line 51// Include the current theme's footer template. //Takes no parameters.// **Returns:** ''void'' ======== render404() ======== public function render404(): void //line 60// Render a 404 response. Sets a 404 HTTP status code, then renders the header, the 404 content template, and the footer. If the 404 template does not exist a warning is logged and rendering continues silently. //Takes no parameters.// **Returns:** ''void'' ======== getThemeDir() ======== public function getThemeDir(): string //line 70// Return the resolved absolute path to the active theme directory. The path always ends with a directory separator. //Takes no parameters.// **Returns:** ''string'' — string Absolute path to the theme directory, e.g. "/var/www/public/themes/blog/" ---- //This page is generated from source by 'tools/gendoc'. Edits will be overwritten.//