function admin_pagesetup() {
if (elgg_in_context('admin')) {
$url = elgg_get_simplecache_url('css', 'admin');
- elgg_register_css($url, 'admin');
+ elgg_register_css('elgg.admin', $url);
elgg_unregister_css('elgg');
// setup footer menu
elgg_unregister_css('elgg');
$url = elgg_get_simplecache_url('js', 'admin');
- elgg_register_js($url, 'admin');
+ elgg_register_js('elgg.admin', $url);
- elgg_register_js('vendors/jquery/jquery.jeditable.mini.js', 'jquery.jeditable');
+ elgg_register_js('jquery.jeditable', 'vendors/jquery/jquery.jeditable.mini.js');
// default to dashboard
if (!isset($page[0]) || empty($page[0])) {
* JavaScript from a view that may be called more than once. It also handles
* more than one plugin adding the same JavaScript.
*
- * Plugin authors are encouraged to use the $id variable. jQuery plugins
- * often have filenames such as jquery.rating.js. In that case, the id
- * would be "jquery.rating". It is recommended to not use version numbers
- * in the id.
+ * jQuery plugins often have filenames such as jquery.rating.js. A best practice
+ * is to base $name on the filename: "jquery.rating". It is recommended to not
+ * use version numbers in the name.
*
* The JavaScript files can be local to the server or remote (such as
* Google's CDN).
*
+ * @param string $name An identifier for the JavaScript library
* @param string $url URL of the JavaScript file
- * @param string $id An identifier of the JavaScript library
* @param string $location Page location: head or footer. (default: head)
+ * @param int $priority Priority of the CSS file (lower numbers load earlier)
+ *
* @return bool
+ * @since 1.8.0
*/
-function elgg_register_js($url, $id = '', $location = 'head') {
- return elgg_register_external_file('javascript', $url, $id, $location);
+function elgg_register_js($name, $url, $location = 'head', $priority = 500) {
+ return elgg_register_external_file('js', $name, $url, $location, $priority);
}
/**
* Register a CSS file for inclusion in the HTML head
*
- * @param string $url URL of the CSS file
- * @param string $id An identifier for the CSS file
+ * @param string $name An identifier for the CSS file
+ * @param string $url URL of the CSS file
+ * @param int $priority Priority of the CSS file (lower numbers load earlier)
+ *
* @return bool
+ * @since 1.8.0
*/
-function elgg_register_css($url, $id = '') {
- return elgg_register_external_file('css', $url, $id, 'head');
+function elgg_register_css($name, $url, $priority = 500) {
+ return elgg_register_external_file('css', $name, $url, 'head', $priority);
}
/**
* Core registration function for external files
*
* @param string $type Type of external resource
+ * @param string $name Identifier used as key
* @param string $url URL
- * @param string $id Identifier used as key
* @param string $location Location in the page to include the file
+ * @param int $priority Loading priority of the file
+ *
* @return bool
+ * @since 1.8.0
*/
-function elgg_register_external_file($type, $url, $id, $location) {
+function elgg_register_external_file($type, $name, $url, $location, $priority) {
global $CONFIG;
- if (empty($url)) {
+ if (empty($name) || empty($url)) {
return false;
}
$CONFIG->externals[$type][$location] = array();
}
- if (!$id) {
- $id = count($CONFIG->externals[$type][$location]);
- } else {
- $id = trim(strtolower($id));
- }
-
- $CONFIG->externals[$type][$location][$id] = elgg_normalize_url($url);
+ $name = trim(strtolower($name));
+ $CONFIG->externals[$type][$location][$name] = elgg_normalize_url($url);
return true;
}
/**
* Unregister a JavaScript file
*
- * @param string $id The identifier for the JavaScript library
- * @param string $url Optional URL to search for if id is not specified
- * @param string $location Location in the page
+ * @param string $name The identifier for the JavaScript library
+ *
* @return bool
+ * @since 1.8.0
*/
-function elgg_unregister_js($id = '', $url = '', $location = 'head') {
- return elgg_unregister_external_file('javascript', $id, $url, $location);
+function elgg_unregister_js($name) {
+ return elgg_unregister_external_file('js', $name);
}
/**
- * Unregister an external file
+ * Unregister a CSS file
+ *
+ * @param string $name The identifier for the CSS file
*
- * @param string $id The identifier of the CSS file
- * @param string $url Optional URL to search for if id is not specified
* @return bool
+ * @since 1.8.0
*/
-function elgg_unregister_css($id = '', $url = '') {
- return elgg_unregister_external_file('css', $id, $url, 'head');
+function elgg_unregister_css($name) {
+ return elgg_unregister_external_file('css', $name);
}
/**
* Unregister an external file
*
- * @param string $type Type of file: javascript or css
- * @param string $id The identifier of the file
- * @param string $url Optional URL to search for if the id is not specified
- * @param string $location Location in the page
+ * @param string $type Type of file: javascript or css
+ * @param string $name The identifier of the file
+ *
* @return bool
+ * @since 1.8.0
*/
-function elgg_unregister_external_file($type, $id = '', $url = '', $location = 'head') {
+function elgg_unregister_external_file($type, $name) {
global $CONFIG;
if (!isset($CONFIG->externals)) {
return false;
}
- if (!isset($CONFIG->externals[$type][$location])) {
- return false;
- }
-
- if (array_key_exists($id, $CONFIG->externals[$type][$location])) {
- unset($CONFIG->externals[$type][$location][$id]);
- return true;
- }
-
- // was not registered with an id so do a search for the url
- $key = array_search($url, $CONFIG->externals[$type][$location]);
- if ($key) {
- unset($CONFIG->externals[$type][$location][$key]);
- return true;
+ foreach ($CONFIG->externals[$type] as $location => $files) {
+ if (array_key_exists($name, $CONFIG->externals[$type][$location])) {
+ unset($CONFIG->externals[$type][$location][$name]);
+ return true;
+ }
}
return false;
* @param string $location 'head' or 'footer'
*
* @return array
+ * @since 1.8.0
*/
function elgg_get_js($location = 'head') {
- return elgg_get_external_file('javascript', $location);
+ return elgg_get_external_file('js', $location);
}
/**
* Get the CSS URLs
*
* @return array
+ * @since 1.8.0
*/
function elgg_get_css() {
return elgg_get_external_file('css', 'head');
*
* @param string $type Type of resource
* @param string $location Page location
+ *
* @return array
+ * @since 1.8.0
*/
function elgg_get_external_file($type, $location) {
global $CONFIG;
* @return boolean
*/
function elgg_walled_garden_index() {
- elgg_register_css('/css/walled_garden.css');
+ elgg_register_css('elgg.walled_garden', '/css/walled_garden.css');
$login = elgg_view('core/account/login_walled_garden');
echo elgg_view_page('', $login, 'walled_garden');
* @return string The rendered list of entities
* @access private
*/
-function elgg_view_entity_list($entities, $vars, $offset = 0, $limit = 10, $full_view = true,
+function elgg_view_entity_list($entities, $vars = array(), $offset = 0, $limit = 10, $full_view = true,
$list_type_toggle = true, $pagination = true) {
if (!is_int($offset)) {
$offset = (int)get_input('offset', 0);
}
- if (func_num_args() == 2) {
+ if (is_array($vars)) {
// new function
$defaults = array(
'items' => $entities,
* @since 1.8.0
* @access private
*/
-function elgg_view_list_item($item, $full_view, array $vars = array()) {
+function elgg_view_list_item($item, array $vars = array()) {
$full_view = elgg_extract('full_view', $vars, false);
*/
function elgg_views_register_core_head_elements() {
$url = elgg_get_simplecache_url('js', 'elgg');
- elgg_register_js($url, 'elgg');
+ elgg_register_js('elgg', $url, 'head', 10);
$url = elgg_get_simplecache_url('css', 'elgg');
- elgg_register_css($url, 'elgg');
+ elgg_register_css('elgg', $url, 10);
}
/**
elgg_register_simplecache_view('css/ie6');
elgg_register_simplecache_view('js/elgg');
- elgg_register_js("/vendors/jquery/jquery-1.5.min.js", 'jquery');
- elgg_register_js("/vendors/jquery/jquery-ui-1.8.9.min.js", 'jquery-ui');
- elgg_register_js("/vendors/jquery/jquery.form.js", 'jquery.form');
+ elgg_register_js('jquery', '/vendors/jquery/jquery-1.5.min.js', 'head', 1);
+ elgg_register_js('jquery-ui', '/vendors/jquery/jquery-ui-1.8.9.min.js', 'head', 2);
+ elgg_register_js('jquery.form', '/vendors/jquery/jquery.form.js');
elgg_register_event_handler('ready', 'system', 'elgg_views_register_core_head_elements');
public function testElggRegisterJS() {
global $CONFIG;
- // specify id
- $result = elgg_register_js('//test1.com', 'key', 'footer');
+ // specify name
+ $result = elgg_register_js('key', '//test1.com', 'footer');
$this->assertTrue($result);
- $this->assertIdentical('//test1.com', $CONFIG->externals['javascript']['footer']['key']);
-
- // let Elgg pick id
- $result = elgg_register_js('//test2.com');
- $this->assertTrue($result);
- $this->assertIdentical('//test2.com', $CONFIG->externals['javascript']['head'][0]);
+ $this->assertIdentical('//test1.com', $CONFIG->externals['js']['footer']['key']);
// send a bad url
$result = elgg_register_js();
public function testElggRegisterCSS() {
global $CONFIG;
- // specify id
- $result = elgg_register_css('//test1.com', 'key');
+ // specify name
+ $result = elgg_register_css('key', '//test1.com');
$this->assertTrue($result);
$this->assertIdentical('//test1.com', $CONFIG->externals['css']['head']['key']);
-
- // let Elgg pick id
- $result = elgg_register_css('//test2.com');
- $this->assertTrue($result);
- $this->assertIdentical('//test2.com', $CONFIG->externals['css']['head'][1]);
-
- // send a bad url
- $result = elgg_register_js();
- $this->assertFalse($result);
}
/**
$urls = array('id1' => '//url1.com', 'id2' => '//url2.com', 'id3' => '//url3.com');
foreach ($urls as $id => $url) {
- elgg_register_js($url, $id);
+ elgg_register_js($id, $url);
}
$result = elgg_unregister_js('id1');
$this->assertTrue($result);
- $this->assertNULL($CONFIG->externals['javascript']['head']['id1']);
-
- $result = elgg_unregister_js('', '//url2.com');
- $this->assertTrue($result);
- $this->assertNULL($CONFIG->externals['javascript']['head']['id2']);
+ $this->assertNULL($CONFIG->externals['js']['head']['id1']);
$result = elgg_unregister_js('id1');
$this->assertFalse($result);
$result = elgg_unregister_js('', '//url2.com');
$this->assertFalse($result);
- $this->assertIdentical($urls['id3'], $CONFIG->externals['javascript']['head']['id3']);
+ $result = elgg_unregister_js('id2');
+ $this->assertIdentical($urls['id3'], $CONFIG->externals['js']['head']['id3']);
}
/**
public function testElggGetJS() {
global $CONFIG;
- $urls = array('id1' => '//url1.com', 'id2' => '//url2.com', 'id3' => '//url3.com');
+ $base = trim(elgg_get_site_url(), "/");
+
+ $urls = array('id1' => "$base/id1", 'id2' => "$base/id2", 'id3' => "$base/id3");
foreach ($urls as $id => $url) {
elgg_register_js($url, $id);
}
elgg_push_breadcrumb(elgg_echo('edit'));
$blog_js = elgg_get_simplecache_url('js', 'blog/save_draft');
- elgg_register_js($blog_js, 'blog');
+ elgg_register_js('elgg.blog', $blog_js);
$content = elgg_view_form('blog/save', $vars, $body_vars);
$sidebar = elgg_view('blog/sidebar/revisions', $vars);
$content = elgg_view_form('blog/save', $vars, $body_vars);
$blog_js = elgg_get_simplecache_url('js', 'blog/save_draft');
- elgg_register_js($blog_js, 'blog');
+ elgg_register_js('elgg.blog', $blog_js);
}
$return['title'] = $title;
set_page_owner(elgg_get_logged_in_user_guid());
$js_url = elgg_get_simplecache_url('js', 'friendsPickerv1');
-elgg_register_js($js_url, 'friendsPicker');
+elgg_register_js('friendsPicker', $js_url);
// Set the context to settings
elgg_set_context('settings');
* Hacked up friends picker that needs to be replaced
*/
-elgg_register_js('js/lib/friends_picker.js', 'friendspicker', 'head');
-elgg_register_js('vendors/jquery/jquery.easing.1.3.packed.js', 'jquery.easing');
+elgg_register_js('elgg.friendspicker', 'js/lib/friends_picker.js');
+elgg_register_js('jquery.easing', 'vendors/jquery/jquery.easing.1.3.packed.js');
?>
<div class="elgg-module elgg-module-info">
// add the jquery treeview files for navigation
$js_url = elgg_get_site_url() . 'mod/pages/vendors/jquery-treeview/jquery.treeview.min.js';
- elgg_register_js($js_url, 'jquery-treeview');
+ elgg_register_js('jquery-treeview', $js_url);
$css_url = elgg_get_site_url() . 'mod/pages/vendors/jquery-treeview/jquery.treeview.css';
- elgg_register_css($css_url, 'jquery-treeview');
+ elgg_register_css('jquery-treeview', $css_url);
if (!isset($page[0])) {
$page[0] = 'all';
* Initialize the TinyMCE script
*/
-elgg_register_js('mod/tinymce/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js', 'tinymce');
-elgg_register_js(elgg_get_simplecache_url('js', 'tinymce'), 'elgg.tinymce');
\ No newline at end of file
+elgg_register_js('tinymce', 'mod/tinymce/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js');
+elgg_register_js('elgg.tinymce', elgg_get_simplecache_url('js', 'tinymce'));
\ No newline at end of file
*/
$js_url = elgg_get_site_url() . 'mod/zaudio/audioplayer/audio-player.js';
-elgg_register_js($js_url, 'zaudio');
+elgg_register_js('elgg.zaudio', $js_url);
$swf_url = elgg_get_site_url() . 'mod/zaudio/audioplayer/player.swf';
$mp3_url = elgg_get_site_url() . "mod/file/download.php?file_guid={$vars['file_guid']}";
<div id="elgg-plugin-list">
<?php
- echo elgg_view_entity_list($installed_plugins, 0, 0, 0, true, false, false);
+$options = array(
+
+);
+echo elgg_view_entity_list($installed_plugins, 0, 0, 0, true, false, false);
?>
</div>
\ No newline at end of file
unset($vars['match_on']);
unset($vars['match_owner']);
-elgg_register_js('js/lib/autocomplete.js', 'autocomplete', 'head');
+elgg_register_js('elgg.autocomplete', 'js/lib/autocomplete.js');
?>
* @uses $vars['entities'] The array of ElggUser objects
*/
-elgg_register_js('js/lib/friends_picker.js', 'friendspicker', 'head');
-elgg_register_js('vendors/jquery/jquery.easing.1.3.packed.js', 'jquery.easing');
+elgg_register_js('elgg.friendspicker', 'js/lib/friends_picker.js');
+elgg_register_js('jquery.easing', 'vendors/jquery/jquery.easing.1.3.packed.js');
$chararray = elgg_echo('friendspicker:chararray');
*
*/
-elgg_register_js('js/lib/userpicker.js', 'userpicker', 'head');
+elgg_register_js('elgg.userpicker', 'js/lib/userpicker.js');
function user_picker_add_user($user_id) {
$user = get_entity($user_id);
$offset_key = elgg_extract('offset_key', $vars, 'offset');
$position = elgg_extract('position', $vars, 'after');
+// @todo standardize on full - will require backward compatible code
+if (isset($vars['full_view'])) {
+ $vars['full'] = $vars['full_view'];
+}
+
$list_class = 'elgg-list';
if (isset($vars['list_class'])) {
$list_class = "{$vars['list_class']} $list_class";