aboutsummaryrefslogtreecommitdiff
path: root/engine/lib
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib')
-rw-r--r--engine/lib/admin.php2
-rw-r--r--engine/lib/elgglib.php6
-rw-r--r--engine/lib/views.php52
3 files changed, 46 insertions, 14 deletions
diff --git a/engine/lib/admin.php b/engine/lib/admin.php
index 3c070203e..aab4b3aea 100644
--- a/engine/lib/admin.php
+++ b/engine/lib/admin.php
@@ -161,7 +161,7 @@ function admin_init() {
*/
function admin_pagesetup() {
if (elgg_in_context('admin')) {
- $url = elgg_get_site_url() . 'pg/css/admin.css';
+ $url = elgg_view_get_simplecache_url('css', 'admin');
elgg_register_css($url, 'admin');
elgg_unregister_css('elgg');
}
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php
index 7bf23df5e..ec67f97cf 100644
--- a/engine/lib/elgglib.php
+++ b/engine/lib/elgglib.php
@@ -2123,7 +2123,7 @@ function _elgg_shutdown_hook() {
*/
function js_page_handler($page) {
if (is_array($page) && sizeof($page)) {
- $js = str_replace('.js', '', $page[0]);
+ $js = substr($page[0], 0, strpos($page[0], '.'));
$return = elgg_view('js/' . $js);
header('Content-type: text/javascript');
@@ -2133,7 +2133,6 @@ function js_page_handler($page) {
header("Content-Length: " . strlen($return));
echo $return;
- exit;
}
}
@@ -2150,9 +2149,10 @@ function js_page_handler($page) {
function css_page_handler($page) {
if (!isset($page[0])) {
// default css
+ $page[0] = 'elgg';
}
- $css = str_replace('.css', '', $page[0]);
+ $css = substr($page[0], 0, strpos($page[0], '.'));
$return = elgg_view("css/$css");
header("Content-type: text/css", true);
diff --git a/engine/lib/views.php b/engine/lib/views.php
index 6c4cec0f2..e0e10bcb7 100644
--- a/engine/lib/views.php
+++ b/engine/lib/views.php
@@ -399,7 +399,7 @@ function elgg_view_exists($view, $viewtype = '', $recurse = true) {
* @warning Simple cached views must take no parameters and return
* the same content no matter who is logged in.
*
- * @note CSS and the basic JS views are automatically cached.
+ * @note CSS and the basic JS views are cached by the engine.
*
* @param string $viewname View name
*
@@ -422,6 +422,27 @@ function elgg_view_register_simplecache($viewname) {
}
/**
+ * Get the URL for the cached file
+ *
+ * @param string $type The file type: css or js
+ * @param string $view The view name
+ * @return string
+ * @since 1.8.0
+ */
+function elgg_view_get_simplecache_url($type, $view) {
+ global $CONFIG;
+ $lastcache = $CONFIG->lastcache;
+
+ if (elgg_view_is_simplecache_enabled()) {
+ $viewtype = elgg_get_viewtype();
+ $url = elgg_get_site_url() . "cache/$type/$view/$viewtype/$view.$lastcache.$type";
+ } else {
+ $url = elgg_get_site_url() . "pg/$type/$view.$lastcache.$type";
+ }
+ return $url;
+}
+
+/**
* Regenerates the simple cache.
*
* @warning This does not invalidate the cache, but actively resets it.
@@ -484,6 +505,22 @@ function elgg_view_regenerate_simplecache($viewtype = NULL) {
}
/**
+ * Is simple cache enabled
+ *
+ * @return bool
+ * @since 1.8.0
+ */
+function elgg_view_is_simplecache_enabled() {
+ global $CONFIG;
+
+ if ($CONFIG->simplecache_enabled) {
+ return true;
+ }
+
+ return false;
+}
+
+/**
* Enables the simple cache.
*
* @access private
@@ -1329,17 +1366,10 @@ function elgg_is_valid_view_type($view_type) {
* Add the core Elgg head elements that could be cached
*/
function elgg_views_register_core_head_elements() {
- global $CONFIG;
-
- $base = elgg_get_site_url();
- $lastcache = $CONFIG->lastcache;
- $viewtype = elgg_get_viewtype();
-
- //$url = "{$base}_css/js.php?lastcache=$lastcache&js=initialise_elgg&viewtype=$viewtype";
- $url = "{$base}cache/js/initialise_elgg/$viewtype/initialise_elgg.$lastcache.js";
+ $url = elgg_view_get_simplecache_url('js', 'initialise_elgg');
elgg_register_js($url, 'initialise_elgg');
- $url = "{$base}cache/css/elgg/$viewtype/elgg.$lastcache.css";
+ $url = elgg_view_get_simplecache_url('css', 'elgg');
elgg_register_css($url, 'elgg');
}
@@ -1355,6 +1385,8 @@ function elgg_views_boot() {
global $CONFIG;
elgg_view_register_simplecache('css/elgg');
+ elgg_view_register_simplecache('ie/elgg');
+ elgg_view_register_simplecache('ie6/elgg');
elgg_view_register_simplecache('js/friendsPickerv1');
elgg_view_register_simplecache('js/initialise_elgg');