You are here

class TwigExtension in Menus attribute 8

TwigExtension class returns menus attribute for each menu item and link.

Hierarchy

  • class \Drupal\menus_attribute\Template\TwigExtension extends \Drupal\menus_attribute\Template\Twig_Extension

Expanded class hierarchy of TwigExtension

1 string reference to 'TwigExtension'
menus_attribute.services.yml in ./menus_attribute.services.yml
menus_attribute.services.yml
1 service uses TwigExtension
menus_attribute.twig.TwigExtension in ./menus_attribute.services.yml
Drupal\menus_attribute\Template\TwigExtension

File

src/Template/TwigExtension.php, line 10

Namespace

Drupal\menus_attribute\Template
View source
class TwigExtension extends \Twig_Extension {

  /**
   * In this function we define a twig extension name.
   */
  public function getName() {
    return 'menus_attribute';
  }

  /**
   * In this function we can declare the extension function.
   */
  public function getFunctions() {
    return [
      new \Twig_SimpleFunction('menus_attribute', [
        $this,
        'menusAttribute',
      ]),
      new \Twig_SimpleFunction('test_menu', [
        $this,
        'test',
      ]),
    ];
  }

  /**
   * Returns added attributes for list.
   */
  public function menusAttribute($plugin_id) {
    $instance = StorageHelper::instance();
    $attributes = NULL;
    if ($instance
      ->exists($plugin_id)) {
      $data = $instance
        ->getData($plugin_id);
      if ($data->link_id) {
        $attributes['link']['id'] = $data->link_id;
      }
      if ($data->link_name) {
        $attributes['link']['name'] = $data->link_name;
      }
      if ($data->link_title) {
        $attributes['link']['title'] = $data->link_title;
      }
      if ($data->link_rel) {
        $attributes['link']['rel'] = $data->link_rel;
      }
      if ($data->link_classes) {
        $attributes['link']['class'] = $data->link_classes;
      }
      if ($data->link_style) {
        $attributes['link']['style'] = $data->link_style;
      }
      if ($data->link_target) {
        $attributes['link']['target'] = $data->link_target;
      }
      if ($data->link_accesskey) {
        $attributes['link']['accesskey'] = $data->link_accesskey;
      }
      if ($data->item_id) {
        $attributes['item']['id'] = $data->item_id;
      }
      if ($data->item_classes) {
        $attributes['item']['class'] = $data->item_classes;
      }
      if ($data->item_style) {
        $attributes['item']['style'] = $data->item_style;
      }
    }
    return $attributes;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TwigExtension::getFunctions public function In this function we can declare the extension function.
TwigExtension::getName public function In this function we define a twig extension name.
TwigExtension::menusAttribute public function Returns added attributes for list.