Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Layout.php

class Layout

Same name in this branch
  1. 11.1.x core/lib/Drupal/Core/Layout/Attribute/Layout.php \Drupal\Core\Layout\Attribute\Layout

Defines a Layout annotation object.

Layouts are used to define a list of regions and then output render arrays in each of the regions, usually using a template.

Plugin namespace: Plugin\Layout

Hierarchy

  • class \Drupal\Component\Annotation\Plugin implements \Drupal\Component\Annotation\AnnotationInterface
    • class \Drupal\Core\Layout\Annotation\Layout extends \Drupal\Component\Annotation\Plugin

Expanded class hierarchy of Layout

See also

\Drupal\Core\Layout\LayoutInterface

\Drupal\Core\Layout\LayoutDefault

\Drupal\Core\Layout\LayoutPluginManager

Plugin API

Related topics

Annotations
Annotations for class discovery and metadata description.
10 string references to 'Layout'
field.field.node.article.layout_builder__layout.yml in core/profiles/demo_umami/config/install/field.field.node.article.layout_builder__layout.yml
core/profiles/demo_umami/config/install/field.field.node.article.layout_builder__layout.yml
field.field.node.page.layout_builder__layout.yml in core/profiles/demo_umami/config/install/field.field.node.page.layout_builder__layout.yml
core/profiles/demo_umami/config/install/field.field.node.page.layout_builder__layout.yml
field.field.node.recipe.layout_builder__layout.yml in core/profiles/demo_umami/config/install/field.field.node.recipe.layout_builder__layout.yml
core/profiles/demo_umami/config/install/field.field.node.recipe.layout_builder__layout.yml
LayoutBuilderEntityViewDisplay::addSectionField in core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php
Adds a layout section field to a given bundle.
LayoutBuilderEntityViewDisplayForm::copyFormValuesToEntity in core/modules/layout_builder/src/Form/LayoutBuilderEntityViewDisplayForm.php
Copies top-level form values to entity properties.

... See full list

File

core/lib/Drupal/Core/Layout/Annotation/Layout.php, line 24

Namespace

Drupal\Core\Layout\Annotation
View source
class Layout extends Plugin {
    
    /**
     * The plugin ID.
     *
     * @var string
     */
    public $id;
    
    /**
     * The human-readable name.
     *
     * @var string
     *
     * @ingroup plugin_translatable
     */
    public $label;
    
    /**
     * A description for advanced layouts.
     *
     * This property is optional and it does not need to be declared.
     *
     * Sometimes layouts are so complex that the name is insufficient to describe
     * a layout such that a visually impaired administrator could layout a page
     * for a non-visually impaired audience. If specified, it will provide a
     * description that is used for accessibility purposes.
     *
     * @var string
     *
     * @ingroup plugin_translatable
     */
    public $description;
    
    /**
     * The human-readable category.
     *
     * @var string
     *
     * @see \Drupal\Component\Plugin\CategorizingPluginManagerInterface
     *
     * @ingroup plugin_translatable
     */
    public $category;
    
    /**
     * The template file to render this layout (relative to the 'path' given).
     *
     * This property is optional and it does not need to be declared.
     *
     * If specified, then the layout_discovery module will register the template
     * with hook_theme() and the module or theme registering this layout does not
     * need to do it.
     *
     * @var string
     *
     * @see hook_theme()
     */
    public $template;
    
    /**
     * The theme hook used to render this layout.
     *
     * This property is optional and it does not need to be declared.
     *
     * If specified, it's assumed that the module or theme registering this layout
     * will also register the theme hook with hook_theme() itself. This is
     * mutually exclusive with 'template' - you can't specify both.
     *
     * @var string
     *
     * @see hook_theme()
     */
    public $theme_hook = 'layout';
    
    /**
     * Path (relative to the module or theme) to resources like icon or template.
     *
     * This property is optional and it does not need to be declared.
     *
     * @var string
     */
    public $path;
    
    /**
     * The asset library.
     *
     * This property is optional and it does not need to be declared.
     *
     * @var string
     */
    public $library;
    
    /**
     * The path to the preview image (relative to the 'path' given).
     *
     * This property is optional and it does not need to be declared.
     *
     * @var string
     */
    public $icon;
    
    /**
     * The icon map.
     *
     * This property is optional and it does not need to be declared.
     *
     * @var string[][]
     *
     * @see \Drupal\Core\Layout\Icon\IconBuilderInterface::build()
     */
    public $icon_map;
    
    /**
     * An associative array of regions in this layout.
     *
     * The key of the array is the machine name of the region, and the value is
     * an associative array with the following keys:
     * - label: (string) The human-readable name of the region.
     *
     * Any remaining keys may have special meaning for the given layout plugin,
     * but are undefined here.
     *
     * @var array
     */
    public $regions = [];
    
    /**
     * The default region.
     *
     * @var string
     */
    public $default_region;
    
    /**
     * The layout plugin class.
     *
     * This default value is used for plugins defined in layouts.yml that do not
     * specify a class themselves.
     *
     * @var string
     */
    public $class = LayoutDefault::class;
    
    /**
     * {@inheritdoc}
     */
    public function get() {
        return new LayoutDefinition($this->definition);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Layout::$category public property The human-readable category.
Layout::$class public property The layout plugin class.
Layout::$default_region public property The default region.
Layout::$description public property A description for advanced layouts.
Layout::$icon public property The path to the preview image (relative to the 'path' given).
Layout::$icon_map public property The icon map.
Layout::$id public property The plugin ID.
Layout::$label public property The human-readable name.
Layout::$library public property The asset library.
Layout::$path public property Path (relative to the module or theme) to resources like icon or template.
Layout::$regions public property An associative array of regions in this layout.
Layout::$template public property The template file to render this layout (relative to the 'path' given).
Layout::$theme_hook public property The theme hook used to render this layout.
Layout::get public function Gets the value of an annotation. Overrides Plugin::get
Plugin::$definition protected property The plugin definition read from the class annotation. 1
Plugin::getClass public function Gets the class of the annotated class. Overrides AnnotationInterface::getClass 1
Plugin::getId public function Gets the unique ID for this annotated class. Overrides AnnotationInterface::getId
Plugin::getProvider public function Gets the name of the provider of the annotated class. Overrides AnnotationInterface::getProvider 1
Plugin::parse protected function Parses an annotation into its definition.
Plugin::setClass public function Sets the class of the annotated class. Overrides AnnotationInterface::setClass 1
Plugin::setProvider public function Sets the name of the provider of the annotated class. Overrides AnnotationInterface::setProvider
Plugin::__construct public function Constructs a Plugin object. 3
RSS feed
Powered by Drupal