PHPackages                             binomeway/nova-page-manager-tool - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. binomeway/nova-page-manager-tool

AbandonedArchivedLibrary[Admin Panels](/categories/admin)

binomeway/nova-page-manager-tool
================================

A Laravel Nova tool to manage pages.

v1.1.0(4y ago)05MITPHPPHP &gt;=8.0

Since Aug 13Pushed 4y agoCompare

[ Source](https://github.com/binomeway/nova-page-manager-tool)[ Packagist](https://packagist.org/packages/binomeway/nova-page-manager-tool)[ RSS](/packages/binomeway-nova-page-manager-tool/feed)WikiDiscussions master Synced today

READMEChangelog (4)Dependencies (7)Versions (5)Used By (0)

Nova Page Manager Tool
======================

[](#nova-page-manager-tool)

Manage static pages from your Nova panel.

Prerequisites
-------------

[](#prerequisites)

This tool depends on the following packages:

- [binomeway/nova-taxonomies-tool](https://github.com/binomeway/nova-taxonomies-tool)

Please, refer to its documentation for installation and usage instructions.

Installation
------------

[](#installation)

Register the tool in your `NovaServiceProvider.php`

```
public function tools(){
    return [
        \BinomeWay\NovaPageManagerTool\NovaPageManagerTool::make(),
    ];
}
```

Publish the migrations.

```
php artisan vendor:publish --provider="\BinomeWay\NovaPageManagerTool\ToolServiceProvider" --tag="migrations"
```

Configure the tool.

```
php artisan vendor:publish --provider="\BinomeWay\NovaPageManagerTool\ToolServiceProvider" --tag="config"
```

**Optionally**, customise the tool's views.

```
php artisan vendor:publish --provider="\BinomeWay\NovaPageManagerTool\ToolServiceProvider" --tag="views"
```

Usage
-----

[](#usage)

### Templates

[](#templates)

#### Defining Templates

[](#defining-templates)

You can define a new template by creating a class and extend it from `BinomeWay\NovaPageManagerTool\Template`.

```
namespace App\Templates;

use BinomeWay\NovaPageManagerTool\Template;

class AboutTemplate extends Template
{
    protected string $group = 'General'; // Displayed in the select field
    protected string $label = 'About Us'; // Displayed in the select field
    protected string $path = 'pages.about-us';
}
```

or use the generator command:

```
php artisan nova-page-manager:template AboutTemplate
```

It will generate for you the template class, and the view file.

#### Registering Templates

[](#registering-templates)

After you have defined your template, register it from a ServiceProvider. It can be placed in the `AppServiceProvider`, `ViewServiceProvider` or any other service provider.

```
use  \BinomeWay\NovaPageManagerTool\Facades\TemplateManager;

public function boot() {
    TemplateManager::register([

       \App\Templates\AboutTemplate::class,

    ]);
}
```

### Page Builder

[](#page-builder)

#### Blocks

[](#blocks)

##### Define Blocks

[](#define-blocks)

```
namespace App\Blocks;

use BinomeWay\NovaPageManagerTool\Block;
use Laravel\Nova\Fields\Textarea;

class DescriptionSectionBlock extends Block
{
    /**
     * The layout's unique identifier
     *
     * @var string
     */
    protected $name = 'description-section';

    /**
     * The displayed title
     *
     * @var string
     */
    protected $title = 'Description Section';

    /**
     * The view path associated with this block.
     * @var string
     */
    protected string $component = 'blocks.description-section';

    /**
     * Get the fields displayed by the layout.
     *
     * @return array
     */
    public function fields()
    {
        return [
            Textarea::make(__('Description'), 'description')
        ];
    }

    public function customLogic(){
        // You can define custom methods and use them within view.
    }
}
```

##### Register Blocks

[](#register-blocks)

In your `AppServiceProvider` within the `boot` method, you can use the PageBuilder facade to register blocks.

```
// AppServiceProvider.php
use BinomeWay\NovaPageManagerTool\Facades\PageBuilder;

function boot() {

    PageBuilder::register([
        'description-section' => \App\Blocks\DescriptionSectionBlock::class,
    ]);
}
```

##### Rendering Blocks

[](#rendering-blocks)

In your template you can iterate over each block and just include the associated component of the block.

```

        {{ $page->title }}

            @foreach($page->blocks as $block)
                @include($block->component())
            @endforeach

```

#### Presets

[](#presets)

##### Define Presets

[](#define-presets)

TODO: documentation

##### Register Presets

[](#register-presets)

TODO: documentation

Roadmap
-------

[](#roadmap)

- Page builder
- Improved publishing workflow
- Scheduled publishing
- Improved template system
- Versioning system
- Multi-Language support
- Collaborative editing
- Making the tool more extendable

Credits
-------

[](#credits)

- [Codrin Axinte](https://github.com/codrin-axinte)

Changelog
---------

[](#changelog)

### 1.1.0

[](#110)

- Added **sorting** for `Page` resource
- Added URL builder for `Page`.
- **Breaking Changes** Refactored `content` column into `summary` column.
- Refactored `meta` column into `blocks` column
- Removed `PageFactory` since it wasn't used. It will be added back, later.
- Added helper methods for *status* tag within `Page` model.
- Tweaked page builder

### 1.0.2

[](#102)

- Implemented position tag filtering

### 1.0.1

[](#101)

- Changed text for 'Other' into Page Builder
- Changed text for 'Meta' into Blocks

### 1.0.0

[](#100)

- Release

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

4

Last Release

1716d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f68765a77418f8056ef39ed2491f2b2b544a58166a462bf3d5f1332d539241d4?d=identicon)[codrin-axinte](/maintainers/codrin-axinte)

---

Top Contributors

[![codrin-axinte](https://avatars.githubusercontent.com/u/6564791?v=4)](https://github.com/codrin-axinte "codrin-axinte (25 commits)")

---

Tags

laravelnovalaravelnova

### Embed Badge

![Health badge](/badges/binomeway-nova-page-manager-tool/health.svg)

```
[![Health](https://phpackages.com/badges/binomeway-nova-page-manager-tool/health.svg)](https://phpackages.com/packages/binomeway-nova-page-manager-tool)
```

###  Alternatives

[pdmfc/nova-action-button

A Laravel Nova field to run actions.

37733.0k1](/packages/pdmfc-nova-action-button)[khalin/nova-link-field

A Laravel Nova Link field.

31562.2k2](/packages/khalin-nova-link-field)[a2insights/filament-saas

Filament Saas for A2Insights

161.1k](/packages/a2insights-filament-saas)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
