private function _buildShortcodeEvent(array $normalizedOptions, $innerContent) { if (!$innerContent) { $innerContent = null; } $name = $this->_context->get(tubepress_api_options_Names::SHORTCODE_KEYWORD); $shortcode = new tubepress_shortcode_impl_Shortcode($name, $normalizedOptions, $innerContent); return $this->_eventDispatcher->newEventInstance($shortcode); }
private function _errorOut(Exception $e, $code) { $this->_responseCode->setResponseCode($code); $event = $this->_eventDispatcher->newEventInstance($e); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::HTML_EXCEPTION_CAUGHT, $event); $args = array('exception' => $e); $response = $this->_templating->renderTemplate('exception/ajax', $args); echo $response; }
public function onPostScriptsTemplateRender(tubepress_api_event_EventInterface $event) { $jsEvent = $this->_eventDispatcher->newEventInstance(array()); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::HTML_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); }
/** * {@inheritdoc} */ public function getParamValue($name) { /* Are we sure we have it? */ if (!$this->hasParam($name)) { return null; } $request = $this->_getGETandPOSTarray(); $rawValue = $request[$name]; $event = $this->_eventDispatcher->newEventInstance($rawValue, array('optionName' => $name)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::NVP_FROM_EXTERNAL_INPUT, $event); $event = $this->_eventDispatcher->newEventInstance($event->getSubject(), array('optionName' => $name)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::NVP_FROM_EXTERNAL_INPUT . ".{$name}", $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(); $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, $this->_stringUtils->redactSecrets($value))); } $event = $this->_eventDispatcher->newEventInstance($value, array('optionName' => $name)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::NVP_FROM_EXTERNAL_INPUT, $event); $filtered = $event->getSubject(); $event = $this->_eventDispatcher->newEventInstance($filtered, array('optionName' => $name)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::NVP_FROM_EXTERNAL_INPUT . ".{$name}", $event); $filtered = $event->getSubject(); if ($this->_shouldLog) { $this->_logger->debug(sprintf('Name-value pair detected: %s = "%s" (filtered)', $name, $this->_stringUtils->redactSecrets($filtered))); } $toReturn[$name] = $filtered; } return $toReturn; }
/** * @param tubepress_api_http_message_RequestInterface $request * * @return tubepress_api_http_message_ResponseInterface|null */ private function _getQuickResponse(tubepress_api_http_message_RequestInterface $request) { $event = $this->_eventDispatcher->newEventInstance($request, array('response' => null)); if ($this->_shouldLog) { $this->_logDebug(sprintf('Dispatching <code>%s</code> event for %s', tubepress_api_http_Events::EVENT_HTTP_REQUEST, $this->_stringifyRequest($request))); } $this->_eventDispatcher->dispatch(tubepress_api_http_Events::EVENT_HTTP_REQUEST, $event); if (!$event->hasArgument('response') || $event->getArgument('response') === null) { if ($this->_shouldLog) { $this->_logDebug(sprintf('No listeners created a response for %s. A network request will be made instead.', $this->_stringifyRequest($request))); } return null; } /** * @var tubepress_api_http_message_ResponseInterface */ $response = $event->getArgument('response'); if (!$response instanceof tubepress_api_http_message_ResponseInterface) { if ($this->_shouldLog) { $this->_logDebug(sprintf('A listener created a non-response for %s. A network request will be made instead.', $this->_stringifyRequest($request))); } return null; } if ($this->_shouldLog) { $this->_logDebug(sprintf('A listener created a response for %s. No network request will be made.', $this->_stringifyRequest($request))); } return $response; }
/** * {@inheritdoc} */ public function getHtml() { try { $htmlGenerationEventPre = $this->_eventDispatcher->newEventInstance(''); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::HTML_GENERATION, $htmlGenerationEventPre); /* * @var $selected string */ $html = $htmlGenerationEventPre->getSubject(); if ($html === null) { throw new RuntimeException('Unable to generate HTML.'); } $htmlGenerationEventPost = $this->_eventDispatcher->newEventInstance($html); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::HTML_GENERATION_POST, $htmlGenerationEventPost); /* * @var string */ $html = $htmlGenerationEventPost->getSubject(); return $html; } catch (Exception $e) { $event = $this->_eventDispatcher->newEventInstance($e); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::HTML_EXCEPTION_CAUGHT, $event); $args = array('exception' => $e); $html = $this->_templating->renderTemplate('exception/static', $args); return $html; } }
private function _fireEventAndReturnSubject($eventName, $raw) { if ($raw instanceof tubepress_api_event_EventInterface) { $event = $raw; } else { $event = $this->_eventDispatcher->newEventInstance($raw); } $this->_eventDispatcher->dispatch($eventName, $event); return $event->getSubject(); }
/** * @param $eventName * @param tubepress_api_url_UrlInterface $url * @param tubepress_spi_http_oauth2_Oauth2ProviderInterface $provider * * @return tubepress_api_url_UrlInterface */ private function _dispatchUrl($eventName, tubepress_api_url_UrlInterface $url, tubepress_spi_http_oauth2_Oauth2ProviderInterface $provider) { $event = $this->_eventDispatcher->newEventInstance($url, array('provider' => $provider)); $this->_eventDispatcher->dispatch($eventName, $event); $newUrl = $event->getSubject(); if (!$newUrl instanceof tubepress_api_url_UrlInterface) { throw new RuntimeException('Unable to calculate redirection endpoint.'); } return $newUrl; }
/** * {@inheritdoc} */ public function collectSingle($id) { if ($this->_shouldLog) { $this->_logger->debug(sprintf('Fetching item with ID <code>%s</code>', $id)); } $collectionEvent = $this->_eventDispatcher->newEventInstance($id); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::MEDIA_ITEM_REQUEST, $collectionEvent); if (!$collectionEvent->hasArgument('mediaItem')) { throw new RuntimeException('No acceptable providers for item'); } return $collectionEvent->getArgument('mediaItem'); }
/** * @param $eventName * @param $subject * @param null $args * * @return tubepress_api_event_EventInterface */ private function _dispatch($eventName, $subject, $args = null) { $event = $this->_eventDispatcher->newEventInstance($subject); if ($args) { $event->setArguments($args); } if ($this->_loggingEnabled) { $this->_logDebug(sprintf('Start dispatch of event <code>%s</code>', $eventName)); } $this->_eventDispatcher->dispatch($eventName, $event); if ($this->_loggingEnabled) { $this->_logDebug(sprintf('End dispatch of event <code>%s</code>', $eventName)); } return $event; }
public function onPostGalleryTemplateRender(tubepress_api_event_EventInterface $event) { $galleryId = $this->_context->get(tubepress_api_options_Names::HTML_GALLERY_ID); $jsEvent = $this->_eventDispatcher->newEventInstance(array(), array('mediaPage' => $event->getArgument('mediaPage'), 'pageNumber' => $event->getArgument('pageNumber'))); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::GALLERY_INIT_JS, $jsEvent); $args = $jsEvent->getSubject(); $this->_deepConvertBooleans($args); $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); }
private function _buildUrl(tubepress_spi_http_oauth2_Oauth2ProviderInterface $provider, $state) { $authorizationUrl = $provider->getAuthorizationEndpoint(); if (!$authorizationUrl instanceof tubepress_api_url_UrlInterface) { $this->bail('OAuth2 provider returned a non URL.'); } $clientId = $this->getPersistenceHelper()->getClientId($provider); $clientSecret = $this->getPersistenceHelper()->getClientSecret($provider); $query = $authorizationUrl->getQuery(); $redirectUrl = $this->getOauth2Environment()->getRedirectionUrl($provider); $query->set('response_type', 'code')->set('client_id', $clientId)->set('state', $state)->set('redirect_uri', $redirectUrl->toString()); $provider->onAuthorizationUrl($authorizationUrl, $clientId, $clientSecret); $event = $this->_eventDispatcher->newEventInstance($authorizationUrl, array('provider' => $provider)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::OAUTH2_URL_AUTHORIZATION, $event); $authorizationUrl = $event->getSubject(); if (!$authorizationUrl instanceof tubepress_api_url_UrlInterface) { $this->bail('Non authorization URL returned.'); } return $authorizationUrl; }
private function _dispatchEventAndReturnSubject($optionName, $value, $eventName) { $event = $this->_eventDispatcher->newEventInstance($value, array('optionName' => $optionName)); $this->_eventDispatcher->dispatch("{$eventName}.{$optionName}", $event); return $event->getSubject(); }
private function _dispatchForOptionSet($optionName, $optionValue, array $errors, $eventName) { $event = $this->_eventDispatcher->newEventInstance($errors, array('optionName' => $optionName, 'optionValue' => $optionValue)); $this->_eventDispatcher->dispatch($eventName, $event); return $event; }
public function __fireOptionsPageEvent() { $this->_eventDispatcher->dispatch(tubepress_wordpress_api_Constants::EVENT_OPTIONS_PAGE_INVOKED); }
private function _dispatchForExternalInput($optionName, $optionValue) { $event = $this->_eventDispatcher->newEventInstance($optionValue, array('optionName' => $optionName)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::NVP_FROM_EXTERNAL_INPUT, $event); return $event->getSubject(); }
/** * @deprecated */ public function __fireWidgetControlEvent() { $this->_eventDispatcher->dispatch(tubepress_wordpress_api_Constants::EVENT_WIDGET_PRINT_CONTROLS); }
/** * {@inheritdoc} */ public function renderTemplate($originalTemplateName, array $templateVars = array()) { /* * First dispatch the template name. */ $nameSelectionEvent = $this->_eventDispatcher->newEventInstance($originalTemplateName, $templateVars); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::TEMPLATE_SELECT . ".{$originalTemplateName}", $nameSelectionEvent); $newTemplateName = $nameSelectionEvent->getSubject(); /* * Fire the pre-render event for the original name. */ $preRenderEvent = $this->_eventDispatcher->newEventInstance($nameSelectionEvent->getArguments()); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::TEMPLATE_PRE_RENDER . ".{$originalTemplateName}", $preRenderEvent); if ($originalTemplateName !== $newTemplateName) { /* * Fire the pre-render event for the new name. */ $preRenderEvent = $this->_eventDispatcher->newEventInstance($preRenderEvent->getSubject()); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::TEMPLATE_PRE_RENDER . ".{$newTemplateName}", $preRenderEvent); } /* * Render! */ $result = $this->_delegate->render($newTemplateName, $preRenderEvent->getSubject()); if ($originalTemplateName !== $newTemplateName) { /* * Fire the post-render event. */ $newPostRenderEvent = $this->_eventDispatcher->newEventInstance($result, $preRenderEvent->getSubject()); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::TEMPLATE_POST_RENDER . ".{$newTemplateName}", $newPostRenderEvent); $result = $newPostRenderEvent->getSubject(); } /* * Fire the post-render event. */ $originalPostRenderEvent = $this->_eventDispatcher->newEventInstance($result, $preRenderEvent->getSubject()); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::TEMPLATE_POST_RENDER . ".{$originalTemplateName}", $originalPostRenderEvent); return $originalPostRenderEvent->getSubject(); }
/** * {@inheritdoc} */ public function getAcceptableValues($optionName) { $event = $this->_eventDispatcher->newEventInstance(null, array('optionName' => $optionName)); $this->_eventDispatcher->dispatch(tubepress_api_event_Events::OPTION_ACCEPTABLE_VALUES . ".{$optionName}", $event); return $event->getSubject(); }
private function _dispatchAndReturnSubject(tubepress_api_event_EventInterface $event, $eventName) { $this->_eventDispatcher->dispatch($eventName, $event); return $event->getSubject(); }
private function _dispatchAndReturnSubject(tubepress_spi_media_HttpFeedHandlerInterface $feedHandler, $eventName, $subject, array $args = array()) { $event = $this->_eventDispatcher->newEventInstance($subject, $args); $this->_eventDispatcher->dispatch($eventName . '.' . $feedHandler->getName(), $event); return $event->getSubject(); }