Widgets

Widgets & Sidebars

Juzaweb CMS supports a widget system allowing themes to define sidebars and register custom widgets.

Sidebars (Sidebar)

The Juzaweb\Modules\Core\Contracts\Sidebar contract is used to register widget areas (sidebars) where users can drag and drop widgets.

Usage

use Juzaweb\Modules\Core\Facades\Sidebar;

// Register a sidebar
Sidebar::make('sidebar', function () {
    return [
        'label' => 'Main Sidebar',
        'description' => 'The main sidebar for blog posts.',
    ];
});

Methods

  • make(string $key, callable $callback): Register a sidebar. Callback must return an array.
  • all(): Get all registered sidebars.

Widgets (Widget)

The Juzaweb\Modules\Core\Contracts\Widget contract is used to register custom widgets available for use in sidebars.

Usage

use Juzaweb\Modules\Core\Facades\Widget;

// Register a custom widget
Widget::make('recent_posts', function () {
    return [
        'label' => 'Recent Posts',
        'description' => 'Display recent posts.',
        'view' => 'theme::widgets.recent_posts.show',
        'form' => 'theme::widgets.recent_posts.form',
    ];
});

Methods

  • make(string $key, callable $callback): Register a new widget. Callback must return an array.
  • get(string $key): Get a specific widget.
  • all(): Get all registered widgets.