PHPackages                             manialab/maniaprintlab - 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. manialab/maniaprintlab

ActiveLibrary[Admin Panels](/categories/admin)

manialab/maniaprintlab
======================

Provides three Nova resources for managing badge configurations, badge detail settings, and print history

v1.0.2(10mo ago)07MITPHPPHP ^8.0

Since Jun 30Pushed 10mo agoCompare

[ Source](https://github.com/Manialab/Nova-Print-Badge)[ Packagist](https://packagist.org/packages/manialab/maniaprintlab)[ RSS](/packages/manialab-maniaprintlab/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

ManiaLab/ManiaPrintLab
======================

[](#manialabmaniaprintlab)

**ManiaPrintLab** is a drop-in Laravel Nova package that provides:

- **Badge Details** resource to define layout settings for all badge elements
- **Printing Records** resource with shortcode generation and one-click print buttons
- **Print Badges** menu tool that loads your legacy print page via an external route
- Publishable migrations for the `maniaprintlab_configurations`, `badges_details`, and `printing` tables

Requirements
------------

[](#requirements)

- PHP ^8.0
- Laravel Nova ^4.0

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

[](#installation)

```
# 1. Pull in the stable release
composer require manialab/maniaprintlab:^1.0

# 2. Publish the migrations
php artisan vendor:publish --tag=maniaprintlab-migrations

# 3. Run the migrations (creates configurations, badges_details, and printing tables)
php artisan migrate

# 4. Link storage for file uploads
php artisan storage:link

# 5. Clear & rebuild caches (optional but recommended)
php artisan optimize:clear
```

Manual Integration (if using a custom Nova menu)
------------------------------------------------

[](#manual-integration-if-using-a-custom-nova-menu)

If you maintain your own `NovaServiceProvider` with a custom `mainMenu`, add:

```
// app/Providers/NovaServiceProvider.php
use ManiaLab\ManiaPrintLab\Nova\BadgeDetail;
use ManiaLab\ManiaPrintLab\Nova\PrintingRecord;
use Laravel\Nova\Menu\MenuSection;
use Laravel\Nova\Menu\MenuItem;

Nova::mainMenu(function () {
    return [
        // … existing sections …

        MenuSection::make(('PrintLab'), [
            MenuItem::resource(BadgeDetail::class)->name(('Badge Details')),
            MenuItem::resource(PrintingRecord::class)->name(('Print Records')),
        ])->icon('printer')->collapsable(),
    ];
});
```

Usage
-----

[](#usage)

1. **Open Nova**You will see a **PrintLab** section with:

    - **Badge Details**: define field positions, sizes, and display flags
    - **Printing Records**: view history, copy a `[maniaprint ...]` shortcode, or click **Print**
    - **Print Badges** menu tool: opens your legacy `index.php` print page
2. **Create** a Configuration profile, then add one or more Badge Details entries.
3. **Generate or import** Printing Records. On the index:

    - **Shortcode** column: copy and embed the badge link elsewhere
    - **Print** column: click the button to open the print page in a new tab

### Adding Print Button to Visitor Nova Resource

[](#adding-print-button-to-visitor-nova-resource)

To add a **Print** button to your custom `Visitor` Nova resource, edit `app/Nova/Visitor.php`:

1. **Import the `Text` field** at the top:

    ```
    use Laravel\Nova\Fields\Text;
    ```
2. **Append the Print button** to `fields()`:

    ```
    Text::make('Print', function () {
        $url = route('maniaprintlab.print', [
            $this->token_key,w
            $this->id,
        ]);
        return "Print";
    })
        ->onlyOnIndex()
        ->asHtml()
        ->help('Click to open the badge print page in a new tab.'),
    ```
3. **Clear &amp; rebuild caches**:

    ```
    php artisan optimize:clear
    ```

Contributing
------------

[](#contributing)

Pull requests welcome! Please adhere to PSR-12 standards and add tests for new features.

License
-------

[](#license)

This package is open-source under the MIT License.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance54

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity43

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 ~1 days

Total

3

Last Release

312d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5bccc52564bac412f83c6238cc103673d86f46cf72554e4cf5b29727a9949209?d=identicon)[joejbr](/maintainers/joejbr)

---

Top Contributors

[![joejbr6](https://avatars.githubusercontent.com/u/55908053?v=4)](https://github.com/joejbr6 "joejbr6 (9 commits)")

### Embed Badge

![Health badge](/badges/manialab-maniaprintlab/health.svg)

```
[![Health](https://phpackages.com/badges/manialab-maniaprintlab/health.svg)](https://phpackages.com/packages/manialab-maniaprintlab)
```

###  Alternatives

[optimistdigital/nova-settings

A Laravel Nova tool for editing custom settings using native Nova fields.

297874.5k3](/packages/optimistdigital-nova-settings)[whitecube/nova-page

Static pages content management for Laravel Nova

23995.2k1](/packages/whitecube-nova-page)[optimistdigital/nova-page-manager

Page(s) and region(s) manager for Laravel Nova.

17988.5k](/packages/optimistdigital-nova-page-manager)[khalin/nova-link-field

A Laravel Nova Link field.

31562.2k2](/packages/khalin-nova-link-field)[digital-creative/nova-dashboard

The missing dashboard for nova.

7169.3k1](/packages/digital-creative-nova-dashboard)[runlinenl/nova-profile-tool

A tool for Laravel Nova to allow users to edit their profile data

37217.5k](/packages/runlinenl-nova-profile-tool)

PHPackages © 2026

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