PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.18
Independent Analytics – WordPress Analytics Plugin v1.18
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / league / plates / src / Extension / Asset.php
independent-analytics / vendor / league / plates / src / Extension Last commit date
Asset.php 3 years ago ExtensionInterface.php 3 years ago URI.php 3 years ago
Asset.php
73 lines
1 <?php
2
3 namespace IAWP\League\Plates\Extension;
4
5 use IAWP\League\Plates\Engine;
6 use IAWP\League\Plates\Template\Template;
7 use LogicException;
8 /**
9 * Extension that adds the ability to create "cache busted" asset URLs.
10 */
11 class Asset implements ExtensionInterface
12 {
13 /**
14 * Instance of the current template.
15 * @var Template
16 */
17 public $template;
18 /**
19 * Path to asset directory.
20 * @var string
21 */
22 public $path;
23 /**
24 * Enables the filename method.
25 * @var boolean
26 */
27 public $filenameMethod;
28 /**
29 * Create new Asset instance.
30 * @param string $path
31 * @param boolean $filenameMethod
32 */
33 public function __construct($path, $filenameMethod = \false)
34 {
35 $this->path = \rtrim($path, '/');
36 $this->filenameMethod = $filenameMethod;
37 }
38 /**
39 * Register extension function.
40 * @param Engine $engine
41 * @return null
42 */
43 public function register(Engine $engine)
44 {
45 $engine->registerFunction('asset', array($this, 'cachedAssetUrl'));
46 }
47 /**
48 * Create "cache busted" asset URL.
49 * @param string $url
50 * @return string
51 */
52 public function cachedAssetUrl($url)
53 {
54 $filePath = $this->path . '/' . \ltrim($url, '/');
55 if (!\file_exists($filePath)) {
56 throw new LogicException('Unable to locate the asset "' . $url . '" in the "' . $this->path . '" directory.');
57 }
58 $lastUpdated = \filemtime($filePath);
59 $pathInfo = \pathinfo($url);
60 if ($pathInfo['dirname'] === '.') {
61 $directory = '';
62 } elseif ($pathInfo['dirname'] === \DIRECTORY_SEPARATOR) {
63 $directory = '/';
64 } else {
65 $directory = $pathInfo['dirname'] . '/';
66 }
67 if ($this->filenameMethod) {
68 return $directory . $pathInfo['filename'] . '.' . $lastUpdated . '.' . $pathInfo['extension'];
69 }
70 return $directory . $pathInfo['filename'] . '.' . $pathInfo['extension'] . '?v=' . $lastUpdated;
71 }
72 }
73