* This function is adapted from code coming from Twig. * * @param array $matches * @return string * @internal */ public static function _escape_css_callback($matches) { $char = $matches[0]; return sprintf('\\%X ', 1 === \strlen($char) ? \ord($char) : static::ord($char)); } /** * This function is adapted from code coming from Twig and Zend Framework. * * @param array $matches * @return string * * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (https://www.zend.com) * @license https://framework.zend.com/license/new-bsd New BSD License * @internal */ public static function _escape_html_attr_callback($matches) { $chr = $matches[0]; $ord = \ord($chr); /* * The following replaces characters undefined in HTML with the * hex entity for the Unicode replacement character. */ if (($ord <= 0x1f && "\t" !== $chr && "\n" !== $chr && "\r" !== $chr) || ($ord >= 0x7f && $ord <= 0x9f)) { return '�'; } /* * Check if the current character to escape has a name entity we should * replace it with while grabbing the hex value of the character. */ if (1 === \strlen($chr)) { /* * While HTML supports far more named entities, the lowest common denominator * has become HTML5's XML Serialisation which is restricted to the those named * entities that XML supports. Using HTML entities would result in this error: * XML Parsing Error: undefined entity */ static $entityMap = [ 34 => '"', /* quotation mark */ 38 => '&', /* ampersand */ 60 => '<', /* less-than sign */ 62 => '>', /* greater-than sign */ ]; if (isset($entityMap[$ord])) { return $entityMap[$ord]; } return sprintf('&#x%02X;', $ord); } /* * Per OWASP recommendations, we'll use hex entities for any other * characters where a named entity does not exist. */ return sprintf('&#x%04X;', static::ord($chr)); } /** * Replace tokens with strings. * * @param array $tokens * @param string $html * @return string */ protected static function replaceTokens(array $tokens, $html) { foreach ($tokens as $token => $replacement) { // We need to use callbacks to turn off backreferences ($1, \\1) in the replacement string. $callback = static function() use ($replacement) { return $replacement; }; $html = preg_replace_callback('#' . preg_quote($token, '#') . '#u', $callback, $html); } return $html; } /** * Register loaded frameworks. */ protected static function registerFrameworks() { foreach (static::$stack[0]->getFrameworks() as $framework) { if (isset(static::$availableFrameworks[$framework])) { call_user_func([static::class, static::$availableFrameworks[$framework]]); } } } protected static function registerJquery() { static::addScript( [ 'src' => 'https://code.jquery.com/jquery-3.6.0.min.js', 'integrity' => 'sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=', 'crossorigin' => 'anonymous' ], 11 ); } protected static function registerJqueryUiSortable() { static::registerJquery(); static::addScript( [ 'src' => 'https://code.jquery.com/ui/1.11.4/jquery-ui.min.js', 'integrity' => 'sha256-xNjb53/rY+WmG+4L6tTl9m6PpqknWZvRt0rO1SRnJzw=', 'crossorigin' => 'anonymous' ], 11 ); } protected static function registerBootstrap2() { static::registerJquery(); static::addScript(['src' => 'https://maxcdn.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js'], 11); } protected static function registerBootstrap3() { static::addScript( [ 'src' => 'https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js', 'integrity' => 'sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd', 'crossorigin' => 'anonymous' ], 11); } protected static function registerBootstrap4() { static::addScript( [ 'src' => 'https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js', 'integrity' => 'sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns', 'crossorigin' => 'anonymous' ], 11); } protected static function registerBootstrap5() { static::addScript( [ 'src' => 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js', 'integrity' => 'sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM', 'crossorigin' => 'anonymous' ], 11); } protected static function registerMootools() { static::addScript(['src' => 'https://cdnjs.cloudflare.com/ajax/libs/mootools/1.5.2/mootools-core-compat.min.js'], 11); } protected static function registerMootoolsMore() { static::registerMootools(); static::addScript(['src' => 'https://cdnjs.cloudflare.com/ajax/libs/mootools-more/1.5.2/mootools-more-compat-compressed.js'], 11); } protected static function registerLightcase() { static::registerJquery(); static::addScript(['src' => static::url('gantry-assets://js/lightcase.js', false, null, false)], 11, 'footer'); static::addStyle(['href' => static::url('gantry-assets://css/lightcase.css', false, null, false)], 11); } protected static function registerLightcaseInit() { static::registerLightcase(); static::addInlineScript(['content' => "jQuery(document).ready(function($) { jQuery('[data-rel^=lightcase]').lightcase({maxWidth: '100%', maxHeight: '100%', video: {width: '1280', height: '720'}}); });"], 0, 'footer'); } /** * @return HtmlDocument */ protected static function getObject() { static $object; if (!$object) { // We need to initialize document for backwards compatibility (RokSprocket/RokGallery in WP). /** @var HtmlDocument $object */ $object = Gantry::instance()['document']; } return $object; } /** * @param string $string * @param string $to * @param string $from * @return false|string * @internal */ private static function convert_encoding($string, $to, $from) { if (\function_exists('mb_convert_encoding')) { return mb_convert_encoding($string, $to, $from); } if (\function_exists('iconv')) { return iconv($from, $to, $string); } throw new \RuntimeException('No suitable convert encoding function (use UTF-8 as your encoding or install the iconv or mbstring extension).'); } /** * @param string $string * @return false|int|mixed * @internal */ private static function ord($string) { if (\function_exists('mb_ord')) { return mb_ord($string, 'UTF-8'); } $unpacked = unpack('C*', substr($string, 0, 4)); $code = isset($unpacked[0]) ? $unpacked[1] : 0; if (0xF0 <= $code) { return (($code - 0xF0) << 18) + (($unpacked[2] - 0x80) << 12) + (($unpacked[3] - 0x80) << 6) + $unpacked[4] - 0x80; } if (0xE0 <= $code) { return (($code - 0xE0) << 12) + (($unpacked[2] - 0x80) << 6) + $unpacked[3] - 0x80; } if (0xC0 <= $code) { return (($code - 0xC0) << 6) + $unpacked[2] - 0x80; } return $code; } } 0 Class 'Gantry\Component\Content\Document\HtmlDocument' not found

Contact

mail@gemini-theme.com
+ 001 0231 123 32

Follow

Info

All demo content is for sample purposes only, intended to represent a live site. Please use the RocketLauncher to install an equivalent of the demo, all images will be replaced with sample images.

0 Class 'Gantry\Component\Content\Document\HtmlDocument' not found