init web ems all
This commit is contained in:
34
phpMyAdmin/vendor/twig/extensions/.travis.yml
vendored
Executable file
34
phpMyAdmin/vendor/twig/extensions/.travis.yml
vendored
Executable file
@@ -0,0 +1,34 @@
|
||||
language: php
|
||||
|
||||
sudo: false
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- vendor
|
||||
- $HOME/.composer/cache/files
|
||||
|
||||
env:
|
||||
- DEPS=no
|
||||
|
||||
before_install:
|
||||
- phpenv config-rm xdebug.ini
|
||||
|
||||
before_script:
|
||||
- if [ "$DEPS" == "low" ]; then composer --prefer-lowest --prefer-stable update; fi;
|
||||
- if [ "$DEPS" == "no" ]; then composer install; fi;
|
||||
|
||||
script: |
|
||||
./vendor/bin/simple-phpunit
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- php: 5.3
|
||||
dist: precise
|
||||
- php: 5.4
|
||||
- php: 5.5
|
||||
- php: 5.6
|
||||
env: DEPS=low
|
||||
- php: 7.0
|
||||
- php: 7.1
|
||||
- php: 7.2
|
||||
fast_finish: true
|
||||
19
phpMyAdmin/vendor/twig/extensions/LICENSE
vendored
Executable file
19
phpMyAdmin/vendor/twig/extensions/LICENSE
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2010-2017 Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
14
phpMyAdmin/vendor/twig/extensions/README.rst
vendored
Executable file
14
phpMyAdmin/vendor/twig/extensions/README.rst
vendored
Executable file
@@ -0,0 +1,14 @@
|
||||
Twig Extensions Repository
|
||||
==========================
|
||||
|
||||
This repository hosts Twig Extensions that do not belong to the core but can
|
||||
be nonetheless interesting to share with other developers.
|
||||
|
||||
Fork this repository, add your extension, and request a pull.
|
||||
|
||||
More Information
|
||||
----------------
|
||||
|
||||
Read the `documentation`_ for more information.
|
||||
|
||||
.. _documentation: http://twig-extensions.readthedocs.io/
|
||||
32
phpMyAdmin/vendor/twig/extensions/composer.json
vendored
Executable file
32
phpMyAdmin/vendor/twig/extensions/composer.json
vendored
Executable file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "twig/extensions",
|
||||
"description": "Common additional features for Twig that do not directly belong in core",
|
||||
"keywords": ["i18n","text"],
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Potencier",
|
||||
"email": "fabien@symfony.com"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"twig/twig": "^1.27|^2.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/phpunit-bridge": "^3.4",
|
||||
"symfony/translation": "^2.7|^3.4"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/translation": "Allow the time_diff output to be translated"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": { "Twig_Extensions_": "lib/" },
|
||||
"psr-4": { "Twig\\Extensions\\": "src/" }
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.5-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
48
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php
vendored
Executable file
48
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php
vendored
Executable file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2009 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
@trigger_error('The "Twig_Extensions_Autoloader" class is deprecated since version 1.5. Use Composer instead.', E_USER_DEPRECATED);
|
||||
|
||||
/**
|
||||
* Autoloads Twig Extensions classes.
|
||||
*
|
||||
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
*
|
||||
* @deprecated since version 1.5, use Composer instead.
|
||||
*/
|
||||
class Twig_Extensions_Autoloader
|
||||
{
|
||||
/**
|
||||
* Registers Twig_Extensions_Autoloader as an SPL autoloader.
|
||||
*/
|
||||
public static function register()
|
||||
{
|
||||
spl_autoload_register(array(new self(), 'autoload'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles autoloading of classes.
|
||||
*
|
||||
* @param string $class a class name
|
||||
*
|
||||
* @return bool Returns true if the class has been loaded
|
||||
*/
|
||||
public static function autoload($class)
|
||||
{
|
||||
if (0 !== strpos($class, 'Twig_Extensions')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (file_exists($file = __DIR__.'/../../'.str_replace('_', '/', $class).'.php')) {
|
||||
require $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
56
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Array.php
vendored
Executable file
56
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Array.php
vendored
Executable file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2009 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Ricard Clau <ricard.clau@gmail.com>
|
||||
*/
|
||||
class Twig_Extensions_Extension_Array extends Twig_Extension
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFilters()
|
||||
{
|
||||
$filters = array(
|
||||
new Twig_SimpleFilter('shuffle', 'twig_shuffle_filter'),
|
||||
);
|
||||
|
||||
return $filters;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'array';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shuffles an array.
|
||||
*
|
||||
* @param array|Traversable $array An array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function twig_shuffle_filter($array)
|
||||
{
|
||||
if ($array instanceof Traversable) {
|
||||
$array = iterator_to_array($array, false);
|
||||
}
|
||||
|
||||
shuffle($array);
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_Extension_Array', 'Twig\Extensions\ArrayExtension', false);
|
||||
107
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Date.php
vendored
Executable file
107
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Date.php
vendored
Executable file
@@ -0,0 +1,107 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2014 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
use Symfony\Component\Translation\IdentityTranslator;
|
||||
|
||||
/**
|
||||
* @author Robin van der Vleuten <robinvdvleuten@gmail.com>
|
||||
*/
|
||||
class Twig_Extensions_Extension_Date extends Twig_Extension
|
||||
{
|
||||
public static $units = array(
|
||||
'y' => 'year',
|
||||
'm' => 'month',
|
||||
'd' => 'day',
|
||||
'h' => 'hour',
|
||||
'i' => 'minute',
|
||||
's' => 'second',
|
||||
);
|
||||
|
||||
/**
|
||||
* @var TranslatorInterface
|
||||
*/
|
||||
private $translator;
|
||||
|
||||
public function __construct(TranslatorInterface $translator = null)
|
||||
{
|
||||
// Ignore the IdentityTranslator, otherwise the parameters won't be replaced properly
|
||||
if ($translator instanceof IdentityTranslator) {
|
||||
$translator = null;
|
||||
}
|
||||
|
||||
$this->translator = $translator;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFilters()
|
||||
{
|
||||
return array(
|
||||
new Twig_SimpleFilter('time_diff', array($this, 'diff'), array('needs_environment' => true)),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter for converting dates to a time ago string like Facebook and Twitter has.
|
||||
*
|
||||
* @param Twig_Environment $env a Twig_Environment instance
|
||||
* @param string|DateTime $date a string or DateTime object to convert
|
||||
* @param string|DateTime $now A string or DateTime object to compare with. If none given, the current time will be used.
|
||||
*
|
||||
* @return string the converted time
|
||||
*/
|
||||
public function diff(Twig_Environment $env, $date, $now = null)
|
||||
{
|
||||
// Convert both dates to DateTime instances.
|
||||
$date = twig_date_converter($env, $date);
|
||||
$now = twig_date_converter($env, $now);
|
||||
|
||||
// Get the difference between the two DateTime objects.
|
||||
$diff = $date->diff($now);
|
||||
|
||||
// Check for each interval if it appears in the $diff object.
|
||||
foreach (self::$units as $attribute => $unit) {
|
||||
$count = $diff->$attribute;
|
||||
|
||||
if (0 !== $count) {
|
||||
return $this->getPluralizedInterval($count, $diff->invert, $unit);
|
||||
}
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
protected function getPluralizedInterval($count, $invert, $unit)
|
||||
{
|
||||
if ($this->translator) {
|
||||
$id = sprintf('diff.%s.%s', $invert ? 'in' : 'ago', $unit);
|
||||
|
||||
return $this->translator->transChoice($id, $count, array('%count%' => $count), 'date');
|
||||
}
|
||||
|
||||
if (1 !== $count) {
|
||||
$unit .= 's';
|
||||
}
|
||||
|
||||
return $invert ? "in $count $unit" : "$count $unit ago";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'date';
|
||||
}
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_Extension_Date', 'Twig\Extensions\DateExtension', false);
|
||||
41
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/I18n.php
vendored
Executable file
41
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/I18n.php
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
class Twig_Extensions_Extension_I18n extends Twig_Extension
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getTokenParsers()
|
||||
{
|
||||
return array(new Twig_Extensions_TokenParser_Trans());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFilters()
|
||||
{
|
||||
return array(
|
||||
new Twig_SimpleFilter('trans', 'gettext'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'i18n';
|
||||
}
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_Extension_I18n', 'Twig\Extensions\I18nExtension', false);
|
||||
146
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Intl.php
vendored
Executable file
146
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Intl.php
vendored
Executable file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
class Twig_Extensions_Extension_Intl extends Twig_Extension
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
if (!class_exists('IntlDateFormatter')) {
|
||||
throw new RuntimeException('The native PHP intl extension (http://php.net/manual/en/book.intl.php) is needed to use intl-based filters.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFilters()
|
||||
{
|
||||
return array(
|
||||
new Twig_SimpleFilter('localizeddate', 'twig_localized_date_filter', array('needs_environment' => true)),
|
||||
new Twig_SimpleFilter('localizednumber', 'twig_localized_number_filter'),
|
||||
new Twig_SimpleFilter('localizedcurrency', 'twig_localized_currency_filter'),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'intl';
|
||||
}
|
||||
}
|
||||
|
||||
function twig_localized_date_filter(Twig_Environment $env, $date, $dateFormat = 'medium', $timeFormat = 'medium', $locale = null, $timezone = null, $format = null, $calendar = 'gregorian')
|
||||
{
|
||||
$date = twig_date_converter($env, $date, $timezone);
|
||||
|
||||
$formatValues = array(
|
||||
'none' => IntlDateFormatter::NONE,
|
||||
'short' => IntlDateFormatter::SHORT,
|
||||
'medium' => IntlDateFormatter::MEDIUM,
|
||||
'long' => IntlDateFormatter::LONG,
|
||||
'full' => IntlDateFormatter::FULL,
|
||||
);
|
||||
|
||||
if (PHP_VERSION_ID < 50500 || !class_exists('IntlTimeZone')) {
|
||||
$formatter = IntlDateFormatter::create(
|
||||
$locale,
|
||||
$formatValues[$dateFormat],
|
||||
$formatValues[$timeFormat],
|
||||
$date->getTimezone()->getName(),
|
||||
'gregorian' === $calendar ? IntlDateFormatter::GREGORIAN : IntlDateFormatter::TRADITIONAL,
|
||||
$format
|
||||
);
|
||||
|
||||
return $formatter->format($date->getTimestamp());
|
||||
}
|
||||
|
||||
$formatter = IntlDateFormatter::create(
|
||||
$locale,
|
||||
$formatValues[$dateFormat],
|
||||
$formatValues[$timeFormat],
|
||||
IntlTimeZone::createTimeZone($date->getTimezone()->getName()),
|
||||
'gregorian' === $calendar ? IntlDateFormatter::GREGORIAN : IntlDateFormatter::TRADITIONAL,
|
||||
$format
|
||||
);
|
||||
|
||||
return $formatter->format($date->getTimestamp());
|
||||
}
|
||||
|
||||
function twig_localized_number_filter($number, $style = 'decimal', $type = 'default', $locale = null)
|
||||
{
|
||||
static $typeValues = array(
|
||||
'default' => NumberFormatter::TYPE_DEFAULT,
|
||||
'int32' => NumberFormatter::TYPE_INT32,
|
||||
'int64' => NumberFormatter::TYPE_INT64,
|
||||
'double' => NumberFormatter::TYPE_DOUBLE,
|
||||
'currency' => NumberFormatter::TYPE_CURRENCY,
|
||||
);
|
||||
|
||||
$formatter = twig_get_number_formatter($locale, $style);
|
||||
|
||||
if (!isset($typeValues[$type])) {
|
||||
throw new Twig_Error_Syntax(sprintf('The type "%s" does not exist. Known types are: "%s"', $type, implode('", "', array_keys($typeValues))));
|
||||
}
|
||||
|
||||
return $formatter->format($number, $typeValues[$type]);
|
||||
}
|
||||
|
||||
function twig_localized_currency_filter($number, $currency = null, $locale = null)
|
||||
{
|
||||
$formatter = twig_get_number_formatter($locale, 'currency');
|
||||
|
||||
return $formatter->formatCurrency($number, $currency);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a number formatter instance according to given locale and formatter.
|
||||
*
|
||||
* @param string $locale Locale in which the number would be formatted
|
||||
* @param int $style Style of the formatting
|
||||
*
|
||||
* @return NumberFormatter A NumberFormatter instance
|
||||
*/
|
||||
function twig_get_number_formatter($locale, $style)
|
||||
{
|
||||
static $formatter, $currentStyle;
|
||||
|
||||
$locale = null !== $locale ? $locale : Locale::getDefault();
|
||||
|
||||
if ($formatter && $formatter->getLocale() === $locale && $currentStyle === $style) {
|
||||
// Return same instance of NumberFormatter if parameters are the same
|
||||
// to those in previous call
|
||||
return $formatter;
|
||||
}
|
||||
|
||||
static $styleValues = array(
|
||||
'decimal' => NumberFormatter::DECIMAL,
|
||||
'currency' => NumberFormatter::CURRENCY,
|
||||
'percent' => NumberFormatter::PERCENT,
|
||||
'scientific' => NumberFormatter::SCIENTIFIC,
|
||||
'spellout' => NumberFormatter::SPELLOUT,
|
||||
'ordinal' => NumberFormatter::ORDINAL,
|
||||
'duration' => NumberFormatter::DURATION,
|
||||
);
|
||||
|
||||
if (!isset($styleValues[$style])) {
|
||||
throw new Twig_Error_Syntax(sprintf('The style "%s" does not exist. Known styles are: "%s"', $style, implode('", "', array_keys($styleValues))));
|
||||
}
|
||||
|
||||
$currentStyle = $style;
|
||||
|
||||
$formatter = NumberFormatter::create($locale, $styleValues[$style]);
|
||||
|
||||
return $formatter;
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_Extension_Intl', 'Twig\Extensions\IntlExtension', false);
|
||||
99
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Text.php
vendored
Executable file
99
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Extension/Text.php
vendored
Executable file
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2009 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @author Henrik Bjornskov <hb@peytz.dk>
|
||||
*/
|
||||
class Twig_Extensions_Extension_Text extends Twig_Extension
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getFilters()
|
||||
{
|
||||
return array(
|
||||
new Twig_SimpleFilter('truncate', 'twig_truncate_filter', array('needs_environment' => true)),
|
||||
new Twig_SimpleFilter('wordwrap', 'twig_wordwrap_filter', array('needs_environment' => true)),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'Text';
|
||||
}
|
||||
}
|
||||
|
||||
if (function_exists('mb_get_info')) {
|
||||
function twig_truncate_filter(Twig_Environment $env, $value, $length = 30, $preserve = false, $separator = '...')
|
||||
{
|
||||
if (mb_strlen($value, $env->getCharset()) > $length) {
|
||||
if ($preserve) {
|
||||
// If breakpoint is on the last word, return the value without separator.
|
||||
if (false === ($breakpoint = mb_strpos($value, ' ', $length, $env->getCharset()))) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
$length = $breakpoint;
|
||||
}
|
||||
|
||||
return rtrim(mb_substr($value, 0, $length, $env->getCharset())).$separator;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
function twig_wordwrap_filter(Twig_Environment $env, $value, $length = 80, $separator = "\n", $preserve = false)
|
||||
{
|
||||
$sentences = array();
|
||||
|
||||
$previous = mb_regex_encoding();
|
||||
mb_regex_encoding($env->getCharset());
|
||||
|
||||
$pieces = mb_split($separator, $value);
|
||||
mb_regex_encoding($previous);
|
||||
|
||||
foreach ($pieces as $piece) {
|
||||
while (!$preserve && mb_strlen($piece, $env->getCharset()) > $length) {
|
||||
$sentences[] = mb_substr($piece, 0, $length, $env->getCharset());
|
||||
$piece = mb_substr($piece, $length, 2048, $env->getCharset());
|
||||
}
|
||||
|
||||
$sentences[] = $piece;
|
||||
}
|
||||
|
||||
return implode($separator, $sentences);
|
||||
}
|
||||
} else {
|
||||
function twig_truncate_filter(Twig_Environment $env, $value, $length = 30, $preserve = false, $separator = '...')
|
||||
{
|
||||
if (strlen($value) > $length) {
|
||||
if ($preserve) {
|
||||
if (false !== ($breakpoint = strpos($value, ' ', $length))) {
|
||||
$length = $breakpoint;
|
||||
}
|
||||
}
|
||||
|
||||
return rtrim(substr($value, 0, $length)).$separator;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
function twig_wordwrap_filter(Twig_Environment $env, $value, $length = 80, $separator = "\n", $preserve = false)
|
||||
{
|
||||
return wordwrap($value, $length, $separator, !$preserve);
|
||||
}
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_Extension_Text', 'Twig\Extensions\TextExtension', false);
|
||||
43
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar.php
vendored
Executable file
43
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar.php
vendored
Executable file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
abstract class Twig_Extensions_Grammar implements Twig_Extensions_GrammarInterface
|
||||
{
|
||||
protected $name;
|
||||
protected $parser;
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*/
|
||||
public function __construct($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Twig_Parser $parser
|
||||
*/
|
||||
public function setParser(Twig_Parser $parser)
|
||||
{
|
||||
$this->parser = $parser;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
}
|
||||
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Arguments.php
vendored
Executable file
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Arguments.php
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Arguments extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:arguments>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
return $this->parser->getExpressionParser()->parseArguments();
|
||||
}
|
||||
}
|
||||
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Array.php
vendored
Executable file
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Array.php
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Array extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:array>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
return $this->parser->getExpressionParser()->parseArrayExpression();
|
||||
}
|
||||
}
|
||||
43
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Body.php
vendored
Executable file
43
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Body.php
vendored
Executable file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Body extends Twig_Extensions_Grammar
|
||||
{
|
||||
protected $end;
|
||||
|
||||
public function __construct($name, $end = null)
|
||||
{
|
||||
parent::__construct($name);
|
||||
|
||||
$this->end = null === $end ? 'end'.$name : $end;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:body>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$stream = $this->parser->getStream();
|
||||
$stream->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
|
||||
return $this->parser->subparse(array($this, 'decideBlockEnd'), true);
|
||||
}
|
||||
|
||||
public function decideBlockEnd(Twig_Token $token)
|
||||
{
|
||||
return $token->test($this->end);
|
||||
}
|
||||
}
|
||||
28
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Boolean.php
vendored
Executable file
28
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Boolean.php
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Boolean extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:boolean>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$this->parser->getStream()->expect(Twig_Token::NAME_TYPE, array('true', 'false'));
|
||||
|
||||
return new Twig_Node_Expression_Constant('true' === $token->getValue() ? true : false, $token->getLine());
|
||||
}
|
||||
}
|
||||
41
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Constant.php
vendored
Executable file
41
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Constant.php
vendored
Executable file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Constant extends Twig_Extensions_Grammar
|
||||
{
|
||||
protected $type;
|
||||
|
||||
public function __construct($name, $type = null)
|
||||
{
|
||||
$this->name = $name;
|
||||
$this->type = null === $type ? Twig_Token::NAME_TYPE : $type;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$this->parser->getStream()->expect($this->type, $this->name);
|
||||
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
}
|
||||
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Expression.php
vendored
Executable file
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Expression.php
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Expression extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
return $this->parser->getExpressionParser()->parseExpression();
|
||||
}
|
||||
}
|
||||
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Hash.php
vendored
Executable file
26
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Hash.php
vendored
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Hash extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:hash>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
return $this->parser->getExpressionParser()->parseHashExpression();
|
||||
}
|
||||
}
|
||||
28
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Number.php
vendored
Executable file
28
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Number.php
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Number extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:number>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$this->parser->getStream()->expect(Twig_Token::NUMBER_TYPE);
|
||||
|
||||
return new Twig_Node_Expression_Constant($token->getValue(), $token->getLine());
|
||||
}
|
||||
}
|
||||
73
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Optional.php
vendored
Executable file
73
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Optional.php
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Optional extends Twig_Extensions_Grammar
|
||||
{
|
||||
protected $grammar;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->grammar = array();
|
||||
foreach (func_get_args() as $grammar) {
|
||||
$this->addGrammar($grammar);
|
||||
}
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
$repr = array();
|
||||
foreach ($this->grammar as $grammar) {
|
||||
$repr[] = (string) $grammar;
|
||||
}
|
||||
|
||||
return sprintf('[%s]', implode(' ', $repr));
|
||||
}
|
||||
|
||||
public function addGrammar(Twig_Extensions_GrammarInterface $grammar)
|
||||
{
|
||||
$this->grammar[] = $grammar;
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
// test if we have the optional element before consuming it
|
||||
if ($this->grammar[0] instanceof Twig_Extensions_Grammar_Constant) {
|
||||
if (!$this->parser->getStream()->test($this->grammar[0]->getType(), $this->grammar[0]->getName())) {
|
||||
return array();
|
||||
}
|
||||
} elseif ($this->grammar[0] instanceof Twig_Extensions_Grammar_Name) {
|
||||
if (!$this->parser->getStream()->test(Twig_Token::NAME_TYPE)) {
|
||||
return array();
|
||||
}
|
||||
} elseif ($this->parser->getStream()->test(Twig_Token::BLOCK_END_TYPE)) {
|
||||
// if this is not a Constant or a Name, it must be the last element of the tag
|
||||
|
||||
return array();
|
||||
}
|
||||
|
||||
$elements = array();
|
||||
foreach ($this->grammar as $grammar) {
|
||||
$grammar->setParser($this->parser);
|
||||
|
||||
$element = $grammar->parse($token);
|
||||
if (is_array($element)) {
|
||||
$elements = array_merge($elements, $element);
|
||||
} else {
|
||||
$elements[$grammar->getName()] = $element;
|
||||
}
|
||||
}
|
||||
|
||||
return $elements;
|
||||
}
|
||||
}
|
||||
28
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Switch.php
vendored
Executable file
28
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Switch.php
vendored
Executable file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Switch extends Twig_Extensions_Grammar
|
||||
{
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('<%s:switch>', $this->name);
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$this->parser->getStream()->expect(Twig_Token::NAME_TYPE, $this->name);
|
||||
|
||||
return new Twig_Node_Expression_Constant(true, $token->getLine());
|
||||
}
|
||||
}
|
||||
60
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Tag.php
vendored
Executable file
60
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Grammar/Tag.php
vendored
Executable file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
class Twig_Extensions_Grammar_Tag extends Twig_Extensions_Grammar
|
||||
{
|
||||
protected $grammar;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->grammar = array();
|
||||
foreach (func_get_args() as $grammar) {
|
||||
$this->addGrammar($grammar);
|
||||
}
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
$repr = array();
|
||||
foreach ($this->grammar as $grammar) {
|
||||
$repr[] = (string) $grammar;
|
||||
}
|
||||
|
||||
return implode(' ', $repr);
|
||||
}
|
||||
|
||||
public function addGrammar(Twig_Extensions_GrammarInterface $grammar)
|
||||
{
|
||||
$this->grammar[] = $grammar;
|
||||
}
|
||||
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$elements = array();
|
||||
foreach ($this->grammar as $grammar) {
|
||||
$grammar->setParser($this->parser);
|
||||
|
||||
$element = $grammar->parse($token);
|
||||
if (is_array($element)) {
|
||||
$elements = array_merge($elements, $element);
|
||||
} else {
|
||||
$elements[$grammar->getName()] = $element;
|
||||
}
|
||||
}
|
||||
|
||||
$this->parser->getStream()->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
|
||||
return $elements;
|
||||
}
|
||||
}
|
||||
22
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/GrammarInterface.php
vendored
Executable file
22
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/GrammarInterface.php
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
interface Twig_Extensions_GrammarInterface
|
||||
{
|
||||
public function setParser(Twig_Parser $parser);
|
||||
|
||||
public function parse(Twig_Token $token);
|
||||
|
||||
public function getName();
|
||||
}
|
||||
166
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Node/Trans.php
vendored
Executable file
166
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/Node/Trans.php
vendored
Executable file
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Represents a trans node.
|
||||
*
|
||||
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
*/
|
||||
class Twig_Extensions_Node_Trans extends Twig_Node
|
||||
{
|
||||
public function __construct(Twig_Node $body, Twig_Node $plural = null, Twig_Node_Expression $count = null, Twig_Node $notes = null, $lineno, $tag = null)
|
||||
{
|
||||
$nodes = array('body' => $body);
|
||||
if (null !== $count) {
|
||||
$nodes['count'] = $count;
|
||||
}
|
||||
if (null !== $plural) {
|
||||
$nodes['plural'] = $plural;
|
||||
}
|
||||
if (null !== $notes) {
|
||||
$nodes['notes'] = $notes;
|
||||
}
|
||||
|
||||
parent::__construct($nodes, array(), $lineno, $tag);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function compile(Twig_Compiler $compiler)
|
||||
{
|
||||
$compiler->addDebugInfo($this);
|
||||
|
||||
list($msg, $vars) = $this->compileString($this->getNode('body'));
|
||||
|
||||
if ($this->hasNode('plural')) {
|
||||
list($msg1, $vars1) = $this->compileString($this->getNode('plural'));
|
||||
|
||||
$vars = array_merge($vars, $vars1);
|
||||
}
|
||||
|
||||
$function = $this->getTransFunction($this->hasNode('plural'));
|
||||
|
||||
if ($this->hasNode('notes')) {
|
||||
$message = trim($this->getNode('notes')->getAttribute('data'));
|
||||
|
||||
// line breaks are not allowed cause we want a single line comment
|
||||
$message = str_replace(array("\n", "\r"), ' ', $message);
|
||||
$compiler->write("// notes: {$message}\n");
|
||||
}
|
||||
|
||||
if ($vars) {
|
||||
$compiler
|
||||
->write('echo strtr('.$function.'(')
|
||||
->subcompile($msg)
|
||||
;
|
||||
|
||||
if ($this->hasNode('plural')) {
|
||||
$compiler
|
||||
->raw(', ')
|
||||
->subcompile($msg1)
|
||||
->raw(', abs(')
|
||||
->subcompile($this->hasNode('count') ? $this->getNode('count') : null)
|
||||
->raw(')')
|
||||
;
|
||||
}
|
||||
|
||||
$compiler->raw('), array(');
|
||||
|
||||
foreach ($vars as $var) {
|
||||
if ('count' === $var->getAttribute('name')) {
|
||||
$compiler
|
||||
->string('%count%')
|
||||
->raw(' => abs(')
|
||||
->subcompile($this->hasNode('count') ? $this->getNode('count') : null)
|
||||
->raw('), ')
|
||||
;
|
||||
} else {
|
||||
$compiler
|
||||
->string('%'.$var->getAttribute('name').'%')
|
||||
->raw(' => ')
|
||||
->subcompile($var)
|
||||
->raw(', ')
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
$compiler->raw("));\n");
|
||||
} else {
|
||||
$compiler
|
||||
->write('echo '.$function.'(')
|
||||
->subcompile($msg)
|
||||
;
|
||||
|
||||
if ($this->hasNode('plural')) {
|
||||
$compiler
|
||||
->raw(', ')
|
||||
->subcompile($msg1)
|
||||
->raw(', abs(')
|
||||
->subcompile($this->hasNode('count') ? $this->getNode('count') : null)
|
||||
->raw(')')
|
||||
;
|
||||
}
|
||||
|
||||
$compiler->raw(");\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Twig_Node $body A Twig_Node instance
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function compileString(Twig_Node $body)
|
||||
{
|
||||
if ($body instanceof Twig_Node_Expression_Name || $body instanceof Twig_Node_Expression_Constant || $body instanceof Twig_Node_Expression_TempName) {
|
||||
return array($body, array());
|
||||
}
|
||||
|
||||
$vars = array();
|
||||
if (count($body)) {
|
||||
$msg = '';
|
||||
|
||||
foreach ($body as $node) {
|
||||
if (get_class($node) === 'Twig_Node' && $node->getNode(0) instanceof Twig_Node_SetTemp) {
|
||||
$node = $node->getNode(1);
|
||||
}
|
||||
|
||||
if ($node instanceof Twig_Node_Print) {
|
||||
$n = $node->getNode('expr');
|
||||
while ($n instanceof Twig_Node_Expression_Filter) {
|
||||
$n = $n->getNode('node');
|
||||
}
|
||||
$msg .= sprintf('%%%s%%', $n->getAttribute('name'));
|
||||
$vars[] = new Twig_Node_Expression_Name($n->getAttribute('name'), $n->getTemplateLine());
|
||||
} else {
|
||||
$msg .= $node->getAttribute('data');
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$msg = $body->getAttribute('data');
|
||||
}
|
||||
|
||||
return array(new Twig_Node(array(new Twig_Node_Expression_Constant(trim($msg), $body->getTemplateLine()))), $vars);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bool $plural Return plural or singular function to use
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getTransFunction($plural)
|
||||
{
|
||||
return $plural ? 'ngettext' : 'gettext';
|
||||
}
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_Node_Trans', 'Twig\Extensions\Node\TransNode', false);
|
||||
138
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/SimpleTokenParser.php
vendored
Executable file
138
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/SimpleTokenParser.php
vendored
Executable file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
@trigger_error('The grammar feature is deprecated since version 1.5 and will be removed in 2.0.', E_USER_DEPRECATED);
|
||||
|
||||
/**
|
||||
* @deprecated since version 1.5
|
||||
*/
|
||||
abstract class Twig_Extensions_SimpleTokenParser extends Twig_TokenParser
|
||||
{
|
||||
/**
|
||||
* Parses a token and returns a node.
|
||||
*
|
||||
* @param Twig_Token $token A Twig_Token instance
|
||||
*
|
||||
* @return Twig_Node A Twig_Node instance
|
||||
*/
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$grammar = $this->getGrammar();
|
||||
if (!is_object($grammar)) {
|
||||
$grammar = self::parseGrammar($grammar);
|
||||
}
|
||||
|
||||
$grammar->setParser($this->parser);
|
||||
$values = $grammar->parse($token);
|
||||
|
||||
return $this->getNode($values, $token->getLine());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the grammar as an object or as a string.
|
||||
*
|
||||
* @return string|Twig_Extensions_Grammar A Twig_Extensions_Grammar instance or a string
|
||||
*/
|
||||
abstract protected function getGrammar();
|
||||
|
||||
/**
|
||||
* Gets the nodes based on the parsed values.
|
||||
*
|
||||
* @param array $values An array of values
|
||||
* @param int $line The parser line
|
||||
*/
|
||||
abstract protected function getNode(array $values, $line);
|
||||
|
||||
protected function getAttribute($node, $attribute, $arguments = array(), $type = Twig_Node_Expression_GetAttr::TYPE_ANY, $line = -1)
|
||||
{
|
||||
return new Twig_Node_Expression_GetAttr(
|
||||
$node instanceof Twig_Node ? $node : new Twig_Node_Expression_Name($node, $line),
|
||||
$attribute instanceof Twig_Node ? $attribute : new Twig_Node_Expression_Constant($attribute, $line),
|
||||
$arguments instanceof Twig_Node ? $arguments : new Twig_Node($arguments),
|
||||
$type,
|
||||
$line
|
||||
);
|
||||
}
|
||||
|
||||
protected function call($node, $attribute, $arguments = array(), $line = -1)
|
||||
{
|
||||
return $this->getAttribute($node, $attribute, $arguments, Twig_Node_Expression_GetAttr::TYPE_METHOD, $line);
|
||||
}
|
||||
|
||||
protected function markAsSafe(Twig_Node $node, $line = -1)
|
||||
{
|
||||
return new Twig_Node_Expression_Filter(
|
||||
$node,
|
||||
new Twig_Node_Expression_Constant('raw', $line),
|
||||
new Twig_Node(),
|
||||
$line
|
||||
);
|
||||
}
|
||||
|
||||
protected function output(Twig_Node $node, $line = -1)
|
||||
{
|
||||
return new Twig_Node_Print($node, $line);
|
||||
}
|
||||
|
||||
protected function getNodeValues(array $values)
|
||||
{
|
||||
$nodes = array();
|
||||
foreach ($values as $value) {
|
||||
if ($value instanceof Twig_Node) {
|
||||
$nodes[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $nodes;
|
||||
}
|
||||
|
||||
public static function parseGrammar($str, $main = true)
|
||||
{
|
||||
static $cursor;
|
||||
|
||||
if (true === $main) {
|
||||
$cursor = 0;
|
||||
$grammar = new Twig_Extensions_Grammar_Tag();
|
||||
} else {
|
||||
$grammar = new Twig_Extensions_Grammar_Optional();
|
||||
}
|
||||
|
||||
while ($cursor < strlen($str)) {
|
||||
if (preg_match('/\s+/A', $str, $match, null, $cursor)) {
|
||||
$cursor += strlen($match[0]);
|
||||
} elseif (preg_match('/<(\w+)(?:\:(\w+))?>/A', $str, $match, null, $cursor)) {
|
||||
$class = sprintf('Twig_Extensions_Grammar_%s', ucfirst(isset($match[2]) ? $match[2] : 'Expression'));
|
||||
if (!class_exists($class)) {
|
||||
throw new Twig_Error_Runtime(sprintf('Unable to understand "%s" in grammar (%s class does not exist)', $match[0], $class));
|
||||
}
|
||||
$grammar->addGrammar(new $class($match[1]));
|
||||
$cursor += strlen($match[0]);
|
||||
} elseif (preg_match('/\w+/A', $str, $match, null, $cursor)) {
|
||||
$grammar->addGrammar(new Twig_Extensions_Grammar_Constant($match[0]));
|
||||
$cursor += strlen($match[0]);
|
||||
} elseif (preg_match('/,/A', $str, $match, null, $cursor)) {
|
||||
$grammar->addGrammar(new Twig_Extensions_Grammar_Constant($match[0], Twig_Token::PUNCTUATION_TYPE));
|
||||
$cursor += strlen($match[0]);
|
||||
} elseif (preg_match('/\[/A', $str, $match, null, $cursor)) {
|
||||
$cursor += strlen($match[0]);
|
||||
$grammar->addGrammar(self::parseGrammar($str, false));
|
||||
} elseif (true !== $main && preg_match('/\]/A', $str, $match, null, $cursor)) {
|
||||
$cursor += strlen($match[0]);
|
||||
|
||||
return $grammar;
|
||||
} else {
|
||||
throw new Twig_Error_Runtime(sprintf('Unable to parse grammar "%s" near "...%s..."', $str, substr($str, $cursor, 10)));
|
||||
}
|
||||
}
|
||||
|
||||
return $grammar;
|
||||
}
|
||||
}
|
||||
88
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/TokenParser/Trans.php
vendored
Executable file
88
phpMyAdmin/vendor/twig/extensions/lib/Twig/Extensions/TokenParser/Trans.php
vendored
Executable file
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Twig.
|
||||
*
|
||||
* (c) 2010 Fabien Potencier
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
class Twig_Extensions_TokenParser_Trans extends Twig_TokenParser
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function parse(Twig_Token $token)
|
||||
{
|
||||
$lineno = $token->getLine();
|
||||
$stream = $this->parser->getStream();
|
||||
$count = null;
|
||||
$plural = null;
|
||||
$notes = null;
|
||||
|
||||
if (!$stream->test(Twig_Token::BLOCK_END_TYPE)) {
|
||||
$body = $this->parser->getExpressionParser()->parseExpression();
|
||||
} else {
|
||||
$stream->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
$body = $this->parser->subparse(array($this, 'decideForFork'));
|
||||
$next = $stream->next()->getValue();
|
||||
|
||||
if ('plural' === $next) {
|
||||
$count = $this->parser->getExpressionParser()->parseExpression();
|
||||
$stream->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
$plural = $this->parser->subparse(array($this, 'decideForFork'));
|
||||
|
||||
if ('notes' === $stream->next()->getValue()) {
|
||||
$stream->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
$notes = $this->parser->subparse(array($this, 'decideForEnd'), true);
|
||||
}
|
||||
} elseif ('notes' === $next) {
|
||||
$stream->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
$notes = $this->parser->subparse(array($this, 'decideForEnd'), true);
|
||||
}
|
||||
}
|
||||
|
||||
$stream->expect(Twig_Token::BLOCK_END_TYPE);
|
||||
|
||||
$this->checkTransString($body, $lineno);
|
||||
|
||||
return new Twig_Extensions_Node_Trans($body, $plural, $count, $notes, $lineno, $this->getTag());
|
||||
}
|
||||
|
||||
public function decideForFork(Twig_Token $token)
|
||||
{
|
||||
return $token->test(array('plural', 'notes', 'endtrans'));
|
||||
}
|
||||
|
||||
public function decideForEnd(Twig_Token $token)
|
||||
{
|
||||
return $token->test('endtrans');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getTag()
|
||||
{
|
||||
return 'trans';
|
||||
}
|
||||
|
||||
protected function checkTransString(Twig_Node $body, $lineno)
|
||||
{
|
||||
foreach ($body as $i => $node) {
|
||||
if (
|
||||
$node instanceof Twig_Node_Text
|
||||
||
|
||||
($node instanceof Twig_Node_Print && $node->getNode('expr') instanceof Twig_Node_Expression_Name)
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
throw new Twig_Error_Syntax(sprintf('The text to be translated with "trans" can only contain references to simple variables'), $lineno);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class_alias('Twig_Extensions_TokenParser_Trans', 'Twig\Extensions\TokenParser\TransTokenParser', false);
|
||||
25
phpMyAdmin/vendor/twig/extensions/phpunit.xml.dist
vendored
Executable file
25
phpMyAdmin/vendor/twig/extensions/phpunit.xml.dist
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false"
|
||||
syntaxCheck="false"
|
||||
bootstrap="vendor/autoload.php"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="Twig Extensions Test Suite">
|
||||
<directory>./test/Twig/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory suffix=".php">./lib/Twig/</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/ArrayExtension.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/ArrayExtension.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions;
|
||||
|
||||
class_exists('Twig_Extensions_Extension_Array');
|
||||
|
||||
if (\false) {
|
||||
class ArrayExtension extends \Twig_Extensions_Extension_Array
|
||||
{
|
||||
}
|
||||
}
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/DateExtension.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/DateExtension.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions;
|
||||
|
||||
class_exists('Twig_Extensions_Extension_Date');
|
||||
|
||||
if (\false) {
|
||||
class DateExtension extends \Twig_Extensions_Extension_Date
|
||||
{
|
||||
}
|
||||
}
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/I18nExtension.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/I18nExtension.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions;
|
||||
|
||||
class_exists('Twig_Extensions_Extension_I18n');
|
||||
|
||||
if (\false) {
|
||||
class I18nExtension extends \Twig_Extensions_Extension_I18n
|
||||
{
|
||||
}
|
||||
}
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/IntlExtension.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/IntlExtension.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions;
|
||||
|
||||
class_exists('Twig_Extensions_Extension_Intl');
|
||||
|
||||
if (\false) {
|
||||
class IntlExtension extends \Twig_Extensions_Extension_Intl
|
||||
{
|
||||
}
|
||||
}
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/Node/TransNode.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/Node/TransNode.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions\Node;
|
||||
|
||||
class_exists('Twig_Extensions_Node_Trans');
|
||||
|
||||
if (\false) {
|
||||
class TransNode extends \Twig_Extensions_Node_Trans
|
||||
{
|
||||
}
|
||||
}
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/TextExtension.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/TextExtension.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions;
|
||||
|
||||
class_exists('Twig_Extensions_Extension_Text');
|
||||
|
||||
if (\false) {
|
||||
class TextExtension extends \Twig_Extensions_Extension_Text
|
||||
{
|
||||
}
|
||||
}
|
||||
11
phpMyAdmin/vendor/twig/extensions/src/TokenParser/TransTokenParser.php
vendored
Executable file
11
phpMyAdmin/vendor/twig/extensions/src/TokenParser/TransTokenParser.php
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace Twig\Extensions\TokenParser;
|
||||
|
||||
class_exists('Twig_Extensions_TokenParser_Trans');
|
||||
|
||||
if (\false) {
|
||||
class TransTokenParser extends \Twig_Extensions_TokenParser_Trans
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user