public function test_prioritySort() { $buckets = array('themes/base.css', 'themes/', 'libs/base.css', 'libs/', 'plugins/'); $data = array('plugins/xyz', 'plugins/abc', 'themes/base.css', 'libs/xyz', 'libs/base.css', 'libs/abc', 'plugins/xyz', 'themes/test', 'libs/xyz'); $expected = array('themes/base.css', 'themes/test', 'libs/base.css', 'libs/xyz', 'libs/abc', 'plugins/xyz', 'plugins/abc'); $this->assertTrue(Piwik_AssetManager::prioritySort($buckets, $data) == $expected); }
/** * Sends AssetManager.getCssFiles or AssetManager.getJsFiles events, gathers assets and include them. * * Examples: * <pre> * {includeAssets type="css"} * </pre> * * @throws Exception if the type parameter is not present or invalid * @param string $type The type of the assets to include */ function smarty_function_includeAssets($params, &$smarty) { if (!isset($params['type'])) { throw new Exception("The smarty function includeAssets needs a 'type' parameter."); } $assetType = strtolower($params['type']); switch ($assetType) { case 'css': return Piwik_AssetManager::getCssAssets(); case 'js': return Piwik_AssetManager::getJsAssets(); default: throw new Exception("The smarty function includeAssets 'type' parameter needs to be either 'css' or 'js'."); } }
/** * Output the merged JavaScript file. * This method is called when the asset manager is enabled. * * @see core/AssetManager.php */ public function getJs() { $jsMergedFile = Piwik_AssetManager::getMergedJsFileLocation(); Piwik::serveStaticFile($jsMergedFile, "application/javascript; charset=UTF-8"); }
/** * Called on Core install, update, plugin enable/disable * Will clear all cache that could be affected by the change in configuration being made */ public static function deleteAllCacheOnUpdate() { Piwik_AssetManager::removeMergedAssets(); Piwik_View::clearCompiledTemplates(); Piwik_Common::deleteTrackerCache(); }