diff --git a/gallery_base.inc b/gallery_base.inc
index d4f28ba9557bd1dd04ad93be91137b486b864ccf..ff76ba2ad443ffb1eeb555f6cce3705cea09dda7 100644
--- a/gallery_base.inc
+++ b/gallery_base.inc
@@ -277,11 +277,28 @@ function gallery_set_head($html, $settitle = FALSE) {
* Implementation of gallery_set_css
*/
function gallery_set_css($css) {
+ global $base_url;
+ static $css_memory = array();
+
if (count($css)) {
- $css = preg_replace('//i', '${2}', $css);
+ $css = preg_replace('//i', '${2}', $css);
+ $css = preg_replace(array('#^'. $base_url .'#', '#^'. base_path() .'#', '#^/#'), '', $css);
foreach ($css as $include) {
- // Gallery's CSS will always be added first, what allows overriding in the module(s)
- drupal_add_css(substr($include, strlen(base_path())), 'module', 'all', FALSE);
+ if (!in_array(($md5 = md5($include)), $css_memory)) {
+ $css_memory[] = $md5;
+ if (substr($include, 0, 6) == '' ."\n");
+ }
+ else {
+ // Gallery's css must always be added first to allow overriding from the module(s)
+ drupal_add_css($include, 'module', 'all', FALSE);
+ }
+ }
}
}
}
@@ -291,14 +308,29 @@ function gallery_set_css($css) {
* (druapl_add_js() ensures proper cascading of included G2 javascript)
*/
function gallery_set_javascript($javascript) {
+ global $base_url;
+ static $js_memory = array();
+
if (!empty($javascript)) {
$files = preg_grep('/' ."\n");
+ }
+ else {
+ drupal_add_js($include);
+ }
+ }
}
}
}