mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-29 10:10:25 -07:00
Add Twig extensions
This commit is contained in:
parent
9929956786
commit
cf341d03aa
21
app/Resources/views/macros/utils.html.twig
Normal file
21
app/Resources/views/macros/utils.html.twig
Normal file
@ -0,0 +1,21 @@
|
||||
{#http://stackoverflow.com/a/15303004#}
|
||||
{% macro bytesToSize(bytes) %}
|
||||
{% spaceless %}
|
||||
{% set kilobyte = 1024 %}
|
||||
{% set megabyte = kilobyte * 1024 %}
|
||||
{% set gigabyte = megabyte * 1024 %}
|
||||
{% set terabyte = gigabyte * 1024 %}
|
||||
|
||||
{% if bytes < kilobyte %}
|
||||
{{ bytes ~ ' B' }}
|
||||
{% elseif bytes < megabyte %}
|
||||
{{ (bytes / kilobyte)|number_format(2, '.') ~ ' KB' }}
|
||||
{% elseif bytes < gigabyte %}
|
||||
{{ (bytes / megabyte)|number_format(2, '.') ~ ' MB' }}
|
||||
{% elseif bytes < terabyte %}
|
||||
{{ (bytes / gigabyte)|number_format(2, '.') ~ ' GB' }}
|
||||
{% else %}
|
||||
{{ (bytes / terabyte)|number_format(2, '.') ~ ' TB' }}
|
||||
{% endif %}
|
||||
{% endspaceless %}
|
||||
{% endmacro %}
|
@ -30,6 +30,13 @@ class AppExtension extends \Twig_Extension
|
||||
];
|
||||
}
|
||||
|
||||
public function getFunctions() {
|
||||
return [
|
||||
new \Twig_SimpleFunction('remoteSize', [$this, 'remoteSize']),
|
||||
new \Twig_SimpleFunction('remoteFilename', [$this, 'remoteFilename']),
|
||||
];
|
||||
}
|
||||
|
||||
public function partImage(Part $part, Color $color = null)
|
||||
{
|
||||
return '/parts/ldraw/'.($color ? $color->getId():'-1').'/'.$part->getNumber().'.png';
|
||||
@ -39,4 +46,22 @@ class AppExtension extends \Twig_Extension
|
||||
{
|
||||
return '/sets/'.strtolower($set->getNumber()).'.jpg';
|
||||
}
|
||||
|
||||
public function remoteSize($url) {
|
||||
$ch = curl_init($url);
|
||||
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
|
||||
curl_setopt($ch, CURLOPT_HEADER, TRUE);
|
||||
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
|
||||
|
||||
$data = curl_exec($ch);
|
||||
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
|
||||
|
||||
curl_close($ch);
|
||||
return $size;
|
||||
}
|
||||
|
||||
public function remoteFilename($url) {
|
||||
return basename($url);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user