public function Attribute::addClass

public Attribute::addClass()

Adds classes or merges them on to array of existing CSS classes.

Parameters

string|array ...: CSS classes to add to the class attribute array.

Return value

$this

File

core/lib/Drupal/Core/Template/Attribute.php, line 170

Class

Attribute
Collects, sanitizes, and renders HTML attributes.

Namespace

Drupal\Core\Template

Code

public function addClass() {
  $args = func_get_args();
  if ($args) {
    $classes = array();
    foreach ($args as $arg) {
      // Merge the values passed in from the classes array.
      // The argument is cast to an array to support comma separated single
      // values or one or more array arguments.
      $classes = array_merge($classes, (array) $arg);
    }

    // Merge if there are values, just add them otherwise.
    if (isset($this->storage['class']) && $this->storage['class'] instanceof AttributeArray) {
      // Merge the values passed in from the class value array.
      $classes = array_merge($this->storage['class']->value(), $classes);
      $this->storage['class']->exchangeArray($classes);
    }
    else {
      $this->offsetSet('class', $classes);
    }
  }

  return $this;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Template!Attribute.php/function/Attribute::addClass/8.1.x