# KnowledgebaseEvent events

> 23 FeatherPanel plugin events on KnowledgebaseEvent (23 emitted by the core): the event names, the arguments each listener gets, where they fire and a PHP listener for each.

Source: https://featherpanel.com/docs/plugins/events/knowledgebase/

Part of the [plugin events reference](https://featherpanel.com/docs/plugins/events/). Listeners get the payload values as positional arguments in the order shown, cannot cancel the action, and must catch their own exceptions.

## Setup

Import `KnowledgebaseEvent` in your entry class and register listeners in `processEvents()`:

```php
<?php

namespace App\Addons\myplugin;

use App\App;
use App\Plugins\AppPlugin;
use App\Plugins\PluginEvents;
use App\Plugins\Events\Events\KnowledgebaseEvent;

class MyPlugin implements AppPlugin
{
    public static function processEvents(PluginEvents $event): void
    {
        $event->on(KnowledgebaseEvent::onKnowledgebaseArticleCreated(), function ($article, $createdBy): void {
            App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:article:created ' . json_encode(['article' => $article, 'created_by' => $createdBy]));
        });
    }

    public static function pluginInstall(): void
    {
    }

    public static function pluginUninstall(): void
    {
    }
}
```

## `KnowledgebaseEvent::onKnowledgebaseArticleCreated()`

- Name: `featherpanel:admin:knowledgebase:article:created`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L87)

Docblock: array article, array created\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `created_by` | `$createdBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::articlesCreate`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L903)[`PUT /api/admin/knowledgebase/articles`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#put-admin-knowledgebase-articles)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseArticleCreated(), function ($article, $createdBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:article:created ' . json_encode(['article' => $article, 'created_by' => $createdBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseArticleDeleted()`

- Name: `featherpanel:admin:knowledgebase:article:deleted`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L103)

Docblock: array article, array deleted\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `deleted_by` | `$deletedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::articlesDelete`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1112)[`DELETE /api/admin/knowledgebase/articles/{id}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#delete-admin-knowledgebase-articles-id)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseArticleDeleted(), function ($article, $deletedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:article:deleted ' . json_encode(['article' => $article, 'deleted_by' => $deletedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseArticleRetrieved()`

- Name: `featherpanel:admin:knowledgebase:article:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L79)

Docblock: array article.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::articlesShow`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L779)[`GET /api/admin/knowledgebase/articles/{id}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#get-admin-knowledgebase-articles-id)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseArticleRetrieved(), function ($article): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:article:retrieved ' . json_encode(['article' => $article]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseArticleUpdated()`

- Name: `featherpanel:admin:knowledgebase:article:updated`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L95)

Docblock: array article, array updated\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `updated_by` | `$updatedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::articlesUpdate`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1045)[`PATCH /api/admin/knowledgebase/articles/{id}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#patch-admin-knowledgebase-articles-id)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseArticleUpdated(), function ($article, $updatedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:article:updated ' . json_encode(['article' => $article, 'updated_by' => $updatedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseArticlesReordered()`

- Name: `featherpanel:admin:knowledgebase:articles:reordered`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L111)

Docblock: array articles, array reordered\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `articles` | `$articles` | `array` |
| 2 | `reordered_by` | `$reorderedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::articlesReorder`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1197)[`POST /api/admin/knowledgebase/articles/reorder`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#post-admin-knowledgebase-articles-reorder)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseArticlesReordered(), function ($articles, $reorderedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:articles:reordered ' . json_encode(['articles' => $articles, 'reordered_by' => $reorderedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseArticlesRetrieved()`

- Name: `featherpanel:admin:knowledgebase:articles:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L71)

Docblock: array articles, array pagination, array search.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `articles` | `$articles` | `array`from docblock |
| 2 | `pagination` | `$pagination` | `array` |
| 3 | `search` | `$search` | `array` |

When it fires (1 site)

-   [`KnowledgebaseController::articlesIndex`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L730)[`GET /api/admin/knowledgebase/articles`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#get-admin-knowledgebase-articles)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseArticlesRetrieved(), function ($articles, $pagination, $search): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:articles:retrieved ' . json_encode(['articles' => $articles, 'pagination' => $pagination, 'search' => $search]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseAttachmentDeleted()`

- Name: `featherpanel:admin:knowledgebase:attachment:deleted`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L145)

Docblock: array article, array attachment, array deleted\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `attachment` | `$attachment` | `array`from docblock |
| 3 | `deleted_by` | `$deletedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::deleteAttachment`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1703)[`DELETE /api/admin/knowledgebase/articles/{id}/attachments/{attachmentId}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#delete-admin-knowledgebase-articles-id-attachments-attachmentId)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseAttachmentDeleted(), function ($article, $attachment, $deletedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:attachment:deleted ' . json_encode(['article' => $article, 'attachment' => $attachment, 'deleted_by' => $deletedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseAttachmentUploaded()`

- Name: `featherpanel:admin:knowledgebase:attachment:uploaded`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L129)

Docblock: array article, array attachment, array uploaded\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `attachment` | `$attachment` | `array`from docblock |
| 3 | `uploaded_by` | `$uploadedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::uploadAttachment`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1549)[`POST /api/admin/knowledgebase/articles/{id}/upload-attachment`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#post-admin-knowledgebase-articles-id-upload-attachment)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseAttachmentUploaded(), function ($article, $attachment, $uploadedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:attachment:uploaded ' . json_encode(['article' => $article, 'attachment' => $attachment, 'uploaded_by' => $uploadedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseAttachmentsRetrieved()`

- Name: `featherpanel:admin:knowledgebase:attachments:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L137)

Docblock: array article, array attachments.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `attachments` | `$attachments` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::getAttachments`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1606)[`GET /api/admin/knowledgebase/articles/{id}/attachments`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#get-admin-knowledgebase-articles-id-attachments)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseAttachmentsRetrieved(), function ($article, $attachments): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:attachments:retrieved ' . json_encode(['article' => $article, 'attachments' => $attachments]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseCategoriesRetrieved()`

- Name: `featherpanel:admin:knowledgebase:categories:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L29)

Docblock: array categories, array pagination, array search.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `categories` | `$categories` | `array`from docblock |
| 2 | `pagination` | `$pagination` | `array` |
| 3 | `search` | `$search` | `array` |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesIndex`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L254)[`GET /api/admin/knowledgebase/categories`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#get-admin-knowledgebase-categories)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseCategoriesRetrieved(), function ($categories, $pagination, $search): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:categories:retrieved ' . json_encode(['categories' => $categories, 'pagination' => $pagination, 'search' => $search]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseCategoryCreated()`

- Name: `featherpanel:admin:knowledgebase:category:created`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L45)

Docblock: array category, array created\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `category` | `$category` | `array`from docblock |
| 2 | `created_by` | `$createdBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesCreate`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L415)[`PUT /api/admin/knowledgebase/categories`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#put-admin-knowledgebase-categories)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseCategoryCreated(), function ($category, $createdBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:category:created ' . json_encode(['category' => $category, 'created_by' => $createdBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseCategoryDeleted()`

- Name: `featherpanel:admin:knowledgebase:category:deleted`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L61)

Docblock: array category, array deleted\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `category` | `$category` | `array`from docblock |
| 2 | `deleted_by` | `$deletedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesDelete`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L598)[`DELETE /api/admin/knowledgebase/categories/{id}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#delete-admin-knowledgebase-categories-id)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseCategoryDeleted(), function ($category, $deletedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:category:deleted ' . json_encode(['category' => $category, 'deleted_by' => $deletedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseCategoryRetrieved()`

- Name: `featherpanel:admin:knowledgebase:category:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L37)

Docblock: array category.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `category` | `$category` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesShow`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L303)[`GET /api/admin/knowledgebase/categories/{id}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#get-admin-knowledgebase-categories-id)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseCategoryRetrieved(), function ($category): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:category:retrieved ' . json_encode(['category' => $category]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseCategoryUpdated()`

- Name: `featherpanel:admin:knowledgebase:category:updated`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L53)

Docblock: array category, array updated\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `category` | `$category` | `array`from docblock |
| 2 | `updated_by` | `$updatedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesUpdate`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L531)[`PATCH /api/admin/knowledgebase/categories/{id}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#patch-admin-knowledgebase-categories-id)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseCategoryUpdated(), function ($category, $updatedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:category:updated ' . json_encode(['category' => $category, 'updated_by' => $updatedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseIconUploaded()`

- Name: `featherpanel:admin:knowledgebase:icon:uploaded`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L121)

Docblock: string filename, string url, array uploaded\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `url` | `$url` | `string`from docblock |
| 2 | `filename` | `$filename` | `string`from docblock |
| 3 | `uploaded_by` | `$uploadedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::uploadIcon`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1305)[`POST /api/admin/knowledgebase/upload-icon`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#post-admin-knowledgebase-upload-icon)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseIconUploaded(), function ($url, $filename, $uploadedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:icon:uploaded ' . json_encode(['url' => $url, 'filename' => $filename, 'uploaded_by' => $uploadedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseTagCreated()`

- Name: `featherpanel:admin:knowledgebase:tag:created`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L163)

Docblock: array article, array tag, array created\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `tag` | `$tag` | `array`from docblock |
| 3 | `created_by` | `$createdBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::createTag`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1863)[`POST /api/admin/knowledgebase/articles/{id}/tags`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#post-admin-knowledgebase-articles-id-tags)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseTagCreated(), function ($article, $tag, $createdBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:tag:created ' . json_encode(['article' => $article, 'tag' => $tag, 'created_by' => $createdBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseTagDeleted()`

- Name: `featherpanel:admin:knowledgebase:tag:deleted`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L171)

Docblock: array article, array tag, array deleted\_by.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `tag` | `$tag` | `array`from docblock |
| 3 | `deleted_by` | `$deletedBy` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::deleteTag`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1948)[`DELETE /api/admin/knowledgebase/articles/{id}/tags/{tagId}`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#delete-admin-knowledgebase-articles-id-tags-tagId)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseTagDeleted(), function ($article, $tag, $deletedBy): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:tag:deleted ' . json_encode(['article' => $article, 'tag' => $tag, 'deleted_by' => $deletedBy]));
});
```

## `KnowledgebaseEvent::onKnowledgebaseTagsRetrieved()`

- Name: `featherpanel:admin:knowledgebase:tags:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L155)

Docblock: array article, array tags.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `tags` | `$tags` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::getTags`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/Admin/KnowledgebaseController.php#L1760)[`GET /api/admin/knowledgebase/articles/{id}/tags`](https://featherpanel.com/docs/api/reference/admin/knowledgebase/#get-admin-knowledgebase-articles-id-tags)

```php
$event->on(KnowledgebaseEvent::onKnowledgebaseTagsRetrieved(), function ($article, $tags): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:admin:knowledgebase:tags:retrieved ' . json_encode(['article' => $article, 'tags' => $tags]));
});
```

## `KnowledgebaseEvent::onUserKnowledgebaseArticleRetrieved()`

- Name: `featherpanel:user:knowledgebase:article:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L205)

Docblock: array article, array attachments, array tags, array|null user.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `article` | `$article` | `array`from docblock |
| 2 | `attachments` | `$attachments` | `array`from docblock |
| 3 | `tags` | `$tags` | `array`from docblock |
| 4 | `user` | `$user` | `array|null`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::articlesShow`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/User/KnowledgebaseController.php#L206)[`GET /api/knowledgebase/articles/{id}`](https://featherpanel.com/docs/api/reference/system/knowledgebase/#get-knowledgebase-articles-id), [`GET /api/user/knowledgebase/articles/{id}`](https://featherpanel.com/docs/api/reference/user/knowledgebase/#get-user-knowledgebase-articles-id)

```php
$event->on(KnowledgebaseEvent::onUserKnowledgebaseArticleRetrieved(), function ($article, $attachments, $tags, $user): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:user:knowledgebase:article:retrieved ' . json_encode(['article' => $article, 'attachments' => $attachments, 'tags' => $tags, 'user' => $user]));
});
```

## `KnowledgebaseEvent::onUserKnowledgebaseArticlesRetrieved()`

- Name: `featherpanel:user:knowledgebase:articles:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L197)

Docblock: array articles, array pagination.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `articles` | `$articles` | `array`from docblock |
| 2 | `pagination` | `$pagination` | `array` |

When it fires (1 site)

-   [`KnowledgebaseController::articlesIndex`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/User/KnowledgebaseController.php#L163)[`GET /api/knowledgebase/articles`](https://featherpanel.com/docs/api/reference/system/knowledgebase/#get-knowledgebase-articles), [`GET /api/user/knowledgebase/articles`](https://featherpanel.com/docs/api/reference/user/knowledgebase/#get-user-knowledgebase-articles)

```php
$event->on(KnowledgebaseEvent::onUserKnowledgebaseArticlesRetrieved(), function ($articles, $pagination): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:user:knowledgebase:articles:retrieved ' . json_encode(['articles' => $articles, 'pagination' => $pagination]));
});
```

## `KnowledgebaseEvent::onUserKnowledgebaseCategoriesRetrieved()`

- Name: `featherpanel:user:knowledgebase:categories:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L181)

Docblock: array categories, array pagination.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `categories` | `$categories` | `array`from docblock |
| 2 | `pagination` | `$pagination` | `array` |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesIndex`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/User/KnowledgebaseController.php#L79)[`GET /api/knowledgebase/categories`](https://featherpanel.com/docs/api/reference/system/knowledgebase/#get-knowledgebase-categories), [`GET /api/user/knowledgebase/categories`](https://featherpanel.com/docs/api/reference/user/knowledgebase/#get-user-knowledgebase-categories)

```php
$event->on(KnowledgebaseEvent::onUserKnowledgebaseCategoriesRetrieved(), function ($categories, $pagination): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:user:knowledgebase:categories:retrieved ' . json_encode(['categories' => $categories, 'pagination' => $pagination]));
});
```

## `KnowledgebaseEvent::onUserKnowledgebaseCategoryArticlesRetrieved()`

- Name: `featherpanel:user:knowledgebase:category:articles:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L213)

Docblock: array category, array articles, array pagination.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `category` | `$category` | `array`from docblock |
| 2 | `articles` | `$articles` | `array`from docblock |
| 3 | `pagination` | `$pagination` | `array` |

When it fires (1 site)

-   [`KnowledgebaseController::categoryArticles`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/User/KnowledgebaseController.php#L282)[`GET /api/knowledgebase/categories/{id}/articles`](https://featherpanel.com/docs/api/reference/system/knowledgebase/#get-knowledgebase-categories-id-articles), [`GET /api/user/knowledgebase/categories/{id}/articles`](https://featherpanel.com/docs/api/reference/user/knowledgebase/#get-user-knowledgebase-categories-id-articles)

```php
$event->on(KnowledgebaseEvent::onUserKnowledgebaseCategoryArticlesRetrieved(), function ($category, $articles, $pagination): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:user:knowledgebase:category:articles:retrieved ' . json_encode(['category' => $category, 'articles' => $articles, 'pagination' => $pagination]));
});
```

## `KnowledgebaseEvent::onUserKnowledgebaseCategoryRetrieved()`

- Name: `featherpanel:user:knowledgebase:category:retrieved`
- emitted at 1 site
- Cancel or modify: no
- [definition](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Plugins/Events/Events/KnowledgebaseEvent.php#L189)

Docblock: array category.

| # | Payload key | Listener parameter | Type |
| --- | --- | --- | --- |
| 1 | `category` | `$category` | `array`from docblock |

When it fires (1 site)

-   [`KnowledgebaseController::categoriesShow`](https://github.com/MythicalLTD/FeatherPanel/blob/15b94e9fc9df233123706b47c42728b81e48cb3d/backend/app/Controllers/User/KnowledgebaseController.php#L102)[`GET /api/knowledgebase/categories/{id}`](https://featherpanel.com/docs/api/reference/system/knowledgebase/#get-knowledgebase-categories-id), [`GET /api/user/knowledgebase/categories/{id}`](https://featherpanel.com/docs/api/reference/user/knowledgebase/#get-user-knowledgebase-categories-id)

```php
$event->on(KnowledgebaseEvent::onUserKnowledgebaseCategoryRetrieved(), function ($category): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:user:knowledgebase:category:retrieved ' . json_encode(['category' => $category]));
});
```
