You are here

protected function Pinterest::matchRegexp in Media entity Pinterest 8

Runs preg_match on embed code/URL.

Parameters

\Drupal\media_entity\MediaInterface $media: Media object.

Return value

array|bool Array of preg matches or FALSE if no match.

See also

preg_match()

1 call to Pinterest::matchRegexp()
Pinterest::getField in src/Plugin/MediaEntity/Type/Pinterest.php
Gets a media-related field/value.

File

src/Plugin/MediaEntity/Type/Pinterest.php, line 240

Class

Pinterest
Provides media type plugin for Pinterest.

Namespace

Drupal\media_entity_pinterest\Plugin\MediaEntity\Type

Code

protected function matchRegexp(MediaInterface $media) {
  $matches = [];
  if (isset($this->configuration['source_field'])) {
    $source_field = $this->configuration['source_field'];
    if ($media
      ->hasField($source_field)) {
      $property_name = $media->{$source_field}
        ->first()
        ->mainPropertyName();
      foreach (static::$validationRegexp as $pattern => $key) {

        // URLs will sometimes have urlencoding, so we decode for matching.
        if (preg_match($pattern, urldecode($media->{$source_field}->{$property_name}), $matches)) {
          return $matches;
        }
      }
    }
  }
  return FALSE;
}