private function _dispatchErrorAndGetMessage(Exception $e) { $event = new tubepress_spi_event_EventBase($e, array('message' => $e->getMessage())); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::ERROR_EXCEPTION_CAUGHT, $event); return $event->getArgument('message'); }
private function _getSingleVideoHtml($videoId) { $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $provider = tubepress_impl_patterns_sl_ServiceLocator::getVideoCollector(); $themeHandler = tubepress_impl_patterns_sl_ServiceLocator::getThemeHandler(); $template = $themeHandler->getTemplateInstance('single_video.tpl.php', TUBEPRESS_ROOT . '/src/main/resources/default-themes/default'); /* grab the video from the provider */ if ($this->_logger->isHandling(ehough_epilog_Logger::DEBUG)) { $this->_logger->debug(sprintf('Asking provider for video with ID %s', $videoId)); } $video = $provider->collectSingleVideo($videoId); if ($video === null) { return sprintf('Video %s not found', $videoId); //>(translatable)< } if ($eventDispatcher->hasListeners(tubepress_api_const_event_EventNames::TEMPLATE_SINGLE_VIDEO)) { $event = new tubepress_spi_event_EventBase($template, array('video' => $video)); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::TEMPLATE_SINGLE_VIDEO, $event); $template = $event->getSubject(); } $html = $template->toString(); if ($eventDispatcher->hasListeners(tubepress_api_const_event_EventNames::HTML_SINGLE_VIDEO)) { $event = new tubepress_spi_event_EventBase($html); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::HTML_SINGLE_VIDEO, $event); $html = $event->getSubject(); } return $html; }
/** * @param array $errors An associative array, which may be empty, of field IDs to error messages. * @param boolean $justSubmitted True if the form was just submitted, false otherwise. * * @return string The HTML for the options page. */ public function getHTML(array $errors = array(), $justSubmitted = false) { $templateBldr = tubepress_impl_patterns_sl_ServiceLocator::getTemplateBuilder(); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $environmentDetector = tubepress_impl_patterns_sl_ServiceLocator::getEnvironmentDetector(); $template = $templateBldr->getNewTemplateInstance($this->_templatePath); $fields = $this->_buildFieldsArray(); $categories = $this->_buildCategoriesArray(); $categoryIdToParticipantIdToFieldsMap = $this->_buildCategoryIdToParticipantIdToFieldsMap($categories); $participants = $this->_buildParticipantsArray(); if (isset($fields[tubepress_addons_core_impl_options_ui_fields_ParticipantFilterField::FIELD_ID])) { /** * @var $filterField tubepress_addons_core_impl_options_ui_fields_ParticipantFilterField */ $filterField = $fields[tubepress_addons_core_impl_options_ui_fields_ParticipantFilterField::FIELD_ID]; $filterField->setOptionsPageParticipants($this->_optionsPageParticipants); } $templateVariables = array('categories' => $categories, 'categoryIdToParticipantIdToFieldsMap' => $categoryIdToParticipantIdToFieldsMap, 'errors' => $errors, 'fields' => $fields, 'isPro' => $environmentDetector->isPro(), 'justSubmitted' => $justSubmitted, 'participants' => $participants, "successMessage" => 'Settings updated.', 'tubePressBaseUrl' => $environmentDetector->getBaseUrl(), "saveText" => 'Save'); foreach ($templateVariables as $key => $val) { $template->setVariable($key, $val); } $templateEvent = new tubepress_spi_event_EventBase($template); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::OPTIONS_PAGE_TEMPLATE, $templateEvent); return $template->toString(); }
private function _fireEventAndReturnSubject($eventName, $raw) { $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $event = new tubepress_spi_event_EventBase($raw); $eventDispatcher->dispatch($eventName, $event); return $event->getSubject(); }
private function _getFromNetwork($url) { $u = new ehough_curly_Url($url); $request = new ehough_shortstop_api_HttpRequest(ehough_shortstop_api_HttpRequest::HTTP_METHOD_GET, $u); $client = tubepress_impl_patterns_sl_ServiceLocator::getHttpClient(); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $response = $client->execute($request); $event = new tubepress_spi_event_EventBase($response->getEntity()->getContent(), array('request' => $request, 'response' => $response)); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::HTTP_RESPONSE, $event); return $event->getSubject(); }
/** * @return string The HTML for this shortcode handler. */ public final function getHtml() { $execContext = tubepress_impl_patterns_sl_ServiceLocator::getExecutionContext(); $galleryId = $execContext->get(tubepress_api_const_options_names_Advanced::GALLERY_ID); $shouldLog = $this->_logger->isHandling(ehough_epilog_Logger::DEBUG); if ($galleryId == '') { $galleryId = mt_rand(); $result = $execContext->set(tubepress_api_const_options_names_Advanced::GALLERY_ID, $galleryId); if ($result !== true) { return false; } } if ($shouldLog) { $this->_logger->debug(sprintf('Starting to build thumbnail gallery %s', $galleryId)); } $provider = tubepress_impl_patterns_sl_ServiceLocator::getVideoCollector(); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $themeHandler = tubepress_impl_patterns_sl_ServiceLocator::getThemeHandler(); $ms = tubepress_impl_patterns_sl_ServiceLocator::getMessageService(); $qss = tubepress_impl_patterns_sl_ServiceLocator::getHttpRequestParameterService(); $template = $themeHandler->getTemplateInstance('gallery.tpl.php', TUBEPRESS_ROOT . '/src/main/resources/default-themes/default'); $page = $qss->getParamValueAsInt(tubepress_spi_const_http_ParamName::PAGE, 1); /* first grab the videos */ if ($shouldLog) { $this->_logger->debug('Asking provider for videos'); } $feedResult = $provider->collectVideoGalleryPage(); $numVideos = sizeof($feedResult->getVideos()); if ($shouldLog) { $this->_logger->debug(sprintf('Provider has delivered %d videos', $numVideos)); } if ($numVideos == 0) { return $ms->_('No matching videos'); //>(translatable)< } /* send the template through the listeners */ if ($eventDispatcher->hasListeners(tubepress_api_const_event_EventNames::TEMPLATE_THUMBNAIL_GALLERY)) { $event = new tubepress_spi_event_EventBase($template, array('page' => $page, 'videoGalleryPage' => $feedResult)); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::TEMPLATE_THUMBNAIL_GALLERY, $event); $template = $event->getSubject(); } $html = $template->toString(); /* send gallery HTML through the listeners */ if ($eventDispatcher->hasListeners(tubepress_api_const_event_EventNames::HTML_THUMBNAIL_GALLERY)) { $event = new tubepress_spi_event_EventBase($html, array('page' => $page, 'videoGalleryPage' => $feedResult)); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::HTML_THUMBNAIL_GALLERY, $event); $html = $event->getSubject(); } /* we're done. tie up */ if ($shouldLog) { $this->_logger->debug(sprintf('Done assembling gallery %d', $galleryId)); } return $html; }
/** * Gets the parameter value from PHP's $_GET or $_POST array. * * @param string $name The name of the parameter. * * @return mixed The raw value of the parameter. Can be anything that would * otherwise be found in PHP's $_GET or $_POST array. Returns null * if the parameter is not set on this request. */ public final function getParamValue($name) { /** Are we sure we have it? */ if (!$this->hasParam($name)) { return null; } $request = $this->_getGETandPOSTarray(); $rawValue = $request[$name]; $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $event = new tubepress_spi_event_EventBase($rawValue, array('optionName' => $name)); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::OPTIONS_NVP_READFROMEXTERNAL, $event); return $event->getSubject(); }
public function onPreScriptsHtml(tubepress_api_event_EventInterface $event) { $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $jsEvent = new tubepress_spi_event_EventBase(array()); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::CSS_JS_GLOBAL_JS_CONFIG, $jsEvent); $args = $jsEvent->getSubject(); $asJson = json_encode($args); $html = $event->getSubject(); $toPrepend = <<<EOT <script type="text/javascript">var TubePressJsConfig = {$asJson};</script> EOT; $event->setSubject($toPrepend . $html); }
/** * @return string The widget HTML for this form element. */ public function getWidgetHTML() { $templateBuilder = tubepress_impl_patterns_sl_ServiceLocator::getTemplateBuilder(); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $template = $templateBuilder->getNewTemplateInstance($this->getAbsolutePathToTemplate()); $templateEvent = new tubepress_spi_event_EventBase($template); $templateEvent->setArgument('field', $this); $templateVariables = $this->getTemplateVariables(); foreach ($templateVariables as $name => $value) { $template->setVariable($name, $value); } $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::OPTIONS_PAGE_FIELDTEMPLATE, $templateEvent); return $template->toString(); }
public function onGalleryTemplate(tubepress_api_event_EventInterface $event) { $context = tubepress_impl_patterns_sl_ServiceLocator::getExecutionContext(); $pm = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $providerResult = $event->getArgument('videoGalleryPage'); $template = $event->getSubject(); $pagination = $this->_getHtml($providerResult->getTotalResultCount()); $event = new tubepress_spi_event_EventBase($pagination); $pm->dispatch(tubepress_api_const_event_EventNames::HTML_PAGINATION, $event); $pagination = $event->getSubject(); if ($context->get(tubepress_api_const_options_names_Thumbs::PAGINATE_ABOVE)) { $template->setVariable(tubepress_api_const_template_Variable::PAGINATION_TOP, $pagination); } if ($context->get(tubepress_api_const_options_names_Thumbs::PAGINATE_BELOW)) { $template->setVariable(tubepress_api_const_template_Variable::PAGINATION_BOTTOM, $pagination); } }
public function getHtml() { $th = tubepress_impl_patterns_sl_ServiceLocator::getThemeHandler(); $pm = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $template = $th->getTemplateInstance('search/search_input.tpl.php', TUBEPRESS_ROOT . '/src/main/resources/default-themes/default'); if ($pm->hasListeners(tubepress_api_const_event_EventNames::TEMPLATE_SEARCH_INPUT)) { $event = new tubepress_spi_event_EventBase($template); $pm->dispatch(tubepress_api_const_event_EventNames::TEMPLATE_SEARCH_INPUT, $event); $template = $event->getSubject(); } $html = $template->toString(); if ($pm->hasListeners(tubepress_api_const_event_EventNames::HTML_SEARCH_INPUT)) { $event = new tubepress_spi_event_EventBase($html); $pm->dispatch(tubepress_api_const_event_EventNames::HTML_SEARCH_INPUT, $event); $html = $event->getSubject(); } return $html; }
public function onGalleryHtml(tubepress_api_event_EventInterface $event) { $context = tubepress_impl_patterns_sl_ServiceLocator::getExecutionContext(); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $galleryId = $context->get(tubepress_api_const_options_names_Advanced::GALLERY_ID); $jsEvent = new tubepress_spi_event_EventBase(array()); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::CSS_JS_GALLERY_INIT, $jsEvent); $args = $jsEvent->getSubject(); $asJson = json_encode($args); $html = $event->getSubject(); $toReturn = $html . <<<EOT <script type="text/javascript"> var tubePressDomInjector = tubePressDomInjector || [], tubePressGalleryRegistrar = tubePressGalleryRegistrar || []; tubePressDomInjector.push(['loadGalleryJs']); tubePressGalleryRegistrar.push(['register', '{$galleryId}', {$asJson} ]); </script> EOT; $event->setSubject($toReturn); }
/** * Sets the value of an option * * @param string $optionName The name of the option * @param mixed $optionValue The option value * * @return mixed True if the option was set normally, otherwise a string error message. */ public final function set($optionName, $optionValue) { $eventDispatcherService = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $optionValidatorService = tubepress_impl_patterns_sl_ServiceLocator::getOptionValidator(); /** First run it through the filters. */ /** Run it through the filters. */ $event = new tubepress_spi_event_EventBase($optionValue, array('optionName' => $optionName)); $eventDispatcherService->dispatch(tubepress_api_const_event_EventNames::OPTIONS_NVP_PREVALIDATIONSET, $event); $filteredValue = $event->getSubject(); if ($optionValidatorService->isValid($optionName, $filteredValue)) { if ($this->_logger->isHandling(ehough_epilog_Logger::DEBUG)) { $this->_logger->debug(sprintf('Accepted valid value: %s = %s', $optionName, $this->_normalizeForStringOutput($filteredValue))); } $this->_customOptions[$optionName] = $filteredValue; return true; } $problemMessage = $optionValidatorService->getProblemMessage($optionName, $filteredValue); if ($this->_logger->isHandling(ehough_epilog_Logger::DEBUG)) { $this->_logger->warn(sprintf('Ignoring invalid value for "%s" (%s)', $optionName, $problemMessage)); } return $problemMessage; }
/** * Spits back the text for this embedded player * * @param string $videoId The video ID to display * * @return string The text for this embedded player, or null if there was a problem. */ public final function getHtml($videoId) { $embeddedPlayer = $this->_getEmbeddedPlayer($videoId); if ($embeddedPlayer === null) { if ($this->_logger->isHandling(ehough_epilog_Logger::DEBUG)) { $this->_logger->warn('Could not generate the embedded player HTML for ' . $videoId); } return null; } $themeHandler = tubepress_impl_patterns_sl_ServiceLocator::getThemeHandler(); $eventDispatcherService = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $template = $embeddedPlayer->getTemplate($themeHandler); $dataUrl = $embeddedPlayer->getDataUrlForVideo($videoId); $embeddedPlayerName = $embeddedPlayer->getName(); $providerName = $embeddedPlayer->getHandledProviderName(); /** * Build the embedded template event. */ $embeddedTemplateEvent = new tubepress_spi_event_EventBase($template, array('videoId' => $videoId, 'providerName' => $providerName, 'dataUrl' => $dataUrl, 'embeddedImplementationName' => $embeddedPlayerName)); /** * Dispatch the embedded template event. */ $eventDispatcherService->dispatch(tubepress_api_const_event_EventNames::TEMPLATE_EMBEDDED, $embeddedTemplateEvent); /** * Pull the template out of the event. */ $template = $embeddedTemplateEvent->getSubject(); /** * Build the embedded HTML event. */ $embeddedHtmlEvent = new tubepress_spi_event_EventBase($template->toString(), array('videoId' => $videoId, 'providerName' => $providerName, 'dataUrl' => $dataUrl, 'embeddedImplementationName' => $embeddedPlayerName)); /** * Dispatche the embedded HTML event. */ $eventDispatcherService->dispatch(tubepress_api_const_event_EventNames::HTML_EMBEDDED, $embeddedHtmlEvent); return $embeddedHtmlEvent->getSubject(); }
/** * Collects a video gallery page. * * @return tubepress_api_video_VideoGalleryPage The video gallery page, never null. */ public final function collectVideoGalleryPage() { $this->_isDebugEnabled = $this->_logger->isHandling(ehough_epilog_Logger::DEBUG); $executionContext = tubepress_impl_patterns_sl_ServiceLocator::getExecutionContext(); $videoSource = $executionContext->get(tubepress_api_const_options_names_Output::GALLERY_SOURCE); $result = null; $providerName = null; $currentPage = $this->_getCurrentPage(); if ($this->_isDebugEnabled) { $this->_logger->debug('There are ' . count($this->_videoProviders) . ' pluggable video provider service(s) registered'); $this->_logger->debug('Asking to see who wants to handle page ' . $currentPage . ' for gallery source "' . $videoSource . '"'); } foreach ($this->_videoProviders as $videoProvider) { $sources = $videoProvider->getGallerySourceNames(); if (in_array($videoSource, $sources)) { if ($this->_isDebugEnabled) { $this->_logger->debug($videoProvider->getName() . ' chosen to handle page ' . $currentPage . ' for gallery source "' . $videoSource . '"'); } $result = $videoProvider->fetchVideoGalleryPage($currentPage); break; } if ($this->_isDebugEnabled) { $this->_logger->debug($videoProvider->getName() . ' cannot handle ' . $currentPage . ' for gallery source "' . $videoSource . '"'); } } if ($result === null) { if ($this->_isDebugEnabled) { $this->_logger->debug('No video providers could handle this request'); } $result = new tubepress_api_video_VideoGalleryPage(); } $event = new tubepress_spi_event_EventBase($result); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::VIDEO_GALLERY_PAGE, $event); return $event->getSubject(); }
/** * Get's the HTML for the TubePress "player" * * @param tubepress_api_video_Video $vid The video to display in the player. * * @return string The HTML for this player with the given video. */ public final function getHtml(tubepress_api_video_Video $vid) { $executionContextService = tubepress_impl_patterns_sl_ServiceLocator::getExecutionContext(); $themeHandler = tubepress_impl_patterns_sl_ServiceLocator::getThemeHandler(); $requestedPlayerLocation = $executionContextService->get(tubepress_api_const_options_names_Embedded::PLAYER_LOCATION); $playerLocation = null; /** * @var $registeredPlayerLocation tubepress_spi_player_PluggablePlayerLocationService */ foreach ($this->_playerLocations as $registeredPlayerLocation) { if ($registeredPlayerLocation->getName() === $requestedPlayerLocation) { $playerLocation = $registeredPlayerLocation; break; } } if ($playerLocation === null) { return null; } /** * @var $playerLocation tubepress_spi_player_PluggablePlayerLocationService */ $template = $playerLocation->getTemplate($themeHandler); $eventDispatcherService = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); /* * Run filters for the player template construction. */ $playerTemplateEvent = new tubepress_spi_event_EventBase($template, array('video' => $vid, 'playerName' => $playerLocation->getName())); $eventDispatcherService->dispatch(tubepress_api_const_event_EventNames::TEMPLATE_PLAYERLOCATION, $playerTemplateEvent); /* * Run filters for the player HTML construction. */ $html = $playerTemplateEvent->getSubject()->toString(); $playerHtmlEvent = new tubepress_spi_event_EventBase($html, array('video' => $vid, 'playerName' => $playerLocation->getName())); $eventDispatcherService->dispatch(tubepress_api_const_event_EventNames::HTML_PLAYERLOCATION, $playerHtmlEvent); return $playerHtmlEvent->getSubject(); }
private function _11_dispatchBootCompleteEvent() { $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::BOOT_COMPLETE); }
/** * Register a new option descriptor for use by TubePress. * * @param tubepress_spi_options_OptionDescriptor $optionDescriptor The new option descriptor. * * @return void */ private function _registerOptionDescriptor(tubepress_spi_options_OptionDescriptor $optionDescriptor) { $name = $optionDescriptor->getName(); if (isset($this->_nameToOptionDescriptorMap[$name])) { if ($this->_shouldLog) { $this->_logger->warn($optionDescriptor->getName() . ' is already registered as an option descriptor'); } return; } $optionRegistrationEvent = new tubepress_spi_event_EventBase($optionDescriptor); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::OPTIONS_DESCRIPTOR_REGISTRATION, $optionRegistrationEvent); $this->_nameToOptionDescriptorMap[$name] = $optionDescriptor; }
private function _getFilteredValue($optionName, $optionValue) { $eventDispatcherService = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); /** Run it through the filters. */ $event = new tubepress_spi_event_EventBase($optionValue, array('optionName' => $optionName)); $eventDispatcherService->dispatch(tubepress_api_const_event_EventNames::OPTIONS_NVP_PREVALIDATIONSET, $event); return $event->getSubject(); }
private function _finishUrl($params, tubepress_spi_context_ExecutionContext $execContext, $eventName) { $finalUrl = $this->_buildUrl($params); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $event = new tubepress_spi_event_EventBase(new ehough_curly_Url($finalUrl)); $eventDispatcher->dispatch($eventName, $event); /** * @var $url ehough_curly_Url */ $url = $event->getSubject(); return $url->toString(); }
private function _fireEventAndGetSubject($eventName, tubepress_api_event_EventInterface $event) { $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $eventDispatcher->dispatch($eventName, $event); return $event->getSubject(); }
/** * Handles the detection of a custom options * * @param array $match The array shortcode matches * * @return array The name value pair array. */ private function _buildNameValuePairArray($match) { $toReturn = array(); $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $value = null; foreach ($match as $m) { if (!empty($m[1])) { $name = $m[1]; $value = $m[2]; } elseif (!empty($m[3])) { $name = $m[3]; $value = $m[4]; } elseif (!empty($m[5])) { $name = $m[5]; $value = $m[6]; } if (!isset($name) || !isset($value)) { continue; } if ($this->_shouldLog) { $this->_logger->debug(sprintf('Name-value pair detected: %s = "%s" (unfiltered)', $name, $value)); } $event = new tubepress_spi_event_EventBase($value, array('optionName' => $name)); $eventDispatcher->dispatch(tubepress_api_const_event_EventNames::OPTIONS_NVP_READFROMEXTERNAL, $event); $filtered = $event->getSubject(); if ($this->_shouldLog) { $this->_logger->debug(sprintf('Name-value pair detected: %s = "%s" (filtered)', $name, $filtered)); } $toReturn[$name] = $filtered; } return $toReturn; }
private function _finishUrl(ehough_curly_Url $url, $eventName) { $eventDispatcher = tubepress_impl_patterns_sl_ServiceLocator::getEventDispatcher(); $event = new tubepress_spi_event_EventBase($url); $eventDispatcher->dispatch($eventName, $event); /** * @var $url ehough_curly_Url */ $finalUrl = $event->getSubject(); return $finalUrl->toString(); }