Same name in other branches
- 8.x-1.x fitvids.module \fitvids_page_attachments()
Implements hook_page_attachments() to insert JavaScript to the appropriate scope/region of the page.
File
-
./
fitvids.module, line 51
Code
function fitvids_page_attachments(array &$page) {
// Get config variables
$config = \Drupal::config('fitvids.settings');
$selectors = $config->get('selectors');
$custom_vendors = $config->get('custom_vendors');
$ignore_selectors = $config->get('ignore_selectors');
// Get video containers
$selectors_for_js = implode(',', explode(PHP_EOL, $selectors));
$custom_vendors_for_js = [];
$custom_vendors_for_js[] = 'iframe[src^="https://youtu.be"]';
// Get custom vendor iframes
if (strlen(trim($custom_vendors))) {
foreach (explode(PHP_EOL, $custom_vendors) as $value) {
$custom_vendors_for_js[] = 'iframe[src^="' . trim($value) . '"]';
}
$custom_vendors_for_js = implode(',', $custom_vendors_for_js);
}
// Get ignored containers
$ignore_selectors_for_js = implode(',', explode(PHP_EOL, $ignore_selectors));
// Export settings
$page['#attached']['drupalSettings']['fitvids']['selectors'] = $selectors_for_js;
$page['#attached']['drupalSettings']['fitvids']['custom_vendors'] = $custom_vendors_for_js;
$page['#attached']['drupalSettings']['fitvids']['ignore_selectors'] = $ignore_selectors_for_js;
// Attach libraries
$page['#attached']['library'][] = 'fitvids/fitvids';
$page['#attached']['library'][] = 'fitvids/init';
}