mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge remote-tracking branch 'tony/patch-1' into 3
This commit is contained in:
commit
51e02e2ed7
@ -189,6 +189,23 @@ class Requirements implements Flushable {
|
|||||||
return self::backend()->themedCSS($name, $module, $media);
|
return self::backend()->themedCSS($name, $module, $media);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers the given themeable javascript as required.
|
||||||
|
*
|
||||||
|
* A javascript file in the current theme path name 'themename/javascript/$name.js' is first searched for,
|
||||||
|
* and it that doesn't exist and the module parameter is set then a javascript file with that name in
|
||||||
|
* the module is used.
|
||||||
|
*
|
||||||
|
* @param string $name The name of the file - eg '/javascript/File.js' would have the name 'File'
|
||||||
|
* @param string $module The module to fall back to if the javascript file does not exist in the
|
||||||
|
* current theme.
|
||||||
|
* @param string $type Comma-separated list of types to use in the script tag
|
||||||
|
* (e.g. 'text/javascript,text/ecmascript')
|
||||||
|
*/
|
||||||
|
public static function themedJavascript($name, $module = null, $type = null) {
|
||||||
|
return self::backend()->themedJavascript($name, $module, $type);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear either a single or all requirements
|
* Clear either a single or all requirements
|
||||||
*
|
*
|
||||||
@ -1342,6 +1359,42 @@ class Requirements_Backend {
|
|||||||
$this->css($theme . $css, $media);
|
$this->css($theme . $css, $media);
|
||||||
} elseif($module) {
|
} elseif($module) {
|
||||||
$this->css($module . $css, $media);
|
$this->css($module . $css, $media);
|
||||||
|
} elseif (Director::isDev()) {
|
||||||
|
throw Exception("The css file doesn't exists. Please check if the file $name.css exists in any context or search for themedCSS references calling this file in your templates.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers the given themeable javascript as required.
|
||||||
|
*
|
||||||
|
* A javascript file in the current theme path name 'themename/javascript/$name.js' is first searched for,
|
||||||
|
* and it that doesn't exist and the module parameter is set then a javascript file with that name in
|
||||||
|
* the module is used.
|
||||||
|
*
|
||||||
|
* @param string $name The name of the file - eg '/js/File.js' would have the name 'File'
|
||||||
|
* @param string $module The module to fall back to if the javascript file does not exist in the
|
||||||
|
* current theme.
|
||||||
|
* @param string $type Comma-separated list of types to use in the script tag
|
||||||
|
* (e.g. 'text/javascript,text/ecmascript')
|
||||||
|
*/
|
||||||
|
public function themedJavascript($name, $module = null, $type = null) {
|
||||||
|
$theme = SSViewer::get_theme_folder();
|
||||||
|
$project = project();
|
||||||
|
$absbase = BASE_PATH . DIRECTORY_SEPARATOR;
|
||||||
|
$abstheme = $absbase . $theme;
|
||||||
|
$absproject = $absbase . $project;
|
||||||
|
$js = "/javascript/$name.js";
|
||||||
|
|
||||||
|
if(file_exists($absproject . $js)) {
|
||||||
|
$this->javascript($project . $js);
|
||||||
|
} elseif($module && file_exists($abstheme . '_' . $module.$js)) {
|
||||||
|
$this->javascript($theme . '_' . $module . $js);
|
||||||
|
} elseif(file_exists($abstheme . $js)) {
|
||||||
|
$this->javascript($theme . $js);
|
||||||
|
} elseif($module) {
|
||||||
|
$this->javascript($module . $js);
|
||||||
|
} else {
|
||||||
|
throw new InvalidArgumentException("The javascript file doesn't exists. Please check if the file $name.js exists in any context or search for themedJavascript references calling this file in your templates.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user