functions.php

File

drupal/core/vendor/kriswallsmith/assetic/src/functions.php
View source
<?php

/*
 * This file is part of the Assetic package, an OpenSky project.
 *
 * (c) 2010-2013 OpenSky Project Inc
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
use Assetic\Factory\AssetFactory;
use Assetic\Util\TraversableString;

/**
 * Initializes the global Assetic object.
 *
 * @param AssetFactory $factory The asset factory
 */
function assetic_init(AssetFactory $factory) {
  global $_assetic;
  $_assetic = new stdClass();
  $_assetic->factory = $factory;
}

/**
 * Returns an array of javascript URLs.
 *
 * @param array|string $inputs  Input strings
 * @param array|string $filters Filter names
 * @param array        $options An array of options
 *
 * @return array An array of javascript URLs
 */
function assetic_javascripts($inputs = array(), $filters = array(), array $options = array()) {
  if (!isset($options['output'])) {
    $options['output'] = 'js/*.js';
  }
  return _assetic_urls($inputs, $filters, $options);
}

/**
 * Returns an array of stylesheet URLs.
 *
 * @param array|string $inputs  Input strings
 * @param array|string $filters Filter names
 * @param array        $options An array of options
 *
 * @return array An array of stylesheet URLs
 */
function assetic_stylesheets($inputs = array(), $filters = array(), array $options = array()) {
  if (!isset($options['output'])) {
    $options['output'] = 'css/*.css';
  }
  return _assetic_urls($inputs, $filters, $options);
}

/**
 * Returns an image URL.
 *
 * @param string       $input   An input
 * @param array|string $filters Filter names
 * @param array        $options An array of options
 *
 * @return string An image URL
 */
function assetic_image($input, $filters = array(), array $options = array()) {
  if (!isset($options['output'])) {
    $options['output'] = 'images/*';
  }
  $urls = _assetic_urls($input, $filters, $options);
  return current($urls);
}

/**
 * Returns an array of asset urls.
 *
 * @param array|string $inputs  Input strings
 * @param array|string $filters Filter names
 * @param array        $options An array of options
 *
 * @return array An array of URLs
 */
function _assetic_urls($inputs = array(), $filters = array(), array $options = array()) {
  global $_assetic;
  if (!is_array($inputs)) {
    $inputs = array_filter(array_map('trim', explode(',', $inputs)));
  }
  if (!is_array($filters)) {
    $filters = array_filter(array_map('trim', explode(',', $filters)));
  }
  $coll = $_assetic->factory
    ->createAsset($inputs, $filters, $options);
  $debug = isset($options['debug']) ? $options['debug'] : $_assetic->factory
    ->isDebug();
  $combine = isset($options['combine']) ? $options['combine'] : !$debug;
  $one = $coll
    ->getTargetPath();
  if ($combine) {
    $many = array(
      $one,
    );
  }
  else {
    $many = array();
    foreach ($coll as $leaf) {
      $many[] = $leaf
        ->getTargetPath();
    }
  }
  return new TraversableString($one, $many);
}

Functions

Namesort descending Description
assetic_image Returns an image URL.
assetic_init Initializes the global Assetic object.
assetic_javascripts Returns an array of javascript URLs.
assetic_stylesheets Returns an array of stylesheet URLs.
_assetic_urls Returns an array of asset urls.