A powerful control panel search filter replacement for CraftCMS

Related tags

CMS craft-omnisearch
Overview

Omnisearch plugin for Craft CMS 3.x

Omnisearch is a powerful control panel search filter replacement for the CraftCMS 3 control panel.

Screenshot

Overview

Do you have thousands of entries but no way to filter them? Then this plugin is for you!

Omnisearch is an advanced search filter bar that allows you to perform multi-variate filtering of your content with ease.

Features

  • Minimalist and compact
  • Zero-configuration: just install and use!
  • Supports all built-in fields types:
    • Assets
    • Categories
    • Checkboxes
    • Color
    • Date/Time
    • Email
    • Entries
    • Lightswitch
    • Matrix
    • Multi-Select
    • Plain Text
    • Radio Buttons
    • Plain Text
    • Tags
    • URLs
    • Users
  • Full Matrix field support (Yes, you can search within matrix fields!)
  • Search entries across multiple sites!
  • Supports native + custom fields
  • Supports advanced filtering the following Element types:
    • Entry
    • Category
    • Assets
    • User
  • Supports Craft Commerce
    • Products
    • Orders (coming soon)
    • Customers (coming soon)
    • Subscriptions (coming soon)
    • Promotions (coming soon)
  • Bookmarkable URLs: Each search query has a unique URL that so that you can bookmark your queries using your browser.

Requirements

This plugin requires Craft CMS 3.0.0 or later.

Tested until CraftCMS 3.7.8.

Installation

To install the plugin, follow these instructions.

  1. Open your terminal and go to your Craft project:

     cd /path/to/project
    
  2. Then tell Composer to load the plugin:

     composer require bitmatrix/craft-omnisearch
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for OmniSearch.

FAQs

Q: My fields are not appearing!

A: Make sure the field is searchable by turning on Use this field’s values as search keywords.

OmniSearch Roadmap

Some things to do, and ideas for potential features:

  • Support for Super Tables
  • Have suggestions? Post them in Github Issues!

Brought to you by Bitmatrix Studio

Comments
  • How does structure reordering work when a category is selected?

    How does structure reordering work when a category is selected?

    Hi,

    What exactly happens when reordering within a category?

    Here's an example:

    Global Order:

    item 1 - cat 1
    item 2 - cat 2
    item 3 - cat 1
    item 4 - cat 2

    now I reorder item 4 before item 2 with cat 2 selected:

    item 4 - cat 2
    item 2 - cat 2

    where is item 4 in the global order?

    is it:

    item 1 - cat 1
    item 4 - cat 2
    item 2 - cat 2
    item 3 - cat 1

    or:

    item 4 - cat 2
    item 2 - cat 2
    item 1 - cat 1
    item 3 - cat 1

    or:

    item 1 - cat 1
    item 3 - cat 1
    item 4 - cat 2
    item 2 - cat 2

    Maybe this is a stupid question?!

    Cheers
    Stefan

    opened by outline4 14
  • Filters not working on channels with multiple entry types?

    Filters not working on channels with multiple entry types?

    I can't seem to apply omnisearch filters on Channels that have different Entry Types. Clicking the "+ Filter" button just brings up a search field ("Search Attributes") that is unresponsive. In the channels I'm testing this on, the different entry types do have different fields.

    in console, I see the error:

    Failed to load resource: the server responded with a status of 500 (Internal Server Error) [site url]/actions/omnisearch/fields?elementType=craft\elements\Entry&source=section:ef7c591c-185e-444f-b322-66ac110e58b0

    opened by sonoflee 9
  • Entries disappear after applying a filter.

    Entries disappear after applying a filter.

    Hi,

    In certain circumstances the filtered entries completely disappear.

    Bildschirmfoto 2021-10-06 um 13 38 47

    it shows the number of entries found, but not the actual entries.

    In my case this happens if I don't select the first entry of a filter:

    Bildschirmfoto 2021-10-06 um 13 52 16

    (kategorie is a section)

    I've tried clearing caches, and logging out and in again. Unlucky, the problems persist.

    PHP version 7.4.24
    Craft edition & version Craft Pro 3.7.8
    OmniSearch 1.0.2

    Btw: I love that you can still reorder entries within a structure section! This is great and has been a pain-point for many clients! Thanks!

    Any help appreciated

    opened by outline4 9
  • Error when user preferences language is not set (null)

    Error when user preferences language is not set (null)

    Some users are having issues when using omnisearch, the dropdown is empty and the service gives a 500 error.

    NOTICE: PHP message: An Error occurred while handling another error:
    TypeError: Argument 2 passed to craft\i18n\PhpMessageSource::_loadOverrideMessages() must be of the type string, null given, called in /var/app/vendor/craftcms/cms/src/i18n/PhpMessageSource.php on line 34 and defined in /var/app/vendor/craftcms/cms/src/i18n/PhpMessageSource.php:64
    Stack trace:
    #0 /var/app/vendor/craftcms/cms/src/i18n/PhpMessageSource.php(34): craft\i18n\PhpMessageSource->_loadOverrideMessages()
    #1 /var/app/vendor/yiisoft/yii2/i18n/MessageSource.php(107): craft\i18n\PhpMessageSource->loadMessages()
    #2 /var/app/vendor/yiisoft/yii2/i18n/MessageSource.php(87): yii\i18n\MessageSource->translateMessage()
    #3 /var/app/vendor/yiisoft/yii2/i18n/I18N.php(90): yii\i18n\MessageSource->translate()
    #4 /var/app/vendor/craftcms/cms/src/i18n/I18N.php(343): yii\i18n\I18N->translate()
    #5 /var/app/vendor/yiisoft/yii2/BaseYii.php(538): craft\i18n\I18N->translate()
    #6 /var/app/vendor/yiisoft/yii2/web/ErrorHandler.php(147): yii\BaseYii::t()
    #7 /var/app/vendor/yiisoft/yii2/web/ErrorHandler.php(133): yii\web\ErrorHandler->convertExceptionToArray()
    #8 /var/app/vendor/craftcms/cms/src/web/ErrorHandler.php(192): yii\web\ErrorHandler->renderException()
    #9 /var/app/vendor/yiisoft/yii2/base/ErrorHandler.php(135): craft\web\ErrorHandler->renderException()
    #10 /var/app/vendor/craftcms/cms/src/web/ErrorHandler.php(71): yii\base\ErrorHandler->handleException()
    #11 [internal function]: craft\web\ErrorHandler->handleException()
    #12 {main}
    Previous exception:
    TypeError: Argument 2 passed to craft\i18n\PhpMessageSource::_loadOverrideMessages() must be of the type string, null given, called in /var/app/vendor/craftcms/cms/src/i18n/PhpMessageSource.php on line 34 and defined in /var/app/vendor/craftcms/cms/src/i18n/PhpMessageSource.php:64
    Stack trace:
    #0 /var/app/vendor/craftcms/cms/src/i18n/PhpMessageSource.php(34): craft\i18n\PhpMessageSource->_loadOverrideMessages()
    #1 /var/app/vendor/yiisoft/yii2/i18n/MessageSource.php(107): craft\i18n\PhpMessageSource->loadMessages()
    #2 /var/app/vendor/yiisoft/yii2/i18n/MessageSource.php(87): yii\i18n\MessageSource->translateMessage()
    #3 /var/app/vendor/yiisoft/yii2/i18n/I18N.php(90): yii\i18n\MessageSource->translate()
    #4 /var/app/vendor/craftcms/cms/src/i18n/I18N.php(343): yii\i18n\I18N->translate()
    #5 /var/app/vendor/yiisoft/yii2/BaseYii.php(538): craft\i18n\I18N->translate()
    #6 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(98): yii\BaseYii::t()
    #7 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(65): bitmatrix\omnisearch\controllers\FieldsController->getBuiltinFields()
    #8 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(58): bitmatrix\omnisearch\controllers\FieldsController->getFields()
    #9 [internal function]: bitmatrix\omnisearch\controllers\FieldsController->actionIndex()
    #10 /var/app/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()
    #11 /var/app/vendor/yiisoft/yii2/base/Controller.php(181): yii\base\InlineAction->runWithParams()
    #12 /var/app/vendor/yiisoft/yii2/base/Module.php(534): yii\base\Controller->runAction()
    #13 /var/app/vendor/craftcms/cms/src/web/Application.php(277): yii\base\Module->runAction()
    #14 /var/app/vendor/craftcms/cms/src/web/Application.php(586): craft\web\Application->runAction()
    #15 /var/app/vendor/craftcms/cms/src/web/Application.php(256): craft\web\Application->_processActionRequest()
    #16 /var/app/vendor/yiisoft/yii2/base/Application.php(392): craft\web\Application->handleRequest()
    #17 /var/app/web/index.php(30): yii\base\Application->run()
    #18 {main}
    @timestamp	
    1635274877998
    

    I think the error is caused when creating a new user in craft, in userpreferences table the language property is set to null, if that user sets a default language the problem goes away.

    opened by eduardoalonsoalbella 6
  • Database Exception: column users.firstname does not exist

    Database Exception: column users.firstname does not exist

    Just installed the plugin and I am getting a 500 error in the console when attempting to load /actions/omnisearch/fields?elementType=craft\elements\Entry&source=section:da37a9ae-3ebe-440c-a8d0-632ea4d56210

    {
        "name": "Database Exception",
        "message": "SQLSTATE[42703]: Undefined column: 7 ERROR:  column users.firstname does not exist\nLINE 1: ...T \"users\".\"id\" AS \"value\", (IF(LENGTH(TRIM(CONCAT(users.firs...\n                                                             ^\nHINT:  Perhaps you meant to reference the column \"users.firstName\".\nThe SQL being executed was: SELECT \"users\".\"id\" AS \"value\", (IF(LENGTH(TRIM(CONCAT(users.firstName, \" \", users.lastName))), TRIM(CONCAT(users.firstName, \" \", users.lastName)), username)) AS \"label\"\nFROM (SELECT \"elements\".\"id\" AS \"elementsId\", \"elements_sites\".\"id\" AS \"elementsSitesId\", \"content\".\"id\" AS \"contentId\"\nFROM \"elements\" \"elements\"\nINNER JOIN \"users\" \"users\" ON \"users\".\"id\" = \"elements\".\"id\"\nINNER JOIN \"elements_sites\" \"elements_sites\" ON \"elements_sites\".\"elementId\" = \"elements\".\"id\"\nINNER JOIN \"content\" \"content\" ON \"content\".\"elementId\" = \"elements\".\"id\"\nWHERE (\"elements\".\"archived\"=FALSE) AND ((\"users\".\"suspended\"=FALSE) AND (\"users\".\"pending\"=FALSE)) AND (\"elements\".\"dateDeleted\" IS NULL) AND (\"elements\".\"draftId\" IS NULL) AND (\"elements\".\"revisionId\" IS NULL)\nORDER BY \"users\".\"username\") \"subquery\"\nINNER JOIN \"users\" \"users\" ON \"users\".\"id\" = \"subquery\".\"elementsId\"\nINNER JOIN \"elements\" \"elements\" ON \"elements\".\"id\" = \"subquery\".\"elementsId\"\nINNER JOIN \"elements_sites\" \"elements_sites\" ON \"elements_sites\".\"id\" = \"subquery\".\"elementsSitesId\"\nINNER JOIN \"content\" \"content\" ON \"content\".\"id\" = \"subquery\".\"contentId\"\nORDER BY \"users\".\"username\"",
        "code": "42703",
        "type": "yii\\db\\Exception",
        "file": "/app/craftcms/vendor/yiisoft/yii2/db/Schema.php",
        "line": 678,
        "stack-trace": [
            "#0 /app/craftcms/vendor/yiisoft/yii2/db/Command.php(1307): yii\\db\\Schema->convertException(Object(PDOException), 'SELECT \"users\"....')",
            "#1 /app/craftcms/vendor/yiisoft/yii2/db/Command.php(1168): yii\\db\\Command->internalExecute('SELECT \"users\"....')",
            "#2 /app/craftcms/vendor/yiisoft/yii2/db/Command.php(410): yii\\db\\Command->queryInternal('fetchAll', NULL)",
            "#3 /app/craftcms/vendor/yiisoft/yii2/db/Query.php(249): yii\\db\\Command->queryAll()",
            "#4 /app/craftcms/vendor/craftcms/cms/src/db/Query.php(152): yii\\db\\Query->all(NULL)",
            "#5 /app/craftcms/vendor/craftcms/cms/src/elements/db/ElementQuery.php(1619): craft\\db\\Query->all(NULL)",
            "#6 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/fields/BaseFields.php(293): craft\\elements\\db\\ElementQuery->all()",
            "#7 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/fields/EntryFields.php(33): bitmatrix\\omnisearch\\fields\\BaseFields->getUsersListData('section:da37a9a...')",
            "#8 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/fields/BaseFields.php(105): bitmatrix\\omnisearch\\fields\\EntryFields->builtInFields('section:da37a9a...')",
            "#9 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/OmniSearch.php(126): bitmatrix\\omnisearch\\fields\\BaseFields->getFields('section:da37a9a...')",
            "#10 [internal function]: bitmatrix\\omnisearch\\OmniSearch->bitmatrix\\omnisearch\\{closure}(Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
            "#11 /app/craftcms/vendor/yiisoft/yii2/base/Event.php(312): call_user_func(Object(Closure), Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
            "#12 /app/craftcms/vendor/yiisoft/yii2/base/Component.php(637): yii\\base\\Event::trigger('bitmatrix\\\\omnis...', 'defineFields', Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
            "#13 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(39): yii\\base\\Component->trigger('defineFields', Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
            "#14 [internal function]: bitmatrix\\omnisearch\\controllers\\FieldsController->actionIndex('craft\\\\elements\\\\...', 'section:da37a9a...')",
            "#15 /app/craftcms/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)",
            "#16 /app/craftcms/vendor/yiisoft/yii2/base/Controller.php(181): yii\\base\\InlineAction->runWithParams(Array)",
            "#17 /app/craftcms/vendor/yiisoft/yii2/base/Module.php(534): yii\\base\\Controller->runAction('', Array)",
            "#18 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(287): yii\\base\\Module->runAction('omnisearch/fiel...', Array)",
            "#19 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(596): craft\\web\\Application->runAction('omnisearch/fiel...', Array)",
            "#20 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(266): craft\\web\\Application->_processActionRequest(Object(craft\\web\\Request))",
            "#21 /app/craftcms/vendor/yiisoft/yii2/base/Application.php(392): craft\\web\\Application->handleRequest(Object(craft\\web\\Request))",
            "#22 /app/craftcms/web/index.php(24): yii\\base\\Application->run()",
            "#23 {main}"
        ],
        "error-info": [
            "42703",
            7,
            "ERROR:  column users.firstname does not exist\nLINE 1: ...T \"users\".\"id\" AS \"value\", (IF(LENGTH(TRIM(CONCAT(users.firs...\n                                                             ^\nHINT:  Perhaps you meant to reference the column \"users.firstName\"."
        ],
        "previous": {
            "name": "Exception",
            "message": "SQLSTATE[42703]: Undefined column: 7 ERROR:  column users.firstname does not exist\nLINE 1: ...T \"users\".\"id\" AS \"value\", (IF(LENGTH(TRIM(CONCAT(users.firs...\n                                                             ^\nHINT:  Perhaps you meant to reference the column \"users.firstName\".",
            "code": "42703",
            "type": "PDOException",
            "file": "/app/craftcms/vendor/yiisoft/yii2/db/Command.php",
            "line": 1302,
            "stack-trace": [
                "#0 /app/craftcms/vendor/yiisoft/yii2/db/Command.php(1302): PDOStatement->execute()",
                "#1 /app/craftcms/vendor/yiisoft/yii2/db/Command.php(1168): yii\\db\\Command->internalExecute('SELECT \"users\"....')",
                "#2 /app/craftcms/vendor/yiisoft/yii2/db/Command.php(410): yii\\db\\Command->queryInternal('fetchAll', NULL)",
                "#3 /app/craftcms/vendor/yiisoft/yii2/db/Query.php(249): yii\\db\\Command->queryAll()",
                "#4 /app/craftcms/vendor/craftcms/cms/src/db/Query.php(152): yii\\db\\Query->all(NULL)",
                "#5 /app/craftcms/vendor/craftcms/cms/src/elements/db/ElementQuery.php(1619): craft\\db\\Query->all(NULL)",
                "#6 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/fields/BaseFields.php(293): craft\\elements\\db\\ElementQuery->all()",
                "#7 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/fields/EntryFields.php(33): bitmatrix\\omnisearch\\fields\\BaseFields->getUsersListData('section:da37a9a...')",
                "#8 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/fields/BaseFields.php(105): bitmatrix\\omnisearch\\fields\\EntryFields->builtInFields('section:da37a9a...')",
                "#9 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/OmniSearch.php(126): bitmatrix\\omnisearch\\fields\\BaseFields->getFields('section:da37a9a...')",
                "#10 [internal function]: bitmatrix\\omnisearch\\OmniSearch->bitmatrix\\omnisearch\\{closure}(Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
                "#11 /app/craftcms/vendor/yiisoft/yii2/base/Event.php(312): call_user_func(Object(Closure), Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
                "#12 /app/craftcms/vendor/yiisoft/yii2/base/Component.php(637): yii\\base\\Event::trigger('bitmatrix\\\\omnis...', 'defineFields', Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
                "#13 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(39): yii\\base\\Component->trigger('defineFields', Object(bitmatrix\\omnisearch\\fields\\DefineFieldsEvent))",
                "#14 [internal function]: bitmatrix\\omnisearch\\controllers\\FieldsController->actionIndex('craft\\\\elements\\\\...', 'section:da37a9a...')",
                "#15 /app/craftcms/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array)",
                "#16 /app/craftcms/vendor/yiisoft/yii2/base/Controller.php(181): yii\\base\\InlineAction->runWithParams(Array)",
                "#17 /app/craftcms/vendor/yiisoft/yii2/base/Module.php(534): yii\\base\\Controller->runAction('', Array)",
                "#18 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(287): yii\\base\\Module->runAction('omnisearch/fiel...', Array)",
                "#19 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(596): craft\\web\\Application->runAction('omnisearch/fiel...', Array)",
                "#20 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(266): craft\\web\\Application->_processActionRequest(Object(craft\\web\\Request))",
                "#21 /app/craftcms/vendor/yiisoft/yii2/base/Application.php(392): craft\\web\\Application->handleRequest(Object(craft\\web\\Request))",
                "#22 /app/craftcms/web/index.php(24): yii\\base\\Application->run()",
                "#23 {main}"
            ]
        }
    }
    

    Plugin version: 1.2 Craft version: 3.7.18.1

    opened by devinpitcher 6
  • Filtering available when on

    Filtering available when on "entries" field modal selection window.

    This plugin is brilliant, but what would make it perfect is if the filtering was available in entry selection modals.

    So, if you edit/create an entry and have an "entries" field on the entry and click on it to choose an entry of some kind, that modal window that comes up with the list of entries, I would like the filtering from your plugin to be available there!

    Thanks!

    opened by johnwbaxter 5
  • Does not work with Super Table

    Does not work with Super Table

    I have been unable to use this plugin as whenever it's enabled, I get the following error when trying to access any part of the admin CP:

    Error: Call to a member function getService() on null in /app/craftcms/vendor/verbb/super-table/src/fields/SuperTableField.php:229

    Disabling Omnisearch stops the error from happening.

    Plugin version: 1.2.3 PHP version: 8.0.10 Craft edition & version: Craft Pro 3.7.23 Super Table version: 2.6.8

    Error: Call to a member function getService() on null in /app/craftcms/vendor/verbb/super-table/src/fields/SuperTableField.php:229
    Stack trace:
    #0 /app/craftcms/vendor/verbb/super-table/src/fields/SuperTableField.php(243): verbb\supertable\fields\SuperTableField->getBlockTypes()
    #1 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/behaviors/OmniSearchFilterBehavior.php(98): verbb\supertable\fields\SuperTableField->getBlockTypeFields()
    #2 /app/craftcms/vendor/bitmatrix/craft-omnisearch/src/behaviors/OmniSearchFilterBehavior.php(55): bitmatrix\omnisearch\behaviors\OmniSearchFilterBehavior->mapCustomFields(Array)
    #3 [internal function]: bitmatrix\omnisearch\behaviors\OmniSearchFilterBehavior->beforePrepare(Object(craft\events\CancelableEvent))
    #4 /app/craftcms/vendor/yiisoft/yii2/base/Component.php(628): call_user_func(Array, Object(craft\events\CancelableEvent))
    #5 /app/craftcms/vendor/craftcms/cms/src/elements/db/ElementQuery.php(2078): yii\base\Component->trigger('beforePrepare', Object(craft\events\CancelableEvent))
    #6 /app/craftcms/vendor/craftcms/cms/src/elements/db/UserQuery.php(721): craft\elements\db\ElementQuery->beforePrepare()
    #7 /app/craftcms/vendor/craftcms/cms/src/elements/db/ElementQuery.php(1445): craft\elements\db\UserQuery->beforePrepare()
    #8 /app/craftcms/vendor/yiisoft/yii2/db/QueryBuilder.php(227): craft\elements\db\ElementQuery->prepare(Object(craft\db\pgsql\QueryBuilder))
    #9 /app/craftcms/vendor/yiisoft/yii2/db/Query.php(157): yii\db\QueryBuilder->build(Object(craft\elements\db\UserQuery))
    #10 /app/craftcms/vendor/yiisoft/yii2/db/Query.php(287): yii\db\Query->createCommand(Object(craft\db\Connection))
    #11 /app/craftcms/vendor/craftcms/cms/src/db/Query.php(167): yii\db\Query->one(NULL)
    #12 /app/craftcms/vendor/craftcms/cms/src/elements/db/ElementQuery.php(1634): craft\db\Query->one(NULL)
    #13 /app/craftcms/vendor/craftcms/cms/src/elements/User.php(452): craft\elements\db\ElementQuery->one()
    #14 /app/craftcms/vendor/yiisoft/yii2/web/User.php(700): craft\elements\User::findIdentity(1)
    #15 /app/craftcms/vendor/craftcms/cms/src/web/User.php(522): yii\web\User->renewAuthStatus()
    #16 /app/craftcms/vendor/yiisoft/yii2/web/User.php(199): craft\web\User->renewAuthStatus()
    #17 /app/craftcms/vendor/craftcms/cms/src/web/User.php(272): yii\web\User->getIdentity()
    #18 /app/craftcms/vendor/venveo/craft-bulkedit/src/Plugin.php(81): craft\web\User->checkPermission('PERMISSION_BULK...')
    #19 /app/craftcms/vendor/yiisoft/yii2/base/BaseObject.php(109): venveo\bulkedit\Plugin->init()
    #20 /app/craftcms/vendor/yiisoft/yii2/base/Module.php(158): yii\base\BaseObject->__construct(Array)
    #21 /app/craftcms/vendor/craftcms/cms/src/base/Plugin.php(115): yii\base\Module->__construct('venveo-bulk-edi...', Object(craft\web\Application), Array)
    #22 [internal function]: craft\base\Plugin->__construct('venveo-bulk-edi...', Object(craft\web\Application), Array)
    #23 /app/craftcms/vendor/yiisoft/yii2/di/Container.php(420): ReflectionClass->newInstanceArgs(Array)
    #24 /app/craftcms/vendor/yiisoft/yii2/di/Container.php(171): yii\di\Container->build('venveo\\bulkedit...', Array, Array)
    #25 /app/craftcms/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('venveo\\bulkedit...', Array, Array)
    #26 /app/craftcms/vendor/craftcms/cms/src/Craft.php(67): yii\BaseYii::createObject(Array, Array)
    #27 /app/craftcms/vendor/craftcms/cms/src/services/Plugins.php(981): Craft::createObject(Array, Array)
    #28 /app/craftcms/vendor/craftcms/cms/src/services/Plugins.php(233): craft\services\Plugins->createPlugin('venveo-bulk-edi...', Array)
    #29 /app/craftcms/vendor/craftcms/cms/src/services/Plugins.php(301): craft\services\Plugins->loadPlugins()
    #30 /app/craftcms/vendor/superbig/craft3-bugsnag/src/Bootstrap.php(19): craft\services\Plugins->getPlugin('bugsnag')
    #31 /app/craftcms/vendor/yiisoft/yii2/base/Application.php(333): superbig\bugsnag\Bootstrap->bootstrap(Object(craft\web\Application))
    #32 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(110): yii\base\Application->bootstrap()
    #33 /app/craftcms/vendor/yiisoft/yii2/base/Application.php(279): craft\web\Application->bootstrap()
    #34 /app/craftcms/vendor/craftcms/cms/src/web/Application.php(91): yii\base\Application->init()
    #35 /app/craftcms/vendor/yiisoft/yii2/base/BaseObject.php(109): craft\web\Application->init()
    #36 /app/craftcms/vendor/yiisoft/yii2/base/Application.php(212): yii\base\BaseObject->__construct(Array)
    #37 [internal function]: yii\base\Application->__construct(Array)
    #38 /app/craftcms/vendor/yiisoft/yii2/di/Container.php(420): ReflectionClass->newInstanceArgs(Array)
    #39 /app/craftcms/vendor/yiisoft/yii2/di/Container.php(171): yii\di\Container->build('craft\\web\\Appli...', Array, Array)
    #40 /app/craftcms/vendor/yiisoft/yii2/BaseYii.php(365): yii\di\Container->get('craft\\web\\Appli...', Array, Array)
    #41 /app/craftcms/vendor/craftcms/cms/src/Craft.php(67): yii\BaseYii::createObject(Array, Array)
    #42 /app/craftcms/vendor/craftcms/cms/bootstrap/bootstrap.php(242): Craft::createObject(Array)
    #43 /app/craftcms/vendor/craftcms/cms/bootstrap/web.php(51): require('/app/craftcms/v...')
    #44 /app/craftcms/web/index.php(23): require('/app/craftcms/v...')
    #45 {main}
    
    opened by devinpitcher 4
  • Craft Commerce discounts support

    Craft Commerce discounts support

    Hi,

    I saw that your plugin supports Craft Commerce now, great! I was wondering if your plugin will also support filtering for Commerce discount codes in the future? That would be great too.

    Best wishes, Joeri

    opened by JoeriE 4
  • Empty fields dropdown on Entries

    Empty fields dropdown on Entries

    Error using omnisearch 1.0.8 on Entries (All entries option selected), the fields dropdown is not filled as expected. other filters like Assets, User, seems to work as expected.

    I'm getting this error on local

    http://localhost:8001/actions/omnisearch/fields?elementType=craft\elements\Entry&source=*

    {
       "name":"Exception",
       "message":"bitmatrix\\omnisearch\\controllers\\FieldsController::bitmatrix\\omnisearch\\controllers\\{closure}(): Argument #1 ($section) must be of type craft\\models\\Section, null given",
       "code":0,
       "type":"TypeError",
       "file":"/var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php",
       "line":569,
       "stack-trace":[
          "#0 [internal function]: bitmatrix\\omnisearch\\controllers\\FieldsController->bitmatrix\\omnisearch\\controllers\\{closure}()",
          "#1 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(569): array_map()",
          "#2 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(530): bitmatrix\\omnisearch\\controllers\\FieldsController->getEntriesListData()",
          "#3 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(410): bitmatrix\\omnisearch\\controllers\\FieldsController->getRelationListItems()",
          "#4 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(376): bitmatrix\\omnisearch\\controllers\\FieldsController->createFieldConfig()",
          "#5 [internal function]: bitmatrix\\omnisearch\\controllers\\FieldsController->bitmatrix\\omnisearch\\controllers\\{closure}()",
          "#6 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(377): array_map()",
          "#7 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(316): bitmatrix\\omnisearch\\controllers\\FieldsController->getFieldsForElement()",
          "#8 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(65): bitmatrix\\omnisearch\\controllers\\FieldsController->getEntryFields()",
          "#9 /var/app/vendor/bitmatrix/craft-omnisearch/src/controllers/FieldsController.php(54): bitmatrix\\omnisearch\\controllers\\FieldsController->getFields()",
          "#10 [internal function]: bitmatrix\\omnisearch\\controllers\\FieldsController->actionIndex()",
          "#11 /var/app/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()",
          "#12 /var/app/vendor/yiisoft/yii2/base/Controller.php(181): yii\\base\\InlineAction->runWithParams()",
          "#13 /var/app/vendor/craftcms/cms/src/web/Controller.php(189): yii\\base\\Controller->runAction()",
          "#14 /var/app/vendor/yiisoft/yii2/base/Module.php(534): craft\\web\\Controller->runAction()",
          "#15 /var/app/vendor/craftcms/cms/src/web/Application.php(277): yii\\base\\Module->runAction()",
          "#16 /var/app/vendor/craftcms/cms/src/web/Application.php(586): craft\\web\\Application->runAction()",
          "#17 /var/app/vendor/craftcms/cms/src/web/Application.php(256): craft\\web\\Application->_processActionRequest()",
          "#18 /var/app/vendor/yiisoft/yii2/base/Application.php(392): craft\\web\\Application->handleRequest()",
          "#19 /var/app/web/index.php(30): yii\\base\\Application->run()",
          "#20 {main}"
       ]
    }
    
    opened by eduardoalonsoalbella 4
  • Translate plugin (Internationalization)

    Translate plugin (Internationalization)

    Hi, I would like to translate the plugin into German.

    I've searched for the translations in omni-search.php the vendor/bitmatrix/craft-omni-search/src/translations/en folder, but there's only one string translated. 'OmniSearch plugin loaded' => 'OmniSearch plugin loaded',

    I tried to guess some strings by creating a translations folder in the root, but it didn't work out.

    It would be very nice if the plugin is translatable.
    Maybe I am missing something obvious.

    Cheers
    Stefan

    opened by outline4 4
  • Filter by structure relationship

    Filter by structure relationship

    For entries that are structures, it'd be great to be able to filter by:

    • parent -- all entries that have the selected entry as parent
    • ancestor -- all entries that have the selected entry as ancestor (parent, grandparent, etc)
    opened by JoshCoady 4
  • Filter doesn't take selected site into account.

    Filter doesn't take selected site into account.

    When filtering on an entries relationship field I only see the entries from the default site. I believe this is because the getEntriesListData function does not take the selected site into account

    protected function getEntriesListData($sources = [])
        {
            $sections = $this->getSections($sources);
    
            $hasStructure = false;
            $sectionIds = [];
            foreach ($sections as $section) {
                $sectionIds[] = $section->id;
                if ($section->structureId) {
                    $hasStructure = true;
                }
            }
    
            $select = [
                'elements.id AS value',
                'title AS label',
                $hasStructure ? 'COALESCE(level, 1) AS level' : '(1) AS level',
            ];
    
            $entryQuery = Entry::find()
                ->select($select)
                ->sectionId($sectionIds)
                ->anyStatus()
                ->asArray();
    
            return $entryQuery->all();
        }
    
    opened by murphy1484 0
  • Craft 4 Compatibility?

    Craft 4 Compatibility?

    With the upcoming release of Craft 4, I wanted to check to see whether there are plans to update Omnisearch to be compatible (Craft plugin updating info here). If possible, it would be great to get an idea of your timeline. Thanks!

    opened by sonoflee 2
  • Add the possibility to save filters ?

    Add the possibility to save filters ?

    Hi guys ! Is it somewhere in the roadmap to add the possibility to save filters + the possibility to activate it ? Would be great for recurrent filtering. Thanks for your input !

    opened by ineghi 1
  • Entries: Filtering an Asset Supertable property by

    Entries: Filtering an Asset Supertable property by "not present"

    Hi @pohnean

    I've tried with v1.2.7 and it seems it still not working. (https://github.com/bitmatrixstudio/craft-omnisearch/issues/23)

    If you create a SuperTable field, with an Asset Field, i'm unable to check if the asset is present or not, if I select "not present" i get all entries, if I select "is present", I get 0 results, in my case I should be getting one result

    if you need more information, feel free to ask.

    Thanks!

    Captura de pantalla 2022-01-10 a las 13 33 13 Captura de pantalla 2022-01-10 a las 13 33 05
    opened by eduardoalonsoalbella 1
  • Entries: Filter by parent should appear an Entries list

    Entries: Filter by parent should appear an Entries list

    Hi, when filtering by "Parent", and selecting "equals" option, I should see an entries list (see pictures) or being able to filter by title

    Captura de pantalla 2021-12-09 a las 22 05 00 Captura de pantalla 2021-12-09 a las 22 04 34
    opened by eduardoalonsoalbella 3
Owner
Bitmatrix Studio
Bitmatrix Studio
Decoupled CMS for any Laravel app, gain control of: pages, blogs, galleries, events, images, custom modules and more.

Grafite CMS Grafite has archived this project and no longer supports or develops this code. We recommend using only as a source of ideas for your own

Grafite Inc 494 Nov 25, 2022
The modular open source laravel administration panel

Laralum What is Laralum? Laralum is an idea that came to our mind when we found no CMS that had the right balance between power and flexibility. This

Laralum 297 Nov 10, 2022
📦 A CMS Panel using Phalcon Framework

Sakura panel , A script made with PHP ( Phalcon FrameWork ) and can run on both apache and nginx or any php service.

Yassine Rais 43 Apr 20, 2022
sGallery Plugin for attaching Images and Video clips (YouTube) to a resource in the Evolution CMS admin panel.

sGallery for Evolution CMS 3 sGallery Plugin for attaching Images and Video clips (YouTube) to a resource in the Evolution CMS admin panel. Features U

Serhii Korneliuk 6 Dec 21, 2022
A plugin for Craft CMS 3.X that allows for GraphQL search functionality for matching on fields of nested entries.

Nested Entry GraphQL Plugin This Craft CMS plugin allows for performing graphQL search queries that match on fields on nested entries-as-a-field. What

Rubin EPO 2 Sep 10, 2021
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

Grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. There is Zero installation required. Just extract the ZIP archive, and you are alr

Grav 13.6k Jan 4, 2023
PHPDish is a powerful forum system written in PHP. It is based on the Symfony PHP Framework.

PHPDish 是一个基于Symfony框架开发的内容社区系统;得益于大量的前端以及后端的第三方类库的使用使得PHPDish有着高质量的代码,敏捷实现; 你可以使用composer或者直接下载本仓库进行程序的安装,注意切换到tag。 PHPDish 开发手册以及详细安装文档 Requirements

PHPDISH 227 Dec 8, 2022
Pyro is an experienced and powerful Laravel PHP CMS.

PyroCMS PyroCMS is an easy to use, powerful, and modular CMS and development platform built with Laravel 5. Security If you discover any security rela

PyroCMS 3.1k Dec 23, 2022
Twill is an open source CMS toolkit for Laravel that helps developers rapidly create a custom admin console that is intuitive, powerful and flexible. /// Chat with us and others on Spectrum: https://spectrum.chat/twill

About Twill Twill is an open source Laravel package that helps developers rapidly create a custom CMS that is beautiful, powerful, and flexible. By st

AREA 17 3k Jan 6, 2023
A PHP Blogging Platform. Simple and Powerful.

Typecho Blogging Platform Typecho is a PHP Blogging Platform. Simple and Powerful.

Typecho Dev Team 9.6k Jan 1, 2023
PHPDish is a powerful forum system written in PHP. It is based on the Symfony PHP Framework.

PHPDish 是一个基于Symfony框架开发的内容社区系统;得益于大量的前端以及后端的第三方类库的使用使得PHPDish有着高质量的代码,敏捷实现; 你可以使用composer或者直接下载本仓库进行程序的安装,注意切换到tag。

PHPDISH 227 Dec 8, 2022
BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the project website for more information.

BaiCloud-cms About BaiCloud-cms is a powerful open source CMS that allows you to create professional websites and scalable web applications. Visit the

null 5 Aug 15, 2022
Powerful framework for designers and developers to create responsive, fast & robust Joomla based websites and templates.

Astroid Framework Powerful Frontend Template Framework for Joomla CMS Powerful framework for designers and developers to create responsive, fast & rob

JoomBoost 1 Oct 28, 2021
ProcessWire 3.x is a friendly and powerful open source CMS with a strong API.

Welcome to ProcessWire 3.x This document is in Markdown. An HTML formatted version of this document can be read at: https://github.com/processwire/pro

ProcessWire 804 Jan 3, 2023
True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

True Multisite, Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS powered by PHP, Markdown, Twig, and Symfony

null 4 Oct 28, 2022
A simple way to add 301/302 redirects within CraftCMS.

Redirector plugin for Craft CMS 3.x A simple way to add 301/302 redirects within CraftCMS. This is the first CraftCMS plugin written by myself so plea

Jae Toole 1 Nov 25, 2021
Eloquent Filter is a package for filter data of models by the query strings. Easy to use and fully dynamic.

Eloquent Filter Eloquent Filter adds custom filters to your Eloquent Models in Laravel. It's easy to use and fully dynamic. Table of Content Introduct

Mehdi Fathi 327 Dec 28, 2022
The query filter bundle allows you to filter data from QueryBuilder and the Database

The query filter bundle allows you to filter data from QueryBuilder and the Database. you can filter multiple columns at the same time and also you can filter relation fields with two-level deep and without any join in your query builder.

Milad Ghofrani 0 Apr 8, 2022
The query filter bundle allows you to filter data from QueryBuilder and the Database.

The query filter bundle allows you to filter data from QueryBuilder and the Database. you can filter multiple columns at the same time and also you can filter relation fields with two-level deep and without any join in your query builder.

Bugloos 15 Dec 29, 2022
Control all text in multiple file bad words filter with worps

About Worps | PHP! Control all text in multiple file bad words filter with worps If you try online Click What to do use for worps Create new object Wo

null 1 Dec 30, 2021