123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
- namespace Grav\Common\Assets\Traits;
- use Grav\Common\Assets;
- trait LegacyAssetsTrait
- {
-
- protected function unifyLegacyArguments($args, $type = Assets::CSS_TYPE)
- {
-
- array_shift($args);
- if (\count($args) === 0) {
- return [];
- }
- if (\count($args) === 1 && \is_array($args[0])) {
- return $args[0];
- }
- switch ($type) {
- case(Assets::INLINE_CSS_TYPE):
- $defaults = ['priority' => null, 'group' => null];
- $arguments = $this->createArgumentsFromLegacy($args, $defaults);
- break;
- case(Assets::JS_TYPE):
- $defaults = ['priority' => null, 'pipeline' => true, 'loading' => null, 'group' => null];
- $arguments = $this->createArgumentsFromLegacy($args, $defaults);
- break;
- case(Assets::INLINE_JS_TYPE):
- $defaults = ['priority' => null, 'group' => null, 'attributes' => null];
- $arguments = $this->createArgumentsFromLegacy($args, $defaults);
-
- if (isset($arguments['attributes'])) {
- $old_attributes = $arguments['attributes'];
- $arguments = array_merge($arguments, $old_attributes);
- }
- unset($arguments['attributes']);
- break;
- default:
- case(Assets::CSS_TYPE):
- $defaults = ['priority' => null, 'pipeline' => true, 'group' => null, 'loading' => null];
- $arguments = $this->createArgumentsFromLegacy($args, $defaults);
- }
- return $arguments;
- }
- protected function createArgumentsFromLegacy(array $args, array $defaults)
- {
-
- $arguments = [];
- foreach ($args as $arg) {
- $default = current($defaults);
- if ($arg !== $default) {
- $arguments[key($defaults)] = $arg;
- }
- next($defaults);
- }
- return $arguments;
- }
-
- public function addAsyncJs($asset, $priority = 10, $pipeline = true, $group = 'head')
- {
- user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.6, use dynamic method with [\'loading\' => \'async\']', E_USER_DEPRECATED);
- return $this->addJs($asset, $priority, $pipeline, 'async', $group);
- }
-
- public function addDeferJs($asset, $priority = 10, $pipeline = true, $group = 'head')
- {
- user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.6, use dynamic method with [\'loading\' => \'defer\']', E_USER_DEPRECATED);
- return $this->addJs($asset, $priority, $pipeline, 'defer', $group);
- }
- }
|