2015-08-13 20:26:50 +02:00
|
|
|
<?php
|
|
|
|
|
namespace Grav\Plugin;
|
|
|
|
|
|
2016-01-28 15:07:54 +01:00
|
|
|
use Grav\Common\Grav;
|
|
|
|
|
use Grav\Common\Language\Language;
|
2015-09-07 09:09:43 -06:00
|
|
|
use Symfony\Component\Yaml\Yaml;
|
2016-01-28 15:07:54 +01:00
|
|
|
use Symfony\Component\Yaml\Parser;
|
2015-08-13 20:26:50 +02:00
|
|
|
|
|
|
|
|
class AdminTwigExtension extends \Twig_Extension
|
|
|
|
|
{
|
2016-01-28 15:07:54 +01:00
|
|
|
/**
|
|
|
|
|
* @var Grav
|
|
|
|
|
*/
|
2015-08-13 20:26:50 +02:00
|
|
|
protected $grav;
|
|
|
|
|
|
2016-01-28 15:07:54 +01:00
|
|
|
/**
|
|
|
|
|
* @var Language $lang
|
|
|
|
|
*/
|
|
|
|
|
protected $lang;
|
|
|
|
|
|
2015-08-13 20:26:50 +02:00
|
|
|
public function __construct()
|
|
|
|
|
{
|
|
|
|
|
$this->grav = Grav::instance();
|
2015-08-13 21:16:34 +02:00
|
|
|
$this->lang = $this->grav['user']->language;
|
2015-08-13 20:26:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Returns extension name.
|
|
|
|
|
*
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
public function getName()
|
|
|
|
|
{
|
|
|
|
|
return 'AdminTwigExtension';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getFilters()
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
new \Twig_SimpleFilter('tu', [$this, 'tuFilter']),
|
2015-09-07 09:09:43 -06:00
|
|
|
new \Twig_SimpleFilter('toYaml', [$this, 'toYamlFilter']),
|
|
|
|
|
new \Twig_SimpleFilter('fromYaml', [$this, 'fromYamlFilter']),
|
2015-08-13 20:26:50 +02:00
|
|
|
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function tuFilter()
|
|
|
|
|
{
|
2016-01-28 15:07:41 +01:00
|
|
|
return $this->grav['admin']->translate(func_get_args());
|
2015-08-13 20:26:50 +02:00
|
|
|
}
|
2015-09-07 09:09:43 -06:00
|
|
|
|
|
|
|
|
public function toYamlFilter($value, $inline = true)
|
|
|
|
|
{
|
|
|
|
|
return Yaml::dump($value, $inline);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function fromYamlFilter($value)
|
|
|
|
|
{
|
|
|
|
|
$yaml = new Parser();
|
|
|
|
|
return $yaml->parse($value);
|
|
|
|
|
}
|
2015-08-18 18:48:15 +02:00
|
|
|
}
|