public function hashToHtmlAttributes($attrs) { $str = trim(implode(' ', array_map(function ($attrName) use($attrs) { $attrVal = $attrs[$attrName]; $quote = '"'; if (is_null($attrVal) || $attrVal === true) { return $attrName; } elseif ($attrVal === false) { return ''; } elseif (is_array($attrVal)) { switch ($attrName) { case 'class': $attrVal = implode(' ', array_filter($attrVal)); break; case 'style': array_walk($attrVal, function (&$val, $key) { $val = $key . ': ' . $val; }); $attrVal = implode('; ', $attrVal) . ';'; break; // Default to json, for data-* attributes // Default to json, for data-* attributes default: $quote = '\''; $attrVal = json_encode($attrVal); break; } } else { return $attrName . '="' . $attrVal . '"'; } return $attrName . '=' . $quote . $attrVal . $quote; }, array_keys($attrs)))); return TemplateHelper::getRaw($str); }
/** * Our function called via Twig; it can do anything you want * * @return string */ public function lettering($text = null, $class = 'chars') { if (!$text || strlen($text) === 0 || !method_exists(craft()->lettering, $class)) { return $text; } $dom = new LetteringDom(); $dom->loadHTML(mb_convert_encoding('<div id="workingNode">' . $text . '</div>', 'HTML-ENTITIES', $this->encoding)); $workingNode = $dom->getElementById('workingNode'); $fragment = $dom->createDocumentFragment(); foreach ($workingNode->childNodes as $node) { if ($node->nodeType !== 1) { continue; } $value = $node->nodeValue; $result = craft()->lettering->{$class}($value, $class); $node->nodeValue = ''; $tempFragment = new LetteringDom(); $tempFragment->loadHTML(mb_convert_encoding($result[$class], 'HTML-ENTITIES', $this->encoding)); foreach ($tempFragment->getElementsByTagName('body')->item(0)->childNodes as $tempNode) { $tempNode = $node->ownerDocument->importNode($tempNode, true); $node->appendChild($tempNode); } $node->setAttribute('aria-label', trim(strip_tags($value))); $fragment->appendChild($node->cloneNode(true)); } $workingNode->parentNode->replaceChild($fragment, $workingNode); $result = TemplateHelper::getRaw(preg_replace('~<(?:!DOCTYPE|/?(?:html|head|body))[^>]*>\\s*~i', '', $dom->saveHTML())); if (strlen(trim($result)) === 0) { $result = craft()->lettering->{$class}($text); return $result ? $result[$class] : $text; } return $result; }
public function videoEmbed($input) { $originalPath = craft()->path->getTemplatesPath(); $myPath = craft()->path->getPluginsPath() . 'videoembedutility/templates/'; craft()->path->setTemplatesPath($myPath); $markup = craft()->templates->render('_vimeoEmbed.html', array('player_url' => $this->videoPlayerUrl($input))); craft()->path->setTemplatesPath($originalPath); return TemplateHelper::getRaw($markup); }
public function stripP($content) { $content = preg_replace('/(<p>|<\\/p>)/i', '', (string) trim($content)); $content = preg_replace('/<br(\\s)?(\\/)?>/i', '', (string) trim($content)); return TemplateHelper::getRaw($content); }
/** * @inheritdoc * @return string */ public function getLink() { return TemplateHelper::getRaw("<a href='" . $this->getCpEditUrl() . "'>" . substr($this->number, 0, 7) . "</a>"); }
public function renderJSONLD($object = array()) { $result = craft()->seomatic->renderJSONLD($object); return TemplateHelper::getRaw(rtrim($result)); }
public function doxterTypography($source = '') { return TemplateHelper::getRaw(typogrify($source)); }
public function videoEmbed($input) { $originalPath = craft()->path->getTemplatesPath(); $videos = $this->getAllVideos($input); $videoUrls = []; foreach ($videos as $count => $videoPlayerUrl) { array_push($videoUrls, $this->videoPlayerUrl($videoPlayerUrl)); } $videoUrls = array_filter($videoUrls); if (!empty($videoUrls)) { $videoMarkup = []; foreach ($videoUrls as $count => $url) { $myPath = craft()->path->getPluginsPath() . 'videoembedutility/templates/'; craft()->path->setTemplatesPath($myPath); array_push($videoMarkup, craft()->templates->render('_vimeoEmbed.html', ['player_url' => $url])); } $markup = implode('', $videoMarkup); } else { $markup = $input; } craft()->path->setTemplatesPath($originalPath); return TemplateHelper::getRaw($markup); }
/** * @param $html * @return \Twig_Markup */ public function typographer($html) { $html = SmartyPantsTypographer::defaultTransform($html); return TemplateHelper::getRaw($html); }