%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/tjamichg/cursos.tjamich.gob.mx/vendor/knplabs/knp-menu/src/Knp/Menu/Renderer/
Upload File :
Create Path :
Current File : /home/tjamichg/cursos.tjamich.gob.mx/vendor/knplabs/knp-menu/src/Knp/Menu/Renderer/Renderer.php

<?php

namespace Knp\Menu\Renderer;

abstract class Renderer
{
    protected $charset = 'UTF-8';

    /**
     * @param string|null $charset
     */
    public function __construct($charset = null)
    {
        if (null !== $charset) {
            $this->charset = (string) $charset;
        }
    }

    /**
     * Renders a HTML attribute
     *
     * @param string      $name
     * @param string|bool $value
     *
     * @return string
     */
    protected function renderHtmlAttribute($name, $value)
    {
        if (true === $value) {
            return \sprintf('%s="%s"', $name, $this->escape($name));
        }

        return \sprintf('%s="%s"', $name, $this->escape($value));
    }

    /**
     * Renders HTML attributes
     *
     * @param array $attributes
     *
     * @return string
     */
    protected function renderHtmlAttributes(array $attributes)
    {
        return \implode('', \array_map([$this, 'htmlAttributesCallback'], \array_keys($attributes), \array_values($attributes)));
    }

    /**
     * Prepares an attribute key and value for HTML representation.
     *
     * It removes empty attributes.
     *
     * @param string           $name  The attribute name
     * @param string|bool|null $value The attribute value
     *
     * @return string The HTML representation of the HTML key attribute pair.
     */
    private function htmlAttributesCallback($name, $value)
    {
        if (false === $value || null === $value) {
            return '';
        }

        return ' '.$this->renderHtmlAttribute($name, $value);
    }

    /**
     * Escapes an HTML value
     *
     * @param string $value
     *
     * @return string
     */
    protected function escape($value)
    {
        return $this->fixDoubleEscape(\htmlspecialchars((string) $value, ENT_QUOTES | ENT_SUBSTITUTE, $this->charset));
    }

    /**
     * Fixes double escaped strings.
     *
     * @param string $escaped string to fix
     *
     * @return string A single escaped string
     */
    protected function fixDoubleEscape($escaped)
    {
        return \preg_replace('/&amp;([a-z]+|(#\d+)|(#x[\da-f]+));/i', '&$1;', $escaped);
    }

    /**
     * Get the HTML charset
     *
     * @return string
     */
    public function getCharset()
    {
        return $this->charset;
    }

    /**
     * Set the HTML charset
     *
     * @param string $charset
     */
    public function setCharset($charset)
    {
        $this->charset = (string) $charset;
    }
}

Zerion Mini Shell 1.0