Mercurial > hg > cmmr2012-drupal-site
diff core/modules/settings_tray/settings_tray.api.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/settings_tray/settings_tray.api.php Thu Jul 05 14:24:15 2018 +0000 @@ -0,0 +1,80 @@ +<?php + +/** + * @file + * Documentation for Settings Tray API. + */ + +/** + * @defgroup settings_tray Settings Tray API + * @{ + * Settings Tray API + * + * @section sec_overview Overview and terminology + * + * The Settings Tray module allows blocks to be configured in a sidebar form + * without leaving the page. For example: + * + * - For every block, one can configure whether to display the block title or + * not, and optionally override it (block configuration). + * - For menu blocks, one can configure which menu levels to display (block + * configuration) but also the menu itself (menu configuration). + * - For the site branding block, one can change which branding elements to + * display (block configuration), but also the site name and slogan (simple + * configuration). + * + * Block visibility conditions are not included the sidebar form. + * + * @section sec_api The API: the form in the Settings Tray + * + * By default, the Settings Tray shows any block's built-in form in the + * off-canvas dialog. + * + * @see core/misc/dialog/off-canvas.es6.js + * + * However, many blocks would benefit from a tailored form which either: + * - limits the form items displayed in the Settings Tray to only items that + * affect the content of the rendered block + * - adds additional form items to edit configuration that is rendered by the + * block. See \Drupal\settings_tray\Form\SystemBrandingOffCanvasForm which + * adds site name and slogan configuration. + * + * These can be used to provide a better experience, so that the Settings Tray + * only displays what the user will expect to change when editing the block. + * + * Each block plugin can specify which form to use in the Settings Tray dialog + * in its plugin annotation: + * @code + * forms = { + * "settings_tray" = "\Drupal\some_module\Form\MyBlockOffCanvasForm", + * }, + * @endcode + * + * In some cases, a block's content is not configurable (for example, the title, + * main content, and help blocks). Such blocks can opt out of providing a + * settings_tray form: + * @code + * forms = { + * "settings_tray" = FALSE, + * }, + * @endcode + * + * Finally, blocks that do not specify a settings_tray form using the annotation + * above will automatically have it set to their plugin class. For example, the + * "Powered by Drupal" block plugin + * (\Drupal\system\Plugin\Block\SystemPoweredByBlock) automatically gets this + * added to its annotation: + * @code + * forms = { + * "settings_tray" = "\Drupal\system\Plugin\Block\SystemPoweredByBlock", + * }, + * @endcode + * + * Therefore, the entire Settings Tray API is just this annotation: it controls + * what the Settings Tray does for a given block. + * + * @see settings_tray_block_alter() + * @see \Drupal\Tests\settings_tray\Functional\SettingsTrayBlockTest::testPossibleAnnotations() + * + * @} + */