function help_post_update_help_topics_search

Install or update config for help topics if the search module installed.

File

core/modules/help/help.post_update.php, line 15

Code

function help_post_update_help_topics_search() {
    $module_handler = \Drupal::moduleHandler();
    if (!$module_handler->moduleExists('search')) {
        // No dependencies to update or install.
        return;
    }
    if ($module_handler->moduleExists('help_topics')) {
        if ($page = SearchPage::load('help_search')) {
            // Resave to update module dependency.
            $page->save();
        }
    }
    else {
        $factory = \Drupal::configFactory();
        // Install optional config for the search page.
        $config = $factory->getEditable('search.page.help_search');
        $config->setData([
            'langcode' => 'en',
            'status' => TRUE,
            'dependencies' => [
                'module' => [
                    'help',
                ],
            ],
            'id' => 'help_search',
            'label' => 'Help',
            'path' => 'help',
            'weight' => 0,
            'plugin' => 'help_search',
            'configuration' => [],
        ])
            ->save(TRUE);
        if (\Drupal::service('theme_handler')->themeExists('claro') && $factory->get('block.block.claro_help_search')
            ->isNew()) {
            // Optional block only if it's not created manually earlier.
            $config = $factory->getEditable('block.block.claro_help_search');
            $config->setData([
                'langcode' => 'en',
                'status' => TRUE,
                'dependencies' => [
                    'module' => [
                        'search',
                        'system',
                    ],
                    'theme' => [
                        'claro',
                    ],
                    'enforced' => [
                        'config' => [
                            'search.page.help_search',
                        ],
                    ],
                ],
                'id' => 'claro_help_search',
                'theme' => 'claro',
                'region' => 'help',
                'weight' => -4,
                'provider' => NULL,
                'plugin' => 'search_form_block',
                'settings' => [
                    'id' => 'search_form_block',
                    'label' => 'Search help',
                    'label_display' => 'visible',
                    'provider' => 'search',
                    'page_id' => 'help_search',
                ],
                'visibility' => [
                    'request_path' => [
                        'id' => 'request_path',
                        'negate' => FALSE,
                        'context_mapping' => [],
                        'pages' => '/admin/help',
                    ],
                ],
            ])
                ->save(TRUE);
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.