Voyager 2
2.x
2.x
  • Introduction
  • Javascript
  • Media Manager
  • Plugins
  • Settings
  • bread
    • Actions
    • BREAD Builder
    • Layouts
    • Lists
    • Manipulate data
    • Multilanguage
    • Relationships
    • Validation
    • Views
  • contributing
    • Assets
    • CSS
    • Introduction
  • de
    • index
  • formfields
    • Checkboxes
    • Date & Time
    • Dynamic input
    • Formfields
    • Media Picker
    • Number
    • Password
    • Radios
    • Relationship
    • Repeater
    • Select
    • Simple array
    • Slider
    • Slug
    • Tags
    • Text
    • Toggle
  • getting-started
    • Installation
    • Prerequisites
    • Tips and tricks
    • What is Voyager
  • overriding
    • Overriding formfields
    • Icons
  • plugins
    • Assets
    • Components
    • Features
    • Filter
    • Plugin development
    • Language
    • Menu Items
    • Custom pages
    • Preferences
    • Routes
    • Settings
    • Widgets
Powered by GitBook
On this page
  • Layouts
  • MenuItems
  • Widgets
  • Media

Was this helpful?

  1. plugins

Filter

Filters allow you to manipulate and filter various things used in Voyager.

Layouts

Filter the available layouts for a given BREAD.

<?php

use Illuminate\Support\Collection;
use Voyager\Admin\Classes\Bread;
use Voyager\Admin\Contracts\Plugins\GenericPlugin;
use Voyager\Admin\Contracts\Plugins\Features\Filter\Layouts as LayoutFilter;

class MyPlugin implements GenericPlugin, LayoutFilter
{
    public function filterLayouts(Bread $bread, string $action, Collection $layouts): Collection
    {
        // $bread contains the BREAD class
        // $action can be either "browse", "read", "edit" or "add"

        return $layouts->filter(function ($layout) {
            // Add your conditions here
            return true;
        });
    }
}

MenuItems

Filter the shown menu-items.

<?php

use Illuminate\Support\Collection;
use Voyager\Admin\Contracts\Plugins\GenericPlugin;
use Voyager\Admin\Contracts\Plugins\Features\Filter\MenuItems as MenuItemFilter;

class MyPlugin implements GenericPlugin, MenuItemFilter
{
    public function filterMenuItems(Collection $items, $mainMenu = true): Collection
    {
        // $mainMenu is true when items for the main-menu are passed, when false for the user-menu
        return $items->filter(function ($item) {
            // Add your conditions here
            return true;
        });
    }
}

Widgets

Filter the widgets shown on the dashboard

<?php

use Illuminate\Support\Collection;
use Voyager\Admin\Contracts\Plugins\GenericPlugin;
use Voyager\Admin\Contracts\Plugins\Features\Filter\Widgets as WidgetFilter;

class MyPlugin implements GenericPlugin, WidgetFilter
{
    public function filterWidgets(Collection $widgets): Collection
    {
        return $widgets->filter(function ($widget) {
            // Add your conditions here
            return true;
        });
    }
}

Media

Filter the shown files/directories in the media-manager

<?php

use Illuminate\Support\Collection;
use Voyager\Admin\Contracts\Plugins\GenericPlugin;
use Voyager\Admin\Contracts\Plugins\Features\Filter\Media as MediaFilter;

class MyPlugin implements GenericPlugin, MediaFilter
{
    public function filterMedia(Collection $files): Collection
    {
        return $files->filter(function ($file) {
            // Add your conditions here
            return true;
        });
    }
}
PreviousFeaturesNextPlugin development

Last updated 3 years ago

Was this helpful?