private function _getHtml($content, $trigger, tubepress_spi_shortcode_ShortcodeParser $parser) { $context = tubepress_impl_patterns_sl_ServiceLocator::getExecutionContext(); $gallery = tubepress_impl_patterns_sl_ServiceLocator::getShortcodeHtmlGenerator(); /* Parse each shortcode one at a time */ while ($parser->somethingToParse($content, $trigger)) { /* Get the HTML for this particular shortcode. Could be a single video or a gallery. */ try { $generatedHtml = $gallery->getHtmlForShortcode($content); } catch (Exception $e) { $generatedHtml = $this->_dispatchErrorAndGetMessage($e); } /* remove any leading/trailing <p> tags from the content */ $pattern = '/(<[P|p]>\\s*)(' . preg_quote($context->getActualShortcodeUsed(), '/') . ')(\\s*<\\/[P|p]>)/'; $content = preg_replace($pattern, '${2}', $content); /* replace the shortcode with our new content */ $currentShortcode = $context->getActualShortcodeUsed(); $content = tubepress_impl_util_StringUtils::replaceFirst($currentShortcode, $generatedHtml, $content); $content = tubepress_impl_util_StringUtils::removeEmptyLines($content); /* reset the context for the next shortcode */ $context->reset(); } return $content; }