1.20.x views.module _views_tokenized_clean_css_identifier($class, $plugin, $row_index)

Cleans a CSS identifier, taking into account views tokenization.

Parameters

sring $class: A single CSS class, as entered into the Views user interface.

object $plugin: The complete view plugin object for tokenization.

string $row_index: The index indicating the row of the view.

Return value

string $class: A sanitized clean css identifier with tokens replaced.

File

modules/views/views.module, line 2232
Primarily Backdrop hooks and global API functions to manipulate views.

Code

function _views_tokenized_clean_css_identifier($class, $plugin, $row_index) {
  if (!empty($class)) {
    // To support a class that is part hand-typed and part token, split out tokens.
    $subclasses = preg_split('/(\[[^\]]*])/i', $class, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
    foreach ($subclasses as &$subclass) {
      $tokenized = $plugin->tokenize_value($subclass, $row_index);
      if ($tokenized == $subclass) {
        // No token replacement, all valid CSS characters allowed.
        $subclass = backdrop_clean_css_identifier($tokenized, array());
      }
      else {
        // Tokens that are replaced should be additionally sanitized, such
        // as replacing underscores with hyphens.
        $subclass = backdrop_clean_css_identifier($tokenized);
      }
      $class = implode('', $subclasses);
    }
    return $class;
  }
}