isPro()) { return; } if (! $context->get(tubepress_api_const_options_names_Embedded::ENABLE_JS_API)) { return; } $html = $event->getSubject(); $domId = $this->_getDomIdFromHtml($html); $final = $html . << var tubePressDomInjector = tubePressDomInjector || [], tubePressPlayerApi = tubePressPlayerApi || []; tubePressDomInjector.push(['loadPlayerApiJs']); tubePressPlayerApi.push(['register', '$domId' ]); EOT; $event->setSubject($final); } private function _getDomIdFromHtml($html) { $result = preg_match('/\sid="(tubepress-video-object-[0-9]+)"[^"].*/', $html, $matches); if ($result < 1 || count($matches) < 2) { throw new RuntimeException("TubePress-generated video embeds must have a DOM id attribute that starts with 'tubepress-video-object-'"); } return $matches[1]; } }