Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
140 changes: 140 additions & 0 deletions docs/administration/back_office/customize_integrated_help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
---

Check warning on line 1 in docs/administration/back_office/customize_integrated_help.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/customize_integrated_help.md#L1

[Ibexa.ReadingLevel] The grade level is 8.23. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 8.23. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/administration/back_office/customize_integrated_help.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Customize the integrated help menu.
edition: lts-update
month_change: true
---

# Customize integrated help

The integrated help menu is part of the Integrated help introduced as an LTS Update.
By default, it provides editors and developers with convenient access to documentation, training and other resources directly from the back office.

Check warning on line 10 in docs/administration/back_office/customize_integrated_help.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/customize_integrated_help.md#L10

[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.
Raw output
{"message": "[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.", "location": {"path": "docs/administration/back_office/customize_integrated_help.md", "range": {"start": {"line": 10, "column": 1}}}, "severity": "WARNING"}

You can extend or modify the integrated menu in two ways:
- by modifying a link to user documentation in a yaml file
- by subscribing to the `ibexa_integrated_help.menu_configure.help_menu` event

## Modify user documentation link

[[= product_name =]] provides a comfortable method for replacing a link to user documentation, when you do not want to modify the rest of the integrated help menu.
This way you can direct application users such as editors or store managers to specific guidelines in force at your organization, without having to resort to development.

To do in, in `config/packages` create the `ibexa_integrated_help.yaml` file, with the following configuration:

``` yaml
ibexa_integrated_help:
user_documentation: <https://custom.user.documentation.address>
```

## Intercept and modify event

[[= product_name =]] uses [KnpMenuBundle](https://github.com/KnpLabs/KnpMenuBundle) to build its backend menus.
When it builds the integrated help menu, it dispatches the `ibexa_integrated_help.menu_configure.help_menu` event to pass information about the contents of the help menu to the front end.

You can intercept this event, and change its contents by creating a subscriber.
With that subscriber, you can access the `menu` object, which is an instance of the `Knp\Menu\MenuItem`, and all the options passed by this object, and modify them.
This way you can adjust menu sections, add new items, or integrate custom links into the help system.

### Menu object structure

The default `menu` object is structured as follows.
Recreate this pattern when sending a customized event to the front end.

```

Check failure on line 42 in docs/administration/back_office/customize_integrated_help.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/customize_integrated_help.md#L42

[Ibexa.CodeBlockLanguages] Always provide a language with a code block.
Raw output
{"message": "[Ibexa.CodeBlockLanguages] Always provide a language with a code block.", "location": {"path": "docs/administration/back_office/customize_integrated_help.md", "range": {"start": {"line": 42, "column": 1}}}, "severity": "ERROR"}
root (MenuItem)
├── help__general // ("General" section)
│ ├── help__user_documentation // (User docs, highlighted menu option)
│ │ (...)
│ └── help__submit_idea // (Submit idea, regular option)
└── help__developers // (conditional "Developers" section)
├── help__developer_documentation // (Developer docs, highlighted)
│ (...)
└── help__support_portal
```

`help_general` and `help_developers` are menu sections that are reproduced by the front end as tabs.
Tabs consist of entries, and each entry carries the following information:

- `label` - a name of the help menu item
- `uri` - an external link to the resource
- `isHighlighted` - a Boolean switch that decides whether the menu item should be placed at the top of the tab
- `icon` - a link to a graphic file to accompany the menu item
- `description` - a summary of what users can expect after clicking the menu item

### Create a subscriber

Build a subscriber that intercepts the event and modifies it.
In this example, it removes a product roadmap entry from the menu and adds a help menu tab with links to product videos.
The tab is displayed in a production environment only.

``` php
<?php

declare(strict_types=1);

namespace App\EventSubscriber;

use Ibexa\Contracts\AdminUi\Menu\Event\ConfigureMenuEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

final class HelpMenuSubscriber implements EventSubscriberInterface
{
public function __construct(
private readonly bool $kernelDebug
) {}

public static function getSubscribedEvents(): array
{
return [
'ibexa_integrated_help.menu_configure.help_menu' => 'onHelpMenuConfigure',
];
}

public function onHelpMenuConfigure(ConfigureMenuEvent $event): void
{
$menu = $event->getMenu();

// Remove roadmap menu item
if ($menu->getChild('help__general')) {
$generalSection = $menu->getChild('help__general');
if ($generalSection->getChild('help__product_roadmap')) {
$generalSection->removeChild('help__product_roadmap');
}
}

// Add videos tab, shown only in production
if ($this->kernelDebug === false) {
$resourcesSection = $menu->addChild('help__videos', [
'label' => 'Product videos',
]);

$resourcesSection->addChild('help__webinar_v5', [
'label' => 'Webinar: Introducing Ibexa DXP v5',
'uri' => 'https://www.youtube.com/watch?v=qWaBHG2LRm8',
'extras' => [
'isHighlighted' => false,
'icon' => 'https://doc.ibexa.co/en/5.0/templating/twig_function_reference/img/icons/video.svg.png',
'description' => 'Discover new features and improvements brought by Ibexa DXP v5.',
],
]);
}
}
}
```

!!! tip

If `autoconfigure` is enabled, the event subscriber is registered as a service by default.
If not, register it as a service and tag with `kernel.event.subscriber`.

```yaml
services:
App\EventSubscriber\HelpMenuSubscriber:
arguments:
$kernelDebug: '%kernel.debug%'
tags:
- { name: kernel.event_subscriber }
```

For more ideas on how you can extend the help menu, see [Back office menus](back_office_menus.md).
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/administration/back_office/img/about-info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions docs/administration/back_office/integrated_help.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---

Check warning on line 1 in docs/administration/back_office/integrated_help.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/integrated_help.md#L1

[Ibexa.ReadingLevel] The grade level is 11.67. Aim for 8th grade or lower by using shorter sentences and words.
Raw output
{"message": "[Ibexa.ReadingLevel] The grade level is 11.67. Aim for 8th grade or lower by using shorter sentences and words.", "location": {"path": "docs/administration/back_office/integrated_help.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "WARNING"}
description: Integrated help provides quick access to documentation, training, and support resources.
month_change: true
---

# Integrated help

Integrated help is an LTS Update that brings documentation, training resources and product roadmap-related information into the back office.
With this feature installed, users can click the ![Help icon](about-info.png){.inline-image} icon to access relevant content straight from the UI.

![Integrated help menu](5_0_integrated_help_menu.png)

Integrated help is contextual, therefore, apart from user documentation, release notes, and partner guidelines, which are available to editors and store managers, developers can access API references, the GraphQL console, or the support portal.

Check warning on line 13 in docs/administration/back_office/integrated_help.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/integrated_help.md#L13

[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.
Raw output
{"message": "[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.", "location": {"path": "docs/administration/back_office/integrated_help.md", "range": {"start": {"line": 13, "column": 1}}}, "severity": "WARNING"}

## Install package

Integrated help is optional.

Check warning on line 17 in docs/administration/back_office/integrated_help.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/administration/back_office/integrated_help.md#L17

[Ibexa.EOLWhitespace] Remove whitespace characters from the end of the line.
Raw output
{"message": "[Ibexa.EOLWhitespace] Remove whitespace characters from the end of the line.", "location": {"path": "docs/administration/back_office/integrated_help.md", "range": {"start": {"line": 17, "column": 29}}}, "severity": "WARNING"}
To enable it, run the following command:

```bash
composer require ibexa/integrated-help
```

## Customize help menu

You can extend or alter the integrated help menu by quickly changing the link to user documentation, or adding or removing menu items or even entire menu sections.

For more information, see [Customize integrated help](customize_integrated_help.md).
11 changes: 10 additions & 1 deletion docs/ibexa_products/editions.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,13 @@ Compare all features available in [[= product_name_headless =]], [[= product_nam
| [Storefront](storefront.md) | | | &#10004; |
| [Transactional emails](transactional_emails.md) | | | &#10004; |
| [Discounts](discounts.md) | | | &#10004; |
| [Symbol attribute type](symbol_attribute_type.md) | &#10004; | &#10004; | &#10004; |
| [Symbol attribute type](symbol_attribute_type.md) | &#10004; | &#10004; | &#10004; |

## LTS Updates

LTS Updates are opt-in packages that bring additional features to the [LTS releases](release_process_and_roadmap.md#long-term-support-releases) that they enhance.
The features brought by LTS Updates become standard parts of the next LTS release.

| Feature | [[= product_name_headless =]] | [[= product_name_exp =]] | [[= product_name_com =]] |
|-----------------|-----------------|-----------------|-----------------|
| [Integrated help](integrated_help.md) | &#10004; | &#10004; | &#10004; |
13 changes: 13 additions & 0 deletions docs/release_notes/ibexa_dxp_v5.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,19 @@

[[% set version = 'v5.0.2' %]]

[[= release_note_entry_begin("Integrated help", '2024-10-20', ['Headless', 'Experience', 'Commerce', 'LTS Update', 'New feature']) =]]

The Integrated help [LTS update](editions.md#lts-updates) brings contextual documentation, guidance, and partner-specific resources right into the [[= product_name =]]'s user interface.
It helps editors, store managers and developers alike quickly access relevant content, training and resources without leaving the UI, which bridges the gap between product and documentation.

Check warning on line 18 in docs/release_notes/ibexa_dxp_v5.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release_notes/ibexa_dxp_v5.0.md#L18

[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.
Raw output
{"message": "[Ibexa.OxfordComma] Use a comma before the last 'and' or 'or' in a list of four or more items.", "location": {"path": "docs/release_notes/ibexa_dxp_v5.0.md", "range": {"start": {"line": 18, "column": 1}}}, "severity": "WARNING"}

The default help menu can be modified th include links to internal editorial guidelines, custom tutorials, or support pages.

![Integrated help menu](../administration/back_office/img/5_0_integrated_help_menu.png)

For more information, see [Integrated help](integrated_help.md).

[[= release_note_entry_end() =]]

[[= release_note_entry_begin("Ibexa DXP " + version, '2025-09-09', ['Headless', 'Experience', 'Commerce', 'New feature']) =]]

#### Collaboration
Expand Down
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@ nav:
- Multi-file upload: administration/back_office/multifile_upload.md
- Sub-items list: administration/back_office/subitems_list.md
- Notifications: administration/back_office/notifications.md
- Integrated help:
- Integrated help: administration/back_office/integrated_help.md
- Customize integrated help: administration/back_office/customize_integrated_help.md
- Customize search:
- Customize search suggestion: administration/back_office/customize_search_suggestion.md
- Customize search sorting: administration/back_office/customize_search_sorting.md
Expand Down
Loading