Scriptlog Docs

Scriptlog Documentation

Code reference for the Scriptlog codebase

User Tools

Site Tools


scriptlog:lib:core:themerenderer

This is an old revision of the document!


ThemeRenderer

Layer: Core · Source: lib/core/ThemeRenderer.php:31 (lines 31–235)


class ThemeRenderer implements ThemeRendererInterface

Default theme renderer implementation.

Resolves the active theme directory from a given name, falls back to a configured fallback theme when the primary theme is missing, and renders header / content / footer templates via include statements.

Usage:

\

  // Constructor injection (preferred)
  $renderer = new ThemeRenderer('/var/www/public/themes/', 'my-theme');

  // Global-context factory (legacy bootstrap)
  $renderer = ThemeRenderer::fromGlobalContext();

  // Full-page render
  $renderer->render('single', 200);

  // 404 response
  $renderer->render404();
\

Inheritance

^ Relation ^ Type ^ Meaning ^
| implements | [[scriptlog:lib:core:themerendererinterface|''ThemeRendererInterface'']] | contract |

Constants (5)

^ Visibility ^ Name ^ Value ^ Line ^
| ''private'' | ''HEADER_TEMPLATE'' | '''header.php';'' | 36 |
| ''private'' | ''FOOTER_TEMPLATE'' | '''footer.php';'' | 41 |
| ''private'' | ''NOT_FOUND_TEMPLATE'' | '''404.php';'' | 46 |
| ''private'' | ''TEMPLATE_EXTENSION'' | '''.php';'' | 51 |
| ''private'' | ''FALLBACK_THEME'' | '''blog';'' | 56 |

Properties (0)

None declared.

Methods (9)

^ Visibility ^ Method ^ Summary ^ Line ^
| public | ''__construct()'' | Construct a new ThemeRenderer. | 89 |
| public static | ''fromGlobalContext()'' | Factory method that constructs a ThemeRenderer from global application context. | 117 |
| public | ''render()'' | Render a full page: header, content template, and footer. | 135 |
| public | ''renderHeader()'' | Include the current theme's header template. | 146 |
| public | ''renderContent()'' | Include a content template from the current theme directory. | 162 |
| public | ''renderFooter()'' | Include the current theme's footer template. | 183 |
| public | ''render404()'' | Render a 404 response. | 199 |
| public | ''getThemeDir()'' | Return the resolved absolute path to the active theme directory. | 219 |
| private | ''log()'' | Log a message via the configured error logger, if one is set. | 229 |

__construct()

public function __construct(string $themesRootPath, string $themeName, ?callable $errorLogger = null, string $fallbackTheme = 'blog')

lines 89–106 (18)

Construct a new ThemeRenderer.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$themesRootPath'' | ''string'' | //required// | Absolute path to the parent directory containing all theme directories, e.g. "/var/www/public/themes/". |
| ''$themeName'' | ''string'' | //required// | Name of the active theme directory (sanitized with {@see basename()}). |
| ''$errorLogger'' | ''?callable'' | ''null'' | Optional error logger. |
| ''$fallbackTheme'' | ''string'' | '''blog''' | Fallback theme name when the primary theme is missing required templates. |

fromGlobalContext()

public static function fromGlobalContext(): self

lines 117–130 (14)

Factory method that constructs a ThemeRenderer from global application context.

Uses {@see theme_identifier()} to determine the active theme and the {@see APP_ROOT} / {@see APP_THEME} constants for the root path. The default error logger is {@see scriptlog_error()}.

Takes no parameters.

Returns: self — self

render()

public function render(string $template, int $statusCode = 200): void

lines 135–141 (7)

Documentation inherited from ''Scriptlog\Core\ThemeRendererInterface''.

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

lines 146–157 (12)

Documentation inherited from ''Scriptlog\Core\ThemeRendererInterface''.

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

lines 162–178 (17)

Documentation inherited from ''Scriptlog\Core\ThemeRendererInterface''.

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

lines 183–194 (12)

Documentation inherited from ''Scriptlog\Core\ThemeRendererInterface''.

Include the current theme's footer template.

Takes no parameters.

Returns: void

render404()

public function render404(): void

lines 199–213 (15)

Documentation inherited from ''Scriptlog\Core\ThemeRendererInterface''.

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

lines 219–222 (4)

Documentation inherited from ''Scriptlog\Core\ThemeRendererInterface''.

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/”

log()

private function log(string $message): void

lines 229–234 (6)

Log a message via the configured error logger, if one is set.

^ Parameter ^ Type ^ Default ^ Description ^
| ''$message'' | ''string'' | //required// | The log message. |

Returns: void


This page is generated from source by 'tools/gendoc'. Edits will be overwritten.

scriptlog/lib/core/themerenderer.1790413762.txt.gz · Last modified: by admin