diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-11-28 18:06:35 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-11-28 18:06:35 +0000 |
commit | d892f121e1b9a34edfa49288a20b99d4d4b65f6b (patch) | |
tree | c669678e56cd717d6dfc8de7ca5147f1a67710dc /engine | |
parent | 8e98d9d3ffce3d77fe756c300151aa1ac60d805c (diff) | |
download | elgg-d892f121e1b9a34edfa49288a20b99d4d4b65f6b.tar.gz elgg-d892f121e1b9a34edfa49288a20b99d4d4b65f6b.tar.bz2 |
Refs #2173 #2160 #2507 added a css page handler to support multiple css files
git-svn-id: http://code.elgg.org/elgg/trunk@7463 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/admin.php | 14 | ||||
-rw-r--r-- | engine/lib/elgglib.php | 27 |
2 files changed, 39 insertions, 2 deletions
diff --git a/engine/lib/admin.php b/engine/lib/admin.php index 82351701c..3c070203e 100644 --- a/engine/lib/admin.php +++ b/engine/lib/admin.php @@ -157,6 +157,17 @@ function admin_init() { } /** + * Handles any set up required for administration pages + */ +function admin_pagesetup() { + if (elgg_in_context('admin')) { + $url = elgg_get_site_url() . 'pg/css/admin.css'; + elgg_register_css($url, 'admin'); + elgg_unregister_css('elgg'); + } +} + +/** * Handle admin pages. Expects corresponding views as admin/section/subsection * * @param array $page Array of pages @@ -310,6 +321,5 @@ function elgg_admin_notice_exists($id) { return ($notice) ? TRUE : FALSE; } -// Register init functions elgg_register_event_handler('init', 'system', 'admin_init'); -elgg_register_event_handler('pagesetup', 'system', 'admin_pagesetup'); +elgg_register_event_handler('pagesetup', 'system', 'admin_pagesetup', 1000); diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 8a8cecbfa..7bf23df5e 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -2138,6 +2138,32 @@ function js_page_handler($page) { } /** + * Serve CSS + * + * Serves CSS from the css views directory with headers for caching control + * + * @param array $page The page array + * + * @return void + * @elgg_pagehandler css + */ +function css_page_handler($page) { + if (!isset($page[0])) { + // default css + } + + $css = str_replace('.css', '', $page[0]); + $return = elgg_view("css/$css"); + + header("Content-type: text/css", true); + header('Expires: ' . date('r', time() + 86400000), true); + header("Pragma: public", true); + header("Cache-Control: public", true); + + echo $return; +} + +/** * Intercepts the index page when Walled Garden mode is enabled. * * @link http://docs.elgg.org/Tutorials/WalledGarden @@ -2192,6 +2218,7 @@ function elgg_init() { elgg_register_action('likes/delete'); register_page_handler('js', 'js_page_handler'); + register_page_handler('css', 'css_page_handler'); // Trigger the shutdown:system event upon PHP shutdown. register_shutdown_function('_elgg_shutdown_hook'); |