Hook: theme.view.data
Overview
Type: Filter Location: All Frontend Controllers (PostController, PageController, HomeController, etc.)
Injects or modifies data passed to any theme Blade view. This is the most versatile frontend filter - it runs before every theme view is rendered.
Parameters
| Param | Type | Description |
|---|---|---|
$data |
array | View data array |
$viewName |
string | View identifier (e.g. posts.index, home) |
Return
Must return array - modified view data.
Usage Example
Hook::addFilter('theme.view.data', function (array $data, string $viewName) {
if ($viewName === 'posts.index') {
$data['popular_posts'] = Post::orderBy('views', 'desc')->limit(5)->get();
}
return $data;
});
Related Hooks
theme.template.resolve - Override which Blade view is rendered
settings.defaults - Extend system settings
PolyCMS is an open-source content management system for modern web applications, inspired by the WordPress plugin and theme ecosystem but built on top of the Laravel framework. It is designed to provide a complete foundation for content publishing, e-commerce, multi-language support, and extensible module architecture — powered by a Vue 3 admin panel with data served entirely through RESTful APIs.
Whether you're building a blog, a documentation site, an online store, or a multi-tenant SaaS platform, PolyCMS aims to give you a comprehensive starting scaffold so you can ship quickly and extend easily through integrated modules and themes. In particular, themes in PolyCMS follow a multi-theme architecture — one Main theme and an unlimited number of Sub themes can run side by side on the same installation.
We hope this ready-made foundation proves useful for building your next website, blog, or web app, saving you from having to start completely from scratch.