예제 #1
0
 private function processHandler(ParsedShortcodeInterface $parsed, ProcessorContext $context, $handler)
 {
     $processed = ProcessedShortcode::createFromContext(clone $context);
     $processed = $this->processRecursion($processed, $context);
     return $handler ? call_user_func_array($handler, array($processed)) : substr_replace($parsed->getText(), $processed->getContent(), strrpos($parsed->getText(), $parsed->getContent()), mb_strlen($parsed->getContent()));
 }
예제 #2
0
 private function processHandler(ParsedShortcodeInterface $parsed, ProcessorContext $context, $handler)
 {
     $processed = ProcessedShortcode::createFromContext(clone $context);
     $content = $this->processRecursion($processed, $context);
     $processed = $processed->withContent($content);
     if ($handler) {
         return call_user_func_array($handler, array($processed));
     }
     $state = $parsed->getText();
     $length = mb_strlen($processed->getTextContent(), 'utf-8');
     $offset = mb_strrpos($state, $processed->getTextContent(), 'utf-8');
     return mb_substr($state, 0, $offset, 'utf-8') . $processed->getContent() . mb_substr($state, $offset + $length, mb_strlen($state, 'utf-8'), 'utf-8');
 }