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();
 }
예제 #8
0
    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();
 }
예제 #20
0
 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();
 }