diff options
Diffstat (limited to 'views')
357 files changed, 7958 insertions, 5753 deletions
diff --git a/views/default/admin/appearance/default_widgets.php b/views/default/admin/appearance/default_widgets.php new file mode 100644 index 000000000..1bf5791ac --- /dev/null +++ b/views/default/admin/appearance/default_widgets.php @@ -0,0 +1,82 @@ +<?php +/** + * Default widgets landing page. + * + * @package Elgg.Core + * @subpackage Administration.DefaultWidgets + */ + +$object = elgg_get_entities(array( + 'type' => 'object', + 'subtype' => 'moddefaultwidgets', + 'limit' => 1, +)); + +if ($object) { + echo elgg_view('output/url', array( + 'text' => elgg_echo('upgrade'), + 'href' => 'action/widgets/upgrade', + 'is_action' => true, + 'is_trusted' => true, + 'class' => 'elgg_button elgg-button-submit', + 'title' => 'Upgrade your default widgets to work on Elgg 1.8', + )); +} + +elgg_push_context('default_widgets'); +$widget_context = get_input('widget_context'); +$list = elgg_trigger_plugin_hook('get_list', 'default_widgets', null, array()); + +// default to something if we can +if (!$widget_context && $list) { + $widget_context = $list[0]['widget_context']; +} + +$current_info = null; +$tabs = array(); +foreach ($list as $info) { + $url = "admin/appearance/default_widgets?widget_context={$info['widget_context']}"; + $selected = false; + if ($widget_context == $info['widget_context']) { + $selected = true; + $current_info = $info; + } + + $tabs[] = array( + 'title' => $info['name'], + 'url' => $url, + 'selected' => $selected + ); +} + +$tabs_vars = array( + 'tabs' => $tabs +); + +echo elgg_view('navigation/tabs', $tabs_vars); + +echo elgg_view('output/longtext', array('value' => elgg_echo('admin:default_widgets:instructions'))); + +if (!$current_info) { + $content = elgg_echo('admin:default_widgets:unknown_type'); +} else { + // default widgets are owned and saved to the site. + elgg_set_page_owner_guid(elgg_get_config('site_guid')); + elgg_push_context($current_info['widget_context']); + + $default_widgets_input = elgg_view('input/hidden', array( + 'name' => 'default_widgets', + 'value' => 1 + )); + + $params = array( + 'content' => $default_widgets_input, + 'num_columns' => $current_info['widget_columns'], + ); + + $content = elgg_view_layout('widgets', $params); + elgg_pop_context(); +} +elgg_pop_context(); + +echo $content; diff --git a/views/default/admin/appearance/menu_items.php b/views/default/admin/appearance/menu_items.php index 4e35e032f..1d5c95cf9 100644 --- a/views/default/admin/appearance/menu_items.php +++ b/views/default/admin/appearance/menu_items.php @@ -7,4 +7,4 @@ */ -echo elgg_view_form('admin/menu/save'); +echo elgg_view_form('admin/menu/save', array('class' => 'elgg-form-settings')); diff --git a/views/default/admin/appearance/profile_fields.php b/views/default/admin/appearance/profile_fields.php index 7077687cc..f1d78c19f 100644 --- a/views/default/admin/appearance/profile_fields.php +++ b/views/default/admin/appearance/profile_fields.php @@ -3,16 +3,22 @@ * Admin area: edit default profile fields */ -$add = elgg_view_form('profile/fields/add', array(), array()); +$add = elgg_view_form('profile/fields/add', array('class' => 'elgg-form-settings'), array()); $list = elgg_view('admin/appearance/profile_fields/list'); -$reset = elgg_view_form('profile/fields/reset', array(), array()); + +$reset = elgg_view('output/confirmlink', array( + 'text' => elgg_echo('reset'), + 'href' => 'action/profile/fields/reset', + 'title' => elgg_echo('profile:resetdefault'), + 'confirm' => elgg_echo('profile:resetdefault:confirm'), + 'class' => 'elgg-button elgg-button-cancel', + 'is_trusted' => 'true', +)); $body = <<<__HTML $add $list -<div class="default_profile_reset"> - $reset -</div> +<div class="mtl">$reset</div> __HTML; echo $body; diff --git a/views/default/admin/appearance/profile_fields/list.php b/views/default/admin/appearance/profile_fields/list.php index 0b27da3ed..b9440a95d 100644 --- a/views/default/admin/appearance/profile_fields/list.php +++ b/views/default/admin/appearance/profile_fields/list.php @@ -1,28 +1,32 @@ <?php /** * Profile fields. + * + * @todo Needs some review */ // List form elements $n = 0; $loaded_defaults = array(); $items = array(); -if ($fieldlist = elgg_get_config('profile_custom_fields')) { +$fieldlist = elgg_get_config('profile_custom_fields'); +if ($fieldlist) { $fieldlistarray = explode(',', $fieldlist); foreach ($fieldlistarray as $listitem) { - if ($translation = elgg_get_config("admin_defined_profile_{$listitem}")) { + $translation = elgg_get_config("admin_defined_profile_$listitem"); + $type = elgg_get_config("admin_defined_profile_type_$listitem"); + if ($translation && $type) { $item = new stdClass; $item->translation = $translation; $item->shortname = $listitem; - $item->name = "admin_defined_profile_{$listitem}"; - $item->type = elgg_get_config("admin_defined_profile_type_{$listitem}"); + $item->name = "admin_defined_profile_$listitem"; + $item->type = elgg_echo("profile:field:$type"); $items[] = $item; } } } ?> -<div id="list"> - <ul id="sortable_profile_fields"> +<ul id="elgg-profile-fields" class="mvm"> <?php $save = elgg_echo('save'); @@ -32,19 +36,20 @@ foreach ($items as $item) { echo elgg_view("profile/", array('value' => $item->translation)); //$even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; - $url = elgg_add_action_tokens_to_url(elgg_get_site_url() . "action/profile/fields/delete?id={$item->shortname}"); + $url = elgg_view('output/url', array( + 'href' => "action/profile/fields/delete?id={$item->shortname}", + 'text' => elgg_view_icon('delete-alt'), + 'is_action' => true, + 'is_trusted' => true, + )); $type = elgg_echo($item->type); echo <<<HTML -<li id="$item->shortname" class="clearfix"><span class="elgg-icon elgg-icon-dragger elgg-state-draggable"></span> -<b><span id="elgg-profile-field-{$item->shortname}" class="elgg-state-editable">$item->translation</span></b> [$type] -<a href="$url"><span class="elgg-icon elgg-icon-delete"></a></span> +<li id="$item->shortname" class="clearfix"> + <span class="elgg-icon elgg-icon-drag-arrow elgg-state-draggable"></span> + <b><span id="elgg-profile-field-{$item->shortname}" class="elgg-state-editable">$item->translation</span></b> [$type] $url </li> HTML; } ?> - </ul> -</div> -<div id="tempList"></div> - -<input name="sortableListOrder" type="hidden" id="sortableListOrder" value="<?php echo $fieldlist; ?>" />
\ No newline at end of file +</ul>
\ No newline at end of file diff --git a/views/default/admin/components/invalid_plugin.php b/views/default/admin/components/invalid_plugin.php deleted file mode 100644 index 97c1bacf4..000000000 --- a/views/default/admin/components/invalid_plugin.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * Displays an invalid plugin on the admin screen. - * - * An invalid plugin is a plugin whose isValid() method returns false. - * This usually means there are required files missing, unreadable or in the - * wrong format. - * - * @package Elgg.Core - * @subpackage Plugins - */ - -$plugin = elgg_extract('plugin', $vars); -$id = $plugin->getID(); -$path = htmlspecialchars($plugin->getPath()); -$message = elgg_echo('admin:plugins:warning:invalid', array($id)); - -?> - -<div class="elgg-plugin elgg-state-inactive elgg-state-error"> - <p><?php echo $message; ?></p> - <p><?php echo elgg_echo('admin:plugins:label:location') . ": " . $path; ?></p> -</div> diff --git a/views/default/admin/components/plugin.php b/views/default/admin/components/plugin.php deleted file mode 100644 index 7549ea8ca..000000000 --- a/views/default/admin/components/plugin.php +++ /dev/null @@ -1,221 +0,0 @@ -<?php -/** - * Displays a plugin on the admin screen. - * - * This file renders a plugin for the admin screen, including active/deactive, - * manifest details & display plugin settings. - * - * @package Elgg.Core - * @subpackage Plugins - */ - -$plugin = $vars['plugin']; -$priority = $plugin->getPriority(); -$active = $plugin->isActive(); - -$name = $plugin->manifest->getName(); -$can_activate = $plugin->canActivate(); -$max_priority = elgg_get_max_plugin_priority(); -$actions_base = '/action/admin/plugins/'; - -$ts = time(); -$token = generate_action_token($ts); -$active_class = ($active && $can_activate) ? 'elgg-state-active' : 'elgg-state-inactive'; - -// build reordering links -$links = ''; - -// top and up link only if not at top -if ($priority > 1) { - $top_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( - 'plugin_guid' => $plugin->guid, - 'priority' => 'first', - 'is_action' => true - )); - - $links .= "<li>" . elgg_view('output/url', array( - 'href' => $top_url, - 'text' => elgg_echo('top'), - 'is_action' => true - )) . "</li>"; - - $up_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( - 'plugin_guid' => $plugin->guid, - 'priority' => '-1', - 'is_action' => true - )); - - $links .= "<li>" . elgg_view('output/url', array( - 'href' => $up_url, - 'text' => elgg_echo('up'), - 'is_action' => true - )) . "</li>"; -} - -// down and bottom links only if not at bottom -if ($priority < $max_priority) { - $down_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( - 'plugin_guid' => $plugin->guid, - 'priority' => '+1', - 'is_action' => true - )); - - $links .= "<li>" . elgg_view('output/url', array( - 'href' => $down_url, - 'text' => elgg_echo('down'), - 'is_action' => true - )) . "</li>"; - - $bottom_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( - 'plugin_guid' => $plugin->guid, - 'priority' => 'last', - 'is_action' => true - )); - - $links .= "<li>" . elgg_view('output/url', array( - 'href' => $bottom_url, - 'text' => elgg_echo('bottom'), - 'is_action' => true - )) . "</li>"; -} - -// activate / deactivate links -if ($can_activate) { - if ($active) { - $action = 'deactivate'; - $class = 'elgg-button-cancel'; - } else { - $action = 'activate'; - $class = 'elgg-button-submit'; - } - - $url = elgg_http_add_url_query_elements($actions_base . $action, array( - 'plugin_guids[]' => $plugin->guid, - 'is_action' => true - )); - - $action_button = elgg_view('output/url', array( - 'href' => $url, - 'text' => elgg_echo($action), - 'is_action' => true, - 'class' => "elgg-button $class" - )); -} else { - $action_button = elgg_view('output/url', array( - 'text' => elgg_echo('admin:plugins:cannot_activate'), - 'disabled' => 'disabled', - 'class' => "elgg-button-action elgg-state-disabled" - )); -} - -// Display categories -$categories_html = ''; -if ($categories) { - $categories_arr = array(); - $base_url = elgg_get_site_url() . "pg/admin/plugins?category="; - - foreach ($categories as $category) { - $url = $base_url . urlencode($category); - $categories_arr[] = "<a href=\"$url\">" . htmlspecialchars($category) . '</a>'; - } - - $categories_html = implode(', ', $categories_arr); -} - -$screenshots_html = ''; -$screenshots = $plugin->manifest->getScreenshots(); -if ($screenshots) { - $base_url = elgg_get_plugins_path() . $plugin->getID() . '/'; - foreach ($screenshots as $screenshot) { - $desc = elgg_echo($screenshot['description']); - $alt = htmlentities($desc, ENT_QUOTES, 'UTF-8'); - $screenshot_full = "{$vars['url']}pg/admin_plugin_screenshot/{$plugin->getID()}/full/{$screenshot['path']}"; - $screenshot_src = "{$vars['url']}pg/admin_plugin_screenshot/{$plugin->getID()}/thumbnail/{$screenshot['path']}"; - - $screenshots_html .= "<li class=\"elgg-plugin-screenshot prm ptm\"><a href=\"$screenshot_full\">" - . "<img src=\"$screenshot_src\" alt=\"$alt\"></a></li>"; - } -} - -// metadata -$description = elgg_view('output/longtext', array('value' => $plugin->manifest->getDescription())); -$author = '<span>' . elgg_echo('admin:plugins:label:author') . '</span>: ' - . elgg_view('output/text', array('value' => $plugin->manifest->getAuthor())); -$version = htmlspecialchars($plugin->manifest->getVersion()); -$website = elgg_view('output/url', array( - 'href' => $plugin->manifest->getWebsite(), - 'text' => $plugin->manifest->getWebsite() -)); - -$copyright = elgg_view('output/text', array('value' => $plugin->manifest->getCopyright())); -$license = elgg_view('output/text', array('value' => $plugin->manifest->getLicense())); - -?> - -<div id="elgg-plugin-<?php echo $plugin->guid; ?>" class="elgg-state-draggable elgg-plugin <?php echo $active_class ?>"> - <div class="elgg-image-block"> - <div class="elgg-image-alt"> - <div class="elgg-list-metadata"> - <?php echo "$links"; ?> - </div> - <div class="clearfloat right mtm"> - <?php echo $action_button; ?> - </div> - </div> - <div class="elgg-body"> -<?php -$settings_view = 'settings/' . $plugin->getID() . '/edit'; -if (elgg_view_exists($settings_view)) { - $link = elgg_get_site_url() . "pg/admin/plugin_settings/" . $plugin->getID(); - $settings_link = "<a class='plugin_settings small link' href='$link'>[" . elgg_echo('settings') . "]</a>"; -} -?> - <h3 class="elgg-head"><?php echo $plugin->manifest->getName() . " $version $settings_link"; ?></h3> - <?php - if ($plugin->manifest->getApiVersion() < 1.8) { - $reqs = $plugin->manifest->getRequires(); - if (!$reqs) { - $message = elgg_echo('admin:plugins:warning:elgg_version_unknown'); - echo "<p class=\"elgg-state-error\">$message</p>"; - } - } - - if (!$can_activate) { - $message = elgg_echo('admin:plugins:warning:unmet_dependencies'); - echo "<p class=\"elgg-state-error\">$message</p>"; - } - ?> - - <div class="plugin_description"><?php echo $description; ?></div> - <p class="plugin_author"><?php echo $author . ' - ' . $website; ?></p> - - <div class="pts"><a class="elgg-toggle" id="elgg-toggler-plugin-manifest-<?php echo $plugin->getID(); ?>"><?php echo elgg_echo("admin:plugins:label:moreinfo"); ?></a></div> - </div> - </div> - <div class="hidden manifest_file" id="elgg-togglee-plugin-manifest-<?php echo $plugin->getID(); ?>"> - - <?php - if ($screenshots_html) { - ?> - <div><ul><?php echo $screenshots_html; ?></ul></div> - <?php - } - - if ($categories_html) { - ?> - <div><?php echo elgg_echo('admin:plugins:label:categories') . ": " . $categories_html; ?></div> - <?php - } - - ?> - <div><?php echo elgg_echo('admin:plugins:label:copyright') . ": " . $copyright; ?></div> - <div><?php echo elgg_echo('admin:plugins:label:licence') . ": " . $license; ?></div> - <div><?php echo elgg_echo('admin:plugins:label:location') . ": " . htmlspecialchars($plugin->getPath()) ?></div> - - <div><?php echo elgg_echo('admin:plugins:label:dependencies'); ?>: - <?php - echo elgg_view('admin/components/plugin_dependencies', array('plugin' => $plugin)); - ?> - </div> - </div> -</div>
\ No newline at end of file diff --git a/views/default/admin/footer.php b/views/default/admin/footer.php new file mode 100644 index 000000000..ce420e99a --- /dev/null +++ b/views/default/admin/footer.php @@ -0,0 +1,9 @@ +<?php +/** + * Elgg admin footer. Extend this view to add content to the admin footer + */ + +$options = array( + 'class' => 'elgg-menu-hz' +); +echo elgg_view_menu('admin_footer', $options);
\ No newline at end of file diff --git a/views/default/admin/header.php b/views/default/admin/header.php new file mode 100644 index 000000000..331190a88 --- /dev/null +++ b/views/default/admin/header.php @@ -0,0 +1,27 @@ +<?php +/** + * Elgg admin header + */ +$admin_title = elgg_get_site_entity()->name . ' ' . elgg_echo('admin'); + +$view_site = elgg_view('output/url', array( + 'href' => elgg_get_site_url(), + 'text' => elgg_echo('admin:view_site'), + 'is_trusted' => true, +)); +$logout = elgg_view('output/url', array( + 'href' => 'action/logout', + 'text' => elgg_echo('logout'), + 'is_trusted' => true, +)); +?> +<h1 class="elgg-heading-site"> + <a href="<?php echo elgg_get_site_url(); ?>admin"> + <?php echo $admin_title; ?> + </a> +</h1> +<ul class="elgg-menu-user"> + <li><?php echo elgg_echo('admin:loggedin', array(elgg_get_logged_in_user_entity()->name)); ?></li> + <li><?php echo $view_site; ?></li> + <li><?php echo $logout; ?></li> +</ul>
\ No newline at end of file diff --git a/views/default/admin/components/plugin_settings.php b/views/default/admin/plugin_settings.php index c2801cec3..1c6e9e206 100644 --- a/views/default/admin/components/plugin_settings.php +++ b/views/default/admin/plugin_settings.php @@ -14,11 +14,12 @@ $plugin_id = $plugin->getID(); // required for plugin settings backward compatibility $vars['entity'] = $plugin; -if (elgg_view_exists("settings/$plugin_id/edit")) { +$settings = false; - $title = $plugin->manifest->getName(); +if (elgg_view_exists("settings/$plugin_id/edit") || elgg_view_exists("plugins/$plugin_id/settings")) { + $title = $plugin->getManifest()->getName(); - $params = array('id' => "$plugin_id-settings"); + $params = array('id' => "$plugin_id-settings", 'class' => 'elgg-form-settings'); $body = elgg_view_form("plugins/settings/save", $params, $vars); echo elgg_view_module('info', $title, $body); diff --git a/views/default/admin/plugins.php b/views/default/admin/plugins.php new file mode 100644 index 000000000..42f153d0f --- /dev/null +++ b/views/default/admin/plugins.php @@ -0,0 +1,197 @@ +<?php +/** + * Elgg administration plugin screen + * + * Shows a list of plugins that can be sorted and filtered. + * + * @package Elgg.Core + * @subpackage Admin.Plugins + */ + +elgg_load_js('lightbox'); +elgg_load_css('lightbox'); + +elgg_generate_plugin_entities(); +$installed_plugins = elgg_get_plugins('any'); +$show_category = get_input('category', 'all'); +$sort = get_input('sort', 'priority'); + +// Get a list of the all categories +// and trim down the plugin list if we're not viewing all categories. +// @todo this could be cached somewhere after have the manifest loaded +$categories = array(); + +foreach ($installed_plugins as $id => $plugin) { + if (!$plugin->isValid()) { + if ($plugin->isActive()) { + // force disable and warn + elgg_add_admin_notice('invalid_and_deactivated_' . $plugin->getID(), + elgg_echo('ElggPlugin:InvalidAndDeactivated', array($plugin->getId()))); + $plugin->deactivate(); + } + continue; + } + + $plugin_categories = $plugin->getManifest()->getCategories(); + + // handle plugins that don't declare categories + // unset them here because this is the list we foreach + switch ($show_category) { + case 'all': + break; + case 'active': + if (!$plugin->isActive()) { + unset($installed_plugins[$id]); + } + break; + case 'inactive': + if ($plugin->isActive()) { + unset($installed_plugins[$id]); + } + break; + case 'nonbundled': + if (in_array('bundled', $plugin_categories)) { + unset($installed_plugins[$id]); + } + break; + default: + if (!in_array($show_category, $plugin_categories)) { + unset($installed_plugins[$id]); + } + break; + } + + if (isset($plugin_categories)) { + foreach ($plugin_categories as $category) { + if (!array_key_exists($category, $categories)) { + $categories[$category] = ElggPluginManifest::getFriendlyCategory($category); + } + } + } +} + +$guids = array(); +foreach ($installed_plugins as $plugin) { + $guids[] = $plugin->getGUID(); +} + +// sort plugins +switch ($sort) { + case 'date': + $plugin_list = array(); + foreach ($installed_plugins as $plugin) { + $create_date = $plugin->getTimeCreated(); + while (isset($plugin_list[$create_date])) { + $create_date++; + } + $plugin_list[$create_date] = $plugin; + } + krsort($plugin_list); + break; + case 'alpha': + $plugin_list = array(); + foreach ($installed_plugins as $plugin) { + $plugin_list[$plugin->getFriendlyName()] = $plugin; + } + ksort($plugin_list); + break; + case 'priority': + default: + $plugin_list = $installed_plugins; + break; +} + + + +asort($categories); + +// we want bundled/nonbundled pulled to be at the top of the list +unset($categories['bundled']); +unset($categories['nonbundled']); + +$common_categories = array( + 'all' => elgg_echo('admin:plugins:category:all'), + 'active' => elgg_echo('admin:plugins:category:active'), + 'inactive' => elgg_echo('admin:plugins:category:inactive'), + 'bundled' => elgg_echo('admin:plugins:category:bundled'), + 'nonbundled' => elgg_echo('admin:plugins:category:nonbundled'), +); + +$categories = array_merge($common_categories, $categories); +// security - only want a defined option +if (!array_key_exists($show_category, $categories)) { + $show_category = reset($categories); +} + +$category_form = elgg_view_form('admin/plugins/filter', array( + 'action' => 'admin/plugins', + 'method' => 'get', + 'disable_security' => true, +), array( + 'category' => $show_category, + 'category_options' => $categories, + 'sort' => $sort, +)); + + +$sort_options = array( + 'priority' => elgg_echo('admin:plugins:sort:priority'), + 'alpha' => elgg_echo('admin:plugins:sort:alpha'), + 'date' => elgg_echo('admin:plugins:sort:date'), +); +// security - only want a defined option +if (!array_key_exists($sort, $sort_options)) { + $sort = reset($sort_options); +} + +$sort_form = elgg_view_form('admin/plugins/sort', array( + 'action' => 'admin/plugins', + 'method' => 'get', + 'disable_security' => true, +), array( + 'sort' => $sort, + 'sort_options' => $sort_options, + 'category' => $show_category, +)); + +$buttons = "<div class=\"clearfix mbm\">"; +$buttons .= elgg_view_form('admin/plugins/change_state', array( + 'action' => 'action/admin/plugins/activate_all', + 'class' => 'float', +), array( + 'guids' => $guids, + 'action' => 'activate', +)); +$buttons .= elgg_view_form('admin/plugins/change_state', array( + 'action' => 'action/admin/plugins/deactivate_all', + 'class' => 'float', +), array( + 'guids' => $guids, + 'action' => 'deactivate', +)); +$buttons .= "</div>"; + +$buttons .= $category_form . $sort_form; + +// construct page header +?> +<div id="content_header" class="mbm clearfix"> + <div class="content-header-options"><?php echo $buttons ?></div> +</div> + +<div id="elgg-plugin-list"> +<?php + +$options = array( + 'limit' => 0, + 'full_view' => true, + 'list_type_toggle' => false, + 'pagination' => false, +); +if ($show_category == 'all' && $sort == 'priority') { + $options['display_reordering'] = true; +} +echo elgg_view_entity_list($plugin_list, $options); + +?> +</div>
\ No newline at end of file diff --git a/views/default/admin/plugins/advanced.php b/views/default/admin/plugins/advanced.php deleted file mode 100644 index 6b32035f3..000000000 --- a/views/default/admin/plugins/advanced.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php -/** - * Elgg administration advanced plugin screen - * - * Shows a list of all plugins sorted by load order. - * - * @package Elgg.Core - * @subpackage Admin.Plugins - */ - -elgg_generate_plugin_entities(); -$installed_plugins = elgg_get_plugins('any'); -$show_category = get_input('category', null); - -// Get a list of the all categories -// and trim down the plugin list if we're not viewing all categories. -// @todo this could be cached somewhere after have the manifest loaded -$categories = array(); - -foreach ($installed_plugins as $plugin) { - if (!$plugin->isValid()) { - continue; - } - - $plugin_categories = $plugin->manifest->getCategories(); - - // handle plugins that don't declare categories - // unset them here because this is the list we foreach - if ($show_category && !in_array($show_category, $plugin_categories)) { - unset($installed_plugins[$id]); - } - - if (isset($plugin_categories)) { - foreach ($plugin_categories as $category) { - if (!array_key_exists($category, $categories)) { - $categories[$category] = elgg_echo("admin:plugins:label:moreinfo:categories:$category"); - } - } - } -} - -$categories = array_merge(array('' => elgg_echo('admin:plugins:categories:all')), $categories); - -$category_dropdown = elgg_view('input/dropdown', array( - 'name' => 'category', - 'options_values' => $categories, - 'value' => $show_category -)); - -$category_button = elgg_view('input/submit', array( - 'value' => elgg_echo('filter'), - 'class' => 'elgg-button-action' -)); - -$category_form = elgg_view('input/form', array( - 'body' => $category_dropdown . $category_button -)); - -// @todo Until "en/deactivate all" means "All plugins on this page" hide when not looking at all. -if (!isset($show_category) || empty($show_category)) { - $activate_url = "action/admin/plugins/activate_all"; - $activate_url = elgg_add_action_tokens_to_url($activate_url); - $deactivate_url = "action/admin/plugins/deactivate_all"; - $deactivate_url = elgg_add_action_tokens_to_url($deactivate_url); - - $buttons = "<div class=\"mbl\">"; - $buttons .= "<a class='elgg-button-action' href=\"$activate_url\">" . elgg_echo('admin:plugins:activate_all') . '</a> '; - $buttons .= "<a class='elgg-button-cancel' href=\"$deactivate_url\">" . elgg_echo('admin:plugins:deactivate_all') . '</a> '; - $buttons .= "</div>"; -} else { - $buttons = ''; -} - -$buttons .= $category_form; - -// construct page header -?> -<div id="content_header" class="mbm clearfix"> - <div class="content-header-options"><?php echo $buttons ?></div> -</div> - -<div id="elgg-plugin-list"> -<?php - -// Display list of plugins -foreach ($installed_plugins as $plugin) { - $view = ($plugin->isValid()) ? 'admin/components/plugin' : 'admin/components/invalid_plugin'; - echo elgg_view($view, array( - 'plugin' => $plugin - )); -} -?> -</div>
\ No newline at end of file diff --git a/views/default/admin/plugins/simple.php b/views/default/admin/plugins/simple.php deleted file mode 100644 index 28c1cc25e..000000000 --- a/views/default/admin/plugins/simple.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php -/** - * Elgg administration simple plugin screen - * - * Shows an alphabetical list of "simple" plugins. - * - * @package Elgg - * @subpackage Core - */ - -echo elgg_view_form('admin/plugins/simple_update_states', array('class' => 'admin_plugins_simpleview')); diff --git a/views/default/admin/site/advanced.php b/views/default/admin/settings/advanced.php index 12e4303e7..a262740f2 100644 --- a/views/default/admin/site/advanced.php +++ b/views/default/admin/settings/advanced.php @@ -6,4 +6,4 @@ * @subpackage Core */ -echo elgg_view_form('admin/site/update_advanced'); +echo elgg_view_form('admin/site/update_advanced', array('class' => 'elgg-form-settings')); diff --git a/views/default/admin/settings/advanced/site_secret.php b/views/default/admin/settings/advanced/site_secret.php new file mode 100644 index 000000000..e70ac7ab6 --- /dev/null +++ b/views/default/admin/settings/advanced/site_secret.php @@ -0,0 +1,11 @@ +<?php +/** + * Elgg administration site secret settings + * + * @package Elgg + * @subpackage Core + */ + +echo elgg_view_form('admin/site/regenerate_secret', array(), array( + 'strength' => _elgg_get_site_secret_strength(), +)); diff --git a/views/default/admin/site/basic.php b/views/default/admin/settings/basic.php index 3b8f4f183..9334ba81b 100644 --- a/views/default/admin/site/basic.php +++ b/views/default/admin/settings/basic.php @@ -6,4 +6,4 @@ * @subpackage Core */ -echo elgg_view_form('admin/site/update_basic'); +echo elgg_view_form('admin/site/update_basic', array('class' => 'elgg-form-settings')); diff --git a/views/default/admin/sidebar.php b/views/default/admin/sidebar.php new file mode 100644 index 000000000..100ce2af8 --- /dev/null +++ b/views/default/admin/sidebar.php @@ -0,0 +1,8 @@ +<?php +/** + * Admin sidebar -- just outputs the page menus + */ + +$content = elgg_view_menu('page', array('sort_by' => 'priority', 'show_section_headers' => true)); + +echo elgg_view_module('main', '', $content, array('class' => 'elgg-admin-sidebar-menu'));
\ No newline at end of file diff --git a/views/default/admin/statistics/overview.php b/views/default/admin/statistics/overview.php index c8cc682d5..ac5aaac36 100644 --- a/views/default/admin/statistics/overview.php +++ b/views/default/admin/statistics/overview.php @@ -6,81 +6,8 @@ * @subpackage Core */ -// Work out number of users -$users_stats = get_number_users(); -$total_users = get_number_users(true); - -// Get version information -$version = get_version(); -$release = get_version(true); - echo elgg_view('admin/statistics/extend'); -?> -<div class="elgg-module elgg-module-inline"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('admin:statistics:label:basic'); ?></h3> - </div> - <div class="elgg-body"> - <?php //@todo extract this table to a view so we can use elgg_view_module ?> - <table class="elgg-table-alt"> - <tr class="odd"> - <td><b><?php echo elgg_echo('admin:statistics:label:version'); ?> :</b></td> - <td><?php echo elgg_echo('admin:statistics:label:version:release'); ?> - <?php echo $release; ?>, <?php echo elgg_echo('admin:statistics:label:version:version'); ?> - <?php echo $version; ?></td> - </tr> - <tr class="even"> - <td><b><?php echo elgg_echo('admin:statistics:label:numusers'); ?> :</b></td> - <td><?php echo $users_stats; ?> <?php echo elgg_echo('active'); ?> / <?php echo $total_users; ?> <?php echo elgg_echo('total') ?></td> - </tr> - </table> - </div> -</div> - -<?php - -// Get entity statistics -$entity_stats = get_entity_statistics(); -$even_odd = ""; -?> -<div class="elgg-module elgg-module-inline"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('admin:statistics:label:numentities'); ?></h3> - </div> - <div class="elgg-body"> - <?php //@todo extract this table to a view so we can use elgg_view_module ?> - <table class="elgg-table-alt"> - <?php - foreach ($entity_stats as $k => $entry) { - arsort($entry); - foreach ($entry as $a => $b) { - - //This function controls the alternating class - $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; - - if ($a == "__base__") { - $a = elgg_echo("item:{$k}"); - if (empty($a)) - $a = $k; - } else { - if (empty($a)) { - $a = elgg_echo("item:{$k}"); - } else { - $a = elgg_echo("item:{$k}:{$a}"); - } +echo elgg_view_module('inline', elgg_echo('admin:statistics:label:basic'), elgg_view('admin/statistics/overview/basic')); - if (empty($a)) { - $a = "$k $a"; - } - } - echo <<< END - <tr class="{$even_odd}"> - <td>{$a}:</td> - <td>{$b}</td> - </tr> -END; - } - } - ?> - </table> - </div> -</div>
\ No newline at end of file +echo elgg_view_module('inline', elgg_echo('admin:statistics:label:numentities'), elgg_view('admin/statistics/overview/numentities')); diff --git a/views/default/admin/statistics/overview/basic.php b/views/default/admin/statistics/overview/basic.php new file mode 100644 index 000000000..2c9b3b88e --- /dev/null +++ b/views/default/admin/statistics/overview/basic.php @@ -0,0 +1,19 @@ +<?php +// Work out number of users +$users_stats = get_number_users(); +$total_users = get_number_users(true); + +// Get version information +$version = get_version(); +$release = get_version(true); +?> +<table class="elgg-table-alt"> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:statistics:label:version'); ?> :</b></td> + <td><?php echo elgg_echo('admin:statistics:label:version:release'); ?> - <?php echo $release; ?>, <?php echo elgg_echo('admin:statistics:label:version:version'); ?> - <?php echo $version; ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:statistics:label:numusers'); ?> :</b></td> + <td><?php echo $users_stats; ?> <?php echo elgg_echo('active'); ?> / <?php echo $total_users; ?> <?php echo elgg_echo('total') ?></td> + </tr> +</table>
\ No newline at end of file diff --git a/views/default/admin/statistics/overview/numentities.php b/views/default/admin/statistics/overview/numentities.php new file mode 100644 index 000000000..af4ae2773 --- /dev/null +++ b/views/default/admin/statistics/overview/numentities.php @@ -0,0 +1,40 @@ +<?php +// Get entity statistics +$entity_stats = get_entity_statistics(); +$even_odd = ""; +?> +<table class="elgg-table-alt"> +<?php +foreach ($entity_stats as $k => $entry) { + arsort($entry); + foreach ($entry as $a => $b) { + + //This function controls the alternating class + $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; + + if ($a == "__base__") { + $a = elgg_echo("item:{$k}"); + if (empty($a)) + $a = $k; + } else { + if (empty($a)) { + $a = elgg_echo("item:{$k}"); + } else { + $a = elgg_echo("item:{$k}:{$a}"); + } + + if (empty($a)) { + $a = "$k $a"; + } + } + + echo <<< END + <tr class="{$even_odd}"> + <td>{$a}:</td> + <td>{$b}</td> + </tr> +END; + } + } +?> +</table> diff --git a/views/default/admin/statistics/server.php b/views/default/admin/statistics/server.php new file mode 100644 index 000000000..9d21addc1 --- /dev/null +++ b/views/default/admin/statistics/server.php @@ -0,0 +1,8 @@ +<?php +/** + * Server information + */ + +echo elgg_view_module('inline', elgg_echo('admin:server:label:web_server'), elgg_view('admin/statistics/server/web_server')); + +echo elgg_view_module('inline', elgg_echo('admin:server:label:php'), elgg_view('admin/statistics/server/php')); diff --git a/views/default/admin/statistics/server/php.php b/views/default/admin/statistics/server/php.php new file mode 100644 index 000000000..7c6a51383 --- /dev/null +++ b/views/default/admin/statistics/server/php.php @@ -0,0 +1,50 @@ +<?php +/** + * Server PHP info + */ + +$php_log = ini_get('error_log'); +if (!$php_log) { + $php_log = elgg_echo('admin:server:error_log'); +} + +$post_max_size = elgg_get_ini_setting_in_bytes('post_max_size'); +$upload_max_filesize = elgg_get_ini_setting_in_bytes('upload_max_filesize'); + +$post_max_size_warning = ''; +if ($upload_max_filesize > $post_max_size) { + // @todo show a link to something like http://nigel.mcnie.name/blog/uploadmaxfilesizepostmaxsize-experimentation ? + $post_max_size_warning = elgg_echo('admin:server:warning:post_max_too_small'); +} + +?> +<table class="elgg-table-alt"> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:php_version'); ?> :</b></td> + <td><?php echo phpversion(); ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:php_ini'); ?> :</b></td> + <td><?php echo php_ini_loaded_file(); ?></td> + </tr> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:php_log'); ?> :</b></td> + <td><?php echo $php_log; ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:mem_avail'); ?> :</b></td> + <td><?php echo number_format(elgg_get_ini_setting_in_bytes('memory_limit')); ?></td> + </tr> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:mem_used'); ?> :</b></td> + <td><?php echo number_format(memory_get_peak_usage()); ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:post_max_size'); ?> :</b></td> + <td><?php echo number_format($post_max_size); ?></td> + </tr> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:upload_max_filesize'); ?> :</b></td> + <td><?php echo number_format($upload_max_filesize) . ' ' . $post_max_size_warning; ?></td> + </tr> +</table> diff --git a/views/default/admin/statistics/server/web_server.php b/views/default/admin/statistics/server/web_server.php new file mode 100644 index 000000000..904a54f4b --- /dev/null +++ b/views/default/admin/statistics/server/web_server.php @@ -0,0 +1,16 @@ +<?php +/** + * Web server info + */ + +?> +<table class="elgg-table-alt"> + <tr class="odd"> + <td><b><?php echo elgg_echo('admin:server:label:server'); ?> :</b></td> + <td><?php echo $_SERVER['SERVER_SOFTWARE']; ?></td> + </tr> + <tr class="even"> + <td><b><?php echo elgg_echo('admin:server:label:log_location'); ?> :</b></td> + <td><?php echo getenv('APACHE_LOG_DIR'); ?></td> + </tr> +</table> diff --git a/views/default/admin/users/add.php b/views/default/admin/users/add.php index 83cad6106..6d22b9c29 100644 --- a/views/default/admin/users/add.php +++ b/views/default/admin/users/add.php @@ -3,4 +3,7 @@ * Display an add user form. */ -echo elgg_view('forms/useradd', array('show_admin'=>true));
\ No newline at end of file +$title = elgg_echo('adduser'); +$body = elgg_view_form('useradd', array(), array('show_admin' => true)); + +echo elgg_view_module('inline', $title, $body);
\ No newline at end of file diff --git a/views/default/admin/users/admins.php b/views/default/admin/users/admins.php new file mode 100644 index 000000000..9b175d437 --- /dev/null +++ b/views/default/admin/users/admins.php @@ -0,0 +1,12 @@ +<?php +$admins = elgg_list_entities(array(), 'elgg_get_admins'); + +?> +<div class="elgg-module elgg-module-inline"> + <div class="elgg-head"> + <h3><?php echo elgg_echo('admin:statistics:label:admins'); ?></h3> + </div> + <div class="elgg-body"> + <?php echo $admins; ?> + </div> +</div> diff --git a/views/default/annotation/default.php b/views/default/annotation/default.php index dc1337362..5d29a53e2 100644 --- a/views/default/annotation/default.php +++ b/views/default/annotation/default.php @@ -2,12 +2,39 @@ /** * Elgg default annotation view * + * @note To add or remove from the annotation menu, register handlers for the menu:annotation hook. + * * @uses $vars['annotation'] */ -$owner = get_user($vars['annotation']->owner_guid); -$icon = elgg_view("profile/icon", array('entity' => $owner, 'size' => 'tiny')); +$annotation = $vars['annotation']; + +$owner = get_entity($annotation->owner_guid); +if (!$owner) { + return true; +} +$icon = elgg_view_entity_icon($owner, 'tiny'); +$owner_link = "<a href=\"{$owner->getURL()}\">$owner->name</a>"; + +$menu = elgg_view_menu('annotation', array( + 'annotation' => $annotation, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz float-alt', +)); + +$text = elgg_view("output/longtext", array("value" => $annotation->value)); + +$friendlytime = elgg_view_friendly_time($annotation->time_created); -$info = elgg_view("output/longtext", array("value" => $vars['annotation']->value)); +$body = <<<HTML +<div class="mbn"> + $menu + $owner_link + <span class="elgg-subtext"> + $friendlytime + </span> + $text +</div> +HTML; -echo elgg_view_image_block($icon, $info); +echo elgg_view_image_block($icon, $body); diff --git a/views/default/annotation/generic_comment.php b/views/default/annotation/generic_comment.php index d5eb7492c..22a8d9211 100644 --- a/views/default/annotation/generic_comment.php +++ b/views/default/annotation/generic_comment.php @@ -3,14 +3,14 @@ * Elgg generic comment view * * @uses $vars['annotation'] ElggAnnotation object - * @uses $vars['full'] Display fill view or brief view + * @uses $vars['full_view'] Display fill view or brief view */ if (!isset($vars['annotation'])) { return true; } -$full_view = elgg_extract('full', $vars, true); +$full_view = elgg_extract('full_view', $vars, true); $comment = $vars['annotation']; @@ -22,29 +22,24 @@ if (!$entity || !$commenter) { $friendlytime = elgg_view_friendly_time($comment->time_created); -$commenter_icon = elgg_view("profile/icon", array('entity' => $commenter, 'size' => 'tiny')); +$commenter_icon = elgg_view_entity_icon($commenter, 'tiny'); $commenter_link = "<a href=\"{$commenter->getURL()}\">$commenter->name</a>"; $entity_title = $entity->title ? $entity->title : elgg_echo('untitled'); $entity_link = "<a href=\"{$entity->getURL()}\">$entity_title</a>"; if ($full_view) { - - $delete_button = ''; - if ($comment->canEdit()) { - $delete_button = elgg_view("output/confirmlink",array( - 'href' => "action/comments/delete?annotation_id={$comment->id}", - 'text' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm') - )); - $delete_button = "<span class=\"delete-button\">$delete_button</span>"; - } + $menu = elgg_view_menu('annotation', array( + 'annotation' => $comment, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz float-alt', + )); $comment_text = elgg_view("output/longtext", array("value" => $comment->value)); $body = <<<HTML <div class="mbn"> - $delete_button + $menu $commenter_link <span class="elgg-subtext"> $friendlytime @@ -59,12 +54,14 @@ HTML; // brief view //@todo need link to actual comment! - - $on = elgg_echo('on'); + + $commented_on = elgg_echo('generic_comment:on', array($commenter_link, $entity_link)); + + $excerpt = elgg_get_excerpt($comment->value, 80); $body = <<<HTML <span class="elgg-subtext"> - $commenter_link $on $entity_link ($friendlytime) + $commented_on ($friendlytime): $excerpt </span> HTML; diff --git a/views/default/annotation/likes.php b/views/default/annotation/likes.php deleted file mode 100644 index 748d0b601..000000000 --- a/views/default/annotation/likes.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Elgg show the users who liked the object - * - * @uses $vars['annotation'] - */ - -if (!isset($vars['annotation'])) { - return true; -} - -$like = $vars['annotation']; - -$user = $like->getOwnerEntity(); -if (!$user) { - return true; -} - -$user_icon = elgg_view("profile/icon", array('entity' => $user, 'size' => 'tiny')); -$user_link = elgg_view('output/url', array( - 'href' => $user->getURL(), - 'text' => $user->name, -)); - -$likes_string = elgg_echo('likes:this'); - -$friendlytime = elgg_view_friendly_time($like->time_created); - -if ($like->canEdit()) { - $delete_button = elgg_view("output/confirmlink",array( - 'href' => "action/likes/delete?annotation_id={$like->id}", - 'text' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm') - )); - $delete_button = "<span class=\"delete-button\">$delete_button</span>"; -} - -$body = <<<HTML -<p class="mbn"> - $delete_button - $user_link $likes_string - <span class="elgg-subtext"> - $friendlytime - </span> -</p> -HTML; - -echo elgg_view_image_block($user_icon, $body); diff --git a/views/default/core/account/login_box.php b/views/default/core/account/login_box.php index 40b5f5637..f39113653 100644 --- a/views/default/core/account/login_box.php +++ b/views/default/core/account/login_box.php @@ -4,8 +4,12 @@ * * @package Elgg * @subpackage Core + * + * @uses $vars['module'] The module name. Default: aside */ +$module = elgg_extract('module', $vars, 'aside'); + $login_url = elgg_get_site_url(); if (elgg_get_config('https_login')) { $login_url = str_replace("http:", "https:", $login_url); @@ -14,13 +18,4 @@ if (elgg_get_config('https_login')) { $title = elgg_echo('login'); $body = elgg_view_form('login', array('action' => "{$login_url}action/login")); -echo elgg_view_module('aside', $title, $body); - -?> - - -<script type="text/javascript"> - elgg.register_event_handler('init', 'system', function() { - $('input[name=username]').focus(); - }); -</script> +echo elgg_view_module($module, $title, $body); diff --git a/views/default/core/account/login_dropdown.php b/views/default/core/account/login_dropdown.php index d188364c0..e90cbf106 100644 --- a/views/default/core/account/login_dropdown.php +++ b/views/default/core/account/login_dropdown.php @@ -1,8 +1,6 @@ <?php /** * Elgg drop-down login form - * - * @todo Forms 1.8: Convert to use elgg_view_form() */ if (elgg_is_logged_in()) { @@ -11,14 +9,19 @@ if (elgg_is_logged_in()) { $login_url = elgg_get_site_url(); if (elgg_get_config('https_login')) { - $login_url = str_replace("http", "https", elgg_get_site_url()); + $login_url = str_replace("http:", "https:", elgg_get_site_url()); } $body = elgg_view_form('login', array('action' => "{$login_url}action/login"), array('returntoreferer' => TRUE)); ?> <div id="login-dropdown"> - <a href="<?php echo $vars['url']; ?>pg/login" class="elgg-toggler elgg-toggles-login-dropdown-box elgg-button-dropdown"> - <?php echo elgg_echo('login') ?> - </a> - <?php echo elgg_view_module('dropdown', '', $body, array('id' => 'login-dropdown-box')); ?> -</div>
\ No newline at end of file + <?php + echo elgg_view('output/url', array( + 'href' => 'login#login-dropdown-box', + 'rel' => 'popup', + 'class' => 'elgg-button elgg-button-dropdown', + 'text' => elgg_echo('login'), + )); + echo elgg_view_module('dropdown', '', $body, array('id' => 'login-dropdown-box')); + ?> +</div> diff --git a/views/default/core/account/login_walled_garden.php b/views/default/core/account/login_walled_garden.php deleted file mode 100644 index 93aa87782..000000000 --- a/views/default/core/account/login_walled_garden.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php -/** -* Walled Garden Login Form -*/ - -$form_body = elgg_view('forms/login'); -$form_body .= elgg_view('input/hidden', array('name' => 'returntoreferer', 'value' => 'true')); - -$login_url = elgg_get_site_url(); -if (elgg_get_config('https_login')) { - $login_url = str_replace("http", "https", elgg_get_site_url()); -} -?> -<h2><?php echo elgg_echo('login'); ?></h2> -<?php - //@todo Forms 1.8: Convert to use elgg_view_form() - echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$login_url}action/login")); - echo elgg_view('login/extend'); // view for plugins to extend -?> - -<?php -if (elgg_get_config('allow_registration')) { - $title = elgg_echo('register'); - $body = elgg_view("account/forms/register", array( - 'friend_guid' => (int) get_input('friend_guid', 0), - 'invitecode' => get_input('invitecode'), - )); - - echo <<<__HTML -<div id="registration_form" class="hidden clearfix"> -<div id="hiddenform_body" class="clearfix"> - <h2>$title</h2> - $body -</div><div id="hiddenform_bottom"></div></div> -__HTML; -} -?> - <?php - $lostpassword_form_body = "<div>" . elgg_echo('user:password:text') . "</div>"; - $lostpassword_form_body .= "<div class='margin-none'><label>". elgg_echo('username') . " " - . elgg_view('input/text', array('name' => 'username', 'class' => 'login-textarea lostusername')) . "</label></div>"; - $lostpassword_form_body .= elgg_view('input/captcha'); - $lostpassword_form_body .= "<div>" . elgg_view('input/submit', array('value' => elgg_echo('request'))) . "<input class='elgg-button-action elgg-state-disabled cancel_request' type='reset' value='Cancel'></div>"; - - ?> -<div id="lostpassword_form" class="hidden clearfix"> - <div id="hiddenform_body" class="clearfix"> - <h2><?php echo elgg_echo('user:password:lost'); ?></h2> - <?php - //@todo Forms 1.8: Use elgg_view_form() - echo elgg_view('input/form', array( - 'action' => "action/user/requestnewpassword", - 'body' => $lostpassword_form_body - )); - ?> -</div><div id="hiddenform_bottom"></div></div> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> -$(document).ready(function() { - $('input.username').focus(); - - // add cancel button to inline register form - $('#registration_form').find('input.elgg-button-submit').after("<input class='elgg-button-action elgg-state-disabled cancel_request' type='reset' value='Cancel'>"); - - function elgg_slide_hiddenform(activateLink, parentElement, toggleElement) { - $(activateLink).closest(parentElement).find(toggleElement).animate({"width": "563px", duration: 400}); - $(activateLink).closest(parentElement).animate({"height": "256px", duration: 400}, function() { - // ewwww dirty. Webkit has problems when showing images that were hidden. - // forcing a reload of all the images. - $('.visual_captcha img').each(function() { $(this).attr('src', $(this).attr('src')); }); - }); - return false; - } - - $('a.registration_link').click(function(e) { - e.preventDefault(); - elgg_slide_hiddenform(this, '.walledgardenlogin', '#registration_form'); - $('input.name').focus(); - }); - - $('a.forgotten_password_link').click(function(e) { - e.preventDefault(); - elgg_slide_hiddenform(this, '.walledgardenlogin', '#lostpassword_form'); - $('input.lostusername').focus(); - }); - - $('input.cancel_request').click(function() { - if ($('#lostpassword_form').is(':visible')) { - $('#lostpassword_form').fadeOut(400); - location.reload(); - } else if ($('#registration_form').is(':visible')) { - $('#registration_form').fadeOut(400); - location.reload(); - } - return false; - }); -}); -</script> diff --git a/views/default/core/avatar/crop.php b/views/default/core/avatar/crop.php index 499e2af4e..1c59842c8 100644 --- a/views/default/core/avatar/crop.php +++ b/views/default/core/avatar/crop.php @@ -6,7 +6,7 @@ */ ?> -<div id="avatar-croppingtool"> +<div id="avatar-croppingtool" class="mtl ptm"> <label><?php echo elgg_echo('avatar:crop:title'); ?></label> <br /> <p> diff --git a/views/default/core/avatar/upload.php b/views/default/core/avatar/upload.php index 8d920a900..6f9124192 100644 --- a/views/default/core/avatar/upload.php +++ b/views/default/core/avatar/upload.php @@ -5,7 +5,26 @@ * @uses $vars['entity'] */ -$user_avatar = $vars['entity']->getIcon('medium'); +$user_avatar = elgg_view('output/img', array( + 'src' => $vars['entity']->getIconUrl('medium'), + 'alt' => elgg_echo('avatar'), +)); + +$current_label = elgg_echo('avatar:current'); + +$remove_button = ''; +if ($vars['entity']->icontime) { + $remove_button = elgg_view('output/url', array( + 'text' => elgg_echo('remove'), + 'title' => elgg_echo('avatar:remove'), + 'href' => 'action/avatar/remove?guid=' . elgg_get_page_owner_guid(), + 'is_action' => true, + 'class' => 'elgg-button elgg-button-cancel mll', + )); +} + +$form_params = array('enctype' => 'multipart/form-data'); +$upload_form = elgg_view_form('avatar/upload', $form_params, $vars); ?> @@ -13,14 +32,20 @@ $user_avatar = $vars['entity']->getIcon('medium'); <?php echo elgg_echo('avatar:upload:instructions'); ?> </p> -<div id="current-user-avatar"> - <label><?php echo elgg_echo('avatar:current'); ?></label> - <?php echo "<img src=\"{$user_avatar}\" alt=\"avatar\" />"; ?> +<?php + +$image = <<<HTML +<div id="current-user-avatar" class="mrl prl"> + <label>$current_label</label><br /> + $user_avatar </div> +$remove_button +HTML; +$body = <<<HTML <div id="avatar-upload"> -<?php - $form_params = array('enctype' => 'multipart/form-data'); - echo elgg_view_form('avatar/upload', $form_params, $vars); -?> + $upload_form </div> +HTML; + +echo elgg_view_image_block($image, $upload_form); diff --git a/views/default/core/dashboard/blurb.php b/views/default/core/dashboard/blurb.php deleted file mode 100644 index 91a7fb4c5..000000000 --- a/views/default/core/dashboard/blurb.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -/** - * Elgg dashboard blurb - * - */ -?> - -<div class="elgg-col elgg-col-2of3" id="dashboard-info"> - <div class="elgg-inner pas mhs mbl"> - <p> - <?php echo elgg_echo("dashboard:nowidgets"); ?> - </p> - </div> -</div>
\ No newline at end of file diff --git a/views/default/core/friends/collection.php b/views/default/core/friends/collection.php index 8d4e52e8a..1a330af01 100644 --- a/views/default/core/friends/collection.php +++ b/views/default/core/friends/collection.php @@ -1,13 +1,10 @@ <?php /** - * Elgg friends collection - * Lists one of a user's friends collections + * View a friends collection * * @package Elgg * @subpackage Core * - * @see collections.php - * * @uses $vars['collection'] The individual friends collection */ @@ -25,8 +22,10 @@ echo "<li><h2>"; if ($coll->owner_guid == elgg_get_logged_in_user_guid()) { echo "<div class=\"friends_collections_controls\">"; echo elgg_view('output/confirmlink', array( - 'href' => 'action/friends/deletecollection?collection=' . $coll->id, - 'class' => 'delete_collection' + 'href' => 'action/friends/collections/delete?collection=' . $coll->id, + 'class' => 'delete_collection', + 'text' => elgg_view_icon('delete'), + 'encode_text' => false, )); echo "</div>"; } @@ -34,16 +33,27 @@ echo $coll->name; echo " (<span id=\"friends_membership_count{$vars['friendspicker']}\">{$count}</span>) </h2>"; // individual collection panels -if ($friends = $vars['collection']->entities) { - $content = elgg_view('core/friends/collectiontabs', array('owner' => elgg_get_logged_in_user_entity(), 'collection' => $vars['collection'], 'friendspicker' => $vars['friendspicker'])); +$friends = $vars['collection']->entities; +if ($friends) { + $content = elgg_view('core/friends/collectiontabs', array( + 'owner' => elgg_get_logged_in_user_entity(), + 'collection' => $vars['collection'], + 'friendspicker' => $vars['friendspicker'], + )); - echo elgg_view('core/friends/picker', array('entities' => $friends, 'value' => $members, 'content' => $content, 'replacement' => '', 'friendspicker' => $vars['friendspicker'])); - ?> + echo elgg_view('input/friendspicker', array( + 'entities' => $friends, + 'value' => $vars['collection']->members, + 'content' => $content, + 'replacement' => '', + 'friendspicker' => $vars['friendspicker'], + )); +?> <?php //@todo JS 1.8: no ?> <script type="text/javascript"> - $(document).ready(function () { + $(function () { - $('#friends-picker_placeholder<?php echo $vars['friendspicker']; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $vars['collection']->id; ?>'); + $('#friends-picker_placeholder<?php echo $vars['friendspicker']; ?>').load(elgg.config.wwwroot + 'pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $vars['collection']->id; ?>'); }); </script> diff --git a/views/default/core/friends/collections.php b/views/default/core/friends/collections.php index 5a052b121..c6ee082c8 100644 --- a/views/default/core/friends/collections.php +++ b/views/default/core/friends/collections.php @@ -9,17 +9,16 @@ * @uses $vars['collections'] The array of friends collections */ -if (!isset($friendspicker)) { - $friendspicker = 0; -} - - if (is_array($vars['collections']) && sizeof($vars['collections'])) { echo "<ul id=\"friends_collections_accordian\">"; - foreach($vars['collections'] as $collection) { + $friendspicker = 0; + foreach ($vars['collections'] as $collection) { $friendspicker++; - echo elgg_view('core/friends/collection', array('collection' => $collection, 'friendspicker' => $friendspicker)); + echo elgg_view('core/friends/collection', array( + 'collection' => $collection, + 'friendspicker' => $friendspicker, + )); } echo "</ul>"; @@ -31,9 +30,9 @@ if (is_array($vars['collections']) && sizeof($vars['collections'])) { ?> <?php //@todo JS 1.8: no ?> <script> -$(document).ready(function(){ +$(function(){ $('#friends_collections_accordian h2').click(function () { - $(this.parentNode).children("[class=friends-picker]").slideToggle("fast"); + $(this.parentNode).children("[class=friends-picker-main-wrapper]").slideToggle("fast"); //return false; }); }); diff --git a/views/default/core/friends/collectiontabs.php b/views/default/core/friends/collectiontabs.php index 168d2cdfb..bf12e0edb 100644 --- a/views/default/core/friends/collectiontabs.php +++ b/views/default/core/friends/collectiontabs.php @@ -16,38 +16,43 @@ $ownerid = $vars['owner']->getGUID(); ?> -<div id="elgg-tabs"> -<ul> -<li class="selected"><a href="#" class="collectionmembers<?php echo $friendspicker; ?>"><?php echo elgg_echo('friends:collections:members'); ?></a></li> - -<li><a href="#" class="editmembers<?php echo $friendspicker; ?>"><?php echo elgg_echo('friends:collections:edit'); ?></a></li> - +<ul class="elgg-tabs"> + <li class="elgg-state-selected"> + <a href="#" class="collectionmembers<?php echo $friendspicker; ?>"> + <?php echo elgg_echo('friends:collections:members'); ?> + </a> + </li> + <li> + <a href="#" class="editmembers<?php echo $friendspicker; ?>"> + <?php echo elgg_echo('friends:collections:edit'); ?> + </a> + </li> </ul> -</div> + <?php //@todo JS 1.8: no ?> <script type="text/javascript"> -$(document).ready(function () { +$(function () { $('a.collectionmembers<?php echo $friendspicker; ?>').click(function () { // load collection members pane - $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); + $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=list&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); // remove selected state from previous tab - $(this).parent().parent().find("li.selected").removeClass("selected"); + $(this).parent().parent().find("li.elgg-state-selected").removeClass("elgg-state-selected"); // add selected class to current tab - $(this).parent().addClass("selected"); + $(this).parent().addClass("elgg-state-selected"); return false; }); $('a.editmembers<?php echo $friendspicker; ?>').click(function () { // load friends picker pane - $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=picker&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); + $('#friends-picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo elgg_get_site_url(); ?>pages/friends/collections/pickercallback.php?username=<?php echo elgg_get_logged_in_user_entity()->username; ?>&type=picker&collection=<?php echo $collectionid; ?>&friendspicker=<?php echo $friendspicker; ?>'); // remove selected state from previous tab - $(this).parent().parent().find("li.selected").removeClass("selected"); + $(this).parent().parent().find("li.elgg-state-selected").removeClass("elgg-state-selected"); // add selected class to current tab - $(this).parent().addClass("selected"); + $(this).parent().addClass("elgg-state-selected"); return false; }); diff --git a/views/default/core/friends/tablelist.php b/views/default/core/friends/tablelist.php index 12a0763c9..339b9ab1b 100644 --- a/views/default/core/friends/tablelist.php +++ b/views/default/core/friends/tablelist.php @@ -13,7 +13,7 @@ if (is_array($vars['entities'])) { ?> -<table cellspacing="0" id="collectionMembersTable"> +<table cellspacing="0" id="friendspicker-members-table"> <tr> <?php $column = 0; @@ -25,11 +25,11 @@ if (is_array($vars['entities'])) { if ($entity instanceof ElggEntity) { ?> <td style="width:25px;"> - <div style="width: 25px; margin-bottom: 15px;"> - <?php echo elgg_view("profile/icon",array('entity' => $entity, 'size' => 'tiny')); ?> + <div style="width: 25px;" class="mbl"> + <?php echo elgg_view_entity_icon($entity, 'tiny'); ?> </div> </td> - <td style="width: 200px; padding: 5px;"> + <td style="width: 200px;" class="pas"> <?php echo $entity->name; ?> </td> <?php diff --git a/views/default/core/likes/display.php b/views/default/core/likes/display.php deleted file mode 100644 index 4da140693..000000000 --- a/views/default/core/likes/display.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php -/** - * Elgg likes display - * - * @package Elgg - * - * @uses $vars['entity'] - */ - -if (!isset($vars['entity'])) { - return true; -} - -$guid = $vars['entity']->getGUID(); - -// check to see if the user has already liked this -if (elgg_is_logged_in()) { - if (!elgg_annotation_exists($guid, 'likes')) { - $url = elgg_get_site_url() . "action/likes/add?guid={$guid}"; - $params = array( - 'href' => $url, - 'text' => '<span class="elgg-icon elgg-icon-likes"></span>', - 'title' => elgg_echo('likes:likethis'), - 'is_action' => true, - 'encode_text' => false, - ); - $likes_button = elgg_view('output/url', $params); - } else { - $options = array( - 'guid' => $guid, - 'annotation_name' => 'likes', - 'owner_guid' => get_logged_in_user_guid() - ); - $likes = elgg_get_annotations($options); - $url = elgg_get_site_url() . "action/likes/delete?annotation_id={$likes[0]->id}"; - $params = array( - 'href' => $url, - 'text' => "<span class=\"elgg-icon elgg-icon-liked\"></span>", - 'title' => elgg_echo('likes:remove'), - 'is_action' => true, - 'encode_text' => false, - ); - $likes_button = elgg_view('output/url', $params); - } -} - -$list = ''; -$num_of_likes = $vars['entity']->countLikes(); -if ($num_of_likes) { - // display the number of likes - if ($num_of_likes == 1) { - $likes_string = elgg_echo('likes:userlikedthis'); - } else { - $likes_string = elgg_echo('likes:userslikedthis'); - } - $params = array( - 'text' => "$num_of_likes $likes_string", - 'title' => elgg_echo('likes:see'), - 'class' => 'elgg-like-toggle', - ); - $list = elgg_view('output/url', $params); - $list .= "<div class='elgg-module elgg-module-popup elgg-likes-list hidden clearfix'>"; - $list .= elgg_list_annotations(array('guid' => $guid, 'annotation_name' => 'likes', 'limit' => 99)); - $list .= "</div>"; -} - -echo $likes_button; -echo $list; diff --git a/views/default/core/members/nav.php b/views/default/core/members/nav.php deleted file mode 100644 index a713fa8a3..000000000 --- a/views/default/core/members/nav.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * Members navigation - */ - -$tabs = array( - 'newest' => array( - 'title' => elgg_echo('members:label:newest'), - 'url' => "pg/members/newest/", - 'selected' => $vars['selected'] == 'newest', - ), - 'popular' => array( - 'title' => elgg_echo('members:label:popular'), - 'url' => "pg/members/popular/", - 'selected' => $vars['selected'] == 'popular', - ), - 'online' => array( - 'title' => elgg_echo('members:label:online'), - 'url' => "pg/members/online/", - 'selected' => $vars['selected'] == 'online', - ), -); - -echo elgg_view('navigation/tabs', array('tabs' => $tabs)); diff --git a/views/default/core/members/sidebar.php b/views/default/core/members/sidebar.php deleted file mode 100644 index 3a00bf700..000000000 --- a/views/default/core/members/sidebar.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * Members sidebar - */ - -// Tag search -$params = array( - 'method' => 'get', - 'action' => elgg_get_site_url() . 'pg/members/search/tag/', - 'disable_security' => true, -); - -$body = elgg_view_form('members/tag_search', $params); - -echo elgg_view_module('aside', elgg_echo('members:searchtag'), $body); - -// name search -$params = array( - 'method' => 'get', - 'action' => elgg_get_site_url() . 'pg/members/search/name/', - 'disable_security' => true, -); -$body = elgg_view_form('members/name_search', $params); - -echo elgg_view_module('aside', elgg_echo('members:searchname'), $body);
\ No newline at end of file diff --git a/views/default/core/river/body.php b/views/default/core/river/body.php deleted file mode 100644 index e3c34acda..000000000 --- a/views/default/core/river/body.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -/** - * Body of river item - * - * @uses $vars['item'] - */ - -$item = $vars['item']; -$subject = $item->getSubjectEntity(); - -// river item header -$params = array( - 'href' => $subject->getURL(), - 'text' => $subject->name, -); -$subject_link = elgg_view('output/url', $params); -$timestamp = elgg_get_friendly_time($item->getPostedTime()); -$header = "$subject_link <span class=\"elgg-river-timestamp\">$timestamp</span>"; - -// body -$body = elgg_view($item->getView(), array('item' => $item)); - -// footer -$footer = elgg_view('core/river/footer', $vars); - -echo elgg_view('page/components/module', array( - 'header' => $header, - 'body' => $body, - 'footer' => $footer, - 'show_inner' => false, -));
\ No newline at end of file diff --git a/views/default/core/river/controls.php b/views/default/core/river/controls.php deleted file mode 100644 index 6f2be623c..000000000 --- a/views/default/core/river/controls.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Controls on an river item - * - * - * @uses $vars['item'] - */ - -$object = $vars['item']->getObjectEntity(); - -if (elgg_is_logged_in()) { - // comments and non-objects cannot be commented on or liked - if ($object->getType() == 'object' && $vars['item']->annotation_id == 0) { - $params = array( - 'href' => '#', - 'text' => elgg_echo('generic_comments:text'), - 'class' => 'elgg-toggle', - 'id' => "elgg-toggler-{$object->getGUID()}", - ); - echo elgg_view('output/url', $params); - - // like this - if (!elgg_annotation_exists($object->getGUID(), 'likes')) { - $url = "action/likes/add?guid={$object->getGUID()}"; - $params = array( - 'href' => $url, - 'text' => elgg_echo('likes:likethis'), - 'is_action' => true, - ); - echo elgg_view('output/url', $params); - } else { - $options = array( - 'guid' => $guid, - 'annotation_name' => 'likes', - 'owner_guid' => elgg_get_logged_in_user_guid() - ); - $likes = elgg_get_annotations($options); - $url = elgg_get_site_url() . "action/likes/delete?annotation_id={$likes[0]->id}"; - $params = array( - 'href' => $url, - 'text' => elgg_echo('likes:remove'), - 'is_action' => true, - ); - echo elgg_view('output/url', $params); - } - } - -}
\ No newline at end of file diff --git a/views/default/core/river/filter.php b/views/default/core/river/filter.php index aaa4beb89..9b7fadaa8 100644 --- a/views/default/core/river/filter.php +++ b/views/default/core/river/filter.php @@ -9,9 +9,11 @@ $options = array(); $options['type=all'] = elgg_echo('river:select', array(elgg_echo('all'))); $registered_entities = elgg_get_config('registered_entities'); + if (!empty($registered_entities)) { foreach ($registered_entities as $type => $subtypes) { - if (!is_array($subtypes)) { + // subtype will always be an array. + if (!count($subtypes)) { $label = elgg_echo('river:select', array(elgg_echo("item:$type"))); $options["type=$type"] = $label; } else { @@ -32,17 +34,5 @@ if ($selector) { $params['value'] = $selector; } echo elgg_view('input/dropdown', $params); -?> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> -$(document).ready(function() { - $('#elgg-river-selector').change(function() { - var url = window.location.href; - if (window.location.search.length) { - url = url.substring(0, url.indexOf('?')); - } - url += '?' + $(this).val(); - elgg.forward(url); - }); -}); -</script> + +elgg_load_js('elgg.ui.river'); diff --git a/views/default/core/settings/account.php b/views/default/core/settings/account.php index 22a58c58a..0c3792ece 100644 --- a/views/default/core/settings/account.php +++ b/views/default/core/settings/account.php @@ -6,4 +6,4 @@ * @subpackage Core */ -echo elgg_view_form('usersettings/save');
\ No newline at end of file +echo elgg_view_form('usersettings/save', array('class' => 'elgg-form-alt'));
\ No newline at end of file diff --git a/views/default/core/settings/account/default_access.php b/views/default/core/settings/account/default_access.php index e33211460..690f2714a 100644 --- a/views/default/core/settings/account/default_access.php +++ b/views/default/core/settings/account/default_access.php @@ -12,22 +12,14 @@ if (elgg_get_config('allow_user_default_access')) { if (false === ($default_access = $user->getPrivateSetting('elgg_default_access'))) { $default_access = elgg_get_config('default_access'); } -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('default_access:settings'); ?></h3> - </div> - <div class="elgg-body"> - <p> - <?php echo elgg_echo('default_access:label'); ?>: - <?php - echo elgg_view('input/access', array('name' => 'default_access', 'value' => $default_access)); + $title = elgg_echo('default_access:settings'); + $content = elgg_echo('default_access:label') . ': '; + $content .= elgg_view('input/access', array( + 'name' => 'default_access', + 'value' => $default_access, + )); - ?> - </p> - </div> -</div> -<?php + echo elgg_view_module('info', $title, $content); } -}
\ No newline at end of file +} diff --git a/views/default/core/settings/account/email.php b/views/default/core/settings/account/email.php index fda83e795..4bcdbb100 100644 --- a/views/default/core/settings/account/email.php +++ b/views/default/core/settings/account/email.php @@ -9,19 +9,11 @@ $user = elgg_get_page_owner_entity(); if ($user) { -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('email:settings'); ?></h3> - </div> - <div class="elgg-body"> - <p> - <?php echo elgg_echo('email:address:label'); ?>: - <?php - echo elgg_view('input/email',array('name' => 'email', 'value' => $user->email)); - ?> - </p> - </div> -</div> -<?php -}
\ No newline at end of file + $title = elgg_echo('email:settings'); + $content = elgg_echo('email:address:label') . ': '; + $content .= elgg_view('input/email', array( + 'name' => 'email', + 'value' => $user->email, + )); + echo elgg_view_module('info', $title, $content); +} diff --git a/views/default/core/settings/account/language.php b/views/default/core/settings/account/language.php index 3a992966f..b36057422 100644 --- a/views/default/core/settings/account/language.php +++ b/views/default/core/settings/account/language.php @@ -9,23 +9,12 @@ $user = elgg_get_page_owner_entity(); if ($user) { -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('user:set:language'); ?></h3> - </div> - <div class="elgg-body"> - <p> - <?php echo elgg_echo('user:language:label'); ?>: - <?php - echo elgg_view("input/dropdown", array( - 'name' => 'language', - 'value' => $user->language, - 'options_values' => get_installed_translations() - )); - ?> - </p> - </div> -</div> -<?php -}
\ No newline at end of file + $title = elgg_echo('user:set:language'); + $content = elgg_echo('user:language:label') . ': '; + $content .= elgg_view("input/dropdown", array( + 'name' => 'language', + 'value' => $user->language, + 'options_values' => get_installed_translations() + )); + echo elgg_view_module('info', $title, $content); +} diff --git a/views/default/core/settings/account/name.php b/views/default/core/settings/account/name.php index 69ffcecaf..e356146a3 100644 --- a/views/default/core/settings/account/name.php +++ b/views/default/core/settings/account/name.php @@ -4,12 +4,18 @@ * * @package Elgg * @subpackage Core - - */ $user = elgg_get_page_owner_entity(); +if ($user) { + $title = elgg_echo('user:name:label'); + $content = elgg_echo('name') . ': '; + $content .= elgg_view('input/text', array( + 'name' => 'name', + 'value' => $user->name, + )); + echo elgg_view_module('info', $title, $content); -// all hidden, but necessary for properly updating user details -echo elgg_view('input/hidden', array('name' => 'name', 'value' => $user->name)); -echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $user->guid)); + // need the user's guid to make sure the correct user gets updated + echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $user->guid)); +} diff --git a/views/default/core/settings/account/notifications.php b/views/default/core/settings/account/notifications.php index ae5fe40bb..c212b3886 100644 --- a/views/default/core/settings/account/notifications.php +++ b/views/default/core/settings/account/notifications.php @@ -9,33 +9,20 @@ global $NOTIFICATION_HANDLERS; $notification_settings = get_user_notification_settings(elgg_get_page_owner_guid()); -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('notifications:usersettings'); ?></h3> - </div> - <div class="elgg-body"> +$title = elgg_echo('notifications:usersettings'); -<p><?php echo elgg_echo('notifications:methods'); ?> +$rows = ''; -<table> -<?php - // Loop through options - foreach ($NOTIFICATION_HANDLERS as $k => $v) { -?> - <tr> - <td><?php echo elgg_echo($k); ?>: </td> - - <td> -<?php +// Loop through options +foreach ($NOTIFICATION_HANDLERS as $k => $v) { if ($notification_settings->$k) { $val = "yes"; } else { $val = "no"; } - - echo elgg_view('input/radio', array( + + $radio = elgg_view('input/radio', array( 'name' => "method[$k]", 'value' => $val, 'options' => array( @@ -44,12 +31,14 @@ $notification_settings = get_user_notification_settings(elgg_get_page_owner_guid ), )); -?> - </td> - </tr> -<?php - } -?> -</table> - </div> -</div>
\ No newline at end of file + $cells = '<td class="prm pbl">' . elgg_echo("notification:method:$k") . ': </td>'; + $cells .= "<td>$radio</td>"; + + $rows .= "<tr>$cells</tr>"; +} + + +$content = elgg_echo('notifications:methods'); +$content .= "<table>$rows</table>"; + +echo elgg_view_module('info', $title, $content); diff --git a/views/default/core/settings/account/password.php b/views/default/core/settings/account/password.php index a80f3df6b..4857034b2 100644 --- a/views/default/core/settings/account/password.php +++ b/views/default/core/settings/account/password.php @@ -1,45 +1,33 @@ <?php + /** * Provide a way of setting your password * * @package Elgg * @subpackage Core */ - $user = elgg_get_page_owner_entity(); if ($user) { -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('user:set:password'); ?></h3> - </div> - <div class="elgg-body"> - <?php - // only make the admin user enter current password for changing his own password. - if (!elgg_is_admin_logged_in() || elgg_is_admin_logged_in() && $user->guid == elgg_get_logged_in_user_guid()) { - ?> - <p> - <?php echo elgg_echo('user:current_password:label'); ?>: - <?php - echo elgg_view('input/password', array('name' => 'current_password')); - ?> - </p> - <?php } ?> + $title = elgg_echo('user:set:password'); - <p> - <?php echo elgg_echo('user:password:label'); ?>: - <?php - echo elgg_view('input/password', array('name' => 'password')); - ?> - </p> + // only make the admin user enter current password for changing his own password. + $admin = ''; + if (!elgg_is_admin_logged_in() || elgg_is_admin_logged_in() && $user->guid == elgg_get_logged_in_user_guid()) { + $admin .= elgg_echo('user:current_password:label') . ': '; + $admin .= elgg_view('input/password', array('name' => 'current_password')); + $admin = "<p>$admin</p>"; + } - <p> - <?php echo elgg_echo('user:password2:label'); ?>: <?php - echo elgg_view('input/password', array('name' => 'password2')); - ?> - </p> - </div> -</div> -<?php -}
\ No newline at end of file + $password = elgg_echo('user:password:label') . ': '; + $password .= elgg_view('input/password', array('name' => 'password')); + $password = "<p>$password</p>"; + + $password2 = elgg_echo('user:password2:label') . ': '; + $password2 .= elgg_view('input/password', array('name' => 'password2')); + $password2 = "<p>$password2</p>"; + + $content = $admin . $password . $password2; + + echo elgg_view_module('info', $title, $content); +} diff --git a/views/default/core/settings/statistics/numentities.php b/views/default/core/settings/statistics/numentities.php index 245fd67be..3782fd8bc 100644 --- a/views/default/core/settings/statistics/numentities.php +++ b/views/default/core/settings/statistics/numentities.php @@ -7,45 +7,38 @@ */ // Get entity statistics -$entity_stats = get_entity_statistics(elgg_get_logged_in_user_guid()); +$entity_stats = get_entity_statistics(elgg_get_page_owner_guid()); if ($entity_stats) { -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('usersettings:statistics:label:numentities'); ?></h3> - </div> - <div class="elgg-body"> - <table class="elgg-table-alt"> - <?php - foreach ($entity_stats as $k => $entry) { - foreach ($entry as $a => $b) { + $rows = ''; + foreach ($entity_stats as $k => $entry) { + foreach ($entry as $a => $b) { - //This function controls the alternating class - $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; + // This function controls the alternating class + $even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even'; - if ($a == "__base__") { - $a = elgg_echo("item:{$k}"); - if (empty($a)) { - $a = $k; - } - } else { - $a = elgg_echo("item:{$k}:{$a}"); - if (empty($a)) { - $a = "$k $a"; - } - } - echo <<< END - <tr class="{$even_odd}"> - <td class="column-one"><b>{$a}:</b></td> - <td>{$b}</td> - </tr> -END; + if ($a == "__base__") { + $a = elgg_echo("item:{$k}"); + if (empty($a)) { + $a = $k; + } + } else { + $a = elgg_echo("item:{$k}:{$a}"); + if (empty($a)) { + $a = "$k $a"; } } - ?> - </table> - </div> -</div> -<?php -}
\ No newline at end of file + $rows .= <<< END + <tr class="{$even_odd}"> + <td class="column-one"><b>{$a}:</b></td> + <td>{$b}</td> + </tr> +END; + } + } + + $title = elgg_echo('usersettings:statistics:label:numentities'); + $content = "<table class=\"elgg-table-alt\">$rows</table>"; + + echo elgg_view_module('info', $title, $content); +} diff --git a/views/default/core/settings/statistics/online.php b/views/default/core/settings/statistics/online.php index 65db42cb1..1385ff60f 100644 --- a/views/default/core/settings/statistics/online.php +++ b/views/default/core/settings/statistics/online.php @@ -1,31 +1,42 @@ <?php /** - * Elgg statistics screen showing online users. + * Statistics about this user. * * @package Elgg * @subpackage Core */ -$user = elgg_get_logged_in_user_entity(); +$user = elgg_get_page_owner_entity(); -$logged_in = 0; -$log = get_system_log($user->guid, "login", "", 'user', '', 1); +$label_name = elgg_echo('usersettings:statistics:label:name'); +$label_email = elgg_echo('usersettings:statistics:label:email'); +$label_member_since = elgg_echo('usersettings:statistics:label:membersince'); +$label_last_login = elgg_echo('usersettings:statistics:label:lastlogin'); -if ($log) { - $logged_in = $log[0]->time_created; -} +$time_created = date("r", $user->time_created); +$last_login = date("r", $user->last_login); -?> -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('usersettings:statistics:yourdetails'); ?></h3> - </div> - <div class="elgg-body"> - <table class="elgg-table-alt"> - <tr class="odd"><td class="column-one"><?php echo elgg_echo('usersettings:statistics:label:name'); ?></td><td><?php echo $user->name; ?></td></tr> - <tr class="even"><td class="column-one"><?php echo elgg_echo('usersettings:statistics:label:email'); ?></td><td><?php echo $user->email; ?></td></tr> - <tr class="odd"><td class="column-one"><?php echo elgg_echo('usersettings:statistics:label:membersince'); ?></td><td><?php echo date("r",$user->time_created); ?></td></tr> - <tr class="even"><td class="column-one"><?php echo elgg_echo('usersettings:statistics:label:lastlogin'); ?></td><td><?php echo date("r",$logged_in); ?></td></tr> - </table> - </div> -</div>
\ No newline at end of file +$title = elgg_echo('usersettings:statistics:yourdetails'); + +$content = <<<__HTML +<table class="elgg-table-alt"> + <tr class="odd"> + <td class="column-one">$label_name</td> + <td>$user->name</td> + </tr> + <tr class="even"> + <td class="column-one">$label_email</td> + <td>$user->email</td> + </tr> + <tr class="odd"> + <td class="column-one">$label_member_since</td> + <td>$time_created</td> + </tr> + <tr class="even"> + <td class="column-one">$label_last_login</td> + <td>$last_login</td> + </tr> +</table> +__HTML; + +echo elgg_view_module('info', $title, $content); diff --git a/views/default/core/settings/tools.php b/views/default/core/settings/tools.php index 73af8d738..195db1d61 100644 --- a/views/default/core/settings/tools.php +++ b/views/default/core/settings/tools.php @@ -9,21 +9,26 @@ */ // Description of what's going on -echo "<div class='user-settings margin-top'>" - . elgg_view('output/longtext', array('value' => elgg_echo("usersettings:plugins:description"))) - . "</div>"; - -$limit = get_input('limit', 10); -$offset = get_input('offset', 0); +echo elgg_view('output/longtext', array( + 'value' => elgg_echo("usersettings:plugins:description"), + 'class' => 'user-settings mtn mbm', +)); // Get the installed plugins $installed_plugins = $vars['installed_plugins']; $count = count($installed_plugins); -// Display list of plugins -$n = 0; + +// Display all plugins' usersettings forms foreach ($installed_plugins as $plugin) { + $plugin_id = $plugin->getID(); if ($plugin->isActive()) { - echo elgg_view("core/settings/tools/plugin", array('plugin' => $plugin)); + if (elgg_view_exists("usersettings/$plugin_id/edit") + || elgg_view_exists("plugins/$plugin_id/usersettings")) { + + $title = $plugin->getManifest()->getName(); + $body = elgg_view_form('plugins/usersettings/save', array(), array('entity' => $plugin)); + echo elgg_view_module('info', $title, $body); + } } }
\ No newline at end of file diff --git a/views/default/core/settings/tools/plugin.php b/views/default/core/settings/tools/plugin.php deleted file mode 100644 index 88d366a8a..000000000 --- a/views/default/core/settings/tools/plugin.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php -/** - * This displays a plugin's user settings. - * - * @uses ElggPlugin $vars['plugin'] The plugin to show settings for. - * - * @package Elgg.Core - * @subpackage Plugins.Settings - */ - - -$plugin = $vars['plugin']; -$plugin_id = $plugin->getID(); -$user_guid = $vars['user_guid']; - -if (!$user_guid) { - $user_guid = elgg_get_logged_in_user_guid(); -} - -if (elgg_view("usersettings/$plugin_id/edit")) { -?> - -<div class="elgg-module elgg-module-info"> - <div class="elgg-head"> - <h3><?php echo $plugin->manifest->getName(); ?></h3> - </div> - <div class="elgg-body"> - <div id="<?php echo $plugin_id; ?>_settings"> - <?php echo elgg_view("object/plugin", array( - 'plugin' => $plugin, - 'entity' => elgg_get_all_plugin_user_settings($plugin_id, $user_guid), - 'type' => 'user' - )); - ?> - </div> - </div> -</div> -<?php -}
\ No newline at end of file diff --git a/views/default/core/walled_garden/login.php b/views/default/core/walled_garden/login.php new file mode 100644 index 000000000..42b79607d --- /dev/null +++ b/views/default/core/walled_garden/login.php @@ -0,0 +1,31 @@ +<?php +/** + * Walled garden login + */ + +$title = elgg_get_site_entity()->name; +$welcome = elgg_echo('walled_garden:welcome'); +$welcome .= ': <br/>' . $title; + +$menu = elgg_view_menu('walled_garden', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-general elgg-menu-hz', +)); + +$login_box = elgg_view('core/account/login_box', array('module' => 'walledgarden-login')); + +echo <<<HTML +<div class="elgg-col elgg-col-1of2"> + <div class="elgg-inner"> + <h1 class="elgg-heading-walledgarden"> + $welcome + </h1> + $menu + </div> +</div> +<div class="elgg-col elgg-col-1of2"> + <div class="elgg-inner"> + $login_box + </div> +</div> +HTML; diff --git a/views/default/core/walled_garden/lost_password.php b/views/default/core/walled_garden/lost_password.php new file mode 100644 index 000000000..82f8caf50 --- /dev/null +++ b/views/default/core/walled_garden/lost_password.php @@ -0,0 +1,13 @@ +<?php +/** + * Walled garden lost password + */ + +$title = elgg_echo('user:password:lost'); +$body = elgg_view_form('user/requestnewpassword'); +echo <<<HTML +<div class="elgg-inner"> + <h3>$title</h3> + $body +</div> +HTML; diff --git a/views/default/core/walled_garden/register.php b/views/default/core/walled_garden/register.php new file mode 100644 index 000000000..1ce2f8716 --- /dev/null +++ b/views/default/core/walled_garden/register.php @@ -0,0 +1,17 @@ +<?php +/** + * Walled garden registration + */ + +$title = elgg_echo('register'); +$body = elgg_view_form('register', array(), array( + 'friend_guid' => (int) get_input('friend_guid', 0), + 'invitecode' => get_input('invitecode'), +)); + +echo <<<__HTML +<div class="elgg-inner"> + <h2>$title</h2> + $body +</div> +__HTML; diff --git a/views/default/css.php b/views/default/css.php index f02549c3d..e67c79c36 100644 --- a/views/default/css.php +++ b/views/default/css.php @@ -2,6 +2,6 @@ /** * * This is a deprecated CSS view used in Elgg 1.0-1.7. - * Please use the view 'css/screen' now. + * Please use the view 'css/elgg' now. * */ diff --git a/views/default/css/admin.php b/views/default/css/admin.php index a73bbbb16..c435621b2 100644 --- a/views/default/css/admin.php +++ b/views/default/css/admin.php @@ -25,34 +25,35 @@ table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; - outline: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; } -img { - border-width:0; - border-color:transparent; +<?php // force vertical scroll bar ?> +html, body { + height: 100%; + margin-bottom: 1px; } -:focus { - outline:0 none; +img { + border-width: 0; + border-color: transparent; } ol, ul { list-style: none; } em, i { - font-style:italic; + font-style: italic; } ins { - text-decoration:none; + text-decoration: none; } del { text-decoration:line-through; } strong, b { - font-weight:bold; + font-weight: bold; } table { border-collapse: collapse; @@ -74,18 +75,16 @@ blockquote, q { /* *************************************** BASICS *************************************** */ - body { - background-color: #eeeeee; + background-color: #eee; font-size: 80%; line-height: 1.4em; font-family: "Lucida Grande",Arial,Tahoma,Verdana,sans-serif; - overflow-y: scroll; } h1, h2, h3, h4, h5, h6 { font-weight: bold; line-height: auto; - color: #666666; + color: #666; } h1 { font-size: 1.8em; } h2 { font-size: 1.5em; line-height: 1.1em; } @@ -95,14 +94,22 @@ h5 { font-size: 0.9em; } h6 { font-size: 0.8em; } a { - color: #333333; + color: #333; + text-decoration: none; } a:hover { color: black; text-decoration: underline; } pre, code { - background: #EBF5FF; + background-color: #EEE; + border: 1px solid #DDD; + color: #444; + font-family: Monaco, "Courier New", Courier, monospace; + font-size: 13px; + overflow: auto; + margin: 15px 0; + padding: 5px; } blockquote { background: #EBF5FF; @@ -111,23 +118,28 @@ p { margin-bottom: 15px; } -table.mceLayout { - width:100% !important; -} - .clearfloat { - clear:both; + clear: both; } /* Clearfix! */ +.clearfix:after, .elgg-grid:after, -.clearfix:after { +.elgg-layout:after, +.elgg-inner:after, +.elgg-page-header:after, +.elgg-page-footer:after, +.elgg-head:after, +.elgg-foot:after, +.elgg-col:after, +.elgg-image-block:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } + .elgg-body { width: auto; word-wrap: break-word; @@ -138,31 +150,27 @@ table.mceLayout { visibility: hidden; height: 0 !important; line-height: 0; + overflow: hidden; font-size: xx-large; content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "; } -.hidden { - display:none; -} -.centered { - margin:0 auto; -} -.center { - text-align: center; -} /* *************************************** - HEADER + PAGE WRAPPER *************************************** */ -.elgg-page-header { +.elgg-page > .elgg-inner { margin: 0 auto; padding: 20px 40px 0; min-width: 800px; max-width: 1600px; } -.elgg-page-header > .elgg-inner { - background-color: #111111; - border: 1px solid #999999; + +/* *************************************** + HEADER +*************************************** */ +.elgg-page-header { + background-color: #111; + border: 1px solid #999; padding: 20px 20px; } .elgg-heading-site { @@ -193,7 +201,7 @@ table.mceLayout { .elgg-menu-user li { display: inline; } -.elgg-menu-user li:after{ +.elgg-menu-user li:after { content: "|"; display: inline-block; font-weight: normal; @@ -204,8 +212,11 @@ table.mceLayout { content: ""; } -.elgg-system-messages { - padding: 20px 40px 0; +/* *************************************** + MESSAGES +*************************************** */ +.elgg-page-messages { + padding: 20px 0 0; width: 500px; margin-bottom: -10px; } @@ -215,22 +226,57 @@ table.mceLayout { .elgg-message { padding: 10px; margin-bottom: 10px; - border: 2px solid #dddddd; + border: 2px solid #ddd; + cursor: pointer; +} +.elgg-message.elgg-state-error { + background: #fbe3e4; + color: #8a1f11; + border-color: #fbc2c4; + font-weight: bold; +} +.elgg-message.elgg-state-success { + background: #e6efc2; + color: #264409; + border-color: #c6d880; } +.elgg-admin-notices { + padding-bottom: 15px; +} +.elgg-admin-notices p { + background-color: #BDE5F8; + color: black; + border: 1px solid blue; + font-weight: bold; + padding: 3px 0px 3px 10px; + + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.elgg-admin-notices a.elgg-admin-notice { + float: right; + text-decoration: none; +} + +.elgg-admin-notices a { + text-decoration: underline; +} /* *************************************** BODY *************************************** */ .elgg-page-body { - margin: 0 auto; - padding: 20px 40px; - min-width: 800px; - max-width: 1600px; + padding: 20px 0; } -.elgg-main { - background-color: #ffffff; - border: 1px solid #cccccc; +.elgg-main { + background-color: #fff; + border: 1px solid #ccc; padding: 20px; position: relative; min-height: 400px; @@ -248,72 +294,52 @@ table.mceLayout { } /* *************************************** - SIDEBAR MENU + FOOTER *************************************** */ -.elgg-menu-page a { - display: block; - padding: 5px; - color: #333333; - cursor: pointer; - text-decoration: none; - margin-bottom: 2px; - border: 1px solid #CCC; - - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; +.elgg-page-footer { + background-color: #111; + border: 1px solid #999; + padding: 10px 20px; + margin-bottom: 10px; } -.elgg-menu-page a:hover { +.elgg-page-footer a { + color: #ddd; + font-weight: bold; text-decoration: none; - background: black; - color: white; - border: 1px solid black; } -.elgg-menu-page li.elgg-state-selected > a { - background-color: #BBB; -} - -.elgg-menu-page .elgg-menu-closed:before { - content: "\25B8"; - padding-right: 4px; -} - -.elgg-menu-page .elgg-menu-opened:before { - content: "\25BE"; - padding-right: 4px; -} - -.elgg-menu-page .elgg-child-menu { - display: none; - padding-left: 30px; -} -.elgg-menu-page li.elgg-state-selected > ul { - display: block; +.elgg-page-footer a:hover { + text-decoration: underline; } - /* *************************************** MODULES *************************************** */ - +.elgg-module { + overflow: hidden; +} .elgg-module-main { - background-color: #ffffff; - border: 1px solid #cccccc; + background-color: #fff; + border: 1px solid #ccc; padding: 10px; } .elgg-module-main > .elgg-head { margin-bottom: 5px; } +.elgg-module-info > .elgg-head { + margin-bottom: 10px; +} .elgg-module-inline { margin: 20px 0; } .elgg-module-inline > .elgg-head { - background-color: #999999; + background-color: #999; color: white; padding: 5px; margin-bottom: 10px; + -webkit-border-radius: 3px; -moz-border-radius: 3px; + border-radius: 3px; } .elgg-module-inline > .elgg-head h3 { color: white; @@ -324,29 +350,35 @@ table.mceLayout { *************************************** */ .elgg-table { width: 100%; - border-top: 1px solid #cccccc; + border-top: 1px solid #ccc; } .elgg-table td, .elgg-table th { background: white; - border: 1px solid #cccccc; + border: 1px solid #ccc; + padding: 4px 8px; + vertical-align: middle; } .elgg-table th { - background-color: #dddddd; + background-color: #ddd; } .elgg-table .alt td { - background: #eeeeee; + background: #eee; } -.elgg-table td { - padding: 4px 8px; - border-bottom: 1px solid #cccccc; +.elgg-table input[type=checkbox] { + margin-top: 3px; } + .elgg-table-alt { width: 100%; - border-top: 1px solid #cccccc; + border-top: 1px solid #ccc; +} +.elgg-table-alt th { + background-color: #eee; + font-weight: bold; } -.elgg-table-alt td { - padding: 2px 4px 2px 4px; - border-bottom: 1px solid #cccccc; +.elgg-table-alt td, th { + padding: 2px 4px; + border-bottom: 1px solid #ccc; } .elgg-table-alt td:first-child { width: 200px; @@ -369,31 +401,27 @@ table.mceLayout { float: right; margin-left: 5px; } - -.elgg-list-item { +.elgg-item { margin: 3px; } -.elgg-list-metadata { - float: right; - margin-left: 15px; - font-size: 90%; -} -.elgg-list-metadata > li { - float: left; - margin-left: 15px; +.elgg-list-simple li { + margin-bottom: 5px; } -.elgg-list-metadata, .elgg-list-metadata a { - color: #aaaaaa; +.elgg-list-distinct { + border-top: 1px dotted #CCCCCC; + margin: 5px 0; + clear: both; } -.elgg-simple-list li { - margin-bottom: 5px; +.elgg-list-distinct > li { + border-bottom: 1px dotted #CCCCCC; } + /* *************************************** FORMS AND INPUT *************************************** */ label { font-weight: bold; - color:#333333; + color: #333333; font-size: 110%; } fieldset > div { @@ -405,34 +433,366 @@ fieldset > div:last-child { input { font: 120% Arial, Helvetica, sans-serif; padding: 5px; - border: 1px solid #cccccc; - color:#666666; + border: 1px solid #ccc; + color: #666; + -webkit-border-radius: 5px; -moz-border-radius: 5px; + border-radius: 5px; + margin: 0; } -input[type="submit"], .elgg-button-submit, .elgg-button-action { + +/* default elgg core input field classes */ +.elgg-input-text, +.elgg-input-tags, +.elgg-input-url, +.elgg-input-plaintext, +.elgg-input-longtext { + width: 98%; +} +textarea { + height: 100px; +} +.elgg-input-thin { + width: 400px; +} +.elgg-input-natural { + width: auto; +} + +.elgg-button { font-size: 14px; font-weight: bold; - color: white; text-decoration: none; - background-color: #333333; - border-color: #333333; + -webkit-border-radius: 5px; -moz-border-radius: 5px; + border-radius: 5px; + width: auto; padding: 2px 4px; - margin: 10px 5px 10px 0; cursor: pointer; - outline: none; } -input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover { +a.elgg-button { + padding: 3px 6px; +} + +.elgg-button + .elgg-button { + margin-left: 5px; +} + +.elgg-button-submit, +.elgg-button-action { color: white; - background-color: #000000; + border: 1px solid #333; + background-color: #333; + text-shadow: 1px 1px 0px black; +} +.elgg-button-submit:hover, +.elgg-button-action:hover { + color: white; + background-color: #000; text-decoration: none; } -.elgg-button-submit, .elgg-button-action { - padding: 4px 8px; +.elgg-button-submit.elgg-state-disabled, +.elgg-button-action.elgg-state-disabled { + color: #999; + cursor: default; +} + +.elgg-button-cancel { + color: #333; + background-color: #999; + border: 1px solid #999; +} +.elgg-button-cancel:hover { + color: #222; + background-color: #666; + text-decoration: none; +} + +.elgg-form-useradd input[type=text], +.elgg-form-useradd input[type=password] { + width: 300px; +} + +.elgg-form-settings { + max-width: 800px; +} + +/* ************************************** + DATE PICKER +*************************************** */ +.ui-datepicker { + margin-top: 3px; + padding: 3px 3px 0; + border: 1px solid #ccc; + background-color: white; +} +.ui-datepicker-header { + padding: 2px 0; + border: 1px solid #ccc; + background-color: #eee; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} +.ui-datepicker-prev, .ui-datepicker-next { + position: absolute; + top: 9px; + cursor: pointer; +} +.ui-datepicker-prev { + left: 6px; +} +.ui-datepicker-next { + right: 6px; +} +.ui-datepicker-title { + line-height: 1.8em; + margin: 0 30px; + text-align: center; + font-weight: bold; +} +.ui-datepicker-calendar { + margin-bottom: 2px; +} +.ui-datepicker th { + border: none; + font-weight: bold; + padding: 5px 6px; + text-align: center; +} +.ui-datepicker td { + padding: 1px; +} +.ui-datepicker td span, .ui-datepicker td a { + display: block; + padding: 2px; + line-height: 1.2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker-calendar .ui-state-default { + border: 1px solid #ccc; + color: #555; + background: #fafafa; +} +.ui-datepicker-calendar .ui-state-hover { + border: 1px solid #aaa; + color: #333; + background: #ccc; +} +.ui-datepicker-calendar .ui-state-active, +.ui-datepicker-calendar .ui-state-active.ui-state-hover { + font-weight: bold; + border: 1px solid #999; + color: #333; + background: #ddd; } + +/* *************************************** + AUTOCOMPLETE +*************************************** */ +<?php //autocomplete will expand to fullscreen without max-width ?> +.ui-autocomplete { + position: absolute; + cursor: default; +} +.elgg-autocomplete-item .elgg-body { + max-width: 600px; +} +.ui-autocomplete { + background-color: white; + border: 1px solid #ccc; + overflow: hidden; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item { + padding: 0px 4px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item:hover { + background-color: #eee; +} +.ui-autocomplete a:hover { + text-decoration: none; + color: #4690D6; +} +.ui-autocomplete a.ui-state-hover { + background-color: #eee; + display: block; +} + +/* *************************************** + USER PICKER +*************************************** */ +.elgg-user-picker-list li:first-child { + border-top: 1px dotted #ccc; + margin-top: 5px; +} +.elgg-user-picker-list > li { + border-bottom: 1px dotted #ccc; +} + +/* *************************************** + FRIENDS PICKER +*************************************** */ +.friends-picker-main-wrapper { + margin-bottom: 15px; +} +.friends-picker-container h3 { + font-size:4em !important; + text-align: left; + margin:10px 0 20px !important; + color:#999 !important; + background: none !important; + padding:0 !important; +} +.friends-picker .friends-picker-container .panel ul { + text-align: left; + margin: 0; + padding:0; +} +.friends-picker-wrapper { + margin: 0; + padding:0; + position: relative; + width: 730px; +} +.friends-picker { + position: relative; + overflow: hidden; + margin: 0; + padding:0; + width: 730px; + height: auto; + background-color: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} +.friendspicker-savebuttons { + background: white; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:0 10px 10px; +} +.friends-picker .friends-picker-container { /* long container used to house end-to-end panels. Width is calculated in JS */ + position: relative; + left: 0; + top: 0; + width: 100%; + list-style-type: none; +} +.friends-picker .friends-picker-container .panel { + float:left; + height: 100%; + position: relative; + width: 730px; + margin: 0; + padding:0; +} +.friends-picker .friends-picker-container .panel .wrapper { + margin: 0; + padding:4px 10px 10px 10px; + min-height: 230px; +} +.friends-picker-navigation { + margin: 0 0 10px; + padding:0 0 10px; + border-bottom:1px solid #ccc; +} +.friends-picker-navigation ul { + list-style: none; + padding-left: 0; +} +.friends-picker-navigation ul li { + float: left; + margin:0; + background:white; +} +.friends-picker-navigation a { + font-weight: bold; + text-align: center; + background: white; + color: #999; + text-decoration: none; + display: block; + padding: 0; + width:20px; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tabHasContent { + background: white; + color:#333 !important; +} +.friends-picker-navigation li a:hover { + background: #333; + color:white !important; +} +.friends-picker-navigation li a.current { + background: #4690D6; + color:white !important; +} +.friends-picker-navigation-l, .friends-picker-navigation-r { + position: absolute; + top: 46px; + text-indent: -9000em; +} +.friends-picker-navigation-l a, .friends-picker-navigation-r a { + display: block; + height: 40px; + width: 40px; +} +.friends-picker-navigation-l { + right: 48px; + z-index:1; +} +.friends-picker-navigation-r { + right: 0; + z-index:1; +} +.friends-picker-navigation-l { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left top; +} +.friends-picker-navigation-r { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px top; +} +.friends-picker-navigation-l:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left -44px; +} +.friends-picker-navigation-r:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px -44px; +} +.friendspicker-savebuttons .elgg-button-submit, +.friendspicker-savebuttons .elgg-button-cancel { + margin:5px 20px 5px 5px; +} +.friendspicker-members-table { + background: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:10px 0 0; + padding:10px 10px 0; +} + /* *************************************** PAGINATION *************************************** */ @@ -448,24 +808,23 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover } .elgg-pagination a, .elgg-pagination span { padding: 2px 6px; - color: #333333; - border: 1px solid #333333; + color: #333; + border: 1px solid #333; font-size: 12px; text-decoration: none; } .elgg-pagination a:hover { - background: #333333; + background: #333; color: white; text-decoration: none; } - -.elgg-pagination .elgg-state-disabled { - color: #CCCCCC; - border-color: #CCCCCC; +.elgg-pagination .elgg-state-disabled span { + color: #CCC; + border-color: #CCC; } -.elgg-pagination .elgg-state-selected { - color: #555555; - border-color: #555555; +.elgg-pagination .elgg-state-selected span { + color: #000; + border-color: #ccc; } /* *************************************** @@ -473,15 +832,15 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover *************************************** */ .elgg-tabs { margin-bottom: 5px; - border-bottom: 1px solid #cccccc; + border-bottom: 1px solid #ccc; display: table; width: 100%; } .elgg-tabs li { float: left; - border: 1px solid #cccccc; + border: 1px solid #ccc; border-bottom-width: 0; - background: #eeeeee; + background: #eee; margin: 0 0 0 10px; } .elgg-tabs a { @@ -490,14 +849,14 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover padding: 3px 10px 0 10px; text-align: center; height: 21px; - color: #999999; + color: #999; } .elgg-tabs a:hover { background: #dedede; - color:#333333; + color:#333; } .elgg-tabs .elgg-state-selected { - border-color: #cccccc; + border-color: #ccc; background: white; } .elgg-tabs .elgg-state-selected a { @@ -507,6 +866,228 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover } /* *************************************** + SIDEBAR MENU +*************************************** */ +.elgg-admin-sidebar-menu a { + border: 1px solid red; + display: block; + padding: 5px; + color: #333; + cursor: pointer; + text-decoration: none; + margin-bottom: 2px; + border: 1px solid #CCC; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.elgg-admin-sidebar-menu a:hover { + text-decoration: none; + background: black; + color: white; + border: 1px solid black; +} +.elgg-admin-sidebar-menu li.elgg-state-selected > a { + background-color: #BBB; +} +.elgg-admin-sidebar-menu .elgg-menu-closed:before { + content: "\25B8"; + padding-right: 4px; +} +.elgg-admin-sidebar-menu .elgg-menu-opened:before { + content: "\25BE"; + padding-right: 4px; +} +.elgg-admin-sidebar-menu .elgg-child-menu { + display: none; + padding-left: 30px; +} +.elgg-admin-sidebar-menu li.elgg-state-selected > ul { + display: block; +} +.elgg-admin-sidebar-menu h2 { + padding-bottom: 5px; +} +.elgg-admin-sidebar-menu ul.elgg-menu-page { + padding-bottom: 15px; +} + +/* *************************************** + TITLE MENU +*************************************** */ +.elgg-menu-title { + float: right; +} +.elgg-menu-title > li { + display: inline-block; + margin-left: 4px; +} + +/* *************************************** + FOOTER MENU +*************************************** */ +.elgg-menu-footer { + color: gray; +} +.elgg-menu-footer li { + float: left; +} +.elgg-menu-footer li:after { + content: "\007C"; + display: inline-block; + padding: 0 4px 0 4px; + font-weight: normal; +} +.elgg-menu-footer li:last-child:after { + content: ""; +} + +/* *************************************** + GENERAL MENU +*************************************** */ +.elgg-menu-general > li, +.elgg-menu-general > li > a { + display: inline-block; + color: #999; +} + +.elgg-menu-general > li:after { + content: "\007C"; + padding: 0 4px; +} + +/* *************************************** + HOVER MENU +*************************************** */ +.elgg-menu-hover { + display: none; + position: absolute; + z-index: 10000; + + width: 165px; + border: solid 1px #E5E5E5; + border-color: #E5E5E5 #999 #999 #E5E5E5; + background-color: #FFF; + + -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); +} +.elgg-menu-hover > li { + border-bottom: 1px solid #ddd; +} +.elgg-menu-hover > li:last-child { + border-bottom: none; +} +.elgg-menu-hover .elgg-heading-basic { + display: block; +} +.elgg-menu-hover a { + display: block; + padding: 2px 8px; + font-size: 92%; +} +.elgg-menu-hover a:hover { + background: #ccc; + text-decoration: none; +} +.elgg-menu-hover-admin a { + color: red; +} +.elgg-menu-hover-admin a:hover { + color: white; + background-color: red; +} + +/* *************************************** + ENTITY MENU +*************************************** */ +<?php // height depends on line height/font size ?> +.elgg-menu-entity, .elgg-menu-annotation { + float: right; + margin-left: 15px; + font-size: 90%; + color: #666; + line-height: 16px; + height: 16px; +} +.elgg-menu-entity > li, .elgg-menu-annotation > li { + margin-left: 15px; +} +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + color: #aaa; +} +<?php // need to override .elgg-menu-hz ?> +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + display: block; +} +.elgg-menu-entity > li > span, .elgg-menu-annotation > li > span { + vertical-align: baseline; +} + +/* *************************************** + WIDGET MENU +*************************************** */ +.elgg-menu-widget > li { + position: absolute; + top: 4px; + display: inline-block; + width: 18px; + height: 18px; + padding: 2px 2px 0 0; +} +.elgg-menu-widget > .elgg-menu-item-collapse { + left: 5px; +} +.elgg-menu-widget > .elgg-menu-item-delete { + right: 5px; +} +.elgg-menu-widget > .elgg-menu-item-settings { + right: 25px; +} + +/* *************************************** + MORE MENUS +*************************************** */ +/* Horizontal menus w/ separator support */ +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a { + display: inline-block; + vertical-align: middle; +} +/* Allow inline image blocks in horizontal menus */ +.elgg-menu-hz .elgg-body:after { + content: '.'; +} +.elgg-menu > li:last-child::after { + display: none; +} +.elgg-menu-admin-footer a { + color: #eee; +} +.elgg-menu-admin-footer > li { + padding-right: 25px; +} +.elgg-menu-longtext { + float: right; +} +.elgg-menu-metadata { + list-style-type: none; + float: right; + margin-left: 15px; + font-size: 90%; +} +.elgg-menu-metadata > li { + float: left; + margin-left: 15px; +} +.elgg-menu-metadata, .elgg-menu-metadata a { + color: #aaa; +} + +/* *************************************** WIDGETS *************************************** */ .elgg-widgets { @@ -520,11 +1101,9 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover .elgg-widgets-add-panel { padding: 10px; margin: 0 5px 15px; - background: #eeeeee; - border: 1px solid #cccccc; + background: #eee; + border: 1px solid #ccc; } - -<?php //@todo location-dependent style: make an extension of elgg-gallery ?> .elgg-widgets-add-panel ul { padding: 0; margin: 0; @@ -535,13 +1114,23 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover list-style: none; width: 200px; padding: 4px; - background-color: #eeeeee; - border: 1px solid #cccccc; + background-color: #eee; + border: 1px solid #ccc; font-weight: bold; } .elgg-widgets-add-panel li a { display: block; } +.elgg-widget-single.elgg-state-available { + color: #333; + cursor: pointer; +} +.elgg-widget-single.elgg-state-available:hover { + border-color: #aaa; +} +.elgg-widget-single.elgg-state-unavailable { + color: #888; +} .elgg-module-widget { background-color: #dedede; @@ -550,45 +1139,36 @@ input[type="submit"]:hover, .elgg-button-submit:hover, .elgg-button-action:hover position: relative; } .elgg-module-widget:hover { - background-color: #cccccc; + background-color: #ccc; } .elgg-module-widget > .elgg-head { background-color: #f5f5f5; - height: 30px; - line-height: 30px; + height: 26px; overflow: hidden; } +.elgg-module-widget.elgg-state-draggable .elgg-widget-handle { + cursor: move; +} .elgg-module-widget > .elgg-head h3 { float: left; - padding: 0 45px 0 20px; - color: #333333; -} -.elgg-module-widget > .elgg-head a { - position: absolute; - top: 5px; - display: block; - width: 18px; - height: 18px; - border: 1px solid transparent; + padding: 4px 45px 0 20px; + color: #333; } -a.elgg-widget-collapse-button { - left: 5px; - background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat 0px -385px; -} -a.elgg-widget-collapsed { - background-position: 0px -365px; +.elgg-widget-collapse-button { + color: #c5c5c5; + text-decoration: none; } -a.elgg-widget-delete-button { - right: 5px; - background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -198px 3px; +a.elgg-widget-collapse-button:hover, +a.elgg-widget-collapsed:hover { + color: #9d9d9d; + text-decoration: none; } -a.elgg-widget-edit-button { - right: 25px; - background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -300px -1px; +a.elgg-widget-collapse-button:before { + content: "\25BC"; } -a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { - border: 1px solid #cccccc; +a.elgg-widget-collapsed:before { + content: "\25BA"; } .elgg-module-widget > .elgg-body { border-top: 1px solid #dedede; @@ -610,24 +1190,103 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { margin-bottom: 15px; } +/* *************************************** + GRID +*************************************** */ +.elgg-grid {} +.elgg-col { + float: left; +} +.elgg-col-1of1 { + float: none; +} +.elgg-col-1of2 { + width: 50%; +} +.elgg-col-1of3 { + width: 33.33%; +} +.elgg-col-2of3 { + width: 66.66%; +} +.elgg-col-1of4 { + width: 25%; +} +.elgg-col-3of4 { + width: 75%; +} +.elgg-col-1of5 { + width: 20%; +} +.elgg-col-2of5 { + width: 40%; +} +.elgg-col-3of5 { + width: 60%; +} +.elgg-col-4of5 { + width: 80%; +} +.elgg-col-1of6 { + width: 16.66%; +} +.elgg-col-5of6 { + width: 83.33%; +} - - -.elgg-subtext { - color: #666666; - font-size: 85%; - line-height: 1.2em; - font-style: italic; - margin-bottom: 5px; +/* *************************************** + ICONS +*************************************** */ +.elgg-icon { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/admin_sprites.png) no-repeat left; + width: 16px; + height: 16px; + display: inline-block; + margin: 0 2px; + vertical-align: text-bottom; +} +.elgg-module .elgg-head .elgg-icon { + vertical-align: baseline; +} +.elgg-icon-delete:hover, +.elgg-icon-delete-alt:hover { + background-position: 0 -0px; +} +.elgg-icon-delete, +.elgg-icon-delete-alt { + background-position: 0 -18px; +} +.elgg-icon-drag-arrow:hover { + background-position: 0 -36px; +} +.elgg-icon-drag-arrow { + background-position: 0 -54px; +} +.elgg-icon-hover-menu:hover { + background-position: 0 -72px; +} +.elgg-icon-hover-menu { + background-position: 0 -90px; +} +.elgg-icon-settings-alt:hover { + background-position: 0 -108px; +} +.elgg-icon-settings-alt { + background-position: 0 -126px; } -.avatar_menu_button { - display: none; +.elgg-ajax-loader { + background: white url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif) no-repeat center center; + min-height: 33px; + min-width: 33px; } -<?php // @todo clean up and figure out what admin css needs ?> +/* *************************************** + AVATAR ICONS +*************************************** */ .elgg-avatar { position: relative; + display: inline-block; } .elgg-avatar > a > img { display: block; @@ -635,28 +1294,38 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { .elgg-avatar-tiny > a > img { width: 25px; height: 25px; + /* remove the border-radius if you don't want rounded avatars in supported browsers */ -webkit-border-radius: 3px; -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: border; + background-clip: border; - -o-background-size: 25px; -webkit-background-size: 25px; -khtml-background-size: 25px; -moz-background-size: 25px; + -o-background-size: 25px; + background-size: 25px; } .elgg-avatar-small > a > img { width: 40px; height: 40px; + /* remove the border-radius if you don't want rounded avatars in supported browsers */ -webkit-border-radius: 5px; -moz-border-radius: 5px; + border-radius: 5px; + -moz-background-clip: border; + background-clip: border; - -o-background-size: 40px; -webkit-background-size: 40px; -khtml-background-size: 40px; -moz-background-size: 40px; + -o-background-size: 40px; + background-size: 40px; } .elgg-avatar-medium > a > img { width: 100px; @@ -666,366 +1335,289 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { width: 200px; height: 200px; } - -.elgg-menu-hover { +.elgg-avatar > .elgg-icon-hover-menu { display: none; position: absolute; - z-index: 10000; - - width: 165px; - border-top: solid 1px #E5E5E5; - border-left: solid 1px #E5E5E5; - border-right: solid 1px #999999; - border-bottom: solid 1px #999999; - background-color: #FFFFFF; - -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); - -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); -} -.elgg-menu-hover > li { - border-bottom: 1px solid #dddddd; + right: 0; + bottom: 0; + margin: 0; + cursor: pointer; } -.elgg-menu-hover > li:last-child { - border-bottom: none; +.elgg-avatar { + position: relative; } -.elgg-menu-hover .elgg-heading-basic { +.elgg-avatar > a > img { display: block; } -.elgg-menu-hover a { - display: block; - padding: 2px 8px; - font-size: 92%; +.elgg-avatar-tiny > a > img { + width: 25px; + height: 25px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 25px; + -khtml-background-size: 25px; + -moz-background-size: 25px; + -o-background-size: 25px; + background-size: 25px; } -.elgg-menu-hover a:hover { - background: #cccccc; - text-decoration: none; +.elgg-avatar-small > a > img { + width: 40px; + height: 40px; + + /* remove the border-radius if you don't want rounded avatars in supported browsers */ + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -moz-background-clip: border; + background-clip: border; + + -webkit-background-size: 40px; + -khtml-background-size: 40px; + -moz-background-size: 40px; + -o-background-size: 40px; + background-size: 40px; } -.elgg-hover-admin a { - color: red; +.elgg-avatar-medium > a > img { + width: 100px; + height: 100px; } -.elgg-hover-admin a:hover { - color: white; - background-color: red; +.elgg-avatar-large > a > img { + width: 200px; + height: 200px; } /* *************************************** - GENERAL FORM ELEMENTS -*************************************** */ - + PLUGINS +**************************************** */ +.elgg-plugin { + border: 1px solid #999; + margin: 0 0 5px; + padding: 0 7px 4px 10px; -/* default elgg core input field classes */ -.input-text, -.input-tags, -.input-url, -.input-textarea { - width:98%; -} -.admin_area .input-access { - margin:5px 0 0 0; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; } -.admin_area .input-password { - width:200px; +.elgg-plugin.elgg-state-draggable > .elgg-image-block .elgg-head { + cursor: move; } -.admin_area .input-textarea { - height: 200px; - width:718px; +.elgg-plugin p { + margin: 0; } -.admin_area input[type="checkbox"], -.admin_area input.input-radio { - margin:0 3px 0 0; - padding:0; - border:none; +.elgg-plugin h3 { + color: black; + padding-bottom: 10px; } -.admin_area input { - font: 120% Arial, Helvetica, sans-serif; - padding: 5px; - border: 1px solid #cccccc; - color:#666666; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; +.elgg-plugin-settings { + font-weight: normal; + font-size: 0.9em; } -.admin_area textarea { - font: 120% Arial, Helvetica, sans-serif; - border: solid 1px #cccccc; - padding: 5px; - color:#666666; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; +.elgg-plugin-screenshot { + display: inline; } -.admin_area textarea:focus, -.admin_area input[type="text"]:focus { - border: solid 1px #666666; - background: #f5f5f5; - color:#333333; +.elgg-plugin-screenshot img { + border: 1px solid #999; } -.admin_area .input-textarea.monospace { - font-family:Monaco,"Courier New",Courier,monospace; - font-size:13px; +.elgg-plugin-screenshot-lightbox { + display: block; + position: absolute; + width: 99%; + text-align: center; + background-color: white; + border: 1px solid #999; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; } -a.elgg-longtext-control { - float: right; - margin-left: 14px; +.elgg-plugin-screenshot-lightbox h2 { + color: black; } -.admin_area .elgg-button-submit { - font-size: 14px; - font-weight: bold; - color: white; - text-shadow:1px 1px 0px black; - text-decoration:none; - border: 1px solid #0054A7; - background-color:#0054A7; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: auto; - padding: 2px 4px; - margin:0 10px 10px 0; - cursor: pointer; - -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); - -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); +.elgg-plugin.elgg-state-active { + background: white; } -.admin_area .elgg-button-submit:hover { - color: white; - border-color: #333333; - text-decoration:none; - background-color:#333333; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; -} -.admin_area input[type="password"]:focus { - border: solid 1px #666666; - background-color: #f5f5f5; - color:#333333; +.elgg-plugin.elgg-state-inactive { + background: #dedede; } -.admin_area input[type="submit"] { - font-size: 14px; +.elgg-plugin .elgg-state-error { + background: #fbe3e4; + color: #8a1f11; + border-color: #fbc2c4; font-weight: bold; - color: white; - text-shadow:1px 1px 0px black; - text-decoration:none; - border: 1px solid #0054A7; - background-color:#0054A7; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: auto; - padding: 2px 4px; - margin:10px 0 10px 0; - cursor: pointer; - outline: none; - -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); - -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); -} -.admin_area input[type="submit"]:hover { - border-color: #333333; - text-decoration:none; - background-color:#333333; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; -} -.admin_area .elgg-button-cancel { - font-size: 14px; +} +.elgg-plugin .elgg-state-warning { + background: #fbedb5; + color: #000000; + border-color: #fbe58b; font-weight: bold; - text-decoration:none; - color: #333333; - background-color:#dddddd; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; - border: 1px solid #999999; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: auto; - padding: 2px 4px; - margin:10px 0 10px 10px; - cursor: pointer; } -.admin_area .elgg-button-cancel:hover { - background-color: #999999; - background-position: left 10px; - text-decoration:none; - color:white; +.elgg-plugin-more { + background-color: #eee; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + padding: 5px 10px; + margin: 4px 0; } -.admin_area .content-header-options .elgg-button-action { - margin-top:0; - margin-left:10px; +ul.elgg-plugin-categories, ul.elgg-plugin-categories > li, +ul.elgg-plugin-resources, ul.elgg-plugin-resources > li { + display: inline; } -.admin_area input.elgg-button-action, -.admin_area a.elgg-button-action { - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - background-color:#cccccc; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif); - background-repeat: repeat-x; - background-position: 0 0; - border:1px solid #999999; - color:#333333; - padding:2px 15px 2px 15px; - text-align:center; - font-weight:bold; - text-decoration:none; - text-shadow:0 1px 0 white; - cursor:pointer; - -webkit-box-shadow: none; - -moz-box-shadow: none; -} -.admin_area input.elgg-button-action:hover, -.admin_area a.elgg-button-action:hover, -.admin_area input.elgg-button-action:focus, -.admin_area a.elgg-button-action:focus { - background-position:0 -15px; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif); - background-repeat: repeat-x; - color:#111111; - text-decoration: none; - background-color:#cccccc; - border:1px solid #999999; +.elgg-plugin-category-bundled { + border-width: 2px; + border-color: #0054A7; } -.admin_area .elgg-button-action:active { - background-image:none; + +/**************************************** + MARKDOWN +****************************************/ +.elgg-markdown { + margin: 15px; } -.admin_area .elgg-button-action.elgg-state-disabled { - color:#999999; - padding:2px 7px 2px 7px; +.elgg-markdown h1, +.elgg-markdown h2, +.elgg-markdown h3, +.elgg-markdown h4, +.elgg-markdown h5, +.elgg-markdown h6 { + margin: 1em 0 1em -15px; + color: #333; } -.admin_area .elgg-button-action.elgg-state-disabled:hover { - background-position:0 -15px; - color:#111111; - border:1px solid #999999; +.elgg-markdown ol { + list-style: decimal; + padding-left: 2em; } -.admin_area .elgg-button-action.elgg-state-disabled:active { - background-image:none; +.elgg-markdown ul { + list-style: disc; + padding-left: 2em; } -.admin_area .elgg-button-action.download { - padding: 5px 9px 5px 6px; +.elgg-markdown p { + margin: 15px 0; } -.admin_area .elgg-button-action.download:hover { +/* *************************************** + MISC +*************************************** */ +.elgg-content-thin { + max-width: 600px; } -.admin_area .elgg-button-action.download img { - margin-right:6px; - position:relative; - top:5px; -} -.admin_area .elgg-button-action.small { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - width: auto; - height:8px; - padding: 4px; - font-size: 0.9em; - line-height: 0.6em; -} -.admin_area .elgg-button-action.small:hover { - background-color: #0054A7; - background-image: none; - border-color: #0054A7; - color:white; - text-shadow:0 -1px 0 #999999; + +.elgg-subtext { + color: #666; + font-size: 85%; + line-height: 1.2em; + font-style: italic; + margin-bottom: 5px; } +.elgg-text-help { + display: block; + font-size: 85%; + font-style: italic; +} -.manifest_file { - background-color:#eeeeee; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - padding:5px 10px 5px 10px; - margin:4px 0 4px 0; +.elgg-longtext-control { + margin-left: 14px; + font-size: 80%; + cursor: pointer; } +table.mceLayout { + width:100% !important; +} -.plugin_controls { - padding: 3px 3px 3px 0; +.elgg-output dt { font-weight: bold; - float: left; - width: 150px; } -form.admin_plugins_simpleview .elgg-button-submit { - margin-right:20px; +.elgg-output dd { + margin: 0 0 1em 2em; } -.plugin_info { - margin: 3px; - padding-left: 150px; - display: block; + +/* *************************************** + SITE SECRET +*************************************** */ +.elgg-form-admin-site-regenerate-secret table { + width: 60%; + margin: 1em auto; } -.plugin_metadata { - display:block; - color:#999999; +td.elgg-strength-strong, +td.elgg-strength-strong h4 { + background: #DFF0D8; color: #468847; } -.plugin_name input[type="checkbox"] { - margin-right: 10px; +td.elgg-strength-moderate, +td.elgg-strength-moderate h4 { + background: #FCF8E3; color: #C09853; } -ul.admin_plugins { - margin-bottom:0; - padding-left:0; - list-style: none; +td.elgg-strength-weak, +td.elgg-strength-weak h4 { + background: #F2DEDE; color: #B94A48; } -.elgg-plugin { - border:1px solid #999999; - margin:0 0 5px 0; - padding:0 7px 4px 10px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; + +/* *************************************** + HELPERS +*************************************** */ +.hidden { + display: none; } -.elgg-plugin p { - margin:0; - padding:0; +.centered { + margin: 0 auto; } -.elgg-plugin h3 { - color:black; - padding-bottom: 10px; +.center { + text-align: center; } -.plugin_settings { - font-weight: normal; +.float { + float: left; } - -.elgg-plugin-screenshot { - display: inline; +.float-alt { + float: right; } -.elgg-plugin-screenshot img { - border: 1px solid #999999; +.elgg-toggle { + cursor: pointer; } -.elgg-plugin-screenshot-lightbox { +.elgg-discover .elgg-discoverable { + display: none; +} +.elgg-discover:hover .elgg-discoverable { display: block; - position: absolute; - width: 99%; - text-align: center; - background-color: white; - border: 1px solid #999999; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; } -.elgg-plugin-screenshot-lightbox h2 { - color:black; +.elgg-transition:hover { + opacity: .7; } -.admin_notices { - padding-bottom: 15px; +/* *************************************** + BORDERS AND SEPARATORS +*************************************** */ +.elgg-border-plain { + border: 1px solid #eeeeee; } -.admin_notices p { - background-color:#BDE5F8; - color: black; - border: 1px solid blue; - font-weight: bold; - padding:3px 10px; - -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); - -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; +.elgg-border-transition { + border: 1px solid #eeeeee; } - - -.add-user form { - width:300px; +.elgg-divide-top { + border-top: 1px solid #CCCCCC; +} +.elgg-divide-bottom { + border-bottom: 1px solid #CCCCCC; +} +.elgg-divide-left { + border-left: 1px solid #CCCCCC; +} +.elgg-divide-right { + border-right: 1px solid #CCCCCC; } /* *************************************** - Spacing (from OOCSS) + SPACING (from OOCSS) *************************************** */ .pan{padding:0} .pas{padding:5px} @@ -1083,199 +1675,3 @@ ul.admin_plugins { .mvs{margin-top:5px;margin-bottom:5px} .mvm{margin-top:10px;margin-bottom:10px} .mvl{margin-top:20px;margin-bottom:20px} - -/* *************************************** - GRID -*************************************** */ -.elgg-grid {} -.elgg-col { - float: left; -} -.elgg-col-1of1 { - float: none; -} -.elgg-col-1of2 { - width: 50%; -} -.elgg-col-1of3 { - width: 33.33%; -} -.elgg-col-2of3 { - width: 66.66%; -} -.elgg-col-1of4 { - width: 25%; -} -.elgg-col-3of4 { - width: 75%; -} -.elgg-col-1of5 { - width: 20%; -} -.elgg-col-2of5 { - width: 40%; -} -.elgg-col-3of5 { - width: 60%; -} -.elgg-col-4of5 { - width: 80%; -} -.elgg-col-1of6 { - width: 16.66%; -} -.elgg-col-5of6 { - width: 83.33%; -} - -/* *************************************** - Icons -*************************************** */ -.elgg-icon { - background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left; - width: 16px; - height: 16px; - display: block; - float: left; - margin: 0 2px; -} -.elgg-icon-settings { - background-position: -302px -44px; -} -.elgg-icon-friends { - background-position: 0 -300px; - width: 36px; -} -.elgg-icon-friends:hover { - background-position: 0 -340px; -} -.elgg-icon-help { - background-position: -302px -136px; -} -.elgg-icon-delete { - background-position: -199px 1px; -} -.elgg-icon-delete:hover { - background-position: -199px -15px; -} -.elgg-icon-likes { - background-position: 0px -101px; - width: 20px; - height: 20px; -} -.elgg-icon-likes:hover { - background-position: 0px -131px; -} -.elgg-icon-liked { - background-position: 0px -131px; - width: 20px; - height: 20px; -} -.elgg-icon-arrow-s { - background-position: -146px -56px; -} -.elgg-icon-arrow-s:hover { - background-position: -146px -76px; -} -.elgg-icon-following { - background-position: -35px -100px; - width: 22px; - height: 20px; -} -.elgg-icon-rss { - background-position: -249px 1px; -} -.elgg-icon-hover-menu { - background-position: -150px 0; -} -.elgg-icon-hover-menu:hover { - background-position: -150px -32px; -} -.elgg-icon-dragger { - background-position: -302px -186px; - width: 21px; - height: 21px; -} - -.elgg-list-metadata { - list-style-type: none; - float: right; - margin-left: 15px; - font-size: 90%; -} -.elgg-list-metadata > li { - float: left; - margin-left: 15px; -} - -.right {float:right} -.elgg-toggle {cursor:pointer} - -/* *************************************** - FOOTER -*************************************** */ -.elgg-menu-footer {color:gray} - -.elgg-menu-footer li { - float: left; -} -.elgg-menu-footer li:after{ - content: "\007C"; - display: inline-block; - padding: 0 4px 0 4px; - font-weight: normal; -} -.elgg-menu-footer li:last-child:after { - content: ""; -} - -/* *************************************** - STATES -*************************************** */ - -.elgg-state-active { - background:white; -} - -.elgg-state-inactive { - background:#dedede; -} - -.elgg-state-available { - color: #333333; - cursor: pointer; -} - -.elgg-state-available:hover { - border-color: #aaaaaa; -} - -.elgg-state-unavailable { - color: #888888; -} - -.elgg-state-success { - background: #e6efc2; - color: #264409; - border-color: #c6d880; -} - -.elgg-state-error { - background: #fbe3e4; - color: #8a1f11; - border-color: #fbc2c4; - font-weight: bold; -} - -p.elgg-state-error { - padding: 5px; -} - -<?php //@todo elgg-drag-handle instead? ?> -.elgg-state-draggable > .elgg-head { - cursor: move; -} - -<?php //What to do with states that don't have default styles? ?> -.elgg-state-selected {} -.elgg-state-disabled {} diff --git a/views/default/css/elements/buttons.php b/views/default/css/elements/buttons.php new file mode 100644 index 000000000..e9c99cf96 --- /dev/null +++ b/views/default/css/elements/buttons.php @@ -0,0 +1,156 @@ +<?php +/** + * CSS buttons + * + * @package Elgg.Core + * @subpackage UI + */ +?> +/* ************************** + BUTTONS +************************** */ + +/* Base */ +.elgg-button { + font-size: 14px; + font-weight: bold; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + width: auto; + padding: 2px 4px; + cursor: pointer; + outline: none; + + -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); + -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); + box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); +} +a.elgg-button { + padding: 3px 6px; +} + +/* Submit: This button should convey, "you're about to take some definitive action" */ +.elgg-button-submit { + color: white; + text-shadow: 1px 1px 0px black; + text-decoration: none; + border: 1px solid #4690d6; + background: #4690d6 url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; +} + +.elgg-button-submit:hover { + border-color: #0054a7; + text-decoration: none; + color: white; + background: #0054a7 url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; +} + +.elgg-button-submit.elgg-state-disabled { + background: #999; + border-color: #999; + cursor: default; +} + +/* Cancel: This button should convey a negative but easily reversible action (e.g., turning off a plugin) */ +.elgg-button-cancel { + color: #333; + background: #ddd url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; + border: 1px solid #999; +} +.elgg-button-cancel:hover { + color: #444; + background-color: #999; + background-position: left 10px; + text-decoration: none; +} + +/* Action: This button should convey a normal, inconsequential action, such as clicking a link */ +.elgg-button-action { + background: #ccc url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif) repeat-x 0 0; + border:1px solid #999; + color: #333; + padding: 2px 15px; + text-align: center; + font-weight: bold; + text-decoration: none; + text-shadow: 0 1px 0 white; + cursor: pointer; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.elgg-button-action:hover, +.elgg-button-action:focus { + background: #ccc url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif) repeat-x 0 -15px; + color: #111; + text-decoration: none; + border: 1px solid #999; +} + +/* Delete: This button should convey "be careful before you click me" */ +.elgg-button-delete { + color: #bbb; + text-decoration: none; + border: 1px solid #333; + background: #555 url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png) repeat-x left 10px; + text-shadow: 1px 1px 0px black; +} +.elgg-button-delete:hover { + color: #999; + background-color: #333; + background-position: left 10px; + text-decoration: none; +} + +.elgg-button-dropdown { + padding:3px 6px; + text-decoration:none; + display:block; + font-weight:bold; + position:relative; + margin-left:0; + color: white; + border:1px solid #71B9F7; + + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + + -webkit-box-shadow: 0 0 0; + -moz-box-shadow: 0 0 0; + box-shadow: 0 0 0; + + /*background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png); + background-position:-150px -51px; + background-repeat:no-repeat;*/ +} + +.elgg-button-dropdown:after { + content: " \25BC "; + font-size:smaller; +} + +.elgg-button-dropdown:hover { + background-color:#71B9F7; + text-decoration:none; +} + +.elgg-button-dropdown.elgg-state-active { + background: #ccc; + outline: none; + color: #333; + border:1px solid #ccc; + + -webkit-border-radius:4px 4px 0 0; + -moz-border-radius:4px 4px 0 0; + border-radius:4px 4px 0 0; +} diff --git a/views/default/css/elements/chrome.php b/views/default/css/elements/chrome.php deleted file mode 100644 index a9b82d41d..000000000 --- a/views/default/css/elements/chrome.php +++ /dev/null @@ -1,130 +0,0 @@ -<?php -/** - * Visual styling - * - * @package Elgg.Core - * @subpackage UI - */ - -/* Colors: - - #4690D6 - elgg light blue - #0054A7 - elgg dark blue - #e4ecf5 - elgg very light blue -*/ - -?> - -a { - color: #4690D6; -} -a:hover, -a.selected { - color: #555555; -} -a:hover, -a.selected { - text-decoration: underline; -} -h1, h2, h3, h4, h5, h6 { - color: #0054A7; -} -p { - margin-bottom: 15px; -} -p:last-child { - margin-bottom: 0; -} - -dt { - font-weight: bold; -} -dd { - margin: 0 0 1em 1em; -} -pre, code { - background:#EBF5FF; - color:#000000; - overflow:auto; - - overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */ - - white-space: pre-wrap; - word-wrap: break-word; /* IE 5.5-7 */ -} -code { - padding:2px 3px; -} -pre { - padding:3px 15px; - margin:0px 0 15px 0; - line-height:1.3em; -} -blockquote { - padding:3px 15px; - margin:0px 0 15px 0; - background:#EBF5FF; - border:none; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; -} - -h2 { - padding-bottom:5px; -} - -.elgg-quiet { - color: #666666; -} - -.elgg-loud { - color: #0054A7; -} - -<?php //@todo remove ?> -.radius8 { - -webkit-border-radius: 8px; - -moz-border-radius: 8px; -} - -/* *************************************** - Borders (inspired by OOCSS) - b<location><type> -*************************************** */ - -<?php //@todo style is 'a' or 'b' because I didn't want to think of something cooler ?> -/* a */ -.bta, .bva, .baa {border-top: 1px solid #ccc} -.bba, .bva, .baa {border-bottom: 1px solid #ccc} -.bla, .bha, .baa {border-left: 1px solid #ccc} -.bra, .bha, .baa {border-right: 1px solid #ccc} - -/* b */ -.btb, .bvb, .bab {border-top: 1px solid #eee} -.bbb, .bvb, .bab {border-bottom: 1px solid #eee} -.blb, .bhb, .bab {border-left: 1px solid #eee} -.brb, .bhb, .bab {border-right: 1px solid #eee} - -.elgg-text ul, ol { - margin: 0 1.5em 1.5em 0; - padding-left: 1.5em; -} -.elgg-text ul { - list-style-type: disc; -} -.elgg-text ol { - list-style-type: decimal; -} - -.elgg-subtext { - color: #666666; - font-size: 85%; - line-height: 1.2em; - font-style: italic; -} - -.elgg-photo { - border: 1px solid #ccc; - padding: 3px; - background-color: white; -} diff --git a/views/default/css/elements/layout_objects.php b/views/default/css/elements/components.php index cc733ea06..7fe535d57 100644 --- a/views/default/css/elements/layout_objects.php +++ b/views/default/css/elements/components.php @@ -7,37 +7,9 @@ * @package Elgg.Core * @subpackage UI */ -/** - * elgg-body fills the space available to it. - * It uses hidden text to expand itself. The combination of auto width, overflow - * hidden, and the hidden text creates this effect. - * - * This allows us to float fixed width divs to either side of an .elgg-body div - * without having to specify the body div's width. - * - * @todo check what happens with long <pre> tags or large images - * @todo Move this to its own file -- it is very complicated and should not have to be overridden. - */ ?> /* *************************************** - Body -*************************************** */ -.elgg-body { - width: auto; - word-wrap: break-word; - overflow: hidden; -} -.elgg-body:after { - display: block; - visibility: hidden; - height: 0 !important; - line-height: 0; - font-size: xx-large; - content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "; -} - -/* *************************************** Image Block *************************************** */ .elgg-image-block { @@ -63,25 +35,11 @@ .elgg-list > li { border-bottom: 1px dotted #CCCCCC; } -.elgg-list-metadata { - float: right; - margin-left: 15px; - font-size: 90%; -} -.elgg-list-metadata > li { - float: left; - margin-left: 15px; -} -.elgg-list-metadata, .elgg-list-metadata a { - color: #aaaaaa; -} -.elgg-list-item .elgg-subtext { - margin-bottom: 5px; -} -.elgg-tags { + +.elgg-item .elgg-subtext { margin-bottom: 5px; } -.elgg-list-content { +.elgg-item .elgg-content { margin: 10px 5px; } @@ -96,34 +54,44 @@ .elgg-gallery td { padding: 5px; } +.elgg-gallery-fluid > li { + float: left; +} +.elgg-gallery-users > li { + margin: 0 2px; +} /* *************************************** Tables *************************************** */ .elgg-table { width: 100%; - border-top: 1px solid #cccccc; + border-top: 1px solid #ccc; } .elgg-table td, .elgg-table th { padding: 4px 8px; - border: 1px solid #cccccc; + border: 1px solid #ccc; } .elgg-table th { - background-color: #dddddd; + background-color: #ddd; } .elgg-table tr:nth-child(odd), .elgg-table tr.odd { - background-color: #ffffff; + background-color: #fff; } .elgg-table tr:nth-child(even), .elgg-table tr.even { background-color: #f0f0f0; } .elgg-table-alt { width: 100%; - border-top: 1px solid #cccccc; + border-top: 1px solid #ccc; +} +.elgg-table-alt th { + background-color: #eee; + font-weight: bold; } -.elgg-table-alt td { +.elgg-table-alt td, .elgg-table-alt th { padding: 2px 4px 2px 4px; - border-bottom: 1px solid #cccccc; + border-bottom: 1px solid #ccc; } .elgg-table-alt td:first-child { width: 200px; @@ -138,11 +106,6 @@ .elgg-owner-block { margin-bottom: 20px; } -.elgg-owner-block-menu li { - float: left; - width: 50%; - font-size: 90%; -} /* *************************************** Messages @@ -154,10 +117,14 @@ padding: 3px 10px; cursor: pointer; opacity: 0.9; + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45); + -webkit-border-radius: 8px; -moz-border-radius: 8px; + border-radius: 8px; } .elgg-state-success { background-color: black; @@ -172,11 +139,11 @@ /* *************************************** River *************************************** */ -.elgg-river { - border-top: 1px solid #CCCCCC; +.elgg-list-river { + border-top: 1px solid #CCC; } -.elgg-river > li { - border-bottom: 1px solid #CCCCCC; +.elgg-list-river > li { + border-bottom: 1px solid #CCC; } .elgg-river-item { padding: 7px 0; @@ -185,21 +152,23 @@ margin-right: 20px; } .elgg-river-timestamp { - color: #666666; + color: #666; font-size: 85%; font-style: italic; line-height: 1.2em; } + +.elgg-river-attachments, +.elgg-river-message, .elgg-river-content { - border-left: 1px solid #CCCCCC; + border-left: 1px solid #CCC; font-size: 85%; line-height: 1.5em; margin: 8px 0 5px 0; padding-left: 5px; } - -<?php //@todo location-dependent styles ?> -.elgg-river-content .elgg-avatar { +.elgg-river-attachments .elgg-avatar, +.elgg-river-attachments .elgg-icon { float: left; } .elgg-river-layout .elgg-input-dropdown { @@ -207,39 +176,38 @@ margin: 10px 0; } -<?php //@todo do we need another elgg-tabs extension? ?> .elgg-river-comments-tab { display: block; - background-color: #EEEEEE; + background-color: #EEE; color: #4690D6; margin-top: 5px; width: auto; float: right; font-size: 85%; padding: 1px 7px; - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; + + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; } -<?php //@todo lists.php ?> +<?php //@todo components.php ?> .elgg-river-comments { margin: 0; border-top: none; } .elgg-river-comments li:first-child { - -moz-border-radius-topleft: 5px; - -webkit-border-top-left-radius: 5px; + -webkit-border-radius: 5px 0 0; + -moz-border-radius: 5px 0 0; + border-radius: 5px 0 0; } .elgg-river-comments li:last-child { - -moz-border-radius-bottomleft: 5px; - -moz-border-radius-bottomright: 5px; - -webkit-border-bottom-right-radius: 5px; - -webkit-border-bottom-left-radius: 5px; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius-bottomleft: 0 0 5px 5px; + border-radius-bottomleft: 0 0 5px 5px; } .elgg-river-comments li { - background-color: #EEEEEE; + background-color: #EEE; border-bottom: none; padding: 4px; margin-bottom: 2px; @@ -248,9 +216,12 @@ padding: 0; } .elgg-river-more { - background-color: #EEEEEE; - -moz-border-radius: 5px; + background-color: #EEE; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + padding: 2px 4px; font-size: 85%; margin-bottom: 2px; @@ -258,11 +229,13 @@ <?php //@todo location-dependent styles ?> .elgg-river-item form { - background-color: #EEEEEE; - padding: 4px 4px; + background-color: #EEE; + padding: 4px; + -moz-border-radius: 5px; -webkit-border-radius: 5px; - display: none; + border-radius: 5px; + height: 30px; } .elgg-river-item input[type=text] { @@ -271,38 +244,41 @@ .elgg-river-item input[type=submit] { margin: 0 0 0 10px; } -.elgg-river-item > .elgg-image-alt a { - font-size: 90%; - float: right; - clear: both; + + +/* ************************************** + Comments (from elgg_view_comments) +************************************** */ +.elgg-comments { + margin-top: 25px; +} +.elgg-comments > form { + margin-top: 15px; } /* *************************************** - Likes + Image-related *************************************** */ -.elgg-likes-list { - width: 345px; - position: absolute; +.elgg-photo { + border: 1px solid #ccc; + padding: 3px; + background-color: white; } /* *************************************** Tags *************************************** */ .elgg-tags { - background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png); - background-repeat: no-repeat; - background-position: left -196px; - padding:1px 0 0 14px; font-size: 85%; } -.elgg-tags li { - display: inline; +.elgg-tags > li { + float:left; margin-right: 5px; } -.elgg-tags li:after { +.elgg-tags li.elgg-tag:after { content: ","; } -.elgg-tags li:last-child:after { +.elgg-tags li.elgg-tag:last-child:after { content: ""; } .elgg-tagcloud { diff --git a/views/default/css/elements/core.php b/views/default/css/elements/core.php new file mode 100644 index 000000000..74f21ee59 --- /dev/null +++ b/views/default/css/elements/core.php @@ -0,0 +1,117 @@ +<?php +/** + * Core CSS + * + * This file holds all the complicated/hacky stuff that you really + * shouldn't touch or override unless you're sure you know what you're doing. + * + * Provides classes that implement cross-browser support for the following features: + * * clearfix + * * fluid-width content area that doesn't wrap around floats + * * menu's with separators + * * inline-block + * * horizontal menus + * * fluid gallery without using tables + */ +?> + +/* Clearfix */ +.clearfix:after, +.elgg-grid:after, +.elgg-layout:after, +.elgg-inner:after, +.elgg-page-header:after, +.elgg-page-footer:after, +.elgg-head:after, +.elgg-foot:after, +.elgg-col:after, +.elgg-image-block:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/* Fluid width container that does not wrap floats */ +.elgg-body, +.elgg-col-last { + display: block; + width: auto; + word-wrap: break-word; + overflow: hidden; + + /* IE 6, 7 */ + zoom:1; + *overflow:visible; +} + +<?php +/** + * elgg-body fills the space available to it. + * It uses hidden text to expand itself. The combination of auto width, overflow + * hidden, and the hidden text creates this effect. + * + * This allows us to float fixed width divs to either side of an .elgg-body div + * without having to specify the body div's width. + * + * @todo check what happens with long <pre> tags or large images + * @todo Move this to its own file -- it is very complicated and should not have to be overridden. + */ + +//@todo isn't this only needed if we use display:table-cell? +?> +.elgg-body:after, +.elgg-col-last:after { + display: block; + visibility: hidden; + height: 0 !important; + line-height: 0; + overflow: hidden; + + /* Stretch to fill up available space */ + font-size: xx-large; + content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "; +} + +/* *************************************** + * MENUS + * + * To add separators to a menu: + * .elgg-menu-$menu > li:after {content: '|'; background: ...;} + *************************************** */ +/* Enabled nesting of dropdown/flyout menus */ +.elgg-menu > li { position: relative; } + +.elgg-menu > li:last-child::after { + display: none; +} + +/* Maximize click target */ +.elgg-menu > li > a { display: block } + +/* Horizontal menus w/ separator support */ +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a, +.elgg-menu-hz > li > span { + vertical-align: middle; +} + +/* Allow inline image blocks in horizontal menus */ +.elgg-menu-hz .elgg-body:after { content: '.'; } + +<?php //@todo This isn't going to work as-is. Needs testing ?> +/* Inline block */ +.elgg-gallery > li, +.elgg-button, +.elgg-icon, +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a, +.elgg-menu-hz > li > span { + /* Google says do this, but why? */ + position: relative; + + display: inline-block; +} diff --git a/views/default/css/elements/forms.php b/views/default/css/elements/forms.php index b56aeddcb..068cc8fd6 100644 --- a/views/default/css/elements/forms.php +++ b/views/default/css/elements/forms.php @@ -1,6 +1,6 @@ <?php /** - * CSS form elements + * CSS form/input elements * * @package Elgg.Core * @subpackage UI @@ -10,40 +10,41 @@ /* *************************************** Form Elements *************************************** */ -<?php //@todo not comfortable with these... ?> fieldset > div { margin-bottom: 15px; } fieldset > div:last-child { margin-bottom: 0; } +.elgg-form-alt > fieldset > .elgg-foot { + border-top: 1px solid #CCC; + padding: 10px 0; +} label { font-weight: bold; - color: #333333; + color: #333; font-size: 110%; } input, textarea { + border: 1px solid #ccc; + color: #666; font: 120% Arial, Helvetica, sans-serif; - color: #666666; - padding: 5px; - - border: 1px solid #cccccc; + width: 100%; -webkit-border-radius: 5px; -moz-border-radius: 5px; - - width: 100%; - -moz-box-sizing: border-box; + border-radius: 5px; -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; box-sizing: border-box; } -input:focus, textarea:focus { +input[type=text]:focus, textarea:focus { border: solid 1px #4690d6; background: #e4ecf5; - color:#333333; + color:#333; } textarea { @@ -51,7 +52,7 @@ textarea { } -a.elgg-longtext-control { +.elgg-longtext-control { float: right; margin-left: 14px; font-size: 80%; @@ -68,201 +69,307 @@ input[type="radio"] { margin:0 3px 0 0; padding:0; border:none; + border-radius:0; width:auto; } .elgg-input-checkboxes.elgg-horizontal li, -.elgg-input-radio.elgg-horizontal li { +.elgg-input-radios.elgg-horizontal li { display: inline; padding-right: 10px; } -input[type="submit"], -input[type="button"], -.elgg-button { - font-size: 14px; - font-weight: bold; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - width: auto; - padding: 2px 4px; - margin: 10px 0 10px 0; - cursor: pointer; - outline: none; - -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); - -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40); +.elgg-form-login, .elgg-form-account { + max-width: 450px; } -input[type="submit"], -.elgg-button-submit { - color: white; - text-shadow: 1px 1px 0px black; - text-decoration: none; - border: 1px solid #4690d6; - background-color: #4690d6; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; -} -input[type="submit"]:hover, -.elgg-button-submit:hover { - border-color: #0054a7; - text-decoration: none; - color: white; - background-color: #0054a7; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; -} -.elgg-button-cancel { - color: #333333; - background-color: #dddddd; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png); - background-repeat: repeat-x; - background-position: left 10px; - border: 1px solid #999999; -} -.elgg-button-cancel:hover { - color: white; - background-color: #999999; - background-position: left 10px; - text-decoration: none; + +/* *************************************** + FRIENDS PICKER +*************************************** */ +.friends-picker-main-wrapper { + margin-bottom: 15px; } -.elgg-button-action { - background-color:#cccccc; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif); - background-repeat: repeat-x; - background-position: 0 0; - border:1px solid #999999; - color: #333333; - padding: 2px 15px 2px 15px; - text-align: center; +.friends-picker-container h3 { + font-size:4em !important; + text-align: left; + margin:10px 0 20px !important; + color:#999 !important; + background: none !important; + padding:0 !important; +} +.friends-picker .friends-picker-container .panel ul { + text-align: left; + margin: 0; + padding:0; +} +.friends-picker-wrapper { + margin: 0; + padding:0; + position: relative; + width: 730px; +} +.friends-picker { + position: relative; + overflow: hidden; + margin: 0; + padding:0; + width: 730px; + height: auto; + background-color: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} +.friendspicker-savebuttons { + background: white; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:0 10px 10px; +} +.friends-picker .friends-picker-container { /* long container used to house end-to-end panels. Width is calculated in JS */ + position: relative; + left: 0; + top: 0; + width: 100%; + list-style-type: none; +} +.friends-picker .friends-picker-container .panel { + float:left; + height: 100%; + position: relative; + width: 730px; + margin: 0; + padding:0; +} +.friends-picker .friends-picker-container .panel .wrapper { + margin: 0; + padding:4px 10px 10px 10px; + min-height: 230px; +} +.friends-picker-navigation { + margin: 0 0 10px; + padding:0 0 10px; + border-bottom:1px solid #ccc; +} +.friends-picker-navigation ul { + list-style: none; + padding-left: 0; +} +.friends-picker-navigation ul li { + float: left; + margin:0; + background:white; +} +.friends-picker-navigation a { font-weight: bold; + text-align: center; + background: white; + color: #999; text-decoration: none; - text-shadow: 0 1px 0 white; - cursor: pointer; + display: block; + padding: 0; + width:20px; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tabHasContent { + background: white; + color:#333 !important; +} +.friends-picker-navigation li a:hover { + background: #333; + color:white !important; +} +.friends-picker-navigation li a.current { + background: #4690D6; + color:white !important; +} +.friends-picker-navigation-l, .friends-picker-navigation-r { + position: absolute; + top: 46px; + text-indent: -9000em; +} +.friends-picker-navigation-l a, .friends-picker-navigation-r a { + display: block; + height: 40px; + width: 40px; +} +.friends-picker-navigation-l { + right: 48px; + z-index:1; +} +.friends-picker-navigation-r { + right: 0; + z-index:1; +} +.friends-picker-navigation-l { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left top; +} +.friends-picker-navigation-r { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px top; +} +.friends-picker-navigation-l:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat left -44px; +} +.friends-picker-navigation-r:hover { + background: url("<?php echo elgg_get_site_url(); ?>_graphics/friendspicker.png") no-repeat -60px -44px; +} +.friendspicker-savebuttons .elgg-button-submit, +.friendspicker-savebuttons .elgg-button-cancel { + margin:5px 20px 5px 5px; +} +.friendspicker-members-table { + background: #dedede; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + margin:10px 0 0; + padding:10px 10px 0; +} + +/* *************************************** + AUTOCOMPLETE +*************************************** */ +<?php //autocomplete will expand to fullscreen without max-width ?> +.ui-autocomplete { + position: absolute; + cursor: default; +} +.elgg-autocomplete-item .elgg-body { + max-width: 600px; +} +.ui-autocomplete { + background-color: white; + border: 1px solid #ccc; + overflow: hidden; + -webkit-border-radius: 5px; -moz-border-radius: 5px; - -webkit-box-shadow: none; - -moz-box-shadow: none; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item { + padding: 0px 4px; + + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.ui-autocomplete .ui-menu-item:hover { + background-color: #eee; } -.elgg-button-action:hover, -.elgg-button-action:focus { - background-position: 0 -15px; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif); - background-repeat: repeat-x; - color: #111111; +.ui-autocomplete a:hover { text-decoration: none; - background-color: #cccccc; - border: 1px solid #999999; + color: #4690D6; } -/* -.elgg-button-submit.elgg-state-disabled { - background-color:#999999; - border-color:#999999; - color:#dedede; +.ui-autocomplete a.ui-state-hover { + background-color: #eee; + display: block; +} + +/* *************************************** + USER PICKER +*************************************** */ +.elgg-user-picker-list li:first-child { + border-top: 1px dotted #ccc; + margin-top: 5px; } -.elgg-button-submit.elgg-state-disabled:hover { - background-color:#999999; - border-color:#999999; - color:#dedede; +.elgg-user-picker-list > li { + border-bottom: 1px dotted #ccc; } -.elgg-button-action { - margin-left: 10px; +/* *************************************** + DATE PICKER +**************************************** */ +.ui-datepicker { + display: none; + + margin-top: 3px; + width: 208px; + background-color: white; + border: 1px solid #0054A7; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + overflow: hidden; + + -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); } -input.elgg-button-action, -a.elgg-button-action { - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - background-color:#cccccc; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif); - background-repeat: repeat-x; - background-position: 0 0; - border:1px solid #999999; - color:#333333; - padding:2px 15px 2px 15px; - margin: 5px 0; - text-align:center; - font-weight:bold; - text-decoration:none; - text-shadow:0 1px 0 white; - cursor:pointer; +.ui-datepicker-inline { -webkit-box-shadow: none; -moz-box-shadow: none; + box-shadow: none; } -input.elgg-button-action:hover, -a.elgg-button-action:hover, -input.elgg-button-action:focus, -a.elgg-button-action:focus { - background-position:0 -15px; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif); - background-repeat: repeat-x; - color:#111111; - text-decoration: none; - background-color:#cccccc; - border:1px solid #999999; + +.ui-datepicker-header { + position: relative; + background: #4690D6; + color: white; + padding: 2px 0; + border-bottom: 1px solid #0054A7; } -.elgg-button-action:active { - background-image:none; +.ui-datepicker-header a { + color: white; } -.elgg-button-action.elgg-state-disabled { - color:#999999; - padding:2px 7px 2px 7px; +.ui-datepicker-prev, .ui-datepicker-next { + position: absolute; + top: 5px; + cursor: pointer; } -.elgg-button-action.elgg-state-disabled:hover { - background-position:0 -15px; - color:#111111; - border:1px solid #999999; +.ui-datepicker-prev { + left: 6px; } -.elgg-button-action.elgg-state-disabled:active { - background-image:none; +.ui-datepicker-next { + right: 6px; } -.elgg-button-action.download { - padding: 5px 9px 5px 6px; +.ui-datepicker-title { + line-height: 1.8em; + margin: 0 30px; + text-align: center; + font-weight: bold; } -.elgg-button-action.download:hover { - +.ui-datepicker-calendar { + margin: 4px; } -.elgg-button-action.download img { - margin-right:6px; - position:relative; - top:5px; -} -.elgg-button-action.small { - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - width: auto; - height:8px; - padding: 4px; - font-size: 0.9em; - line-height: 0.6em; -} -.elgg-button-action.small:hover { - background-color: #4690d6; - background-image: none; - border-color: #4690d6; - color:white; - text-shadow:0 -1px 0 black; +.ui-datepicker th { + color: #0054A7; + border: none; + font-weight: bold; + padding: 5px 6px; + text-align: center; } - -*/ - -<?php //@todo prefix with elgg- ?> -/* small round delete button */ -.delete-button { - width:14px; - height:14px; - margin:0; - float:right; +.ui-datepicker td { + padding: 1px; } -.delete-button a { - display:block; - cursor: pointer; - width:14px; - height:14px; - background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat -200px top; - text-indent: -9000px; - text-align: left; +.ui-datepicker td span, .ui-datepicker td a { + display: block; + padding: 2px; + line-height: 1.2em; + text-align: right; + text-decoration: none; } -.delete-button a:hover { - background-position: -200px -16px; +.ui-datepicker-calendar .ui-state-default { + border: 1px solid #ccc; + color: #4690D6;; + background: #fafafa; +} +.ui-datepicker-calendar .ui-state-hover { + border: 1px solid #aaa; + color: #0054A7; + background: #eee; +} +.ui-datepicker-calendar .ui-state-active, +.ui-datepicker-calendar .ui-state-active.ui-state-hover { + font-weight: bold; + border: 1px solid #0054A7; + color: #0054A7; + background: #E4ECF5; } diff --git a/views/default/css/elements/grid.php b/views/default/css/elements/grid.php index 00cd448b9..fdbaf4aca 100644 --- a/views/default/css/elements/grid.php +++ b/views/default/css/elements/grid.php @@ -13,14 +13,6 @@ /* *************************************** GRID *************************************** */ -.elgg-grid:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - .elgg-col { float: left; } @@ -60,18 +52,3 @@ .elgg-col-5of6 { width: 83.33%; } -.elgg-col-last { - width: auto; - float: none; - display: table-cell; -} -.elgg-col-last:after { - clear: both; - display: block; - visibility: hidden; - overflow: hidden; - height: 0 !important; - line-height: 0; - font-size: xx-large; - content: " x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x "; -} diff --git a/views/default/css/elements/helpers.php b/views/default/css/elements/helpers.php index ac13c0efc..e9a9e0a30 100644 --- a/views/default/css/elements/helpers.php +++ b/views/default/css/elements/helpers.php @@ -13,14 +13,6 @@ clear: both; } -.clearfix:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} - .hidden { display: none; } @@ -33,27 +25,18 @@ text-align: center; } -.right { - float: right; +.float { + float: left; } -.left { - float: left; +.float-alt { + float: right; } .link { cursor: pointer; } -<?php @todo // do we need something like large and small? ?> -.large { - font-size: 120%; -} - -.small { - font-size: 80%; -} - .elgg-discover .elgg-discoverable { display: none; } @@ -62,6 +45,32 @@ display: block; } +.elgg-transition:hover { + opacity: .7; +} + +/* *************************************** + BORDERS AND SEPARATORS +*************************************** */ +.elgg-border-plain { + border: 1px solid #eeeeee; +} +.elgg-border-transition { + border: 1px solid #eeeeee; +} +.elgg-divide-top { + border-top: 1px solid #CCCCCC; +} +.elgg-divide-bottom { + border-bottom: 1px solid #CCCCCC; +} +.elgg-divide-left { + border-left: 1px solid #CCCCCC; +} +.elgg-divide-right { + border-right: 1px solid #CCCCCC; +} + /* *************************************** Spacing (from OOCSS) *************************************** */ diff --git a/views/default/css/elements/icons.php b/views/default/css/elements/icons.php index b52503b57..9b12e0a57 100644 --- a/views/default/css/elements/icons.php +++ b/views/default/css/elements/icons.php @@ -16,67 +16,267 @@ background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left; width: 16px; height: 16px; - display: block; - float: left; margin: 0 2px; } -.elgg-icon-settings { - background-position: -302px -44px; +.elgg-icon-arrow-left { + background-position: 0 -0px; } -.elgg-icon-friends { - background-position: 0 -300px; - width: 36px; +.elgg-icon-arrow-right { + background-position: 0 -18px; } -.elgg-icon-friends:hover { - background-position: 0 -340px; +.elgg-icon-arrow-two-head { + background-position: 0 -36px; } -.elgg-icon-help { - background-position: -302px -136px; +.elgg-icon-attention:hover { + background-position: 0 -54px; } -.elgg-icon-delete { - background-position: -199px 1px; +.elgg-icon-attention { + background-position: 0 -72px; +} +.elgg-icon-calendar { + background-position: 0 -90px; +} +.elgg-icon-cell-phone { + background-position: 0 -108px; +} +.elgg-icon-checkmark:hover { + background-position: 0 -126px; +} +.elgg-icon-checkmark { + background-position: 0 -144px; +} +.elgg-icon-clip:hover { + background-position: 0 -162px; +} +.elgg-icon-clip { + background-position: 0 -180px; +} +.elgg-icon-cursor-drag-arrow { + background-position: 0 -198px; +} +.elgg-icon-delete-alt:hover { + background-position: 0 -216px; +} +.elgg-icon-delete-alt { + background-position: 0 -234px; } .elgg-icon-delete:hover { - background-position: -199px -15px; + background-position: 0 -252px; } -.elgg-icon-likes { - background-position: 0px -101px; - width: 20px; - height: 20px; +.elgg-icon-delete { + background-position: 0 -270px; } -.elgg-icon-likes:hover { - background-position: 0px -131px; +.elgg-icon-download:hover { + background-position: 0 -288px; } -.elgg-icon-liked { - background-position: 0px -131px; - width: 20px; - height: 20px; +.elgg-icon-download { + background-position: 0 -306px; } -.elgg-icon-arrow-s { - background-position: -146px -56px; +.elgg-icon-eye { + background-position: 0 -324px; } -.elgg-icon-arrow-s:hover { - background-position: -146px -76px; +.elgg-icon-facebook { + background-position: 0 -342px; } -.elgg-icon-following { - background-position: -35px -100px; - width: 22px; - height: 20px; +.elgg-icon-grid:hover { + background-position: 0 -360px; } -.elgg-icon-rss { - background-position: -249px 1px; +.elgg-icon-grid { + background-position: 0 -378px; } -.elgg-icon-hover-menu { - background-position: -150px 0; +.elgg-icon-home:hover { + background-position: 0 -396px; +} +.elgg-icon-home { + background-position: 0 -414px; } .elgg-icon-hover-menu:hover { - background-position: -150px -32px; + background-position: 0 -432px; +} +.elgg-icon-hover-menu { + background-position: 0 -450px; +} +.elgg-icon-info:hover { + background-position: 0 -468px; +} +.elgg-icon-info { + background-position: 0 -486px; +} +.elgg-icon-link:hover { + background-position: 0 -504px; +} +.elgg-icon-link { + background-position: 0 -522px; +} +.elgg-icon-list { + background-position: 0 -540px; +} +.elgg-icon-lock-closed { + background-position: 0 -558px; +} +.elgg-icon-lock-open { + background-position: 0 -576px; +} +.elgg-icon-mail-alt:hover { + background-position: 0 -594px; +} +.elgg-icon-mail-alt { + background-position: 0 -612px; +} +.elgg-icon-mail:hover { + background-position: 0 -630px; +} +.elgg-icon-mail { + background-position: 0 -648px; +} +.elgg-icon-photo { + background-position: 0 -666px; +} +.elgg-icon-print-alt { + background-position: 0 -684px; +} +.elgg-icon-print { + background-position: 0 -702px; +} +.elgg-icon-push-pin-alt { + background-position: 0 -720px; +} +.elgg-icon-push-pin { + background-position: 0 -738px; +} +.elgg-icon-redo { + background-position: 0 -756px; +} +.elgg-icon-refresh:hover { + background-position: 0 -774px; +} +.elgg-icon-refresh { + background-position: 0 -792px; +} +.elgg-icon-round-arrow-left { + background-position: 0 -810px; +} +.elgg-icon-round-arrow-right { + background-position: 0 -828px; +} +.elgg-icon-round-checkmark { + background-position: 0 -846px; +} +.elgg-icon-round-minus { + background-position: 0 -864px; +} +.elgg-icon-round-plus { + background-position: 0 -882px; } -.elgg-icon-dragger { - background-position: -302px -186px; - width: 21px; - height: 21px; +.elgg-icon-rss { + background-position: 0 -900px; +} +.elgg-icon-search-focus { + background-position: 0 -918px; +} +.elgg-icon-search { + background-position: 0 -936px; +} +.elgg-icon-settings-alt:hover { + background-position: 0 -954px; +} +.elgg-icon-settings-alt { + background-position: 0 -972px; +} +.elgg-icon-settings { + background-position: 0 -990px; +} +.elgg-icon-share:hover { + background-position: 0 -1008px; +} +.elgg-icon-share { + background-position: 0 -1026px; +} +.elgg-icon-shop-cart:hover { + background-position: 0 -1044px; +} +.elgg-icon-shop-cart { + background-position: 0 -1062px; +} +.elgg-icon-speech-bubble-alt:hover { + background-position: 0 -1080px; +} +.elgg-icon-speech-bubble-alt { + background-position: 0 -1098px; +} +.elgg-icon-speech-bubble:hover { + background-position: 0 -1116px; +} +.elgg-icon-speech-bubble { + background-position: 0 -1134px; +} +.elgg-icon-star-alt { + background-position: 0 -1152px; +} +.elgg-icon-star-empty:hover { + background-position: 0 -1170px; +} +.elgg-icon-star-empty { + background-position: 0 -1188px; +} +.elgg-icon-star:hover { + background-position: 0 -1206px; +} +.elgg-icon-star { + background-position: 0 -1224px; +} +.elgg-icon-tag:hover { + background-position: 0 -1242px; } +.elgg-icon-tag { + background-position: 0 -1260px; +} +.elgg-icon-thumbs-down-alt:hover { + background-position: 0 -1278px; +} +.elgg-icon-thumbs-down:hover, +.elgg-icon-thumbs-down-alt { + background-position: 0 -1296px; +} +.elgg-icon-thumbs-down { + background-position: 0 -1314px; +} +.elgg-icon-thumbs-up-alt:hover { + background-position: 0 -1332px; +} +.elgg-icon-thumbs-up:hover, +.elgg-icon-thumbs-up-alt { + background-position: 0 -1350px; +} +.elgg-icon-thumbs-up { + background-position: 0 -1368px; +} +.elgg-icon-trash { + background-position: 0 -1386px; +} +.elgg-icon-twitter { + background-position: 0 -1404px; +} +.elgg-icon-undo { + background-position: 0 -1422px; +} +.elgg-icon-user:hover { + background-position: 0 -1440px; +} +.elgg-icon-user { + background-position: 0 -1458px; +} +.elgg-icon-users:hover { + background-position: 0 -1476px; +} +.elgg-icon-users { + background-position: 0 -1494px; +} +.elgg-icon-video { + background-position: 0 -1512px; +} + + .elgg-avatar > .elgg-icon-hover-menu { display: none; position: absolute; @@ -87,12 +287,9 @@ } .elgg-ajax-loader { - background-color: white; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif); - background-repeat: no-repeat; - background-position: center center; - min-height: 33px; - min-width: 33px; + background: white url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif) no-repeat center center; + min-height: 31px; + min-width: 31px; } /* *************************************** @@ -100,6 +297,7 @@ *************************************** */ .elgg-avatar { position: relative; + display: inline-block; } .elgg-avatar > a > img { display: block; @@ -107,28 +305,38 @@ .elgg-avatar-tiny > a > img { width: 25px; height: 25px; + /* remove the border-radius if you don't want rounded avatars in supported browsers */ -webkit-border-radius: 3px; -moz-border-radius: 3px; + border-radius: 3px; + -moz-background-clip: border; + background-clip: border; - -o-background-size: 25px; -webkit-background-size: 25px; -khtml-background-size: 25px; -moz-background-size: 25px; + -o-background-size: 25px; + background-size: 25px; } .elgg-avatar-small > a > img { width: 40px; height: 40px; + /* remove the border-radius if you don't want rounded avatars in supported browsers */ -webkit-border-radius: 5px; -moz-border-radius: 5px; + border-radius: 5px; + -moz-background-clip: border; + background-clip: border; - -o-background-size: 40px; -webkit-background-size: 40px; -khtml-background-size: 40px; -moz-background-size: 40px; + -o-background-size: 40px; + background-size: 40px; } .elgg-avatar-medium > a > img { width: 100px; diff --git a/views/default/css/elements/layout.php b/views/default/css/elements/layout.php new file mode 100644 index 000000000..9d92752b4 --- /dev/null +++ b/views/default/css/elements/layout.php @@ -0,0 +1,121 @@ +<?php +/** + * Page Layout + * + * Contains CSS for the page shell and page layout + * + * Default layout: 990px wide, centered. Used in default page shell + * + * @package Elgg.Core + * @subpackage UI + */ +?> + +/* *************************************** + PAGE LAYOUT +*************************************** */ +/***** DEFAULT LAYOUT ******/ +<?php // the width is on the page rather than topbar to handle small viewports ?> +.elgg-page-default { + min-width: 998px; +} +.elgg-page-default .elgg-page-header > .elgg-inner { + width: 990px; + margin: 0 auto; + height: 90px; +} +.elgg-page-default .elgg-page-body > .elgg-inner { + width: 990px; + margin: 0 auto; +} +.elgg-page-default .elgg-page-footer > .elgg-inner { + width: 990px; + margin: 0 auto; + padding: 5px 0; + border-top: 1px solid #DEDEDE; +} + +/***** TOPBAR ******/ +.elgg-page-topbar { + background: #333333 url(<?php echo elgg_get_site_url(); ?>_graphics/toptoolbar_background.gif) repeat-x top left; + border-bottom: 1px solid #000000; + position: relative; + height: 24px; + z-index: 9000; +} +.elgg-page-topbar > .elgg-inner { + padding: 0 10px; +} + +/***** PAGE MESSAGES ******/ +.elgg-system-messages { + position: fixed; + top: 24px; + right: 20px; + max-width: 500px; + z-index: 2000; +} +.elgg-system-messages li { + margin-top: 10px; +} +.elgg-system-messages li p { + margin: 0; +} + +/***** PAGE HEADER ******/ +.elgg-page-header { + position: relative; + background: #4690D6 url(<?php echo elgg_get_site_url(); ?>_graphics/header_shadow.png) repeat-x bottom left; +} +.elgg-page-header > .elgg-inner { + position: relative; +} + +/***** PAGE BODY LAYOUT ******/ +.elgg-layout { + min-height: 360px; +} +.elgg-layout-one-sidebar { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/sidebar_background.gif) repeat-y right top; +} +.elgg-layout-two-sidebar { + background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/two_sidebar_background.gif) repeat-y right top; +} +.elgg-layout-error { + margin-top: 20px; +} +.elgg-sidebar { + position: relative; + padding: 20px 10px; + float: right; + width: 210px; + margin: 0 0 0 10px; +} +.elgg-sidebar-alt { + position: relative; + padding: 20px 10px; + float: left; + width: 160px; + margin: 0 10px 0 0; +} +.elgg-main { + position: relative; + min-height: 360px; + padding: 10px; +} +.elgg-main > .elgg-head { + padding-bottom: 3px; + border-bottom: 1px solid #CCCCCC; + margin-bottom: 10px; +} + +/***** PAGE FOOTER ******/ +.elgg-page-footer { + position: relative; +} +.elgg-page-footer { + color: #999; +} +.elgg-page-footer a:hover { + color: #666; +} diff --git a/views/default/css/elements/misc.php b/views/default/css/elements/misc.php index 5f6d0599c..d9622d34a 100644 --- a/views/default/css/elements/misc.php +++ b/views/default/css/elements/misc.php @@ -1,223 +1,25 @@ -<?php -/** - * - */ - -?> - - - - -<?php //@todo needs revamp: elgg-login-form, elgg-register-form? ?> /* *************************************** - LOGIN / REGISTER + MISC *************************************** */ #login-dropdown { position: absolute; top:10px; right:0; - z-index: 9599; -} - -.elgg-button-dropdown { - padding:3px 6px; - text-decoration:none; - display:block; - font-weight:bold; - position:relative; - margin-left:0; - color: white; - border:1px solid #71B9F7; - -webkit-border-radius:4px; - -moz-border-radius:4px; - border-radius:4px; - /*background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png); - background-position:-150px -51px; - background-repeat:no-repeat;*/ + z-index: 100; } -.elgg-button-dropdown:after { - content: " \25BC "; - font-size:smaller; -} - -.elgg-button-dropdown:hover { - background-color:#71B9F7; - text-decoration:none; -} - -.elgg-button-dropdown.elgg-state-active { - background: #cccccc; - outline: none; - color: #333333; - - border:1px solid #cccccc; - -webkit-border-radius:4px 4px 0 0; - -moz-border-radius:4px 4px 0 0; - border-radius:4px 4px 0 0; -} - -<?php //@todo needs revamp ?> -/* *************************************** - FRIENDS PICKER -*************************************** */ -.friends-picker-container h3 { - font-size:4em !important; - text-align: left; - margin:10px 0 20px 0 !important; - color:#999999 !important; - background: none !important; - padding:0 !important; -} -.friends-picker .friends-picker-container .panel ul { - text-align: left; - margin: 0; - padding:0; -} -.friends-picker-wrapper { - margin: 0; - padding:0; - position: relative; - width: 100%; -} -.friends-picker { - position: relative; - overflow: hidden; - margin: 0; - padding:0; - width: 730px; - height: auto; -} -.friendspicker-savebuttons { - background: white; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - margin:0 10px 10px 10px; -} -.friends-picker .friends-picker-container { /* long container used to house end-to-end panels. Width is calculated in JS */ - position: relative; - left: 0; - top: 0; - width: 100%; - list-style-type: none; -} -.friends-picker .friends-picker-container .panel { - float:left; - height: 100%; - position: relative; - width: 730px; - margin: 0; - padding:0; -} -.friends-picker .friends-picker-container .panel .wrapper { - margin: 0; - padding:4px 10px 10px 10px; - min-height: 230px; -} -.friends-picker-navigation { - margin: 0 0 10px 0; - padding:0 0 10px 0; - border-bottom:1px solid #cccccc; -} -.friends-picker-navigation ul { - list-style: none; - padding-left: 0; -} -.friends-picker-navigation ul li { - float: left; - margin:0; - background:white; -} -.friends-picker-navigation a { - font-weight: bold; - text-align: center; - background: white; - color: #999999; - text-decoration: none; - display: block; - padding: 0; - width:20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; -} -.tabHasContent { - background: white; - color:#333333 !important; -} -.friends-picker-navigation li a:hover { - background: #333333; - color:white !important; -} -.friends-picker-navigation li a.current { - background: #4690D6; - color:white !important; -} -.friends-picker-navigation-l, .friends-picker-navigation-r { - position: absolute; - top: 46px; - text-indent: -9000em; -} -.friends-picker-navigation-l a, .friends-picker-navigation-r a { - display: block; - height: 43px; - width: 43px; -} -.friends-picker-navigation-l { - right: 48px; - z-index:1; -} -.friends-picker-navigation-r { - right: 0; - z-index:1; -} -.friends-picker-navigation-l { - background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat left top; -} -.friends-picker-navigation-r { - background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat -60px top; -} -.friends-picker-navigation-l:hover { - background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat left -44px; -} -.friends-picker-navigation-r:hover { - background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat -60px -44px; -} -.friendspicker-savebuttons .elgg-button-submit, -.friendspicker-savebuttons .elgg-button-cancel { - margin:5px 20px 5px 5px; -} -#collectionMembersTable { - background: #dedede; - -webkit-border-radius: 8px; - -moz-border-radius: 8px; - margin:10px 0 0 0; - padding:10px 10px 0 10px; -} - - - - /* *************************************** AVATAR UPLOADING & CROPPING *************************************** */ -#avatar-upload { - height:145px; -} + #current-user-avatar { - float:left; - width:160px; - height:130px; - border-right:1px solid #cccccc; - margin:0 20px 0 0; + border-right:1px solid #ccc; } #avatar-croppingtool { - border-top: 1px solid #cccccc; - margin:20px 0 0 0; - padding:10px 0 0 0; + border-top: 1px solid #ccc; } -#user-avatar { +#user-avatar-cropper { float: left; - margin-right: 20px; } #user-avatar-preview { float: left; @@ -228,19 +30,33 @@ } /* *************************************** - MISC + FRIENDS COLLECTIONS *************************************** */ -.user-picker .user-picker-entry { - clear:both; - height:25px; - padding:5px; - margin-top:5px; - border-bottom:1px solid #cccccc; +#friends_collections_accordian li { + color: #666; +} +#friends_collections_accordian li h2 { + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + background: none repeat scroll 0 0 #4690D6; + color: white; + cursor: pointer; + font-size: 1.2em; + margin: 10px 0; + padding: 4px 2px 4px 6px; } -.user-picker-entry .delete-button { - margin-right:10px; +#friends_collections_accordian li h2:hover { + background-color: #333; } -#dashboard-info .elgg-inner { - border: 2px solid #dedede; +#friends_collections_accordian .friends_collections_controls { + float: right; + font-size: 70%; +} +#friends_collections_accordian .friends-picker-main-wrapper { + background: none repeat scroll 0 0 white; + display: none; + padding: 0; } diff --git a/views/default/css/elements/modules.php b/views/default/css/elements/modules.php index 1ed0d0312..a37ae094b 100644 --- a/views/default/css/elements/modules.php +++ b/views/default/css/elements/modules.php @@ -2,12 +2,13 @@ Modules *************************************** */ .elgg-module { + overflow: hidden; margin-bottom: 20px; } /* Aside */ .elgg-module-aside .elgg-head { - border-bottom: 1px solid #CCCCCC; + border-bottom: 1px solid #CCC; margin-bottom: 5px; padding-bottom: 5px; @@ -18,17 +19,19 @@ background: #e4e4e4; padding: 5px; margin-bottom: 10px; + -webkit-border-radius: 3px; -moz-border-radius: 3px; + border-radius: 3px; } .elgg-module-info > .elgg-head * { - color: #333333; + color: #333; } /* Popup */ .elgg-module-popup { background-color: white; - border: 1px solid #cccccc; + border: 1px solid #ccc; z-index: 9999; margin-bottom: 0; @@ -51,8 +54,8 @@ /* Dropdown */ .elgg-module-dropdown { background-color:white; + border:5px solid #CCC; - border:5px solid #CCCCCC; -webkit-border-radius: 5px 0 5px 5px; -moz-border-radius: 5px 0 5px 5px; border-radius: 5px 0 5px 5px; @@ -60,25 +63,26 @@ display:none; width: 210px; - padding:12px; + padding: 12px; margin-right: 0px; - z-index:100; + -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45); -moz-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45); + box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45); position:absolute; right: 0px; - - <?php //@todo cleaner way to do this? ?> - top: 26px; + top: 100%; } /* Featured */ .elgg-module-featured { border: 1px solid #4690D6; + -webkit-border-radius: 6px; -moz-border-radius: 6px; + border-radius: 6px; } .elgg-module-featured > .elgg-head { padding: 5px; @@ -106,7 +110,7 @@ padding: 10px; margin: 0 5px 15px; background: #dedede; - border: 2px solid #cccccc; + border: 2px solid #ccc; } <?php //@todo location-dependent style: make an extension of elgg-gallery ?> .elgg-widgets-add-panel li { @@ -114,7 +118,7 @@ margin: 2px 10px; width: 200px; padding: 4px; - background-color: #cccccc; + background-color: #ccc; border: 2px solid #b0b0b0; font-weight: bold; } @@ -122,17 +126,16 @@ display: block; } .elgg-widgets-add-panel .elgg-state-available { - color: #333333; + color: #333; cursor: pointer; } .elgg-widgets-add-panel .elgg-state-available:hover { background-color: #bcbcbc; } .elgg-widgets-add-panel .elgg-state-unavailable { - color: #888888; + color: #888; } -<?php //@todo Still too many location-dependent/overly-qualified styles ?> .elgg-module-widget { background-color: #dedede; padding: 2px; @@ -140,58 +143,47 @@ position: relative; } .elgg-module-widget:hover { - background-color: #cccccc; + background-color: #ccc; } .elgg-module-widget > .elgg-head { - background-color: #dedede; - height: 30px; - line-height: 30px; + background-color: #eeeeee; + height: 26px; overflow: hidden; } .elgg-module-widget > .elgg-head h3 { float: left; - padding: 0 45px 0 20px; - color: #333333; + padding: 4px 45px 0 20px; + color: #666; } -.elgg-module-widget.elgg-state-draggable > .elgg-head { +.elgg-module-widget.elgg-state-draggable .elgg-widget-handle { cursor: move; } -.elgg-module-widget > .elgg-head a { - position: absolute; - top: 5px; - display: block; - width: 18px; - height: 18px; - border: 1px solid transparent; -} a.elgg-widget-collapse-button { - left: 5px; - background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat 0px -385px; -} -a.elgg-widget-collapsed { - background-position: 0px -365px; + color: #c5c5c5; } -a.elgg-widget-delete-button { - right: 5px; - background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -198px 3px; +a.elgg-widget-collapse-button:hover, +a.elgg-widget-collapsed:hover { + color: #9d9d9d; + text-decoration: none; } -a.elgg-widget-edit-button { - right: 25px; - background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -300px -1px; +a.elgg-widget-collapse-button:before { + content: "\25BC"; } -a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { - border: 1px solid #cccccc; +a.elgg-widget-collapsed:before { + content: "\25BA"; } .elgg-module-widget > .elgg-body { background-color: white; width: 100%; overflow: hidden; + border-top: 2px solid #dedede; } .elgg-widget-edit { display: none; width: 96%; padding: 2%; border-bottom: 2px solid #dedede; + background-color: #f9f9f9; } .elgg-widget-content { padding: 10px; @@ -199,4 +191,4 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { .elgg-widget-placeholder { border: 2px dashed #dedede; margin-bottom: 15px; -}
\ No newline at end of file +} diff --git a/views/default/css/elements/navigation.php b/views/default/css/elements/navigation.php index 0c92f069a..6b29e4c19 100644 --- a/views/default/css/elements/navigation.php +++ b/views/default/css/elements/navigation.php @@ -16,14 +16,17 @@ text-align: center; } .elgg-pagination li { - display: inline; + display: inline-block; margin: 0 6px 0 0; text-align: center; } .elgg-pagination a, .elgg-pagination span { - padding: 2px 6px; -webkit-border-radius: 4px; -moz-border-radius: 4px; + border-radius: 4px; + + display: block; + padding: 2px 6px; color: #4690d6; border: 1px solid #4690d6; font-size: 12px; @@ -53,14 +56,14 @@ } .elgg-tabs li { float: left; - border: 2px solid #cccccc; - border-bottom-width: 0; - background: #eeeeee; + border: 2px solid #ccc; + border-bottom: 0; + background: #eee; margin: 0 0 0 10px; - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; + + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; } .elgg-tabs a { text-decoration: none; @@ -68,14 +71,14 @@ padding: 3px 10px 0 10px; text-align: center; height: 21px; - color: #999999; + color: #999; } .elgg-tabs a:hover { background: #dedede; - color:#4690D6; + color: #4690D6; } .elgg-tabs .elgg-state-selected { - border-color: #cccccc; + border-color: #ccc; background: white; } .elgg-tabs .elgg-state-selected a { @@ -93,25 +96,23 @@ line-height: 1.2em; color: #bababa; } -.elgg-breadcrumbs li { - display: inline; +.elgg-breadcrumbs > li { + display: inline-block; } -.elgg-breadcrumbs li:after{ +.elgg-breadcrumbs > li:after { content: "\003E"; - display: inline-block; - padding: 0 4px 0 4px; + padding: 0 4px; font-weight: normal; } -.elgg-breadcrumbs li:last-child:after { - content: ""; -} -.elgg-breadcrumbs a { - color: #999999; +.elgg-breadcrumbs > li > a { + display: inline-block; + color: #999; } -.elgg-breadcrumbs a:hover { +.elgg-breadcrumbs > li > a:hover { color: #0054a7; text-decoration: underline; } + .elgg-main .elgg-breadcrumbs { position: relative; top: -6px; @@ -119,100 +120,225 @@ } /* *************************************** + TOPBAR MENU +*************************************** */ +.elgg-menu-topbar { + float: left; +} + +.elgg-menu-topbar > li { + float: left; +} + +.elgg-menu-topbar > li > a { + padding-top: 2px; + color: #eee; + margin: 1px 15px 0; +} + +.elgg-menu-topbar > li > a:hover { + color: #4690D6; + text-decoration: none; +} + +.elgg-menu-topbar-alt { + float: right; +} + +.elgg-menu-topbar .elgg-icon { + vertical-align: middle; + margin-top: -1px; +} + +.elgg-menu-topbar > li > a.elgg-topbar-logo { + margin-top: 0; + padding-left: 5px; + width: 38px; + height: 20px; +} + +.elgg-menu-topbar > li > a.elgg-topbar-avatar { + width: 18px; + height: 18px; +} + +/* *************************************** SITE MENU *************************************** */ .elgg-menu-site { + z-index: 1; +} + +.elgg-menu-site > li > a { + font-weight: bold; + padding: 3px 13px 0px 13px; + height: 20px; +} + +.elgg-menu-site > li > a:hover { + text-decoration: none; +} + +.elgg-menu-site-default { position: absolute; - height: 23px; bottom: 0; left: 0; - width: auto; - z-index: 7000; -} -.elgg-menu-site li { - display: block; - float: left; height: 23px; } -.elgg-menu-site > li { + +.elgg-menu-site-default > li { + float: left; margin-right: 1px; } -.elgg-menu-site a { + +.elgg-menu-site-default > li > a { color: white; - font-weight: bold; - padding: 3px 13px 0px 13px; - height: 20px; - display: block; } -.elgg-menu-site a:hover { - text-decoration: none; + +.elgg-menu-site > li > ul { + display: none; + background-color: white; +} + +.elgg-menu-site > li:hover > ul { + display: block; } -.elgg-menu-site li.elgg-state-selected a, -.elgg-menu-site li a:hover, -.elgg-menu-site .elgg-more:hover a { + +.elgg-menu-site-default > .elgg-state-selected > a, +.elgg-menu-site-default > li:hover > a { background: white; - color: #555555; + color: #555; + -webkit-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25); -moz-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25); - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; -} -.elgg-menu-site .elgg-more { - overflow: hidden; -} -.elgg-menu-site .elgg-more:hover { - overflow: visible; -} -.elgg-menu-site .elgg-more:hover span { - background-position: -146px -76px; + box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25); + + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; } -.elgg-menu-site .elgg-more ul { - z-index: 7000; + +.elgg-menu-site-more { + position: relative; + left: -1px; + width: 100%; min-width: 150px; - border-left: 1px solid #999999; - border-right: 1px solid #999999; - border-bottom: 1px solid #999999; - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; + border: 1px solid #999; + border-top: 0; + + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25); } -.elgg-menu-site .elgg-more ul li { - float: none; -} -.elgg-menu-site .elgg-more:hover ul li a { - background: white; - color: #555555; + +.elgg-menu-site-more > li > a { + background-color: white; + color: #555; + -webkit-border-radius: 0; -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; -moz-box-shadow: none; + box-shadow: none; } -.elgg-menu-site .elgg-more ul li a:hover { + +.elgg-menu-site-more > li > a:hover { background: #4690D6; color: white; } -.elgg-menu-site .elgg-more ul li:last-child a, -.elgg-menu-site .elgg-more ul li:last-child a:hover { - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; + +.elgg-menu-site-more > li:last-child > a, +.elgg-menu-site-more > li:last-child > a:hover { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.elgg-more > a:before { + content: "\25BC"; + font-size: smaller; + margin-right: 4px; +} + +/* *************************************** + TITLE +*************************************** */ +.elgg-menu-title { + float: right; +} + +.elgg-menu-title > li { + display: inline-block; + margin-left: 4px; +} + +/* *************************************** + FILTER MENU +*************************************** */ +.elgg-menu-filter { + margin-bottom: 5px; + border-bottom: 2px solid #ccc; + display: table; + width: 100%; +} +.elgg-menu-filter > li { + float: left; + border: 2px solid #ccc; + border-bottom: 0; + background: #eee; + margin: 0 0 0 10px; + + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.elgg-menu-filter > li:hover { + background: #dedede; +} +.elgg-menu-filter > li > a { + text-decoration: none; + display: block; + padding: 3px 10px 0; + text-align: center; + height: 21px; + color: #999; +} +.elgg-menu-filter > li > a:hover { + background: #dedede; + color: #4690D6; +} +.elgg-menu-filter > .elgg-state-selected { + border-color: #ccc; + background: white; +} +.elgg-menu-filter > .elgg-state-selected > a { + position: relative; + top: 2px; + background: white; } /* *************************************** PAGE MENU *************************************** */ +.elgg-menu-page { + margin-bottom: 15px; +} + .elgg-menu-page a { display: block; + -webkit-border-radius: 8px; -moz-border-radius: 8px; + border-radius: 8px; + background-color: white; - margin: 0 0 3px 0; + margin: 0 0 3px; padding: 2px 4px 2px 8px; } .elgg-menu-page a:hover { @@ -247,17 +373,20 @@ position: absolute; z-index: 10000; - width: 165px; - border-top: solid 1px #E5E5E5; - border-left: solid 1px #E5E5E5; - border-right: solid 1px #999999; - border-bottom: solid 1px #999999; - background-color: #FFFFFF; + overflow: hidden; + + min-width: 165px; + max-width: 250px; + border: solid 1px; + border-color: #E5E5E5 #999 #999 #E5E5E5; + background-color: #FFF; + -webkit-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); -moz-box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); + box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.50); } .elgg-menu-hover > li { - border-bottom: 1px solid #dddddd; + border-bottom: 1px solid #ddd; } .elgg-menu-hover > li:last-child { border-bottom: none; @@ -266,34 +395,166 @@ display: block; } .elgg-menu-hover a { - display: block; padding: 2px 8px; font-size: 92%; } .elgg-menu-hover a:hover { - background: #cccccc; + background: #ccc; text-decoration: none; } -.elgg-hover-admin a { +.elgg-menu-hover-admin a { color: red; } -.elgg-hover-admin a:hover { +.elgg-menu-hover-admin a:hover { color: white; background-color: red; } /* *************************************** - FOOTER + SITE FOOTER *************************************** */ -.elgg-menu-footer li { +.elgg-menu-footer > li, +.elgg-menu-footer > li > a { + display: inline-block; + color: #999; +} + +.elgg-menu-footer > li:after { + content: "\007C"; + padding: 0 4px; +} + +.elgg-menu-footer-default { + float: right; +} + +.elgg-menu-footer-alt { float: left; } -.elgg-menu-footer li:after{ + +/* *************************************** + GENERAL MENU +*************************************** */ +.elgg-menu-general > li, +.elgg-menu-general > li > a { + display: inline-block; + color: #999; +} + +.elgg-menu-general > li:after { content: "\007C"; + padding: 0 4px; +} + +/* *************************************** + ENTITY AND ANNOTATION +*************************************** */ +<?php // height depends on line height/font size ?> +.elgg-menu-entity, .elgg-menu-annotation { + float: right; + margin-left: 15px; + font-size: 90%; + color: #aaa; + line-height: 16px; + height: 16px; +} +.elgg-menu-entity > li, .elgg-menu-annotation > li { + margin-left: 15px; +} +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + color: #aaa; +} +<?php // need to override .elgg-menu-hz ?> +.elgg-menu-entity > li > a, .elgg-menu-annotation > li > a { + display: block; +} +.elgg-menu-entity > li > span, .elgg-menu-annotation > li > span { + vertical-align: baseline; +} + +/* *************************************** + OWNER BLOCK +*************************************** */ +.elgg-menu-owner-block li a { + display: block; + + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + + background-color: white; + margin: 3px 0 5px 0; + padding: 2px 4px 2px 8px; +} +.elgg-menu-owner-block li a:hover { + background-color: #0054A7; + color: white; + text-decoration: none; +} +.elgg-menu-owner-block li.elgg-state-selected > a { + background-color: #4690D6; + color: white; +} + +/* *************************************** + LONGTEXT +*************************************** */ +.elgg-menu-longtext { + float: right; +} + +/* *************************************** + RIVER +*************************************** */ +.elgg-menu-river { + float: right; + margin-left: 15px; + font-size: 90%; + color: #aaa; + line-height: 16px; + height: 16px; +} +.elgg-menu-river > li { display: inline-block; - padding: 0 4px 0 4px; - font-weight: normal; + margin-left: 5px; +} +.elgg-menu-river > li > a { + color: #aaa; + height: 16px; +} +<?php // need to override .elgg-menu-hz ?> +.elgg-menu-river > li > a { + display: block; +} +.elgg-menu-river > li > span { + vertical-align: baseline; +} + +/* *************************************** + SIDEBAR EXTRAS (rss, bookmark, etc) +*************************************** */ +.elgg-menu-extras { + margin-bottom: 15px; +} + +/* *************************************** + WIDGET MENU +*************************************** */ +.elgg-menu-widget > li { + position: absolute; + top: 4px; + display: inline-block; + width: 18px; + height: 18px; + padding: 2px 2px 0 0; +} + +.elgg-menu-widget > .elgg-menu-item-collapse { + left: 5px; +} +.elgg-menu-widget > .elgg-menu-item-delete { + right: 5px; } -.elgg-menu-footer li:last-child:after { - content: ""; +.elgg-menu-widget > .elgg-menu-item-settings { + right: 25px; } diff --git a/views/default/css/elements/page_layout.php b/views/default/css/elements/page_layout.php deleted file mode 100644 index e5de55830..000000000 --- a/views/default/css/elements/page_layout.php +++ /dev/null @@ -1,174 +0,0 @@ -<?php -/** - * Page Layout - * - * Contains CSS for the page shell and page layout - * - * Classic layout: 990 wide centered. Used in default page shell - * - * @package Elgg.Core - * @subpackage UI - */ -?> - -/* *************************************** - PAGE LAYOUT -*************************************** */ -/***** CLASSIC LAYOUT ******/ -.elgg-page-classic .elgg-page-header > .elgg-inner { - width: 990px; - margin: 0 auto; - height: 90px; -} -.elgg-page-classic .elgg-page-body > .elgg-inner { - width: 990px; - margin: 0 auto; -} -.elgg-page-classic .elgg-page-footer > .elgg-inner { - width: 990px; - margin: 0 auto; - padding: 5px 0; - border-top: 1px solid #DEDEDE; -} - -/***** TOPBAR ******/ -.elgg-page-topbar { - background: #333333 url(<?php echo elgg_get_site_url(); ?>_graphics/toptoolbar_background.gif) repeat-x top left; - border-bottom: 1px solid #000000; - min-width: 998px; - position: relative; - height: 24px; - z-index: 9000; -} -.elgg-page-topbar > .elgg-inner { - padding: 2px 10px 2px 8px; -} -<?php //@todo location-dependent styles ?> -.elgg-page-topbar a { - color: #eeeeee; - float: left; - margin: 2px 30px 0 0; - line-height: 1.1em; -} -.elgg-page-topbar a.elgg-alt { - float: right; - margin: 2px 0 0 30px; -} -.elgg-page-topbar a:hover { - color: #71cbff; - text-decoration: none; -} -<?php // elgg logo and user avatar need to be adjusted slightly ?> -.elgg-page-topbar img { - margin-top: -1px; -} - -/***** PAGE MESSAGES ******/ -.elgg-system-messages { - position: fixed; - top: 24px; - right: 20px; - max-width: 500px; - z-index: 1000; -} -.elgg-system-messages li { - margin-top: 10px; -} -.elgg-system-messages li p { - margin: 0; -} - -/***** PAGE HEADER ******/ -.elgg-page-header { - position: relative; - background-color: #4690D6; - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/header_shadow.png); - background-repeat: repeat-x; - background-position: bottom left; -} -.elgg-page-header > .elgg-inner { - position: relative; -} -.elgg-heading-site, .elgg-heading-site:hover { - font-size: 2em; - line-height: 1.4em; - color: white; - font-style: italic; - font-family: Georgia, times, serif; - text-shadow: 1px 2px 4px #333333; - text-decoration: none; -} - -/***** PAGE BODY ******/ -.elgg-page-body > .elgg-inner { - min-height: 360px; -} -#elgg-layout-one-column { - padding: 10px 0; -} -#elgg-layout-sidebar { - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/sidebar_background.gif); - background-repeat: repeat-y; - background-position: right top; -} -#elgg-layout-two-sidebar { - background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/two_sidebar_background.gif); - background-repeat: repeat-y; - background-position: right top; -} -.elgg-aside { - padding: 20px 10px; - position: relative; - min-height: 360px; -} -.elgg-sidebar { - float: right; - width: 210px; - margin: 0 0 0 10px; -} -.elgg-sidebar.elgg-alt { - float: left; - width: 160px; - margin: 0 10px 0 0; -} -.elgg-main { - position: relative; - min-height: 360px; - padding: 10px; -} -.elgg-main > .elgg-head { - padding-bottom: 3px; - border-bottom: 1px solid #CCCCCC; - margin-bottom: 10px; -} -.elgg-heading-main { - float: left; - max-width: 530px; - margin-right: 10px; -} -.elgg-main > .elgg-head a { - float: right; -} - -/***** PAGE FOOTER ******/ -.elgg-page-footer { - position: relative; - z-index: 999; -} -<?php //@todo location-dependent styles ?> -.elgg-page-footer a { - float: left; -} -.elgg-page-footer a.elgg-alt { - float: right; -} -.elgg-page-footer .elgg-menu { - float: left; - width: 100%; -} -.elgg-page-footer, .elgg-page-footer a { - color: #999999; -} -.elgg-page-footer a:hover { - color: #666666; -} diff --git a/views/default/css/elements/reset.php b/views/default/css/elements/reset.php index 43e756b2e..44bf2fac9 100644 --- a/views/default/css/elements/reset.php +++ b/views/default/css/elements/reset.php @@ -30,7 +30,11 @@ table, caption, tbody, tfoot, thead, tr, th, td { } body { background-color: white; - overflow-y: scroll; +} +<?php // force vertical scroll bar ?> +html, body { + height: 100%; + margin-bottom: 1px; } img { border-width:0; diff --git a/views/default/css/elements/typography.php b/views/default/css/elements/typography.php index c76802231..c044cb1cc 100644 --- a/views/default/css/elements/typography.php +++ b/views/default/css/elements/typography.php @@ -13,36 +13,150 @@ body { font-size: 80%; line-height: 1.4em; - font-family: "Lucida Grande",Arial,Tahoma,Verdana,sans-serif; + font-family: "Lucida Grande", Arial, Tahoma, Verdana, sans-serif; } + +a { + color: #4690D6; +} + +a:hover, +a.selected { <?php //@todo remove .selected ?> + color: #555555; + text-decoration: underline; +} + +p { + margin-bottom: 15px; +} + +p:last-child { + margin-bottom: 0; +} + pre, code { - font-family: Monaco,"Courier New",Courier,monospace; + font-family: Monaco, "Courier New", Courier, monospace; font-size: 12px; + + background:#EBF5FF; + color:#000000; + overflow:auto; + + overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */ + + white-space: pre-wrap; + word-wrap: break-word; /* IE 5.5-7 */ + } -input, textarea { - font: 120% Arial, Helvetica, sans-serif; + +pre { + padding:3px 15px; + margin:0px 0 15px 0; + line-height:1.3em; } + +code { + padding:2px 3px; +} + +.elgg-monospace { + font-family: Monaco, "Courier New", Courier, monospace; +} + blockquote { line-height: 1.3em; + padding:3px 15px; + margin:0px 0 15px 0; + background:#EBF5FF; + border:none; + + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; } + h1, h2, h3, h4, h5, h6 { font-weight: bold; + color: #0054A7; } + h1 { font-size: 1.8em; } -h2 { font-size: 1.5em; line-height: 1.1em; } +h2 { font-size: 1.5em; line-height: 1.1em; padding-bottom:5px} h3 { font-size: 1.2em; } h4 { font-size: 1.0em; } h5 { font-size: 0.9em; } h6 { font-size: 0.8em; } -.elgg-monospace { - font-family: Monaco,"Courier New",Courier,monospace; +.elgg-heading-site, .elgg-heading-site:hover { + font-size: 2em; + line-height: 1.4em; + color: white; + font-style: italic; + font-family: Georgia, times, serif; + text-shadow: 1px 2px 4px #333333; + text-decoration: none; } -<?php //@todo many location-dependent styles are for styling headings. Move those here and make them into non-location-dependent classes ?> - +.elgg-heading-main { + float: left; + max-width: 530px; + margin-right: 10px; +} .elgg-heading-basic { color: #0054A7; font-size: 1.2em; font-weight: bold; } + +.elgg-subtext { + color: #666666; + font-size: 85%; + line-height: 1.2em; + font-style: italic; +} + +.elgg-text-help { + display: block; + font-size: 85%; + font-style: italic; +} + +.elgg-quiet { + color: #666; +} + +.elgg-loud { + color: #0054A7; +} + +/* *************************************** + USER INPUT DISPLAY RESET +*************************************** */ +.elgg-output { + margin-top: 10px; +} + +.elgg-output dt { font-weight: bold } +.elgg-output dd { margin: 0 0 1em 1em } + +.elgg-output ul, .elgg-output ol { + margin: 0 1.5em 1.5em 0; + padding-left: 1.5em; +} +.elgg-output ul { + list-style-type: disc; +} +.elgg-output ol { + list-style-type: decimal; +} +.elgg-output table { + border: 1px solid #ccc; +} +.elgg-output table td { + border: 1px solid #ccc; + padding: 3px 5px; +} +.elgg-output img { + max-width: 100%; + height: auto; +} diff --git a/views/default/css/screen.php b/views/default/css/elgg.php index 4e2306ce1..4960e6ade 100644 --- a/views/default/css/screen.php +++ b/views/default/css/elgg.php @@ -6,9 +6,16 @@ * @subpackage UI */ +/* + * Colors: + * #4690D6 - elgg light blue + * #0054A7 - elgg dark blue + * #e4ecf5 - elgg very light blue + */ + // check if there is a theme overriding the old css view and use it, if it exists $old_css_view = elgg_get_view_location('css'); -if ($old_css_view != "{$CONFIG->viewpath}") { +if ($old_css_view != elgg_get_config('viewpath')) { echo elgg_view('css', $vars); return true; } @@ -18,12 +25,13 @@ if ($old_css_view != "{$CONFIG->viewpath}") { Base CSS * CSS reset - * helpers + * core + * helpers (moved to end to have a higher priority) * grid *******************************************************************************/ echo elgg_view('css/elements/reset', $vars); -echo elgg_view('css/elements/helpers', $vars); +echo elgg_view('css/elements/core', $vars); echo elgg_view('css/elements/grid', $vars); @@ -31,26 +39,30 @@ echo elgg_view('css/elements/grid', $vars); Skin CSS * typography - fonts, line spacing - * chrome - general skin - * forms - form elements, buttons + * forms - forms, inputs + * buttons - action, cancel, delete, submit, dropdown, special * navigation - menus, breadcrumbs, pagination * icons - icons, sprites, graphics * modules - modules, widgets * layout_objects - lists, content blocks, notifications, avatars - * page_layout - page layout + * layout - page layout * misc - to be removed/redone *******************************************************************************/ echo elgg_view('css/elements/typography', $vars); -echo elgg_view('css/elements/chrome', $vars); echo elgg_view('css/elements/forms', $vars); +echo elgg_view('css/elements/buttons', $vars); echo elgg_view('css/elements/icons', $vars); echo elgg_view('css/elements/navigation', $vars); echo elgg_view('css/elements/modules', $vars); -echo elgg_view('css/elements/layout_objects', $vars); -echo elgg_view('css/elements/page_layout', $vars); +echo elgg_view('css/elements/components', $vars); +echo elgg_view('css/elements/layout', $vars); echo elgg_view('css/elements/misc', $vars); +// included last to have higher priority +echo elgg_view('css/elements/helpers', $vars); + + // in case plugins are still extending the old 'css' view, display it echo elgg_view('css', $vars); diff --git a/views/default/css/ie.php b/views/default/css/ie.php index 1595d3018..34ececa89 100644 --- a/views/default/css/ie.php +++ b/views/default/css/ie.php @@ -1,78 +1,16 @@ /** - * elgg_layout css for Internet Explorer > ie6 - * @uses $vars['wwwroot'] The site URL -*/ -* {zoom: 1;} /* trigger hasLayout in IE */ + * CSS for IE8 and above + */ -/* tools drop-down menu */ -#elgg-header {z-index:1;} -.navigation li a:hover ul {display:block; position:absolute; top:21px; left:0;} -.navigation li a:hover ul li a {display:block;} -.navigation li.navigation-more ul li a {width:150px;background-color: #dedede;} - -.clearfix { display: block; } -.hidden.clearfix { display: none; } -#elgg-page-contents {overflow: hidden;} /* remove horizontal scroll on riverdash */ -#breadcrumbs {top:-2px; margin-bottom: 5px;} - -/* entity list views */ -.entity-metadata {max-width: 300px;} -.entity-edit {float:right;} -.access_level {float:left;} -.entity-listing .entity-metadata { - min-width:400px; - text-align: right; +/* ie8 does not like shrink wrapping this div with inline-block */ +.elgg-avatar { + display: block; } -.likes-list {display:none;} -.likes-list-holder .likes-list {top:20px !important;} /* position likes list below link in IE to prevent clipping */ -.elgg-likes-user .entity-metadata .delete-button {float:none;} - -/* profile */ -.elgg-tabs.profile .profile_name {margin-left: -260px;} -#profile_content .river_comment_form.hidden .input-text { width:510px; } - -/* notifications */ -.friends-picker-navigation {margin:0;padding:0;} -.friends-picker-container h3 {margin:0;padding:0;line-height: 1em;} - -/* private messages */ -#elgg-topbar-contents a.privatemessages.new span { - display:block; - padding:1px; - position:relative; - text-align:center; - float:left; - top:-1px; - right:auto; -} -#elgg-topbar-contents a.privatemessages.new {padding:0 0 0 20px;} -#elgg-topbar-contents a.privatemessages:hover {background-position:left 2px;} -#elgg-topbar-contents a.privatemessages.new:hover {background-position: left 2px;} - -/* riverdashboard mod rules */ -#riverdashboard_updates {clear:both;} -#riverdashboard_updates a.update_link {margin:0 0 9px 0;} -.riverdashboard_filtermenu {margin:10px 0 0 0;} -.river_comment_form.hidden .input-text { - width:530px; - float:left; -} -.river_link_divider { - width:10px; - text-align: center; -} - -/* shared access */ -.shared_access_collection h2.shared_access_name {margin-top:-15px;} - -/* dropdown login */ -*:first-child+html #login-dropdown #signin-button { - line-height:10px; +/* ie8 adds space to the top of .elgg-gallery which causes jumpiness if this is display: block; */ +.elgg-gallery .elgg-avatar > a > img { + display: inline-block; } -*:first-child+html #login-dropdown #signin-button a.signin span { - background-position:-150px -54px; +.elgg-gallery .elgg-avatar > .elgg-icon-hover-menu { + bottom: 4px; } -*:first-child+html #login-dropdown #signin-button a.signin.menu-open span { - background-position:-150px -74px; -}
\ No newline at end of file diff --git a/views/default/css/ie6.php b/views/default/css/ie6.php index d1fdb750c..cf49d33f2 100644 --- a/views/default/css/ie6.php +++ b/views/default/css/ie6.php @@ -1,16 +1,12 @@ /** - * elgg_layout css for Internet Explorer6 - * @uses $vars['wwwroot'] The site URL -*/ + * CSS for IE6 + */ * {zoom: 1;} /* trigger hasLayout in IE */ /* main nav drop-down */ #elgg-header {z-index:1;} -.navigation li a:hover ul {display:block; position:absolute; top:21px; left:0;} -.navigation li a:hover ul li a {display:block;} -.navigation li.navigation-more ul li a {width:150px;background-color: #dedede;} /* @todo check this one */ -.delete-button a { background-position-y: 2px; } -.delete-button a:hover { background-position-y: -14px; }
\ No newline at end of file +.elgg-button-delete a { background-position-y: 2px; } +.elgg-button-delete a:hover { background-position-y: -14px; }
\ No newline at end of file diff --git a/views/default/css/ie7.php b/views/default/css/ie7.php new file mode 100644 index 000000000..90274797d --- /dev/null +++ b/views/default/css/ie7.php @@ -0,0 +1,75 @@ +/** + * CSS for IE7 + */ + +/* trigger hasLayout in IE */ +* { + zoom: 1; +} + +/* site menu drop-down z-index fix for IE7 */ +.elgg-page-header { + z-index: 1; +} + +/* inline-block fixes */ +.elgg-gallery > li, +.elgg-button, +.elgg-icon, +.elgg-menu-hz > li, +.elgg-menu-hz > li:after, +.elgg-menu-hz > li > a, +.elgg-menu-hz > li > span, +.elgg-breadcrumbs > li, +.elgg-menu-footer > li > a, +.elgg-menu-footer li, +.elgg-menu-general > li > a, +.elgg-pagination li, +.elgg-menu-general li { + display: inline; +} + +/* IE7 does not support :after */ +.elgg-breadcrumbs > li > a { + display: inline; + padding-right: 4px; + margin-right: 4px; + border-right: 1px solid #bababa; +} +.elgg-menu-footer li, +.elgg-menu-user li, +.elgg-menu-general li { + padding-left: 4px; + padding-right: 4px; +} + +/* longtext menu would not display horizontally without this */ +.elgg-menu-longtext { + width: 100%; +} +.elgg-menu-longtext li { + width: 100px; + float: right; +} + +.elgg-avatar { + display: inline; +} + +.elgg-body-walledgarden .elgg-col-1of2 { + width: 255px; +} + +.elgg-module-walledgarden > .elgg-head, +.elgg-module-walledgarden > .elgg-foot { + width: 530px; +} + +input, textarea { + width: 98%; +} + +.elgg-tag a { + /* IE7 had a weird wrapping issue for tags */ + word-wrap: normal; +} diff --git a/views/default/css/lightbox.php b/views/default/css/lightbox.php new file mode 100644 index 000000000..7d5917cc3 --- /dev/null +++ b/views/default/css/lightbox.php @@ -0,0 +1,371 @@ +<?php +/** + * Fancybox lightbox CSS. + * + * Used as a view because we need to pass a full URL to AlphaImageLoader. + * + * @package Elgg.Core + * @subpackage UI + */ + +$jquery_path = elgg_get_site_url() . 'vendors/jquery/'; +?> + +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * That said, it is hardly a one-person project. Many people have submitted bugs, code, and offered their advice freely. Their support is greatly appreciated. + * + * Version: 1.3.4 (11/11/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + width: 40px; + height: 40px; + margin-top: -20px; + margin-left: -20px; + cursor: pointer; + overflow: hidden; + z-index: 1104; + display: none; +} + +#fancybox-loading div { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 480px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); +} + +#fancybox-overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 1100; + display: none; +} + +#fancybox-tmp { + padding: 0; + margin: 0; + border: 0; + overflow: auto; + display: none; +} + +#fancybox-wrap { + position: absolute; + top: 0; + left: 0; + padding: 20px; + z-index: 1101; + outline: none; + display: none; +} + +#fancybox-outer { + position: relative; + width: 100%; + height: 100%; + background: #fff; +} + +#fancybox-content { + width: 0; + height: 0; + padding: 0; + outline: none; + position: relative; + overflow: hidden; + z-index: 1102; + border: 0px solid #fff; +} + +#fancybox-hide-sel-frame { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: transparent; + z-index: 1101; +} + +#fancybox-close { + position: absolute; + top: -15px; + right: -15px; + width: 30px; + height: 30px; + background: transparent url('<?php echo $jquery_path; ?>fancybox/fancybox.png') -40px 0px; + cursor: pointer; + z-index: 1103; + display: none; +} + +#fancybox-error { + color: #444; + font: normal 12px/20px Arial; + padding: 14px; + margin: 0; +} + +#fancybox-img { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + border: none; + outline: none; + line-height: 0; + vertical-align: top; +} + +#fancybox-frame { + width: 100%; + height: 100%; + border: none; + display: block; +} + +#fancybox-left, #fancybox-right { + position: absolute; + bottom: 0px; + height: 100%; + width: 35%; + cursor: pointer; + outline: none; + background: transparent url('<?php echo $jquery_path; ?>fancybox/blank.gif'); + z-index: 1102; + display: none; +} + +#fancybox-left { + left: 0px; +} + +#fancybox-right { + right: 0px; +} + +#fancybox-left-ico, #fancybox-right-ico { + position: absolute; + top: 50%; + left: -9999px; + width: 30px; + height: 30px; + margin-top: -15px; + cursor: pointer; + z-index: 1102; + display: block; +} + +#fancybox-left-ico { + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -30px; +} + +#fancybox-right-ico { + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -60px; +} + +#fancybox-left:hover, #fancybox-right:hover { + visibility: visible; /* IE6 */ +} + +#fancybox-left:hover span { + left: 20px; +} + +#fancybox-right:hover span { + left: auto; + right: 20px; +} + +.fancybox-bg { + position: absolute; + padding: 0; + margin: 0; + border: 0; + width: 20px; + height: 20px; + z-index: 1001; +} + +#fancybox-bg-n { + top: -20px; + left: 0; + width: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-x.png'); +} + +#fancybox-bg-ne { + top: -20px; + right: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -162px; +} + +#fancybox-bg-e { + top: 0; + right: -20px; + height: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-y.png'); + background-position: -20px 0px; +} + +#fancybox-bg-se { + bottom: -20px; + right: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -182px; +} + +#fancybox-bg-s { + bottom: -20px; + left: 0; + width: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-x.png'); + background-position: 0px -20px; +} + +#fancybox-bg-sw { + bottom: -20px; + left: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -142px; +} + +#fancybox-bg-w { + top: 0; + left: -20px; + height: 100%; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox-y.png'); +} + +#fancybox-bg-nw { + top: -20px; + left: -20px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancybox.png'); + background-position: -40px -122px; +} + +#fancybox-title { + font-family: Helvetica; + font-size: 12px; + z-index: 1102; +} + +.fancybox-title-inside { + padding-bottom: 10px; + text-align: center; + color: #333; + background: #fff; + position: relative; +} + +.fancybox-title-outside { + padding-top: 10px; + color: #fff; +} + +.fancybox-title-over { + position: absolute; + bottom: 0; + left: 0; + color: #FFF; + text-align: left; +} + +#fancybox-title-over { + padding: 10px; + background-image: url('<?php echo $jquery_path; ?>fancybox/fancy_title_over.png'); + display: block; +} + +.fancybox-title-float { + position: absolute; + left: 0; + bottom: -20px; + height: 32px; +} + +#fancybox-title-float-wrap { + border: none; + border-collapse: collapse; + width: auto; +} + +#fancybox-title-float-wrap td { + border: none; + white-space: nowrap; +} + +#fancybox-title-float-left { + padding: 0 0 0 15px; + background: url('<?php echo $jquery_path; ?>fancybox/fancybox.png') -40px -90px no-repeat; +} + +#fancybox-title-float-main { + color: #FFF; + line-height: 29px; + font-weight: bold; + padding: 0 0 3px 0; + background: url('<?php echo $jquery_path; ?>fancybox/fancybox-x.png') 0px -40px; +} + +#fancybox-title-float-right { + padding: 0 0 0 15px; + background: url('<?php echo $jquery_path; ?>fancybox/fancybox.png') -55px -90px no-repeat; +} + +/* IE6 */ + +.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_close.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_nav_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_nav_right.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } +.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_left.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_main.png', sizingMethod='scale'); } +.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_title_right.png', sizingMethod='scale'); } + +.fancybox-ie6 #fancybox-bg-w, .fancybox-ie6 #fancybox-bg-e, .fancybox-ie6 #fancybox-left, .fancybox-ie6 #fancybox-right, #fancybox-hide-sel-frame { + height: expression(this.parentNode.clientHeight + "px"); +} + +#fancybox-loading.fancybox-ie6 { + position: absolute; margin-top: 0; + top: expression( (-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'); +} + +#fancybox-loading.fancybox-ie6 div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_loading.png', sizingMethod='scale'); } + +/* IE6, IE7, IE8 */ +.fancybox-ie .fancybox-bg { background: transparent !important; } + +.fancybox-ie #fancybox-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_n.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_ne.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_e.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_se.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_s.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_sw.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_w.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='<?php echo $jquery_path; ?>fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
\ No newline at end of file diff --git a/views/default/css/walled_garden.php b/views/default/css/walled_garden.php new file mode 100644 index 000000000..f6f7f97dc --- /dev/null +++ b/views/default/css/walled_garden.php @@ -0,0 +1,81 @@ +<?php +/** + * Walled garden CSS + */ + +$url = elgg_get_site_url(); + +?> +.elgg-body-walledgarden { + margin: 100px auto 0 auto; + position: relative; + width: 530px; +} +.elgg-module-walledgarden { + position: absolute; + top: 0; + left: 0; +} +.elgg-module-walledgarden > .elgg-head { + height: 17px; +} +.elgg-module-walledgarden > .elgg-body { + padding: 0 10px; +} +.elgg-module-walledgarden > .elgg-foot { + height: 17px; +} +.elgg-walledgarden-double > .elgg-head { + background: url(<?php echo $url; ?>_graphics/walled_garden/two_column_top.png) no-repeat left top; +} +.elgg-walledgarden-double > .elgg-body { + background: url(<?php echo $url; ?>_graphics/walled_garden/two_column_middle.png) repeat-y left top; +} +.elgg-walledgarden-double > .elgg-foot { + background: url(<?php echo $url; ?>_graphics/walled_garden/two_column_bottom.png) no-repeat left top; +} +.elgg-walledgarden-single > .elgg-head { + background: url(<?php echo $url; ?>_graphics/walled_garden/one_column_top.png) no-repeat left top; +} +.elgg-walledgarden-single > .elgg-body { + background: url(<?php echo $url; ?>_graphics/walled_garden/one_column_middle.png) repeat-y left top; +} +.elgg-walledgarden-single > .elgg-foot { + background: url(<?php echo $url; ?>_graphics/walled_garden/one_column_bottom.png) no-repeat left top; +} + +.elgg-col > .elgg-inner { + margin: 0 0 0 5px; +} +.elgg-col:first-child > .elgg-inner { + margin: 0 5px 0 0; +} +.elgg-col > .elgg-inner { + padding: 0 8px; +} + +.elgg-walledgarden-single > .elgg-body { + padding: 0 18px; +} + +.elgg-module-walledgarden-login { + margin: 0; +} +.elgg-body-walledgarden h3 { + font-size: 1.5em; + line-height: 1.1em; + padding-bottom: 5px; +} + +.elgg-heading-walledgarden { + margin-top: 60px; + line-height: 1.1em; +} + +h1, h2, h3, h4, h5, h6 { + color: #666; +} + +a { + color: #999; +}
\ No newline at end of file diff --git a/views/default/errors/404.php b/views/default/errors/404.php new file mode 100644 index 000000000..8bc35acdd --- /dev/null +++ b/views/default/errors/404.php @@ -0,0 +1,8 @@ +<?php +/** + * Page not found error + */ + +$message = elgg_echo('error:404'); + +echo "<h2>$message</h2>"; diff --git a/views/default/errors/default.php b/views/default/errors/default.php new file mode 100644 index 000000000..a0582eba2 --- /dev/null +++ b/views/default/errors/default.php @@ -0,0 +1,8 @@ +<?php +/** + * General error + */ + +$message = elgg_echo('error:default'); + +echo "<h2>$message</h2>"; diff --git a/views/default/export/entity.php b/views/default/export/entity.php index ccee86718..3064f1288 100644 --- a/views/default/export/entity.php +++ b/views/default/export/entity.php @@ -35,7 +35,7 @@ $exportable_values = $entity->getExportableValues(); </div> <?php if ($metadata) { ?> -<div id="metadata" class="margin-top"> +<div id="metadata" class="mtm"> <h2><?php echo elgg_echo('metadata'); ?></h2> <?php foreach ($metadata as $m) { @@ -49,7 +49,7 @@ $exportable_values = $entity->getExportableValues(); <?php } ?> <?php if ($annotations) { ?> -<div id="annotations" class="margin-top"> +<div id="annotations" class="mtm"> <h2><?php echo elgg_echo('annotations'); ?></h2> <?php foreach ($annotations as $a) { @@ -64,7 +64,7 @@ $exportable_values = $entity->getExportableValues(); <?php } ?> <?php if ($relationships) { ?> -<div id="relationship" class="margin-top"> +<div id="relationship" class="mtm"> <h2><?php echo elgg_echo('relationships'); ?></h2> <?php foreach ($relationships as $r) { diff --git a/views/default/forms/account/settings.php b/views/default/forms/account/settings.php index 824b2280b..3967207ce 100644 --- a/views/default/forms/account/settings.php +++ b/views/default/forms/account/settings.php @@ -5,4 +5,6 @@ * This form is extended by Elgg with the views in core/settings/account. * Plugins can additionally extend it and then register for the * 'usersettings:save', 'user' plugin hook. + * + * This view is included by "forms/usersettings/save" */ diff --git a/views/default/forms/admin/menu/save.php b/views/default/forms/admin/menu/save.php index c55ff3367..1a67ffcc4 100644 --- a/views/default/forms/admin/menu/save.php +++ b/views/default/forms/admin/menu/save.php @@ -3,6 +3,9 @@ * Form body for setting up site menu */ +// @todo Could probably make this number configurable +$num_featured_items = 6; + // get site menu items $menu = elgg_get_config('menus'); $menu = $menu['site']; @@ -14,9 +17,9 @@ $featured_menu_names = elgg_get_config('site_featured_menu_names'); $dropdown_values = array(); foreach ($menu_items as $item) { - $dropdown_values[$item->getName()] = $item->getTitle(); + $dropdown_values[$item->getName()] = $item->getText(); } -$dropdown_values[''] = elgg_echo('none'); +$dropdown_values[' '] = elgg_echo('none'); ?> <div class="elgg-module elgg-module-inline"> @@ -29,12 +32,11 @@ echo elgg_view('output/longtext', array( 'value' => elgg_echo("admin:menu_items:description") )); -// @todo Could probably make this number configurable -for ($i=0; $i<6; $i++) { - if (array_key_exists($i, $featured_menu_names)) { +for ($i=0; $i<$num_featured_items; $i++) { + if ($featured_menu_names && array_key_exists($i, $featured_menu_names)) { $current_value = $featured_menu_names[$i]; } else { - $current_value = ''; + $current_value = ' '; } echo elgg_view('input/dropdown', array( @@ -62,7 +64,7 @@ $custom_items = elgg_get_config('site_custom_menu_items'); $name_str = elgg_echo('name'); $url_str = elgg_echo('admin:plugins:label:website'); -echo '<ul class="elgg-simple-list">'; +echo '<ul class="elgg-list elgg-list-simple">'; if (is_array($custom_items)) { foreach ($custom_items as $title => $url) { diff --git a/views/default/forms/admin/plugins/change_state.php b/views/default/forms/admin/plugins/change_state.php new file mode 100644 index 000000000..730c8ff32 --- /dev/null +++ b/views/default/forms/admin/plugins/change_state.php @@ -0,0 +1,22 @@ +<?php +/** + * Activate/deactive all plugins specified by guids array + * + * @uses $vars['guids'] Array of GUIDs + * @uses $vars['action'] 'activate' or 'deactivate' + */ + +$guids = elgg_extract('guids', $vars, array()); +$guids = implode(',', $guids); + +echo '<div>'; +echo elgg_view('input/hidden', array( + 'name' => 'guids', + 'value' => $guids, +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo("admin:plugins:{$vars['action']}_all"), + 'class' => 'elgg-button elgg-button-action mrm' +)); +echo '</div>'; diff --git a/views/default/forms/admin/plugins/filter.php b/views/default/forms/admin/plugins/filter.php new file mode 100644 index 000000000..fd1b618bc --- /dev/null +++ b/views/default/forms/admin/plugins/filter.php @@ -0,0 +1,26 @@ +<?php +/** + * Category filter for plugins + * + * @uses $vars['category'] + * @uses $vars['category_options'] + * @uses $vvars['sort'] + */ + +echo '<div>'; +echo elgg_view('input/dropdown', array( + 'name' => 'category', + 'options_values' => $vars['category_options'], + 'value' => $vars['category'], +)); + +echo elgg_view('input/hidden', array( + 'name' => 'sort', + 'value' => $vars['sort'], +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo('filter'), + 'class' => 'elgg-button elgg-button-action', +)); +echo '</div>'; diff --git a/views/default/forms/admin/plugins/simple_update_states.php b/views/default/forms/admin/plugins/simple_update_states.php deleted file mode 100644 index bf9f4e4c1..000000000 --- a/views/default/forms/admin/plugins/simple_update_states.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php -/** - * Elgg administration simple plugin screen - * - * Shows an alphabetical list of "simple" plugins. - * - * @package Elgg - * @subpackage Core - */ - -elgg_generate_plugin_entities(); -$installed_plugins = elgg_get_plugins('any'); -$plugin_list = array(); - -foreach ($installed_plugins as $plugin) { - if (!$plugin->isValid()) { - continue; - } - $interface = $plugin->manifest->getAdminInterface(); - if ($interface == 'simple') { - $plugin_list[$plugin->manifest->getName()] = $plugin; - } -} - -ksort($plugin_list); - -echo <<<___END - <ul> -___END; - -$actions_base = '/action/admin/plugins/'; -$ts = time(); -$token = generate_action_token($ts); - -foreach ($plugin_list as $name => $plugin) { - $plugin_guid = $plugin->guid; - $plugin_id = $plugin->getID(); - $active = $plugin->isActive(); - $can_activate = $plugin->canActivate(); - $author = $plugin->manifest->getAuthor(); - $version = $plugin->manifest->getVersion(); - $website = $plugin->manifest->getWebsite(); - $description = $plugin->manifest->getDescription(); - - if ($active) { - $active_class = 'elgg-state-active'; - $checked = 'checked="checked"'; - } else { - $active_class = 'elgg-state-inactive'; - $checked = ''; - } - - if ($can_activate) { - $disabled = ''; - } else { - $disabled = 'disabled="disabled"'; - $description .= '<p>' . elgg_echo('admin:plugins:simple:cannot_activate') . '</p>'; - } - - $description = elgg_view('output/longtext', array('value' => $description)); - - $plugin_footer = '<ul class="elgg-menu elgg-menu-footer">'; - - if ($author) { - $plugin_footer .= '<li>' . elgg_echo('admin:plugins:author', array($author)) . '</li>'; - } - - if ($version) { - $plugin_footer .= '<li>' . elgg_echo('admin:plugins:version', array($version)) . '</li>'; - } - - if ($website) { - $plugin_footer .= "<li><a href=\"$website\">" . elgg_echo('admin:plugins:plugin_website') . '</a></li>'; - } - - if (elgg_view_exists("settings/$plugin_id/edit")) { - $settings_href = elgg_get_site_url() . "pg/admin/plugin_settings/$plugin_id"; - $plugin_footer .= "<li><a class='plugin_settings link' href='$settings_href'>" . elgg_echo('settings') . "</a></li>"; - } - - $plugin_footer .= "</ul>"; - - echo <<<___END - <li class="elgg-plugin $active_class"> - <div class="elgg-grid"> - <div class="elgg-col elgg-col-1of5"> - <input type="checkbox" id="$plugin_guid" $checked $disabled name="active_plugin_guids[]" value="$plugin_guid"/> - <label for="$plugin_guid">$name</label> - </div> - <div class="elgg-col elgg-col-4of5"> - $description - $plugin_footer - </div> - </div> - </li> -___END; -} - -echo '</ul>'; -echo elgg_view('input/submit', array('value' => elgg_echo('save'))); -echo elgg_view('input/reset', array('value' => elgg_echo('reset'))); diff --git a/views/default/forms/admin/plugins/sort.php b/views/default/forms/admin/plugins/sort.php new file mode 100644 index 000000000..7f2246bad --- /dev/null +++ b/views/default/forms/admin/plugins/sort.php @@ -0,0 +1,26 @@ +<?php +/** + * Sort plugins form body + * + * @uses $vars['sort'] + * @uses $vars['sort_options'] + * @uses $vars['category'] + */ + +echo '<div class="mtm">'; +echo elgg_view('input/dropdown', array( + 'name' => 'sort', + 'options_values' => $vars['sort_options'], + 'value' => $vars['sort'], +)); + +echo elgg_view('input/hidden', array( + 'name' => 'category', + 'value' => $vars['category'], +)); + +echo elgg_view('input/submit', array( + 'value' => elgg_echo('sort'), + 'class' => 'elgg-button elgg-button-action' +)); +echo '</div>'; diff --git a/views/default/forms/admin/site/regenerate_secret.php b/views/default/forms/admin/site/regenerate_secret.php new file mode 100644 index 000000000..af269b801 --- /dev/null +++ b/views/default/forms/admin/site/regenerate_secret.php @@ -0,0 +1,24 @@ +<?php + +$strength = $vars['strength']; + +?> +<p><?php echo elgg_echo('admin:site:secret:intro'); ?></p> + +<table class="elgg-table"> + <tr> + <th><?php echo elgg_echo('site_secret:current_strength'); ?></th> + <td class="elgg-strength-<?php echo $strength; ?>"> + <h4><?php echo elgg_echo("site_secret:strength:$strength"); ?></h4> + <div><?php echo elgg_echo("site_secret:strength_msg:$strength"); ?></div> + </td> + </tr> +</table> + +<div class="elgg-foot"> + <?php echo elgg_view('input/submit', array( + 'value' => elgg_echo('admin:site:secret:regenerate'), + 'class' => 'elgg-requires-confirmation elgg-button elgg-button-submit', + )); ?> + <p class="elgg-text-help mts"><?php echo elgg_echo('admin:site:secret:regenerate:help'); ?></p> +</div> diff --git a/views/default/forms/admin/site/update_advanced.php b/views/default/forms/admin/site/update_advanced.php index d3ae5e250..14b74e4f9 100644 --- a/views/default/forms/admin/site/update_advanced.php +++ b/views/default/forms/admin/site/update_advanced.php @@ -4,7 +4,7 @@ */ $form_body = ""; -foreach (array('wwwroot', 'path', 'dataroot', 'view') as $field) { +foreach (array('wwwroot', 'path', 'dataroot') as $field) { $form_body .= "<div>"; $form_body .= elgg_echo('installation:' . $field) . "<br />"; $warning = elgg_echo('installation:warning:' . $field); @@ -17,28 +17,34 @@ foreach (array('wwwroot', 'path', 'dataroot', 'view') as $field) { } $form_body .= "<div>" . elgg_echo('admin:site:access:warning') . "<br />"; -$form_body .= elgg_echo('installation:sitepermissions'); +$form_body .= "<label>" . elgg_echo('installation:sitepermissions') . "</label>"; $form_body .= elgg_view('input/access', array( + 'options_values' => array( + ACCESS_PRIVATE => elgg_echo("PRIVATE"), + ACCESS_FRIENDS => elgg_echo("access:friends:label"), + ACCESS_LOGGED_IN => elgg_echo("LOGGED_IN"), + ACCESS_PUBLIC => elgg_echo("PUBLIC") + ), 'name' => 'default_access', 'value' => elgg_get_config('default_access'), )) . "</div>"; $form_body .= "<div>" . elgg_echo('installation:allow_user_default_access:description') . "<br />"; $form_body .= elgg_view("input/checkboxes", array( - 'options' => array(elgg_echo('installation:allow_user_default_access:label')), + 'options' => array(elgg_echo('installation:allow_user_default_access:label') => 1), 'name' => 'allow_user_default_access', - 'value' => (elgg_get_config('allow_user_default_access') ? elgg_echo('installation:allow_user_default_access:label') : ""), + 'value' => (elgg_get_config('allow_user_default_access') ? 1 : 0), )) . "</div>"; $form_body .= "<div>" . elgg_echo('installation:simplecache:description') . "<br />"; $form_body .= elgg_view("input/checkboxes", array( - 'options' => array(elgg_echo('installation:simplecache:label')), + 'options' => array(elgg_echo('installation:simplecache:label') => 1), 'name' => 'simplecache_enabled', - 'value' => (elgg_get_config('simplecache_enabled') ? elgg_echo('installation:simplecache:label') : ""), + 'value' => (elgg_get_config('simplecache_enabled') ? 1 : 0), )) . "</div>"; -$form_body .= "<div>" . elgg_echo('installation:viewpathcache:description') . "<br />"; +$form_body .= "<div>" . elgg_echo('installation:systemcache:description') . "<br />"; $form_body .= elgg_view("input/checkboxes", array( - 'options' => array(elgg_echo('installation:viewpathcache:label')), - 'name' => 'viewpath_cache_enabled', - 'value' => (elgg_get_config('viewpath_cache_enabled') ? elgg_echo('installation:viewpathcache:label') : ""), + 'options' => array(elgg_echo('installation:systemcache:label') => 1), + 'name' => 'system_cache_enabled', + 'value' => (elgg_get_config('system_cache_enabled') ? 1 : 0), )) . "</div>"; $debug_options = array('0' => elgg_echo('installation:debug:none'), 'ERROR' => elgg_echo('installation:debug:error'), 'WARNING' => elgg_echo('installation:debug:warning'), 'NOTICE' => elgg_echo('installation:debug:notice')); @@ -52,9 +58,9 @@ $form_body .= '</div>'; // control new user registration $options = array( - 'options' => array(elgg_echo('installation:registration:label')), + 'options' => array(elgg_echo('installation:registration:label') => 1), 'name' => 'allow_registration', - 'value' => elgg_get_config('allow_registration') ? elgg_echo('installation:registration:label') : '', + 'value' => elgg_get_config('allow_registration') ? 1 : 0, ); $form_body .= '<div>' . elgg_echo('installation:registration:description'); $form_body .= '<br />' .elgg_view('input/checkboxes', $options) . '</div>'; @@ -62,28 +68,25 @@ $form_body .= '<br />' .elgg_view('input/checkboxes', $options) . '</div>'; // control walled garden $walled_garden = elgg_get_config(walled_garden); $options = array( - 'options' => array(elgg_echo('installation:walled_garden:label')), + 'options' => array(elgg_echo('installation:walled_garden:label') => 1), 'name' => 'walled_garden', - 'value' => $walled_garden ? elgg_echo('installation:walled_garden:label') : '', + 'value' => $walled_garden ? 1 : 0, ); $form_body .= '<div>' . elgg_echo('installation:walled_garden:description'); $form_body .= '<br />' . elgg_view('input/checkboxes', $options) . '</div>'; $form_body .= "<div>" . elgg_echo('installation:httpslogin') . "<br />"; $form_body .= elgg_view("input/checkboxes", array( - 'options' => array(elgg_echo('installation:httpslogin:label')), + 'options' => array(elgg_echo('installation:httpslogin:label') => 1), 'name' => 'https_login', - 'value' => (elgg_get_config('https_login') ? elgg_echo('installation:httpslogin:label') : "") + 'value' => (elgg_get_config('https_login') ? 1 : 0) )) . "</div>"; $form_body .= "<div>" . elgg_echo('installation:disableapi') . "<br />"; -$on = elgg_echo('installation:disableapi:label'); $disable_api = elgg_get_config('disable_api'); -if ($disable_api) { - $on = (disable_api ? "" : elgg_echo('installation:disableapi:label')); -} +$on = $disable_api ? 0 : 1; $form_body .= elgg_view("input/checkboxes", array( - 'options' => array(elgg_echo('installation:disableapi:label')), + 'options' => array(elgg_echo('installation:disableapi:label') => 1), 'name' => 'api', 'value' => $on, )); @@ -91,8 +94,8 @@ $form_body .= "</div>"; $form_body .= elgg_view('input/hidden', array('name' => 'settings', 'value' => 'go')); -$form_body .= '<div class="bta">'; +$form_body .= '<div class="elgg-foot">'; $form_body .= elgg_view('input/submit', array('value' => elgg_echo("save"))); $form_body .= '</div>'; -echo $form_body;
\ No newline at end of file +echo $form_body; diff --git a/views/default/forms/admin/site/update_basic.php b/views/default/forms/admin/site/update_basic.php index eb4218810..88870bc60 100644 --- a/views/default/forms/admin/site/update_basic.php +++ b/views/default/forms/admin/site/update_basic.php @@ -24,7 +24,7 @@ $form_body .= elgg_view("input/dropdown", array( 'options_values' => $languages, )) . "</div>"; -$form_body .= '<div class="bta">'; +$form_body .= '<div class="elgg-foot">'; $form_body .= elgg_view('input/submit', array('value' => elgg_echo("save"))); $form_body .= '</div>'; diff --git a/views/default/forms/avatar/crop.php b/views/default/forms/avatar/crop.php index 380a4bb6c..3e798cb27 100644 --- a/views/default/forms/avatar/crop.php +++ b/views/default/forms/avatar/crop.php @@ -5,14 +5,29 @@ * @uses $vars['entity'] */ -$master_image = $vars['entity']->getIcon('master'); +elgg_load_js('jquery.imgareaselect'); +elgg_load_js('elgg.avatar_cropper'); +elgg_load_css('jquery.imgareaselect'); + +$master_img = elgg_view('output/img', array( + 'src' => $vars['entity']->getIconUrl('master'), + 'alt' => elgg_echo('avatar'), + 'class' => 'mrl', + 'id' => 'user-avatar-cropper', +)); + +$preview_img = elgg_view('output/img', array( + 'src' => $vars['entity']->getIconUrl('master'), + 'alt' => elgg_echo('avatar'), +)); ?> -<div> - <img id="user-avatar" src="<?php echo $master_image; ?>" alt="<?php echo elgg_echo('avatar'); ?>" /> +<div class="clearfix"> + <?php echo $master_img; ?> + <div id="user-avatar-preview-title"><label><?php echo elgg_echo('avatar:preview'); ?></label></div> + <div id="user-avatar-preview"><?php echo $preview_img; ?></div> </div> - -<div class="clearfloat"></div> +<div class="elgg-foot"> <?php $coords = array('x1', 'x2', 'y1', 'y2'); foreach ($coords as $coord) { @@ -24,45 +39,4 @@ echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity' echo elgg_view('input/submit', array('value' => elgg_echo('avatar:create'))); ?> -<!-- grab the required js for icon cropping --> -<script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery.imgareaselect-0.8.min.js"></script> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> - - // display a preview of the users cropped section - function preview(img, selection) { - // catch for the first click on the image - if (selection.width == 0 || selection.height == 0) { - return; - } - - var origWidth = $("#user-avatar").width(); //get the width of the users master photo - var origHeight = $("#user-avatar").height(); //get the height of the users master photo - var scaleX = 100 / selection.width; - var scaleY = 100 / selection.height; - $('#user-avatar-preview > img').css({ - width: Math.round(scaleX * origWidth) + 'px', - height: Math.round(scaleY * origHeight) + 'px', - marginLeft: '-' + Math.round(scaleX * selection.x1) + 'px', - marginTop: '-' + Math.round(scaleY * selection.y1) + 'px' - }); - } - - function selectChange(img, selection) { - // populate the form with the correct coordinates once a user has cropped their image - $('input[name=x1]').val(selection.x1); - $('input[name=x2]').val(selection.x2); - $('input[name=y1]').val(selection.y1); - $('input[name=y2]').val(selection.y2); - } - - $(document).ready(function() { - $('<div id="user-avatar-preview"><img src="<?php echo $master_image; ?>" /></div>').insertAfter($('#user-avatar')); - $('<div id="user-avatar-preview-title"><label><?php echo elgg_echo('avatar:preview'); ?></label></div>').insertBefore($('#user-avatar-preview')); - - // this produces the coordinates - $('#user-avatar').imgAreaSelect({ selectionOpacity: 0, onSelectEnd: selectChange }); - // show the preview - $('#user-avatar').imgAreaSelect({ aspectRatio: '1:1', onSelectChange: preview }); - }); -</script> +</div> diff --git a/views/default/forms/avatar/upload.php b/views/default/forms/avatar/upload.php index 08db1f7e0..d91e8575e 100644 --- a/views/default/forms/avatar/upload.php +++ b/views/default/forms/avatar/upload.php @@ -5,11 +5,12 @@ * @uses $vars['entity'] */ -echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity']->guid)); ?> <div> <label><?php echo elgg_echo("avatar:upload"); ?></label><br /> <?php echo elgg_view("input/file",array('name' => 'avatar')); ?> -<br /> +</div> +<div class="elgg-foot"> + <?php echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity']->guid)); ?> <?php echo elgg_view('input/submit', array('value' => elgg_echo('upload'))); ?> </div> diff --git a/views/default/forms/comments/add.php b/views/default/forms/comments/add.php index 8a2b89f2d..9acabf3ea 100644 --- a/views/default/forms/comments/add.php +++ b/views/default/forms/comments/add.php @@ -4,20 +4,34 @@ * * @package Elgg * - * @uses $vars['entity'] + * @uses ElggEntity $vars['entity'] The entity to comment on + * @uses bool $vars['inline'] Show a single line version of the form? */ + if (isset($vars['entity']) && elgg_is_logged_in()) { + + $inline = elgg_extract('inline', $vars, false); + + if ($inline) { + echo elgg_view('input/text', array('name' => 'generic_comment')); + echo elgg_view('input/submit', array('value' => elgg_echo('comment'))); + } else { ?> -<div class="mbn"> - <label><?php echo elgg_echo("generic_comments:text"); ?></label> - <?php echo elgg_view('input/longtext', array('name' => 'generic_comment')); ?> -</div> + <div> + <label><?php echo elgg_echo("generic_comments:add"); ?></label> + <?php echo elgg_view('input/longtext', array('name' => 'generic_comment')); ?> + </div> + <div class="elgg-foot"> <?php - + echo elgg_view('input/submit', array('value' => elgg_echo("generic_comments:post"))); +?> + </div> +<?php + } + echo elgg_view('input/hidden', array( 'name' => 'entity_guid', 'value' => $vars['entity']->getGUID() )); - echo elgg_view('input/submit', array('value' => elgg_echo("generic_comments:post"))); } diff --git a/views/default/forms/comments/inline.php b/views/default/forms/comments/inline.php deleted file mode 100644 index 14b8a086d..000000000 --- a/views/default/forms/comments/inline.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * Inline comment form body - * - * @uses $vars['entity'] - */ - -if (isset($vars['entity']) && elgg_is_logged_in()) { - echo elgg_view('input/text', array('name' => 'generic_comment')); - echo elgg_view('input/hidden', array( - 'name' => 'entity_guid', - 'value' => $vars['entity']->getGUID() - )); - echo elgg_view('input/submit', array('value' => elgg_echo('comment'))); -} diff --git a/views/default/forms/friends/collectionfields.php b/views/default/forms/friends/collectionfields.php deleted file mode 100644 index 35db3a962..000000000 --- a/views/default/forms/friends/collectionfields.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * Elgg friend collections required hidden fields for js friends picker form - * - * @package Elgg - * @subpackage Core - */ - -if (isset($vars['collection'])) { -?> - - <input type="hidden" name="collection_id" value="<?php echo $vars['collection']->id; ?>" /> - -<?php -}
\ No newline at end of file diff --git a/views/default/forms/friends/collections/add.php b/views/default/forms/friends/collections/add.php new file mode 100644 index 000000000..04c87346b --- /dev/null +++ b/views/default/forms/friends/collections/add.php @@ -0,0 +1,53 @@ +<?php +/** + * Form body for editing or adding a friend collection + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['collection'] Optionally, the collection to edit + */ + +// Set title, form destination +if (isset($vars['collection'])) { + $title = $vars['collection']->name; + $highlight = 'default'; +} else { + $title = ""; + $highlight = 'all'; +} + +echo "<div class=\"mtm\"><label>" . elgg_echo("friends:collectionname") . "<br/>"; +echo elgg_view("input/text", array( + "name" => "collection_name", + "value" => $title, + )); +echo "</label></div>"; + +echo "<div>"; +if ($vars['collection_members']) { + echo elgg_echo("friends:collectionfriends") . "<br />"; + foreach ($vars['collection_members'] as $mem) { + echo elgg_view_entity_icon($mem, 'tiny'); + echo $mem->name; + } +} +echo "</div>"; + +echo "<div><label>" . elgg_echo("friends:addfriends") . "</label>"; +echo elgg_view('input/friendspicker', array( + 'entities' => $vars['friends'], + 'name' => 'friends_collection', + 'highlight' => $highlight, +)); +echo "</div>"; + +echo '<div class="elgg-foot">'; +if (isset($vars['collection'])) { + echo elgg_view('input/hidden', array( + 'name' => 'collection_id', + 'value' => $vars['collection']->id, + )); +} +echo elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('save'))); +echo '</div>'; diff --git a/views/default/forms/friends/edit.php b/views/default/forms/friends/edit.php deleted file mode 100644 index e3bc28cfc..000000000 --- a/views/default/forms/friends/edit.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -/** - * Elgg friend collections add/edit - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['object'] Optionally, the collection edit - * - * @todo FIXME Forms 1.8: views in the forms/ directory should not output the <form> wrapper itself - */ - -// var_export($vars['collection'][0]->id); - -// Set title, form destination -if (isset($vars['collection'])) { - $action = "friends/editcollection"; - $title = $vars['collection'][0]->name; - $highlight = 'default'; -} else { - $action = "friends/addcollection"; - $title = ""; - $highlight = 'all'; -} - - -$form_body = "<div class='contentWrapper'><div><label>" . elgg_echo("friends:collectionname") . "<br />" . - elgg_view("input/text", array( - "name" => "collection_name", - "value" => $title, - )) . "</label></div>"; - -$form_body .= "<div>"; - -if($vars['collection_members']){ - $form_body .= elgg_echo("friends:collectionfriends") . "<br />"; - foreach($vars['collection_members'] as $mem){ - $form_body .= elgg_view("profile/icon",array('entity' => $mem, 'size' => 'tiny')); - $form_body .= $mem->name; - } -} - -$form_body .= "</div>"; - -$form_body .= "<div><label>" . elgg_echo("friends:addfriends") . "</label>". - elgg_view('core/friends/picker',array('entities' => $vars['friends'], 'name' => 'friends_collection', 'highlight' => $highlight)) . "</div>"; - -$form_body .= "<div>"; -if (isset($vars['collection'])) { - $form_body .= elgg_view('input/hidden', array('name' => 'collection_id', 'value' => "{$vars['collection'][0]->id}")); -} -$form_body .= elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('save'))); -$form_body .= "</div></div>"; - -echo elgg_view('input/form', array('body' => $form_body, 'action' => "action/$action"));
\ No newline at end of file diff --git a/views/default/forms/login.php b/views/default/forms/login.php index a4d9e57c6..d2c6e6221 100644 --- a/views/default/forms/login.php +++ b/views/default/forms/login.php @@ -9,37 +9,41 @@ <div> <label><?php echo elgg_echo('loginusername'); ?></label> - <?php echo elgg_view('input/text', array('name' => 'username')); ?> + <?php echo elgg_view('input/text', array( + 'name' => 'username', + 'class' => 'elgg-autofocus', + )); + ?> </div> <div> <label><?php echo elgg_echo('password'); ?></label> <?php echo elgg_view('input/password', array('name' => 'password')); ?> </div> -<?php echo elgg_view('login/extend'); ?> - -<div> - <?php echo elgg_view('input/submit', array('value' => elgg_echo('login'))); ?> +<?php echo elgg_view('login/extend', $vars); ?> - <label class="right mtm"> +<div class="elgg-foot"> + <label class="mtm float-alt"> <input type="checkbox" name="persistent" value="true" /> <?php echo elgg_echo('user:persistent'); ?> </label> + <?php echo elgg_view('input/submit', array('value' => elgg_echo('login'))); ?> + <?php - if ($vars['returntoreferer']) { + if (isset($vars['returntoreferer'])) { echo elgg_view('input/hidden', array('name' => 'returntoreferer', 'value' => 'true')); } ?> -</div> -<ul class="elgg-menu elgg-menu-footer"> -<?php - if (elgg_get_config('allow_registration')) { - echo '<li><a class="registration_link" href="' . elgg_get_site_url() . 'pg/register/">' . elgg_echo('register') . '</a></li>'; - } -?> - <li><a class="forgotten_password_link" href="<?php echo elgg_get_site_url(); ?>pages/account/forgotten_password.php"> - <?php echo elgg_echo('user:password:lost'); ?> - </a></li> -</ul>
\ No newline at end of file + <ul class="elgg-menu elgg-menu-general mtm"> + <?php + if (elgg_get_config('allow_registration')) { + echo '<li><a class="registration_link" href="' . elgg_get_site_url() . 'register">' . elgg_echo('register') . '</a></li>'; + } + ?> + <li><a class="forgot_link" href="<?php echo elgg_get_site_url(); ?>forgotpassword"> + <?php echo elgg_echo('user:password:lost'); ?> + </a></li> + </ul> +</div> diff --git a/views/default/forms/members/name_search.php b/views/default/forms/members/name_search.php index 23e6c066e..5f6b9a4b6 100644 --- a/views/default/forms/members/name_search.php +++ b/views/default/forms/members/name_search.php @@ -2,6 +2,7 @@ $params = array( 'name' => 'name', + 'class' => 'mbm', ); echo elgg_view('input/text', $params); diff --git a/views/default/forms/members/tag_search.php b/views/default/forms/members/tag_search.php index 7badf8cda..4fe9bb32a 100644 --- a/views/default/forms/members/tag_search.php +++ b/views/default/forms/members/tag_search.php @@ -5,6 +5,7 @@ $params = array( 'name' => 'tag', + 'class' => 'mbm', ); echo elgg_view('input/text', $params); diff --git a/views/default/forms/plugins/settings/save.php b/views/default/forms/plugins/settings/save.php index 5125f3142..116529905 100644 --- a/views/default/forms/plugins/settings/save.php +++ b/views/default/forms/plugins/settings/save.php @@ -1,6 +1,6 @@ <?php /** - * Used to show plugin user settings. + * Used to show plugin settings for both users and admins. * * @package Elgg.Core * @subpackage Plugins @@ -17,10 +17,15 @@ if ($type != 'user') { $type = ''; } -echo elgg_view("{$type}settings/$plugin_id/edit", $vars); +if (elgg_view_exists("plugins/$plugin_id/{$type}settings")) { + echo elgg_view("plugins/$plugin_id/{$type}settings", $vars); +} elseif (elgg_view_exists("{$type}settings/$plugin_id/edit")) { + elgg_deprecated_notice("{$type}settings/$plugin_id/edit was deprecated in favor of plugins/$plugin_id/{$type}settings", 1.8); + echo elgg_view("{$type}settings/$plugin_id/edit", $vars); +} -echo "<div>"; +echo '<div class="elgg-foot">'; echo elgg_view('input/hidden', array('name' => 'plugin_id', 'value' => $plugin_id)); echo elgg_view('input/hidden', array('name' => 'user_guid', 'value' => $user_guid)); echo elgg_view('input/submit', array('value' => elgg_echo('save'))); -echo "</div>"; +echo '</div>'; diff --git a/views/default/forms/plugins/usersettings/save.php b/views/default/forms/plugins/usersettings/save.php index 8532cdfd1..ced88f818 100644 --- a/views/default/forms/plugins/usersettings/save.php +++ b/views/default/forms/plugins/usersettings/save.php @@ -1,4 +1,14 @@ <?php +/** + * Plugin user settings + * + * Calls the plugin admin settings form body with type set to 'user' + * + * @package Elgg.Core + * @subpackage Plugins + */ + $vars['type'] = 'user'; +// Can't use elgg_view_form() because it overrides the $vars['action'] parameter echo elgg_view('forms/plugins/settings/save', $vars);
\ No newline at end of file diff --git a/views/default/forms/profile/edit.php b/views/default/forms/profile/edit.php index aaf9ac01e..cb0a37ca4 100644 --- a/views/default/forms/profile/edit.php +++ b/views/default/forms/profile/edit.php @@ -13,12 +13,15 @@ </div> <?php +$sticky_values = elgg_get_sticky_values('profile:edit'); + $profile_fields = elgg_get_config('profile_fields'); if (is_array($profile_fields) && count($profile_fields) > 0) { foreach ($profile_fields as $shortname => $valtype) { $metadata = elgg_get_metadata(array( 'guid' => $vars['entity']->guid, - 'metadata_name' => $shortname + 'metadata_name' => $shortname, + 'limit' => false )); if ($metadata) { if (is_array($metadata)) { @@ -39,6 +42,14 @@ if (is_array($profile_fields) && count($profile_fields) > 0) { $access_id = ACCESS_DEFAULT; } + // sticky form values take precedence over saved ones + if (isset($sticky_values[$shortname])) { + $value = $sticky_values[$shortname]; + } + if (isset($sticky_values['accesslevel'][$shortname])) { + $access_id = $sticky_values['accesslevel'][$shortname]; + } + ?> <div> <label><?php echo elgg_echo("profile:{$shortname}") ?></label> @@ -58,8 +69,11 @@ if (is_array($profile_fields) && count($profile_fields) > 0) { <?php } } + +elgg_clear_sticky_form('profile:edit'); + ?> -<div> +<div class="elgg-foot"> <?php echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity']->guid)); echo elgg_view('input/submit', array('value' => elgg_echo('save'))); diff --git a/views/default/forms/profile/fields/add.php b/views/default/forms/profile/fields/add.php index c700cf7f5..2087ec299 100644 --- a/views/default/forms/profile/fields/add.php +++ b/views/default/forms/profile/fields/add.php @@ -1,29 +1,29 @@ <?php /** - * Elgg profile index - * - * @package ElggProfile + * Add a new field to the set of custom profile fields */ $label_text = elgg_echo('profile:label'); $type_text = elgg_echo('profile:type'); $label_control = elgg_view('input/text', array('name' => 'label')); -$type_control = elgg_view('input/pulldown', array('name' => 'type', 'options_values' => array( - 'text' => elgg_echo('text'), - 'longtext' => elgg_echo('longtext'), - 'tags' => elgg_echo('tags'), - 'url' => elgg_echo('url'), - 'email' => elgg_echo('email') +$type_control = elgg_view('input/dropdown', array('name' => 'type', 'options_values' => array( + 'text' => elgg_echo('profile:field:text'), + 'longtext' => elgg_echo('profile:field:longtext'), + 'tags' => elgg_echo('profile:field:tags'), + 'url' => elgg_echo('profile:field:url'), + 'email' => elgg_echo('profile:field:email'), + 'location' => elgg_echo('profile:field:location'), + 'date' => elgg_echo('profile:field:date'), ))); $submit_control = elgg_view('input/submit', array('name' => elgg_echo('add'), 'value' => elgg_echo('add'))); $formbody = <<< END - <p>$label_text: $label_control - $type_text: $type_control - $submit_control</p> + <div>$label_text: $label_control</div> + <div class="elgg-foot">$type_text: $type_control + $submit_control</div> END; -echo autop(elgg_echo('profile:explainchangefields')); +echo elgg_autop(elgg_echo('profile:explainchangefields')); echo $formbody; diff --git a/views/default/forms/profile/fields/reset.php b/views/default/forms/profile/fields/reset.php deleted file mode 100644 index deb2d48ef..000000000 --- a/views/default/forms/profile/fields/reset.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -/** - * Reset profile fields form - */ - -$params = array( - 'value' => elgg_echo('profile:resetdefault'), - 'class' => 'elgg-button-action elgg-state-disabled', -); -echo elgg_view('input/submit', $params); diff --git a/views/default/forms/register.php b/views/default/forms/register.php index 8828e89e1..c0ee66f76 100644 --- a/views/default/forms/register.php +++ b/views/default/forms/register.php @@ -6,60 +6,75 @@ * @subpackage Core */ +elgg_load_js('elgg.register'); + +$password = $password2 = ''; $username = get_input('u'); $email = get_input('e'); $name = get_input('n'); -$admin_option = false; -if (elgg_is_admin_logged_in() && isset($vars['show_admin'])) { - $admin_option = true; +if (elgg_is_sticky_form('register')) { + extract(elgg_get_sticky_values('register')); + elgg_clear_sticky_form('register'); } ?> <div class="mtm"> - <label><?php echo elgg_echo('name'); ?></label> - <br /> - <?php echo elgg_view('input/text', array('name' => 'name', 'value' => $name)); ?> + <label><?php echo elgg_echo('name'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'name', + 'value' => $name, + 'class' => 'elgg-autofocus', + )); + ?> </div> <div> - <label><?php echo elgg_echo('email'); ?></label> - <br /> - <?php echo elgg_view('input/text', array('name' => 'email', 'value' => $email)); ?> + <label><?php echo elgg_echo('email'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'email', + 'value' => $email, + )); + ?> </div> <div> - <label><?php echo elgg_echo('username'); ?></label> - <br /> - <?php echo elgg_view('input/text', array('name' => 'username', 'value' => $username)); ?> + <label><?php echo elgg_echo('username'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'username', + 'value' => $username, + )); + ?> </div> <div> - <label><?php echo elgg_echo('password'); ?></label> - <br /> - <?php echo elgg_view('input/password', array('name' => 'password')); ?> + <label><?php echo elgg_echo('password'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password', + 'value' => $password, + )); + ?> </div> <div> - <label><?php echo elgg_echo('passwordagain'); ?></label> - <br /> - <?php echo elgg_view('input/password', array('name' => 'password2')); ?> + <label><?php echo elgg_echo('passwordagain'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password2', + 'value' => $password2, + )); + ?> </div> <?php // view to extend to add more fields to the registration form -echo elgg_view('register/extend'); +echo elgg_view('register/extend', $vars); // Add captcha hook -echo elgg_view('input/captcha'); - -if ($admin_option) { - echo elgg_view('input/checkboxes', array('name' => "admin", 'options' => array(elgg_echo('admin_option')))); -} +echo elgg_view('input/captcha', $vars); +echo '<div class="elgg-foot">'; echo elgg_view('input/hidden', array('name' => 'friend_guid', 'value' => $vars['friend_guid'])); echo elgg_view('input/hidden', array('name' => 'invitecode', 'value' => $vars['invitecode'])); echo elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('register'))); -?> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> - $(document).ready(function() { - $('input[name=name]').focus(); - }); -</script>
\ No newline at end of file +echo '</div>'; diff --git a/views/default/forms/user/passwordreset.php b/views/default/forms/user/passwordreset.php index 7b13f120c..5946fa7c0 100644 --- a/views/default/forms/user/passwordreset.php +++ b/views/default/forms/user/passwordreset.php @@ -1,19 +1,20 @@ <?php +/** + * Reset user password form + */ -$user = $vars['user']; - -echo elgg_echo('user:resetpassword:reset_password_confirm') . "<br />"; +echo elgg_autop(elgg_echo('user:resetpassword:reset_password_confirm')); echo elgg_view('input/hidden', array( 'name' => 'u', - 'value' => $user->guid + 'value' => $vars['guid'], )); echo elgg_view('input/hidden', array( 'name' => 'c', - 'value' => $code + 'value' => $vars['code'], )); echo elgg_view('input/submit', array( 'value' => elgg_echo('resetpassword') -));
\ No newline at end of file +)); diff --git a/views/default/forms/user/requestnewpassword.php b/views/default/forms/user/requestnewpassword.php index f2f276417..c90971eaf 100644 --- a/views/default/forms/user/requestnewpassword.php +++ b/views/default/forms/user/requestnewpassword.php @@ -11,16 +11,14 @@ <?php echo elgg_echo('user:password:text'); ?> </div> <div> - <label><?php echo elgg_echo('username'); ?></label> - <?php echo elgg_view('input/text', array('name' => 'username')); ?> + <label><?php echo elgg_echo('loginusername'); ?></label><br /> + <?php echo elgg_view('input/text', array( + 'name' => 'username', + 'class' => 'elgg-autofocus', + )); + ?> </div> <?php echo elgg_view('input/captcha'); ?> -<div> +<div class="elgg-foot"> <?php echo elgg_view('input/submit', array('value' => elgg_echo('request'))); ?> </div> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> - $(document).ready(function() { - $('input[name=username]').focus(); - }); -</script>
\ No newline at end of file diff --git a/views/default/forms/useradd.php b/views/default/forms/useradd.php index 1119d180f..4f337e4e4 100644 --- a/views/default/forms/useradd.php +++ b/views/default/forms/useradd.php @@ -5,39 +5,74 @@ * @package Elgg * @subpackage Core * - * @todo FIXME Forms 1.8: views in the forms/ directory should not be generating the <form> wrapper itself */ -$admin_option = false; -if ((elgg_get_logged_in_user_entity()->isAdmin()) && ($vars['show_admin'])) { - $admin_option = true; -} - -$form_body = "<div><label>" . elgg_echo('name') . "</label><br />" . elgg_view('input/text' , array('name' => 'name')) . "</div>"; -$form_body .= "<div><label>" . elgg_echo('username') . "</label><br />" . elgg_view('input/text' , array('name' => 'username')) . "</div>"; -$form_body .= "<div><label>" . elgg_echo('email') . "</label><br />" . elgg_view('input/text' , array('name' => 'email')) . "</div>"; -$form_body .= "<div><label>" . elgg_echo('password') . "</label><br />" . elgg_view('input/password' , array('name' => 'password')) . "</div>"; -$form_body .= "<div><label>" . elgg_echo('passwordagain') . "</label><br />" . elgg_view('input/password' , array('name' => 'password2')) . "</div>"; -$form_body .= "<div>"; +$name = $username = $email = $password = $password2 = $admin = ''; -if ($admin_option) { - $form_body .= elgg_view('input/checkboxes', array('name' => "admin", 'options' => array(elgg_echo('admin_option')))); - $form_body .= '</div><div>'; +if (elgg_is_sticky_form('useradd')) { + extract(elgg_get_sticky_values('useradd')); + elgg_clear_sticky_form('useradd'); + if (is_array($admin)) { + $admin = $admin[0]; + } } -$form_body .= elgg_view('input/submit', array('name' => 'submit', 'value' => elgg_echo('register'))) . "</div>"; ?> +<div> + <label><?php echo elgg_echo('name');?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'name', + 'value' => $name, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('username'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'username', + 'value' => $username, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('email'); ?></label><br /> + <?php + echo elgg_view('input/text', array( + 'name' => 'email', + 'value' => $email, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('password'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password', + 'value' => $password, + )); + ?> +</div> +<div> + <label><?php echo elgg_echo('passwordagain'); ?></label><br /> + <?php + echo elgg_view('input/password', array( + 'name' => 'password2', + 'value' => $password2, + )); + ?> +</div> +<div> +<?php + echo elgg_view('input/checkboxes', array( + 'name' => "admin", + 'options' => array(elgg_echo('admin_option') => 1), + 'value' => $admin, + )); +?> +</div> -<div class="elgg-module elgg-module-inline"> - <div class="elgg-head"> - <h3><?php echo elgg_echo('adduser'); ?></h3> - </div> - <div class="elgg-body"> - <?php - echo elgg_view('input/form', array( - 'action' => "action/useradd", - 'body' => $form_body, - )); - ?> - </div> +<div class="elgg-foot"> + <?php echo elgg_view('input/submit', array('value' => elgg_echo('register'))); ?> </div>
\ No newline at end of file diff --git a/views/default/forms/usersettings/save.php b/views/default/forms/usersettings/save.php index 2a240d036..71323083f 100644 --- a/views/default/forms/usersettings/save.php +++ b/views/default/forms/usersettings/save.php @@ -1,7 +1,13 @@ <?php -$form_body = elgg_view("forms/account/settings"); +/** + * User account settings. + * + * Plugins should extend "forms/account/settings" to add to the settings. + */ -$form_body .= '<div class="bta">'; +$form_body = elgg_view("forms/account/settings", $vars); + +$form_body .= '<div class="elgg-foot">'; $form_body .= elgg_view('input/submit', array('value' => elgg_echo('save'))); $form_body .= '</div>'; diff --git a/views/default/forms/widgets/save.php b/views/default/forms/widgets/save.php index d16318cd1..6959b2a82 100644 --- a/views/default/forms/widgets/save.php +++ b/views/default/forms/widgets/save.php @@ -14,7 +14,7 @@ $custom_form_section = elgg_view($edit_view, array('entity' => $widget)); $access = ''; if ($show_access) { - $access = elgg_view('input/access', array( + $access = elgg_echo('access') . ': ' . elgg_view('input/access', array( 'name' => 'params[access_id]', 'value' => $widget->access_id, )); @@ -29,11 +29,13 @@ $submit = elgg_view('input/submit', array('value' => elgg_echo('save'))); $body = <<<___END $custom_form_section - $access <div> + $access + </div> + <div class="elgg-foot"> $hidden $submit </div> ___END; -echo $body;
\ No newline at end of file +echo $body; diff --git a/views/default/graphics/ajax_loader.php b/views/default/graphics/ajax_loader.php index 77c1fbf4c..d5ce87ea9 100644 --- a/views/default/graphics/ajax_loader.php +++ b/views/default/graphics/ajax_loader.php @@ -6,6 +6,7 @@ * @subpackage Core * * @uses $vars['id'] CSS id + * @uses $vars['class'] Optional additional CSS class * @uses $vars['hidden'] Begin hidden? (true) */ @@ -13,14 +14,18 @@ if (isset($vars['id'])) { $id = "id=\"{$vars['id']}\""; } -$hidden = 'hidden'; -if (isset($vars['hidden']) && $vars['hidden'] == false) { - $hidden = ''; +$class = 'elgg-ajax-loader'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +if (elgg_extract('hidden', $vars, true)) { + $class = "$class hidden"; } $loader = <<< END -<div class="elgg-ajax-loader $hidden" $id></div> +<div class="$class" $id></div> END; diff --git a/views/default/group/elements/summary.php b/views/default/group/elements/summary.php new file mode 100644 index 000000000..395ed5292 --- /dev/null +++ b/views/default/group/elements/summary.php @@ -0,0 +1,13 @@ +<?php +/** + * Group summary + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['title'] Title link (optional) false = no title, '' = default + * @uses $vars['metadata'] HTML for entity metadata and actions (optional) + * @uses $vars['subtitle'] HTML for the subtitle (optional) + * @uses $vars['tags'] HTML for the tags (optional) + * @uses $vars['content'] HTML for the entity content (optional) + */ + +echo elgg_view('object/elements/summary', $vars); diff --git a/views/default/group/search/finishblurb.php b/views/default/group/search/finishblurb.php index a21f95881..ceaeb0ff0 100644 --- a/views/default/group/search/finishblurb.php +++ b/views/default/group/search/finishblurb.php @@ -9,7 +9,7 @@ elgg_deprecated_notice('view groups/search/finishblurb was deprecated.', 1.7); if ($vars['count'] > $vars['threshold']) { ?> -<div class="contentWrapper"><a href="<?php echo elgg_get_site_url(); ?>pg/search/groups/?tag=<?php echo urlencode($vars['tag']); ?>"> +<div class="contentWrapper"><a href="<?php echo elgg_get_site_url(); ?>search/groups?tag=<?php echo urlencode($vars['tag']); ?>"> <?php echo elgg_echo("group:search:finishblurb"); ?></a> diff --git a/views/default/icon/default.php b/views/default/icon/default.php index c5749ba04..7f13a1189 100644 --- a/views/default/icon/default.php +++ b/views/default/icon/default.php @@ -5,9 +5,11 @@ * @package Elgg * @subpackage Core * - * @uses $vars['entity'] The entity the icon represents - uses getIconURL() method - * @uses $vars['size'] topbar, tiny, small, medium (default), large, master - * @uses $vars['href'] Optional override for link + * @uses $vars['entity'] The entity the icon represents - uses getIconURL() method + * @uses $vars['size'] topbar, tiny, small, medium (default), large, master + * @uses $vars['href'] Optional override for link + * @uses $vars['img_class'] Optional CSS class added to img + * @uses $vars['link_class'] Optional CSS class for the link */ $entity = $vars['entity']; @@ -18,25 +20,61 @@ if (!in_array($vars['size'], $sizes)) { $vars['size'] = "medium"; } +$class = elgg_extract('img_class', $vars, ''); + if (isset($entity->name)) { $title = $entity->name; } else { $title = $entity->title; } +$title = htmlspecialchars($title, ENT_QUOTES, 'UTF-8', false); $url = $entity->getURL(); if (isset($vars['href'])) { $url = $vars['href']; } -$img_src = $entity->getIconURL($vars['size']); -$img = "<img src=\"$img_src\" alt=\"$title\" />"; +$icon_sizes = elgg_get_config('icon_sizes'); +$size = $vars['size']; + +if (!isset($vars['width'])) { + $vars['width'] = $size != 'master' ? $icon_sizes[$size]['w'] : null; +} +if (!isset($vars['height'])) { + $vars['height'] = $size != 'master' ? $icon_sizes[$size]['h'] : null; +} + +$img_params = array( + 'src' => $entity->getIconURL($vars['size']), + 'alt' => $title, +); + +if (!empty($class)) { + $img_params['class'] = $class; +} + +if (!empty($vars['width'])) { + $img_params['width'] = $vars['width']; +} + +if (!empty($vars['height'])) { + $img_params['height'] = $vars['height']; +} + +$img = elgg_view('output/img', $img_params); if ($url) { - echo elgg_view('output/url', array( + $params = array( 'href' => $url, 'text' => $img, - )); + 'is_trusted' => true, + ); + $class = elgg_extract('link_class', $vars, ''); + if ($class) { + $params['class'] = $class; + } + + echo elgg_view('output/url', $params); } else { echo $img; } diff --git a/views/default/icon/user/default.php b/views/default/icon/user/default.php index a288358a2..c0b0e7483 100644 --- a/views/default/icon/user/default.php +++ b/views/default/icon/user/default.php @@ -5,9 +5,14 @@ * Rounded avatar corners - CSS3 method * uses avatar as background image so we can clip it with border-radius in supported browsers * - * @uses $vars['entity'] The user entity. If none specified, the current user is assumed. - * @uses $vars['size'] The size - tiny, small, medium or large. (medium) - * @uses $vars['hover'] Display the hover menu? (true) + * @uses $vars['entity'] The user entity. If none specified, the current user is assumed. + * @uses $vars['size'] The size - tiny, small, medium or large. (medium) + * @uses $vars['use_hover'] Display the hover menu? (true) + * @uses $vars['use_link'] Wrap a link around image? (true) + * @uses $vars['class'] Optional class added to the .elgg-avatar div + * @uses $vars['img_class'] Optional CSS class added to img + * @uses $vars['link_class'] Optional CSS class for the link + * @uses $vars['href'] Optional override of the link href */ $user = elgg_extract('entity', $vars, elgg_get_logged_in_user_entity()); @@ -16,11 +21,18 @@ if (!in_array($size, array('topbar', 'tiny', 'small', 'medium', 'large', 'master $size = 'medium'; } +$class = "elgg-avatar elgg-avatar-$size"; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +$use_link = elgg_extract('use_link', $vars, true); + if (!($user instanceof ElggUser)) { return true; } -$name = htmlspecialchars($user->name, ENT_QUOTES, 'UTF-8'); +$name = htmlspecialchars($user->name, ENT_QUOTES, 'UTF-8', false); $username = $user->username; $icontime = $user->icontime; @@ -29,18 +41,40 @@ if (!$icontime) { } $js = elgg_extract('js', $vars, ''); +if ($js) { + elgg_deprecated_notice("Passing 'js' to icon views is deprecated.", 1.8, 5); +} -$hover = elgg_extract('hover', $vars, true); +$img_class = ''; +if (isset($vars['img_class'])) { + $img_class = $vars['img_class']; +} + +$use_hover = elgg_extract('use_hover', $vars, true); +if (isset($vars['override'])) { + elgg_deprecated_notice("Use 'use_hover' rather than 'override' with user avatars", 1.8, 5); + $use_hover = false; +} +if (isset($vars['hover'])) { + // only 1.8.0 was released with 'hover' as the key + $use_hover = $vars['hover']; +} $spacer_url = elgg_get_site_url() . '_graphics/spacer.gif'; -$icon_url = $user->getIconURL($size); -$icon = "<img src=\"$spacer_url\" alt=\"$name\" title=\"$name\" $js style=\"background: url($icon_url) no-repeat;\" />"; +$icon_url = elgg_format_url($user->getIconURL($size)); +$icon = elgg_view('output/img', array( + 'src' => $spacer_url, + 'alt' => $name, + 'title' => $name, + 'class' => $img_class, + 'style' => "background: url($icon_url) no-repeat;", +)); -$show_menu = $hover && (elgg_is_admin_logged_in() || !$user->isBanned()); +$show_menu = $use_hover && (elgg_is_admin_logged_in() || !$user->isBanned()); ?> -<div class="elgg-avatar elgg-avatar-<?php echo $size; ?>"> +<div class="<?php echo $class; ?>"> <?php if ($show_menu) { @@ -49,13 +83,21 @@ if ($show_menu) { 'username' => $username, 'name' => $name, ); - echo "<span class=\"elgg-icon elgg-icon-hover-menu\"></span>"; + echo elgg_view_icon('hover-menu'); echo elgg_view_menu('user_hover', $params); } -echo elgg_view('output/url', array( - 'href' => $user->getURL(), - 'text' => $icon, -)); +if ($use_link) { + $class = elgg_extract('link_class', $vars, ''); + $url = elgg_extract('href', $vars, $user->getURL()); + echo elgg_view('output/url', array( + 'href' => $url, + 'text' => $icon, + 'is_trusted' => true, + 'class' => $class, + )); +} else { + echo "<a>$icon</a>"; +} ?> </div> diff --git a/views/default/input/access.php b/views/default/input/access.php index 7fa2323bf..137eea288 100644 --- a/views/default/input/access.php +++ b/views/default/input/access.php @@ -3,21 +3,30 @@ * Elgg access level input * Displays a dropdown input field * - * @package Elgg - * @subpackage Core - * - * @uses $vars['value'] The current value, if any - * @uses $vars['options_values'] - * @uses $vars['name'] The name of the input field + * @uses $vars['value'] The current value, if any + * @uses $vars['options_values'] Array of value => label pairs (overrides default) + * @uses $vars['name'] The name of the input field + * @uses $vars['entity'] Optional. The entity for this access control (uses access_id) + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-access {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-access"; +} + $defaults = array( - 'class' => 'elgg-input-access', - 'disabled' => FALSE, + 'disabled' => false, 'value' => get_default_access(), 'options_values' => get_write_access_array(), ); +if (isset($vars['entity'])) { + $defaults['value'] = $vars['entity']->access_id; + unset($vars['entity']); +} + $vars = array_merge($defaults, $vars); if ($vars['value'] == ACCESS_DEFAULT) { @@ -26,4 +35,4 @@ if ($vars['value'] == ACCESS_DEFAULT) { if (is_array($vars['options_values']) && sizeof($vars['options_values']) > 0) { echo elgg_view('input/dropdown', $vars); -}
\ No newline at end of file +} diff --git a/views/default/input/autocomplete.php b/views/default/input/autocomplete.php index 1093de2d3..e58eb1ae8 100644 --- a/views/default/input/autocomplete.php +++ b/views/default/input/autocomplete.php @@ -7,35 +7,43 @@ * * @todo This currently only works for ONE AUTOCOMPLETE TEXT FIELD on a page. * - * @uses $vars['match_on'] Array | str What to match on. all|array(groups|users|friends|subtype) + * @uses $vars['value'] Current value for the text input + * @uses $vars['match_on'] Array | str What to match on. all|array(groups|users|friends) * @uses $vars['match_owner'] Bool. Match only entities that are owned by logged in user. - * + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-autocomplete {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-autocomplete"; +} + $defaults = array( - 'class' => '', 'value' => '', + 'disabled' => false, ); $vars = array_merge($defaults, $vars); -$vars['class'] = trim("elgg-input-autocomplete {$vars['class']}"); - -$ac_url_params = http_build_query(array( - 'match_on' => $vars['match_on'], - 'match_owner' => $vars['match_owner'], -)); +$params = array(); +if (isset($vars['match_on'])) { + $params['match_on'] = $vars['match_on']; + unset($vars['match_on']); +} +if (isset($vars['match_owner'])) { + $params['match_owner'] = $vars['match_owner']; + unset($vars['match_owner']); +} +$ac_url_params = http_build_query($params); -unset($vars['match_on']); -unset($vars['match_owner']); - -elgg_register_js('js/lib/autocomplete.js', 'autocomplete', 'head'); +elgg_load_js('elgg.autocomplete'); +elgg_load_js('jquery.ui.autocomplete.html'); ?> <script type="text/javascript"> elgg.provide('elgg.autocomplete'); -elgg.autocomplete.url = "<?php elgg_get_site_url() . 'pg/livesearch?' . $ac_url_params; ?>"; +elgg.autocomplete.url = "<?php echo elgg_get_site_url() . 'livesearch?' . $ac_url_params; ?>"; </script> <input type="text" <?php echo elgg_format_attributes($vars); ?> /> - diff --git a/views/default/input/button.php b/views/default/input/button.php index 52a85ace6..9957fdc54 100644 --- a/views/default/input/button.php +++ b/views/default/input/button.php @@ -5,12 +5,18 @@ * @package Elgg * @subpackage Core * - * @uses $vars['src'] Src of an image + * @uses $vars['src'] Src of an image + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-button {$vars['class']}"; +} else { + $vars['class'] = "elgg-button"; +} + $defaults = array( 'type' => 'button', - 'class' => 'elgg-button-submit', ); $vars = array_merge($defaults, $vars); @@ -27,8 +33,8 @@ switch ($vars['type']) { } // blank src if trying to access an offsite image. @todo why? -if (strpos($vars['src'], elgg_get_site_url()) === false) { +if (isset($vars['src']) && strpos($vars['src'], elgg_get_site_url()) === false) { $vars['src'] = ""; } ?> -<input <?php echo elgg_format_attributes($vars); ?> />
\ No newline at end of file +<input <?php echo elgg_format_attributes($vars); ?> /> diff --git a/views/default/input/calendar.php b/views/default/input/calendar.php index 553a254ce..52c84ff82 100644 --- a/views/default/input/calendar.php +++ b/views/default/input/calendar.php @@ -1,6 +1,6 @@ <?php -// @deprecated Use datepicker instead. +// @deprecated Use input/date instead. -elgg_deprecated_notice('view: input/calendar is deprecated by input/datepicker', 1.8); +elgg_deprecated_notice('view: input/calendar is deprecated by input/date', 1.8); echo elgg_view('input/datepicker', $vars);
\ No newline at end of file diff --git a/views/default/input/captcha.php b/views/default/input/captcha.php index 210e0f50a..1c2e22aaa 100644 --- a/views/default/input/captcha.php +++ b/views/default/input/captcha.php @@ -1,6 +1,6 @@ <?php /** - * This view provides a hook for third parties to provide captcha behaviour. + * This view provides a hook for third parties to provide a CAPTCHA. * * @package Elgg * @subpackage Core diff --git a/views/default/input/checkbox.php b/views/default/input/checkbox.php index 898fe8458..3dc75c6c3 100644 --- a/views/default/input/checkbox.php +++ b/views/default/input/checkbox.php @@ -10,13 +10,20 @@ * Pass input tag attributes as key value pairs. For a list of allowable * attributes, see http://www.w3schools.com/tags/tag_input.asp * - * @uses mixed $vars['default'] The default value to submit if not checked. - * Optional, defaults to 0. Set to false for no default. + * @uses $vars['default'] The default value to submit if not checked. + * Optional, defaults to 0. Set to false for no default. + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-checkbox {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-checkbox"; +} + $defaults = array( - 'class' => 'elgg-input-checkbox', 'default' => 0, + 'disabled' => false, ); $vars = array_merge($defaults, $vars); @@ -29,5 +36,4 @@ if (isset($vars['name']) && $default !== false) { } ?> - -<input type="checkbox" <?php echo elgg_format_attributes($vars); ?> />
\ No newline at end of file +<input type="checkbox" <?php echo elgg_format_attributes($vars); ?> /> diff --git a/views/default/input/checkboxes.php b/views/default/input/checkboxes.php index c78fe4db0..db4b06949 100644 --- a/views/default/input/checkboxes.php +++ b/views/default/input/checkboxes.php @@ -15,68 +15,76 @@ * @package Elgg * @subpackage Core * - * @uses string $vars['name'] The name of the input fields - * (Forced to an array by appending []) - * @uses array $vars['options'] An array of strings representing the - * label => option for the each checkbox field - * @uses string $vars['id'] The id for each input field. Optional. - * (Only use this with a single value.) - * @uses string $vars['default'] The default value to send if nothing is checked. - * Optional, defaults to 0. Set to FALSE for no default. - * @uses bool $vars['disabled'] Make all input elements disabled. Optional. - * @uses string $vars['value'] The current value. Optional. - * @uses string $vars['class'] Additional class of the list. Optional. - * @uses string $vars['align'] 'horizontal' or 'vertical' Default: 'vertical' + * @uses string $vars['name'] The name of the input fields + * (Forced to an array by appending []) + * @uses array $vars['options'] An array of strings representing the + * label => option for the each checkbox field + * @uses string $vars['default'] The default value to send if nothing is checked. + * Optional, defaults to 0. Set to FALSE for no default. + * @uses bool $vars['disabled'] Make all input elements disabled. Optional. + * @uses string $vars['value'] The current value. Single value or array. Optional. + * @uses string $vars['class'] Additional class of the list. Optional. + * @uses string $vars['align'] 'horizontal' or 'vertical' Default: 'vertical' * */ -$additional_class = elgg_extract('class', $vars); -$align = elgg_extract('align', $vars, 'vertical'); -$value = (isset($vars['value'])) ? $vars['value'] : NULL; -$value_array = (is_array($value)) ? array_map('elgg_strtolower', $value) : array(elgg_strtolower($value)); -$name = (isset($vars['name'])) ? $vars['name'] : ''; -$options = (isset($vars['options']) && is_array($vars['options'])) ? $vars['options'] : array(); -$default = (isset($vars['default'])) ? $vars['default'] : 0; +$defaults = array( + 'align' => 'vertical', + 'value' => array(), + 'default' => 0, + 'disabled' => false, + 'options' => array(), + 'name' => '', +); -$id = (isset($vars['id'])) ? $vars['id'] : ''; -$disabled = (isset($vars['disabled'])) ? $vars['disabled'] : FALSE; -$js = (isset($vars['js'])) ? $vars['js'] : ''; +$vars = array_merge($defaults, $vars); -$class = "elgg-input-checkboxes elgg-$align"; -if ($additional_class) { - $class = " $additional_class"; +$class = "elgg-input-checkboxes elgg-{$vars['align']}"; +if (isset($vars['class'])) { + $class .= " {$vars['class']}"; + unset($vars['class']); } -if ($options && count($options) > 0) { +$id = ''; +if (isset($vars['id'])) { + $id = "id=\"{$vars['id']}\""; + unset($vars['id']); +} + +if (is_array($vars['value'])) { + $values = array_map('elgg_strtolower', $vars['value']); +} else { + $values = array(elgg_strtolower($vars['value'])); +} + +$input_vars = $vars; +$input_vars['default'] = false; +if ($vars['name']) { + $input_vars['name'] = "{$vars['name']}[]"; +} +unset($input_vars['align']); +unset($input_vars['options']); + +if (count($vars['options']) > 0) { // include a default value so if nothing is checked 0 will be passed. - if ($name && $default !== FALSE) { - echo "<input type=\"hidden\" name=\"$name\" value=\"$default\" />"; + if ($vars['name'] && $vars['default'] !== false) { + echo "<input type=\"hidden\" name=\"{$vars['name']}\" value=\"{$vars['default']}\" />"; } - echo "<ul class=\"$class\">"; - foreach ($options as $label => $option) { + echo "<ul class=\"$class\" $id>"; + foreach ($vars['options'] as $label => $value) { // @deprecated 1.8 Remove in 1.9 if (is_integer($label)) { elgg_deprecated_notice('$vars[\'options\'] must be an associative array in input/checkboxes', 1.8); - $label = $option; + $label = $value; } - $input_vars = array( - 'checked' => in_array(elgg_strtolower($option), $value_array), - 'value' => $option, - 'disabled' => $disabled, - 'id' => $id, - 'js' => $js, - 'default' => false, - ); - - if ($name) { - $input_vars['name'] = "{$name}[]"; - } + $input_vars['checked'] = in_array(elgg_strtolower($value), $values); + $input_vars['value'] = $value; $input = elgg_view('input/checkbox', $input_vars); - echo "<li><label>{$input}{$label}</label></li>"; + echo "<li><label>$input$label</label></li>"; } echo '</ul>'; -}
\ No newline at end of file +} diff --git a/views/default/input/date.php b/views/default/input/date.php new file mode 100644 index 000000000..828ce5520 --- /dev/null +++ b/views/default/input/date.php @@ -0,0 +1,56 @@ +<?php +/** + * Elgg date input + * Displays a text field with a popup date picker. + * + * The elgg.ui JavaScript library initializes the jQueryUI datepicker based + * on the CSS class .elgg-input-date. It uses the ISO 8601 standard for date + * representation: yyyy-mm-dd. + * + * Unix timestamps are supported by setting the 'timestamp' parameter to true. + * The date is still displayed to the user in a text format but is submitted as + * a unix timestamp in seconds. + * + * @uses $vars['value'] The current value, if any (as a unix timestamp) + * @uses $vars['class'] Additional CSS class + * @uses $vars['timestamp'] Store as a Unix timestamp in seconds. Default = false + * Note: you cannot use an id with the timestamp option. + */ + +//@todo popup_calendar deprecated in 1.8. Remove in 2.0 +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-date popup_calendar {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-date popup_calendar"; +} + +$defaults = array( + 'value' => '', + 'disabled' => false, + 'timestamp' => false, +); + +$vars = array_merge($defaults, $vars); + +$timestamp = $vars['timestamp']; +unset($vars['timestamp']); + +if ($timestamp) { + echo elgg_view('input/hidden', array( + 'name' => $vars['name'], + 'value' => $vars['value'], + )); + + $vars['class'] = "{$vars['class']} elgg-input-timestamp"; + $vars['id'] = $vars['name']; + unset($vars['name']); + unset($vars['internalname']); +} + +// convert timestamps to text for display +if (is_numeric($vars['value'])) { + $vars['value'] = gmdate('Y-m-d', $vars['value']); +} + +$attributes = elgg_format_attributes($vars); +echo "<input type=\"text\" $attributes />"; diff --git a/views/default/input/datepicker.php b/views/default/input/datepicker.php index 4af54096b..8955e6e53 100644 --- a/views/default/input/datepicker.php +++ b/views/default/input/datepicker.php @@ -1,37 +1,6 @@ <?php /** - * Elgg datepicker input - * Displays a text field with a popup date picker. - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag - * @uses $vars['name'] The name of the input field - * + * @deprecated use input/date instead */ - -$cal_name = sanitise_string($vars['name']); - -if (isset($vars['class'])) { - $class = "{$vars['class']} popup_calendar"; -} else { - $class = 'popup_calendar'; -} - -if ($vars['value'] > 86400) { - //$val = date("F j, Y", $vars['value']); - $val = date('n/d/Y', $vars['value']); -} else { - $val = $vars['value']; -} - -?> -<input type="text" name="<?php echo $vars['name']; ?>" value="<?php echo $val; ?>" /> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> - $(document).ready(function() { - $('input[type=text][name=<?php echo $cal_name; ?>]').datepicker(); - }); -</script> +elgg_deprecated_notice('input/datepicker was deprecated in favor of input/date', 1.8); +echo elgg_view('input/date', $vars);
\ No newline at end of file diff --git a/views/default/input/dropdown.php b/views/default/input/dropdown.php index 6fd97d3b5..9f07874f1 100644 --- a/views/default/input/dropdown.php +++ b/views/default/input/dropdown.php @@ -3,7 +3,7 @@ * Elgg dropdown input * Displays a dropdown (select) input field * - * NB: Default values of FALSE or NULL will match '' (empty string) and not 0. + * @warning Default values of FALSE or NULL will match '' (empty string) but not 0. * * @package Elgg * @subpackage Core @@ -11,16 +11,27 @@ * @uses $vars['value'] The current value, if any * @uses $vars['options'] An array of strings representing the options for the dropdown field * @uses $vars['options_values'] An associative array of "value" => "option" - * where "value" is an internal name and "option" is + * where "value" is the name and "option" is * the value displayed on the button. Replaces * $vars['options'] when defined. + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-dropdown {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-dropdown"; +} + $defaults = array( - 'class' => 'elgg-input-dropdown', - 'disabled' => FALSE, + 'disabled' => false, + 'value' => '', + 'options_values' => array(), + 'options' => array(), ); +$vars = array_merge($defaults, $vars); + $options_values = $vars['options_values']; unset($vars['options_values']); @@ -30,10 +41,8 @@ unset($vars['options']); $value = $vars['value']; unset($vars['value']); -$attrs = array_merge($defaults, $vars); - ?> -<select <?php echo elgg_format_attributes($attrs); ?>> +<select <?php echo elgg_format_attributes($vars); ?>> <?php if ($options_values) { @@ -47,13 +56,15 @@ if ($options_values) { echo "<option $option_attrs>$option</option>"; } } else { - foreach ($options as $option) { + if (is_array($options)) { + foreach ($options as $option) { - $option_attrs = elgg_format_attributes(array( - 'selected' => (string)$option == (string)$value - )); + $option_attrs = elgg_format_attributes(array( + 'selected' => (string)$option == (string)$value + )); - echo "<option $option_attrs>$option</option>"; + echo "<option $option_attrs>$option</option>"; + } } } ?> diff --git a/views/default/input/email.php b/views/default/input/email.php index a6097143a..190fb88c6 100644 --- a/views/default/input/email.php +++ b/views/default/input/email.php @@ -5,11 +5,18 @@ * * @package Elgg * @subpackage Core + * + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-email {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-email"; +} + $defaults = array( - 'class' => 'elgg-input-email', - 'disabled' => FALSE, + 'disabled' => false, ); $vars = array_merge($defaults, $vars); diff --git a/views/default/input/file.php b/views/default/input/file.php index 4c42042e8..452fe72b9 100644 --- a/views/default/input/file.php +++ b/views/default/input/file.php @@ -7,20 +7,25 @@ * @subpackage Core * * @uses $vars['value'] The current value if any - * + * @uses $vars['class'] Additional CSS class */ if (!empty($vars['value'])) { echo elgg_echo('fileexists') . "<br />"; } +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-file {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-file"; +} + $defaults = array( - 'class' => 'elgg-input-file', - 'disabled' => FALSE, - 'size' => 30, + 'disabled' => false, + 'size' => 30, ); $attrs = array_merge($defaults, $vars); ?> -<input type="file" <?php echo elgg_format_attributes($attrs)?> />
\ No newline at end of file +<input type="file" <?php echo elgg_format_attributes($attrs); ?> /> diff --git a/views/default/input/form.php b/views/default/input/form.php index 6d5824cd8..df30133b3 100644 --- a/views/default/input/form.php +++ b/views/default/input/form.php @@ -1,14 +1,17 @@ <?php /** * Create a form for data submission. - * Use this view for forms rather than creating a form tag in the wild as it provides - * extra security which help prevent CSRF attacks. + * Use this view for forms as it provides protection against CSRF attacks. * * @package Elgg * @subpackage Core * * @uses $vars['body'] The body of the form (made up of other input/xxx views and html + * @uses $vars['action'] The action URL of the form + * @uses $vars['method'] The submit method: post (default) or get + * @uses $vars['enctype'] Set to 'multipart/form-data' if uploading a file * @uses $vars['disable_security'] turn off CSRF security by setting to true + * @uses $vars['class'] Additional class for the form */ $defaults = array( @@ -18,6 +21,12 @@ $defaults = array( $vars = array_merge($defaults, $vars); +if (isset($vars['class'])) { + $vars['class'] = "elgg-form {$vars['class']}"; +} else { + $vars['class'] = 'elgg-form'; +} + $vars['action'] = elgg_normalize_url($vars['action']); $vars['method'] = strtolower($vars['method']); @@ -32,4 +41,4 @@ unset($vars['disable_security']); $attributes = elgg_format_attributes($vars); -echo "<form $attributes><fieldset>$body</fieldset></form>";
\ No newline at end of file +echo "<form $attributes><fieldset>$body</fieldset></form>"; diff --git a/views/default/core/friends/picker.php b/views/default/input/friendspicker.php index c17a484f3..40708c890 100644 --- a/views/default/core/friends/picker.php +++ b/views/default/input/friendspicker.php @@ -3,17 +3,21 @@ * Elgg friends picker * Lists the friends picker * + * @warning Below is the ugliest code in Elgg. It needs to be rewritten or removed + * * @package Elgg * @subpackage Core * * @uses $vars['entities'] The array of ElggUser objects + * @uses $vars['name'] + * @uses $vars['value'] + * @uses $vars['highlight'] + * @uses $vars['callback'] */ -$base = elgg_get_site_url(); -$viewtype = elgg_get_viewtype(); -elgg_register_js("{$base}vendors/jquery/jquery.easing.1.3.packed.js", 'jquery.easing'); -$url = elgg_get_simplecache_url('js', 'friendsPickerv1'); -elgg_register_js($url, 'friendsPicker'); +elgg_load_js('elgg.friendspicker'); +elgg_load_js('jquery.easing'); + $chararray = elgg_echo('friendspicker:chararray'); @@ -74,13 +78,9 @@ if (isset($vars['formtarget'])) { // Sort users by letter if (is_array($vars['entities']) && sizeof($vars['entities'])) { foreach($vars['entities'] as $user) { - if (is_callable('mb_substr')) { - $letter = strtoupper(mb_substr($user->name,0,1)); - } else { - $letter = strtoupper(substr($user->name,0,1)); - } + $letter = elgg_strtoupper(elgg_substr($user->name, 0, 1)); - if (!substr_count($chararray,$letter)) { + if (!elgg_substr_count($chararray, $letter)) { $letter = "*"; } if (!isset($users[$letter])) { @@ -101,7 +101,7 @@ foreach ($users as $letter => $letter_users) { if (!$callback) { ?> - <div class="friends-picker"> + <div class="friends-picker-main-wrapper"> <?php @@ -120,7 +120,7 @@ if (!isset($vars['replacement'])) { ?> <?php //@todo JS 1.8: no ?> <script language="text/javascript"> - $(function() { // onload...do + $(function() { // onload...do $('#collectionMembersForm<?php echo $friendspicker; ?>').submit(function() { var inputs = []; $(':input', this).each(function() { @@ -147,6 +147,11 @@ if (!isset($vars['replacement'])) { <form id="collectionMembersForm<?php echo $friendspicker; ?>" action="<?php echo $formtarget; ?>" method="post"> <!-- action="" method=""> --> <?php + echo elgg_view('input/securitytoken'); + echo elgg_view('input/hidden', array( + 'name' => 'collection_id', + 'value' => $vars['collection_id'], + )); } ?> @@ -157,11 +162,7 @@ if (!isset($vars['replacement'])) { // Initialise letters $chararray .= "*"; - if (is_callable('mb_substr')) { - $letter = mb_substr($chararray,0,1); - } else { - $letter = substr($chararray,0,1); - } + $letter = elgg_substr($chararray, 0, 1); $letpos = 0; while (1 == 1) { ?> @@ -182,12 +183,10 @@ if (!isset($vars['replacement'])) { } //echo "<p>" . $user->name . "</p>"; - $label = elgg_view("profile/icon",array('entity' => $friend, 'size' => 'tiny', 'override' => true)); + $label = elgg_view_entity_icon($friend, 'tiny', array('use_hover' => false)); $options[$label] = $friend->getGUID(); - if ($vars['highlight'] == 'all' - && !in_array($letter,$activeletters)) { - + if ($vars['highlight'] == 'all' && !in_array($letter,$activeletters)) { $activeletters[] = $letter; } @@ -238,23 +237,14 @@ if (!isset($vars['replacement'])) { </div> </div> <?php - //if ($letter == 'Z') break; - if (is_callable('mb_substr')) { - $substr = mb_substr($chararray,strlen($chararray) - 1,1); - } else { - $substr = substr($chararray,strlen($chararray) - 1,1); - } + $substr = elgg_substr($chararray, elgg_strlen($chararray) - 1, 1); if ($letter == $substr) { break; } //$letter++; $letpos++; - if (is_callable('mb_substr')) { - $letter = mb_substr($chararray,$letpos,1); - } else { - $letter = substr($chararray,$letpos,1); - } + $letter = elgg_substr($chararray, $letpos, 1); } ?> @@ -270,8 +260,8 @@ if ($formtarget) { ?> <div class="clearfix"></div> <div class="friendspicker-savebuttons"> - <input type="submit" class="elgg-button-submit" value="<?php echo elgg_echo('save'); ?>" /> - <input type="button" class="elgg-button-cancel" value="<?php echo elgg_echo('cancel'); ?>" onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();" /> + <input type="submit" class="elgg-button elgg-button-submit" value="<?php echo elgg_echo('save'); ?>" /> + <input type="button" class="elgg-button elgg-button-cancel" value="<?php echo elgg_echo('cancel'); ?>" onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();" /> <br /></div> </form> @@ -307,14 +297,14 @@ if (!isset($vars['replacement'])) { // initialise picker $("div#friends-picker<?php echo $friendspicker; ?>").friendsPicker(<?php echo $friendspicker; ?>); </script> -<script> +<script type="text/javascript"> $(document).ready(function () { // manually add class to corresponding tab for panels that have content <?php if (sizeof($activeletters) > 0) //$chararray = elgg_echo('friendspicker:chararray'); foreach($activeletters as $letter) { - $tab = strpos($chararray, $letter) + 1; + $tab = elgg_strpos($chararray, $letter) + 1; ?> $("div#friends-picker-navigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent"); <?php diff --git a/views/default/input/location.php b/views/default/input/location.php new file mode 100644 index 000000000..4cf05c72a --- /dev/null +++ b/views/default/input/location.php @@ -0,0 +1,27 @@ +<?php +/** + * Location input field + * + * @uses $vars['entity'] The ElggEntity that has a location + * @uses $vars['value'] The default value for the location + * @uses $vars['class'] Additional CSS class + */ + +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-location {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-location"; +} + +$defaults = array( + 'disabled' => false, +); + +if (isset($vars['entity'])) { + $defaults['value'] = $vars['entity']->location; + unset($vars['entity']); +} + +$vars = array_merge($defaults, $vars); + +echo elgg_view('input/tag', $vars); diff --git a/views/default/input/longtext.php b/views/default/input/longtext.php index 43534eec7..61dc7ca19 100644 --- a/views/default/input/longtext.php +++ b/views/default/input/longtext.php @@ -1,19 +1,42 @@ <?php /** * Elgg long text input - * Displays a long text input field + * Displays a long text input field that can use WYSIWYG editor * * @package Elgg * @subpackage Core * - * @uses $vars['value'] The current value, if any - will be html encoded + * @uses $vars['value'] The current value, if any - will be html encoded * @uses $vars['disabled'] Is the input field disabled? + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-longtext {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-longtext"; +} + $defaults = array( - 'class' => 'elgg-input-longtext', + 'value' => '', + 'rows' => '10', + 'cols' => '50', + 'id' => 'elgg-input-' . rand(), //@todo make this more robust ); $vars = array_merge($defaults, $vars); -echo elgg_view('input/plaintext', $vars); +$value = $vars['value']; +unset($vars['value']); + +echo elgg_view_menu('longtext', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', + 'id' => $vars['id'], +)); + +?> + +<textarea <?php echo elgg_format_attributes($vars); ?>> +<?php echo htmlspecialchars($value, ENT_QUOTES, 'UTF-8', false); ?> +</textarea> diff --git a/views/default/input/password.php b/views/default/input/password.php index 62c8fb53d..45f2b20a6 100644 --- a/views/default/input/password.php +++ b/views/default/input/password.php @@ -7,17 +7,22 @@ * @subpackage Core * * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag - * @uses $vars['name'] The name of the input field - * + * @uses $vars['name'] The name of the input field + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-password {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-password"; +} + $defaults = array( - 'class' => 'elgg-input-password', - 'disabled' => FALSE, + 'disabled' => false, + 'value' => '', ); $attrs = array_merge($defaults, $vars); ?> -<input type="password" <?php echo elgg_format_attributes($attrs); ?> />
\ No newline at end of file +<input type="password" <?php echo elgg_format_attributes($attrs); ?> /> diff --git a/views/default/input/plaintext.php b/views/default/input/plaintext.php index 3be9ed0d8..e92c61ced 100644 --- a/views/default/input/plaintext.php +++ b/views/default/input/plaintext.php @@ -6,23 +6,32 @@ * @package Elgg * @subpackage Core * - * @uses $vars['value'] The current value, if any - * @uses $vars['name'] The name of the input field - * @uses $vars['class'] + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * @uses $vars['class'] Additional CSS class * @uses $vars['disabled'] */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-plaintext {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-plaintext"; +} + $defaults = array( - 'class' => 'elgg-input-textarea', - 'disabled' => FALSE, + 'value' => '', + 'rows' => '10', + 'cols' => '50', + 'disabled' => false, ); +$vars = array_merge($defaults, $vars); + $value = $vars['value']; unset($vars['value']); -$attrs = array_merge($defaults, $vars); ?> -<textarea <?php echo elgg_format_attributes($attrs); ?>> +<textarea <?php echo elgg_format_attributes($vars); ?>> <?php echo htmlspecialchars($value, ENT_QUOTES, 'UTF-8', false); ?> </textarea> diff --git a/views/default/input/pulldown.php b/views/default/input/pulldown.php index 705329691..fc0595300 100644 --- a/views/default/input/pulldown.php +++ b/views/default/input/pulldown.php @@ -5,5 +5,5 @@ * @deprecated 1.8 */ -elgg_deprecated_notice("input/pulldown was deprecated by input/dropdown", 1.8); +elgg_deprecated_notice("input/pulldown was deprecated by input/dropdown", 1.8, 2); echo elgg_view('input/dropdown', $vars); diff --git a/views/default/input/radio.php b/views/default/input/radio.php index 0ad28423f..ef860a773 100644 --- a/views/default/input/radio.php +++ b/views/default/input/radio.php @@ -10,24 +10,42 @@ * @package Elgg * @subpackage Core * - * @uses $vars['value'] The current value, if any - * @uses $vars['name'] The name of the input field - * @uses $vars['options'] An array of strings representing the options for the - * radio field as "label" => option - * @uses $vars['class'] Additional class of the list. Optional. - * @uses $vars['align'] 'horizontal' or 'vertical' Default: 'vertical' + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field + * @uses $vars['options'] An array of strings representing the options for the + * radio field as "label" => option + * @uses $vars['class'] Additional class of the list. Optional. + * @uses $vars['align'] 'horizontal' or 'vertical' Default: 'vertical' */ -$additional_class = elgg_extract('class', $vars); -$align = elgg_extract('align', $vars, 'vertical'); -$class = "elgg-input-radio elgg-$align"; -if ($additional_class) { - $class = " $additional_class"; +$defaults = array( + 'align' => 'vertical', + 'value' => array(), + 'disabled' => false, + 'options' => array(), + 'name' => '', +); + +$vars = array_merge($defaults, $vars); + +$id = ''; +if (isset($vars['id'])) { + $id = "id=\"{$vars['id']}\""; + unset($vars['id']); +} + +$class = "elgg-input-radios elgg-{$vars['align']}"; +if (isset($vars['class'])) { + $class .= " {$vars['class']}"; unset($vars['class']); } +unset($vars['align']); +$vars['class'] = 'elgg-input-radio'; -if (isset($vars['align'])) { - unset($vars['align']); +if (is_array($vars['value'])) { + $vars['value'] = array_map('elgg_strtolower', $vars['value']); +} else { + $vars['value'] = array(elgg_strtolower($vars['value'])); } $options = $vars['options']; @@ -37,10 +55,10 @@ $value = $vars['value']; unset($vars['value']); if ($options && count($options) > 0) { - echo "<ul class=\"$class\">"; + echo "<ul class=\"$class\" $id>"; foreach ($options as $label => $option) { - $vars['checked'] = elgg_strtolower($option) == elgg_strtolower($value); + $vars['checked'] = in_array(elgg_strtolower($option), $value); $vars['value'] = $option; $attributes = elgg_format_attributes($vars); diff --git a/views/default/input/reset.php b/views/default/input/reset.php index 12866421e..082da8669 100644 --- a/views/default/input/reset.php +++ b/views/default/input/reset.php @@ -4,8 +4,11 @@ * * @package Elgg * @subpackage Core + * + * @uses $vars['class'] CSS class that replaces elgg-button-cancel */ $vars['type'] = 'reset'; +$vars['class'] = elgg_extract('class', $vars, 'elgg-button-cancel'); echo elgg_view('input/button', $vars);
\ No newline at end of file diff --git a/views/default/input/submit.php b/views/default/input/submit.php index d09d1db6e..df369b3b4 100644 --- a/views/default/input/submit.php +++ b/views/default/input/submit.php @@ -4,8 +4,11 @@ * * @package Elgg * @subpackage Core + * + * @uses $vars['class'] CSS class that replaces elgg-button-submit */ $vars['type'] = 'submit'; +$vars['class'] = elgg_extract('class', $vars, 'elgg-button-submit'); echo elgg_view('input/button', $vars);
\ No newline at end of file diff --git a/views/default/input/tag.php b/views/default/input/tag.php new file mode 100644 index 000000000..8893a18ff --- /dev/null +++ b/views/default/input/tag.php @@ -0,0 +1,25 @@ +<?php +/** + * Elgg tag input + * + * Accepts a single tag value + * + * @uses $vars['value'] The default value for the tag + * @uses $vars['class'] Additional CSS class + */ + +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-tag {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-tag"; +} + +$defaults = array( + 'value' => '', + 'disabled' => false, +); + +$vars = array_merge($defaults, $vars); +?> + +<input type="text" <?php echo elgg_format_attributes($vars); ?> />
\ No newline at end of file diff --git a/views/default/input/tags.php b/views/default/input/tags.php index 539bbd4db..261cf9f97 100644 --- a/views/default/input/tags.php +++ b/views/default/input/tags.php @@ -3,15 +3,28 @@ * Elgg tag input * Displays a tag input field * - * @package Elgg - * @subpackage Core + * @uses $vars['disabled'] + * @uses $vars['class'] Additional CSS class + * @uses $vars['value'] Array of tags or a string + * @uses $vars['entity'] Optional. Entity whose tags are being displayed (metadata ->tags) */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-tags {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-tags"; +} + $defaults = array( - 'class' => 'elgg-input-tags', - 'disabled' => FALSE, + 'value' => '', + 'disabled' => false, ); +if (isset($vars['entity'])) { + $defaults['value'] = $vars['entity']->tags; + unset($vars['entity']); +} + $vars = array_merge($defaults, $vars); if (is_array($vars['value'])) { diff --git a/views/default/input/text.php b/views/default/input/text.php index e5af723be..07ce5c710 100644 --- a/views/default/input/text.php +++ b/views/default/input/text.php @@ -5,15 +5,22 @@ * * @package Elgg * @subpackage Core + * + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-text {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-text"; +} + $defaults = array( - 'class' => 'elgg-input-text', - 'disabled' => FALSE, + 'value' => '', + 'disabled' => false, ); $vars = array_merge($defaults, $vars); ?> - <input type="text" <?php echo elgg_format_attributes($vars); ?> />
\ No newline at end of file diff --git a/views/default/input/url.php b/views/default/input/url.php index a93db718f..e97a316d8 100644 --- a/views/default/input/url.php +++ b/views/default/input/url.php @@ -5,10 +5,19 @@ * * @package Elgg * @subpackage Core + * + * @uses $vars['class'] Additional CSS class */ +if (isset($vars['class'])) { + $vars['class'] = "elgg-input-url {$vars['class']}"; +} else { + $vars['class'] = "elgg-input-url"; +} + $defaults = array( - 'class' => 'elgg-input-url', + 'value' => '', + 'disabled' => false, ); $vars = array_merge($defaults, $vars); diff --git a/views/default/input/userpicker.php b/views/default/input/userpicker.php index 77a51f37c..8b64d7df5 100644 --- a/views/default/input/userpicker.php +++ b/views/default/input/userpicker.php @@ -5,36 +5,38 @@ * @package Elgg * @subpackage Core * - * @uses $vars['value'] The current value, if any - * @uses $vars['name'] The name of the input field + * @uses $vars['value'] Array of user guids for already selected users or null * + * The name of the hidden fields is members[] * - * pops up defaulted to lazy load friends lists in paginated alphabetical order. - * upon + * @warning Only a single input/userpicker is supported per web page. * - * As users are checked they move down to a "users" box. - * When this happens, a hidden input is created also. - * {$internalnal}[] with the value th GUID. + * Defaults to lazy load user lists in alphabetical order. User needs + * to type two characters before seeing the user popup list. * + * As users are selected they move down to a "users" box. + * When this happens, a hidden input is created with the + * name of members[] and a value of the GUID. */ -elgg_register_js('js/lib/userpicker.js', 'userpicker', 'head'); +elgg_load_js('elgg.userpicker'); +elgg_load_js('jquery.ui.autocomplete.html'); function user_picker_add_user($user_id) { $user = get_entity($user_id); if (!$user || !($user instanceof ElggUser)) { - return FALSE; + return false; } - $icon = $user->getIconURL('tiny'); - - $code = '<li class="elgg-image-block">'; - $code .= "<div class='elgg-image'><img class=\"livesearch_icon\" src=\"$icon\" /></div>"; - $code .= "<div class='elgg-image-alt'><a onclick='elgg.userpicker.removeUser(this, $user_id)'><strong>X</strong></a></div>"; - $code .= "<div class='elgg-body'>"; - $code .= "$user->name - $user->username"; - $code .= "<input type=\"hidden\" name=\"members[]\" value=\"$user_id\">"; + $icon = elgg_view_entity_icon($user, 'tiny', array('use_hover' => false)); + + // this html must be synced with the userpicker.js library + $code = '<li><div class="elgg-image-block">'; + $code .= "<div class='elgg-image'>$icon</div>"; + $code .= "<div class='elgg-image-alt'><a href='#' class='elgg-userpicker-remove'>X</a></div>"; + $code .= "<div class='elgg-body'>" . $user->name . "</div>"; $code .= "</div>"; + $code .= "<input type=\"hidden\" name=\"members[]\" value=\"$user_id\">"; $code .= '</li>'; return $code; @@ -61,10 +63,13 @@ foreach ($vars['value'] as $user_id) { ?> <div class="elgg-user-picker"> <input type="text" class="elgg-input-user-picker" size="30"/> - <label><input type="checkbox" name="match_on" value="true" /><?php echo elgg_echo('userpicker:only_friends'); ?></label> - <ul class="elgg-user-picker-entries"><?php echo $user_list; ?></ul> + <label> + <input type="checkbox" name="match_on" value="true" /> + <?php echo elgg_echo('userpicker:only_friends'); ?> + </label> + <ul class="elgg-user-picker-list"><?php echo $user_list; ?></ul> </div> <script type="text/javascript"> - elgg.provide('elgg.userpicker'); + // @todo grab the values in the init function rather than using inline JS elgg.userpicker.userList = <?php echo $json_values ?>; -</script>
\ No newline at end of file +</script> diff --git a/views/default/js/admin.php b/views/default/js/admin.php index 603d0f066..e8aa0d2ed 100644 --- a/views/default/js/admin.php +++ b/views/default/js/admin.php @@ -4,23 +4,24 @@ * * @since 1.8 */ + +if (0) { ?><script><?php } ?> elgg.provide('elgg.admin'); elgg.admin.init = function () { - // display manifest info - <?php //@todo Use elgg-toggler pattern ?> - $('a.manifest_details.link').click(function() { - elgg_slide_toggle($(this), '.elgg-plugin', '.manifest_file'); - }); - // plugin screenshot modal - $('.elgg-plugin-screenshot a').click(elgg.admin.displayPluginScreenshot); + // system messages do not fade in admin area, instead slide up when clicked + $('.elgg-system-messages li').stop(true); + $('.elgg-system-messages li').die('click'); + $('.elgg-system-messages li').live('click', function() { + $(this).stop().slideUp('medium'); + }); // draggable plugin reordering - $('#elgg-plugin-list').sortable({ - items: 'div.elgg-state-draggable', - handle: 'h3.elgg-head', + $('#elgg-plugin-list > ul').sortable({ + items: 'li:has(> .elgg-state-draggable)', + handle: '.elgg-head', forcePlaceholderSize: true, placeholder: 'elgg-widget-placeholder', opacity: 0.8, @@ -29,6 +30,7 @@ elgg.admin.init = function () { }); // in-line editing for custom profile fields. + // @note this requires jquery.jeditable plugin $(".elgg-state-editable").editable(elgg.admin.editProfileField, { type: 'text', onblur: 'submit', @@ -38,12 +40,15 @@ elgg.admin.init = function () { }); // draggable profile field reordering. - $('#sortable_profile_fields').sortable({ + $('#elgg-profile-fields').sortable({ items: 'li', handle: 'span.elgg-state-draggable', stop: elgg.admin.moveProfileField }); -} + + // admin notices delete ajax + $('a.elgg-admin-notice').click(elgg.admin.deleteNotice); +}; /** * Save the plugin order after a move event. @@ -53,9 +58,9 @@ elgg.admin.init = function () { * @return void */ elgg.admin.movePlugin = function(e, ui) { - // get guid from id like elgg-plugin-<guid> - var pluginGuid = ui.item.closest('.elgg-plugin').attr('id'); - pluginGuid = pluginGuid.replace('elgg-plugin-', ''); + // get guid from id like elgg-object-<guid> + var pluginGuid = ui.item.attr('id'); + pluginGuid = pluginGuid.replace('elgg-object-', ''); elgg.action('admin/plugins/set_priority', { data: { @@ -67,48 +72,6 @@ elgg.admin.movePlugin = function(e, ui) { }; /** - * Display a plugin screenshot. - * - * @param {Object} e The event object. - * @return void - */ -elgg.admin.displayPluginScreenshot = function(e) { - e.preventDefault(); - var lb = $('.elgg-plugin-screenshot-lightbox'); - - if (lb.length < 1) { - $('body').append('<div class="elgg-plugin-screenshot-lightbox"></div>'); - lb = $('.elgg-plugin-screenshot-lightbox'); - - lb.click(function() { - lb.hide(); - }); - - $(document).click(function(e) { - var target = $(e.target); - if (target.is('a') && target.hasClass('elgg-plugin-screenshot-lightbox')) { - lb.hide(); - e.preventDefault(); - } - }); - } - - var html = '<img class="pas" src="' + $(this).attr('href') + '">'; - var desc = $(this).find('img').attr('alt'); - - if (desc) { - html = '<h2 class="pam">' + desc + '</h2>' + html; - } - - lb.html(html); - - top_pos = $(window).scrollTop() + 10 + 'px'; - left_pos = $(window).scrollLeft() + 5 + 'px'; - - lb.css('top', top_pos).css('left', left_pos).show(); -}; - -/** * In-line editing for custom profile fields * * @param string value The new value @@ -126,7 +89,7 @@ elgg.admin.editProfileField = function(value, settings) { elgg.action('profile/fields/edit', data); return value; -} +}; /** * Save the plugin profile order after a move event. @@ -136,12 +99,28 @@ elgg.admin.editProfileField = function(value, settings) { * @return void */ elgg.admin.moveProfileField = function(e, ui) { - var orderArr = $('#sortable_profile_fields').sortable('toArray'); + var orderArr = $('#elgg-profile-fields').sortable('toArray'); var orderStr = orderArr.join(','); elgg.action('profile/fields/reorder', { fieldorder: orderStr }); -} +}; + +/** + * Fires the ajax action to delete the admin notice then hides the notice. + * + * @return void + */ +elgg.admin.deleteNotice = function(e) { + e.preventDefault(); + var $container = $(this).closest('p'); + + elgg.action($(this).attr('href'), { + success: function(json) { + $container.slideUp('medium'); + } + }); +}; -elgg.register_event_handler('init', 'system', elgg.admin.init);
\ No newline at end of file +elgg.register_hook_handler('init', 'system', elgg.admin.init, 1000);
\ No newline at end of file diff --git a/views/default/js/elgg.php b/views/default/js/elgg.php index 16c8ff20c..c3b56e398 100644 --- a/views/default/js/elgg.php +++ b/views/default/js/elgg.php @@ -28,12 +28,13 @@ foreach ($model_files as $file) { $libs = array( //libraries 'prototypes', - 'events', + 'hooks', 'security', 'languages', 'ajax', 'session', 'pageowner', + 'configuration', //ui 'ui', @@ -42,26 +43,29 @@ $libs = array( foreach ($libs as $file) { include("{$CONFIG->path}js/lib/$file.js"); + // putting a new line between the files to address https://github.com/elgg/elgg/issues/3081 + echo "\n"; } /** * Set some values that are cacheable */ +if (0) { ?><script><?php } ?> elgg.version = '<?php echo get_version(); ?>'; elgg.release = '<?php echo get_version(true); ?>'; elgg.config.wwwroot = '<?php echo elgg_get_site_url(); ?>'; -elgg.security.interval = 5 * 60 * 1000; <?php //@todo make this configurable ?> - -//Mimic PHP engine boot process - -//Before the DOM is ready -- note that plugins aren't loaded yet -elgg.trigger_event('boot', 'system'); +<?php //@todo make this configurable ?> +elgg.security.interval = 5 * 60 * 1000; +elgg.config.domReady = false; +elgg.config.language = '<?php echo isset($CONFIG->language) ? $CONFIG->language : 'en'; ?>'; +elgg.config.languageReady = false; //After the DOM is ready $(function() { - elgg.trigger_event('init', 'system'); + elgg.config.domReady = true; + elgg.initWhenReady(); }); <?php diff --git a/views/default/js/initialize_elgg.php b/views/default/js/initialize_elgg.php index 9032d8a63..b45c33463 100644 --- a/views/default/js/initialize_elgg.php +++ b/views/default/js/initialize_elgg.php @@ -1,18 +1,23 @@ <?php /** - * + * Initialize Elgg's js lib with the uncacheable data */ +if (0) { ?><script><?php } ?> /** * Don't want to cache these -- they could change for every request */ elgg.config.lastcache = <?php echo (int)elgg_get_config('lastcache'); ?>; +elgg.config.viewtype = '<?php echo elgg_get_viewtype(); ?>'; +elgg.config.simplecache_enabled = <?php echo (int)elgg_is_simplecache_enabled(); ?>; elgg.security.token.__elgg_ts = <?php echo $ts = time(); ?>; elgg.security.token.__elgg_token = '<?php echo generate_action_token($ts); ?>'; <?php +// @todo json export should be smoother than this... +// @todo Might also be nice to make url exportable. $entity->url? yes please! $page_owner = elgg_get_page_owner_entity(); if ($page_owner instanceof ElggEntity) { @@ -24,7 +29,7 @@ if ($page_owner instanceof ElggEntity) { $page_owner_json['subtype'] = $page_owner->getSubtype(); $page_owner_json['url'] = $page_owner->getURL(); - echo 'elgg.page_owner = '.json_encode($page_owner_json).';'; + echo 'elgg.page_owner = ' . json_encode($page_owner_json) . ';'; } $user = elgg_get_logged_in_user_entity(); @@ -37,7 +42,11 @@ if ($user instanceof ElggUser) { $user_json['subtype'] = $user->getSubtype(); $user_json['url'] = $user->getURL(); + $user_json['admin'] = $user->isAdmin(); - echo 'elgg.session.user = new elgg.ElggUser('.json_encode($user_json).');'; + echo 'elgg.session.user = new elgg.ElggUser(' . json_encode($user_json) . ');'; } ?> + +//Before the DOM is ready, but elgg's js framework is fully initalized +elgg.trigger_hook('boot', 'system');
\ No newline at end of file diff --git a/views/default/js/languages.php b/views/default/js/languages.php index 009e8159c..fcf903d4b 100644 --- a/views/default/js/languages.php +++ b/views/default/js/languages.php @@ -1,9 +1,33 @@ <?php /** * @uses $vars['language'] + * @uses $vars['lc'] if present, client will be sent long expires headers */ -global $CONFIG; $language = $vars['language']; +$lastcache = elgg_extract('lc', $vars, 0); -echo json_encode($CONFIG->translations[$language]);
\ No newline at end of file +// @todo add server-side caching +if ($lastcache) { + // we're relying on lastcache changes to predict language changes + $etag = '"' . md5("$language|$lastcache") . '"'; + + header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', strtotime("+6 months")), true); + header("Pragma: public", true); + header("Cache-Control: public", true); + header("ETag: $etag"); + + if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && trim($_SERVER['HTTP_IF_NONE_MATCH']) === $etag) { + header("HTTP/1.1 304 Not Modified"); + exit; + } +} + +$all_translations = elgg_get_config('translations'); +$translations = $all_translations['en']; + +if ($language != 'en') { + $translations = array_merge($translations, $all_translations[$language]); +} + +echo json_encode($translations);
\ No newline at end of file diff --git a/views/default/js/lightbox.php b/views/default/js/lightbox.php new file mode 100644 index 000000000..a1f018eea --- /dev/null +++ b/views/default/js/lightbox.php @@ -0,0 +1,36 @@ +<?php +/** + * Elgg lightbox + * + * Usage + * Call elgg_load_js('lightbox') and elgg_load_css('lightbox') then + * apply the class elgg-lightbox to links. + * + * Advanced Usage + * Elgg is distributed with the Fancybox jQuery library. Please go to + * http://fancybox.net for more information on the options of this lightbox. + * + * Overriding + * In a plugin, override this view and override the registration for the + * lightbox JavaScript and CSS (@see elgg_views_boot()). + * + * @todo add support for passing options: $('#myplugin-lightbox').elgg.ui.lightbox(options); + */ + +if (0) { ?><script><?php } +?> + +/** + * Lightbox initialization + */ +elgg.ui.lightbox_init = function() { + $(".elgg-lightbox").fancybox(); +} + +elgg.register_hook_handler('init', 'system', elgg.ui.lightbox_init); + +<?php + +$js_path = elgg_get_config('path'); +$js_path = "{$js_path}vendors/jquery/fancybox/jquery.fancybox-1.3.4.pack.js"; +include $js_path; diff --git a/views/default/js/walled_garden.php b/views/default/js/walled_garden.php new file mode 100644 index 000000000..e228df507 --- /dev/null +++ b/views/default/js/walled_garden.php @@ -0,0 +1,67 @@ +<?php +/** + * Walled garden JavaScript + * + * @since 1.8 + */ + +$cancel_button = elgg_view('input/button', array( + 'value' => elgg_echo('cancel'), + 'class' => 'elgg-button-cancel mlm', +)); +$cancel_button = json_encode($cancel_button); + +if (0) { ?><script><?php } +?> + +elgg.provide('elgg.walled_garden'); + +elgg.walled_garden.init = function () { + + $('.forgot_link').click(elgg.walled_garden.load('lost_password')); + $('.registration_link').click(elgg.walled_garden.load('register')); + + $('input.elgg-button-cancel').live('click', function(event) { + var $wgs = $('.elgg-walledgarden-single'); + if ($wgs.is(':visible')) { + $('.elgg-walledgarden-double').fadeToggle(); + $wgs.fadeToggle(); + $wgs.remove(); + } + event.preventDefault(); + }); +}; + +/** + * Creates a closure for loading walled garden content through ajax + * + * @param {String} view Name of the walled garden view + * @return {Object} + */ +elgg.walled_garden.load = function(view) { + return function(event) { + var id = '#elgg-walledgarden-' + view; + id = id.replace('_', '-'); + //@todo display some visual element that indicates that loading of content is running + elgg.get('walled_garden/' + view, { + 'success' : function(data) { + var $wg = $('.elgg-body-walledgarden'); + $wg.append(data); + $(id).find('input.elgg-button-submit').after(<?php echo $cancel_button; ?>); + + if (view == 'register' && $wg.hasClass('hidden')) { + // this was a failed register, display the register form ASAP + $('#elgg-walledgarden-login').toggle(false); + $(id).toggle(); + $wg.removeClass('hidden'); + } else { + $('#elgg-walledgarden-login').fadeToggle(); + $(id).fadeToggle(); + } + } + }); + event.preventDefault(); + }; +}; + +elgg.register_hook_handler('init', 'system', elgg.walled_garden.init);
\ No newline at end of file diff --git a/views/default/layout/objects/list/metadata.php b/views/default/layout/objects/list/metadata.php deleted file mode 100644 index 3ce3573b9..000000000 --- a/views/default/layout/objects/list/metadata.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php -/** - * List metadata for objects - * - * @uses $vars['entity'] ElggEntity - * @uses $vars['handler'] Page handler identifier - * @uses $vars['links'] Array of extra links - */ - -$entity = $vars['entity']; -$handler = elgg_extract('handler', $vars, ''); - -?> -<ul class="elgg-list-metadata"> - <li> - <?php echo elgg_view('output/access', array('entity' => $entity)); ?> - </li> -<?php - -if (isset($vars['links']) && is_array($vars['links'])) { - foreach ($vars['links'] as $link) { - echo "<li>$link</li>"; - } -} - -// pass <li>your data</li> back from the view -echo elgg_view('entity/metadata', array('entity' => $entity)); - -// links to delete or edit. -if ($entity->canEdit() && $handler) { - - $edit_url = "pg/$handler/edit/{$entity->getGUID()}"; - $edit_link = elgg_view('output/url', array( - 'href' => $edit_url, - 'text' => elgg_echo('edit'), - )); - echo "<li>$edit_link</li>"; - - $delete_url = "action/$handler/delete?guid={$entity->getGUID()}"; - $delete_link = elgg_view('output/confirmlink', array( - 'href' => $delete_url, - 'text' => '<span class="elgg-icon elgg-icon-delete"></span>', - 'title' => elgg_echo('delete'), - 'confirm' => elgg_echo('deleteconfirm'), - 'text_encode' => false, - )); - echo "<li>$delete_link</li>"; -} - -$likes = elgg_view_likes($entity); -echo "<li>$likes</li>"; - -?> -</ul> diff --git a/views/default/layout/objects/widget/controls.php b/views/default/layout/objects/widget/controls.php deleted file mode 100644 index 09f5fc947..000000000 --- a/views/default/layout/objects/widget/controls.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php -/** - * Elgg widget controls - * - * @uses $vars['widget'] - * @uses $vars['show_edit'] Whether to show the edit button (true) - */ - -$widget = $vars['widget']; -$show_edit = elgg_extract('show_edit', $vars, true); - -$params = array( - 'text' => ' ', - 'href' => "#", - 'class' => 'elgg-widget-collapse-button', -); -$collapse_link = elgg_view('output/url', $params); - -$delete_link = $edit_link = ''; -if ($widget->canEdit()) { - $params = array( - 'text' => ' ', - 'title' => elgg_echo('widget:delete', array($widget->getTitle())), - 'href' => elgg_get_site_url() . "action/widgets/delete?guid=$widget->guid", - 'is_action' => true, - 'class' => 'elgg-widget-delete-button', - 'id' => "elgg-widget-delete-button-$widget->guid" - ); - $delete_link = elgg_view('output/url', $params); - - if ($show_edit) { - $params = array( - 'text' => ' ', - 'title' => elgg_echo('widget:edit'), - 'href' => "#", - 'class' => 'elgg-widget-edit-button elgg-toggle', - 'id' => "elgg-toggler-widget-$widget->guid" - ); - $edit_link = elgg_view('output/url', $params); - } -} - -echo <<<___END - $collapse_link - $delete_link - $edit_link -___END; diff --git a/views/default/layout/objects/widget/settings.php b/views/default/layout/objects/widget/settings.php deleted file mode 100644 index 05cc7b5ce..000000000 --- a/views/default/layout/objects/widget/settings.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg widget edit settings - * - * @uses $vars['widget'] - */ - -$widget = elgg_extract('widget', $vars); -?> - -<div class="elgg-widget-edit" id="elgg-togglee-widget-<?php echo $widget->guid; ?>"> - <?php echo elgg_view_form('widgets/save', array(), $vars); ?> -</div> diff --git a/views/default/layout/shells/admin/menu.php b/views/default/layout/shells/admin/menu.php deleted file mode 100644 index c33eeac32..000000000 --- a/views/default/layout/shells/admin/menu.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -/** - * Admin sidebar menu - */ - -$content = elgg_view_menu('page', array('sort_by' => 'weight')); - -echo elgg_view_module('main', '', $content);
\ No newline at end of file diff --git a/views/default/layout/shells/content/header.php b/views/default/layout/shells/content/header.php deleted file mode 100644 index 7a3ab1ae9..000000000 --- a/views/default/layout/shells/content/header.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/** - * Main content header - * - * This includes a title and a new content button by default - * - * @uses $vars['header_override'] HTML for overriding the default header (override) - * @uses $vars['title'] Title text (override) - * @uses $vars['context'] Page context (override) - * @uses $vars['buttons'] Content header buttons (override) - */ - -if (isset($vars['header_override'])) { - echo $vars['header_override']; - return true; -} - -$context = elgg_extract('context', $vars, elgg_get_context()); -if ($context) { - $title = elgg_extract('title', $vars, ''); - if (!$title) { - $title = elgg_echo($context); - } - - if (isset($vars['buttons'])) { - $buttons = $vars['buttons']; - } else { - if (elgg_is_logged_in() && $context) { - $owner = elgg_get_page_owner_entity(); - if (elgg_instanceof($owner, 'group')) { - $guid = $owner->getGUID(); - } else { - $guid = elgg_get_logged_in_user_guid(); - } - $new_link = elgg_extract('new_link', $vars, "pg/$context/add/$guid/"); - $params = array( - 'href' => $new_link = elgg_normalize_url($new_link), - 'text' => elgg_echo("$context:add"), - 'class' => 'elgg-button-action', - ); - $buttons = elgg_view('output/url', $params); - } - } - echo <<<HTML -<div class="elgg-head clearfix"> - <h2 class="elgg-heading-main">$title</h2>$buttons -</div> -HTML; -} diff --git a/views/default/layout/shells/widgets/add_button.php b/views/default/layout/shells/widgets/add_button.php deleted file mode 100644 index 0304c50a0..000000000 --- a/views/default/layout/shells/widgets/add_button.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -/** - * Button area for showing the add widgets panel - */ -?> -<div class="elgg-widget-add-control"> - <a class="elgg-button-action elgg-toggle" id="elgg-toggler-add-widgets"> - <?php echo elgg_echo('widgets:add'); ?> - </a> -</div> diff --git a/views/default/navigation/breadcrumbs.php b/views/default/navigation/breadcrumbs.php index 53d1ffaaf..88577a8ff 100644 --- a/views/default/navigation/breadcrumbs.php +++ b/views/default/navigation/breadcrumbs.php @@ -17,7 +17,7 @@ if (isset($vars['breadcrumbs'])) { $breadcrumbs = elgg_get_breadcrumbs(); } -$class = 'elgg-breadcrumbs'; +$class = 'elgg-menu elgg-breadcrumbs'; $additional_class = elgg_extract('class', $vars, ''); if ($additional_class) { $class = "$class $additional_class"; @@ -30,6 +30,7 @@ if (is_array($breadcrumbs) && count($breadcrumbs) > 0) { $crumb = elgg_view('output/url', array( 'href' => $breadcrumb['link'], 'text' => $breadcrumb['title'], + 'is_trusted' => true, )); } else { $crumb = $breadcrumb['title']; diff --git a/views/default/navigation/listtype.php b/views/default/navigation/listtype.php deleted file mode 100644 index 9b86df40c..000000000 --- a/views/default/navigation/listtype.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Elgg list view switcher - * - * @package Elgg - * @subpackage Core - */ - -$baseurl = elgg_http_remove_url_query_element($vars['baseurl'], 'search_listtype'); - -if ($vars['listtype'] == "list") { - $listtype = "gallery"; -} else { - $listtype = "list"; -} - -if (substr_count($baseurl,'?')) { - $baseurl .= "&search_listtype=" . $listtype; -} else { - $baseurl .= "?search_listtype=" . $listtype; -} - -?> - -<p class="margin-top"> - <?php echo elgg_echo("listtype:change") ?>: - <a href="<?php echo $baseurl; ?>"><?php echo elgg_echo("listtype:{$listtype}"); ?></a> -</p>
\ No newline at end of file diff --git a/views/default/navigation/menu/default.php b/views/default/navigation/menu/default.php index d849fb80e..006deb3ea 100644 --- a/views/default/navigation/menu/default.php +++ b/views/default/navigation/menu/default.php @@ -2,19 +2,30 @@ /** * Default menu * - * @uses $vars['menu'] - * @uses $vars['class'] + * @uses $vars['name'] Name of the menu + * @uses $vars['menu'] Array of menu items + * @uses $vars['class'] Additional CSS class for the menu + * @uses $vars['item_class'] Additional CSS class for each menu item + * @uses $vars['show_section_headers'] Do we show headers for each section? */ -$class = 'elgg-menu'; +// we want css classes to use dashes +$vars['name'] = preg_replace('/[^a-z0-9\-]/i', '-', $vars['name']); +$headers = elgg_extract('show_section_headers', $vars, false); +$item_class = elgg_extract('item_class', $vars, ''); + +$class = "elgg-menu elgg-menu-{$vars['name']}"; if (isset($vars['class'])) { - $class = "$class {$vars['class']}"; + $class .= " {$vars['class']}"; } foreach ($vars['menu'] as $section => $menu_items) { - echo "<ul class=\"$class\">"; - foreach ($menu_items as $menu_item) { - echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); - } - echo '</ul>'; + echo elgg_view('navigation/menu/elements/section', array( + 'items' => $menu_items, + 'class' => "$class elgg-menu-{$vars['name']}-$section", + 'section' => $section, + 'name' => $vars['name'], + 'show_section_headers' => $headers, + 'item_class' => $item_class, + )); } diff --git a/views/default/navigation/menu/elements/group.php b/views/default/navigation/menu/elements/group.php deleted file mode 100644 index b0c0f54d4..000000000 --- a/views/default/navigation/menu/elements/group.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php -/** - * Menu group - * - * @uses $vars['items'] - * @uses $vars['class'] - * @uses $vars['section'] - */ - -$class = elgg_extract('class', $vars, ''); -if (isset($vars['section'])) { - $class = "$class elgg-section-{$vars['section']}"; -} - -echo "<ul class=\"$class\">"; -foreach ($vars['items'] as $menu_item) { - echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); -} -echo '</ul>'; diff --git a/views/default/navigation/menu/elements/item.php b/views/default/navigation/menu/elements/item.php index 7b07c9485..fd9738826 100644 --- a/views/default/navigation/menu/elements/item.php +++ b/views/default/navigation/menu/elements/item.php @@ -4,31 +4,38 @@ * * @package Elgg.Core * @subpackage Navigation + * + * @uses $vars['item'] ElggMenuItem + * @uses $vars['item_class'] Additional CSS class for the menu item */ $item = $vars['item']; $link_class = 'elgg-menu-closed'; if ($item->getSelected()) { - $item->setItemClass('elgg-state-selected'); + // @todo switch to addItemClass when that is implemented + //$item->setItemClass('elgg-state-selected'); $link_class = 'elgg-menu-opened'; } $children = $item->getChildren(); if ($children) { - $item->setLinkClass($link_class); - $item->setLinkClass('elgg-menu-parent'); + $item->addLinkClass($link_class); + $item->addLinkClass('elgg-menu-parent'); } $item_class = $item->getItemClass(); -if ($item_class) { - $class = "class=\"$item_class\""; +if ($item->getSelected()) { + $item_class = "$item_class elgg-state-selected"; +} +if (isset($vars['item_class']) && $vars['item_class']) { + $item_class .= ' ' . $vars['item_class']; } -echo "<li $class>"; -echo $item->getLink($link_vars); +echo "<li class=\"$item_class\">"; +echo $item->getContent(); if ($children) { - echo elgg_view('navigation/menu/elements/group', array( + echo elgg_view('navigation/menu/elements/section', array( 'items' => $children, 'class' => 'elgg-menu elgg-child-menu', )); diff --git a/views/default/navigation/menu/elements/section.php b/views/default/navigation/menu/elements/section.php new file mode 100644 index 000000000..c0e9ba750 --- /dev/null +++ b/views/default/navigation/menu/elements/section.php @@ -0,0 +1,30 @@ +<?php +/** + * Menu group + * + * @uses $vars['items'] Array of menu items + * @uses $vars['class'] Additional CSS class for the section + * @uses $vars['name'] Name of the menu + * @uses $vars['section'] The section name + * @uses $vars['item_class'] Additional CSS class for each menu item + * @uses $vars['show_section_headers'] Do we show headers for each section + */ + +$headers = elgg_extract('show_section_headers', $vars, false); +$class = elgg_extract('class', $vars, ''); +$item_class = elgg_extract('item_class', $vars, ''); + +if ($headers) { + $name = elgg_extract('name', $vars); + $section = elgg_extract('section', $vars); + echo '<h2>' . elgg_echo("menu:$name:header:$section") . '</h2>'; +} + +echo "<ul class=\"$class\">"; +foreach ($vars['items'] as $menu_item) { + echo elgg_view('navigation/menu/elements/item', array( + 'item' => $menu_item, + 'item_class' => $item_class, + )); +} +echo '</ul>'; diff --git a/views/default/navigation/menu/page.php b/views/default/navigation/menu/page.php index 92006e956..56a288234 100644 --- a/views/default/navigation/menu/page.php +++ b/views/default/navigation/menu/page.php @@ -5,8 +5,12 @@ * @uses $vars['menu'] * @uses $vars['selected_item'] * @uses $vars['class'] + * @uses $vars['name'] + * @uses $vars['show_section_headers'] */ +$headers = elgg_extract('show_section_headers', $vars, false); + $class = 'elgg-menu elgg-menu-page'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; @@ -14,6 +18,7 @@ if (isset($vars['class'])) { if (isset($vars['selected_item'])) { $parent = $vars['selected_item']->getParent(); + while ($parent) { $parent->setSelected(); $parent = $parent->getParent(); @@ -21,9 +26,11 @@ if (isset($vars['selected_item'])) { } foreach ($vars['menu'] as $section => $menu_items) { - echo elgg_view('navigation/menu/elements/group', array( + echo elgg_view('navigation/menu/elements/section', array( 'items' => $menu_items, + 'class' => "$class elgg-menu-page-$section", 'section' => $section, - 'class' => $class, + 'name' => $vars['name'], + 'show_section_headers' => $headers )); } diff --git a/views/default/navigation/menu/site.php b/views/default/navigation/menu/site.php index 706e56fe5..24c21dd57 100644 --- a/views/default/navigation/menu/site.php +++ b/views/default/navigation/menu/site.php @@ -6,20 +6,25 @@ * @uses $vars['menu']['more'] */ -echo '<ul class="elgg-menu elgg-menu-site clearfix">'; -foreach ($vars['menu']['default'] as $menu_item) { +$default_items = elgg_extract('default', $vars['menu'], array()); +$more_items = elgg_extract('more', $vars['menu'], array()); + +echo '<ul class="elgg-menu elgg-menu-site elgg-menu-site-default clearfix">'; +foreach ($default_items as $menu_item) { echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); } -if (isset($vars['menu']['more'])) { - $more = elgg_echo('more'); +if ($more_items) { echo '<li class="elgg-more">'; - echo "<a class='subnav' title=\"$more\"><span class=\"elgg-icon elgg-icon-arrow-s\"></span>$more</a>"; - echo '<ul>'; - foreach ($vars['menu']['more'] as $menu_item) { - echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); - } - echo '</ul>'; + + $more = elgg_echo('more'); + echo "<a href=\"#\">$more</a>"; + + echo elgg_view('navigation/menu/elements/section', array( + 'class' => 'elgg-menu elgg-menu-site elgg-menu-site-more', + 'items' => $more_items, + )); + echo '</li>'; } echo '</ul>'; diff --git a/views/default/navigation/menu/user_hover.php b/views/default/navigation/menu/user_hover.php index bbca41e21..5c89e585c 100644 --- a/views/default/navigation/menu/user_hover.php +++ b/views/default/navigation/menu/user_hover.php @@ -19,34 +19,42 @@ echo '<ul class="elgg-menu elgg-menu-hover">'; $name_link = elgg_view('output/url', array( 'href' => $user->getURL(), 'text' => "<span class=\"elgg-heading-basic\">$user->name</span>@$user->username", + 'is_trusted' => true, )); echo "<li>$name_link</li>"; // actions if (elgg_is_logged_in() && $actions) { - echo '<li><ul>'; - foreach ($actions as $menu_item) { - echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); - } - echo '</ul></li>'; + echo '<li>'; + echo elgg_view('navigation/menu/elements/section', array( + 'class' => "elgg-menu elgg-menu-hover-actions", + 'items' => $actions, + )); + echo '</li>'; } // main if ($main) { - echo '<li><ul>'; - foreach ($main as $menu_item) { - echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); - } - echo '</ul></li>'; + echo '<li>'; + + echo elgg_view('navigation/menu/elements/section', array( + 'class' => 'elgg-menu elgg-menu-hover-default', + 'items' => $main, + )); + + echo '</li>'; } // admin if (elgg_is_admin_logged_in() && $admin) { - echo '<li><ul class="elgg-hover-admin">'; - foreach ($admin as $menu_item) { - echo elgg_view('navigation/menu/elements/item', array('item' => $menu_item)); - } - echo '</ul></li>'; + echo '<li>'; + + echo elgg_view('navigation/menu/elements/section', array( + 'class' => 'elgg-menu elgg-menu-hover-admin', + 'items' => $admin, + )); + + echo '</li>'; } echo '</ul>'; diff --git a/views/default/navigation/pagination.php b/views/default/navigation/pagination.php index c0cb801dd..04044c51c 100644 --- a/views/default/navigation/pagination.php +++ b/views/default/navigation/pagination.php @@ -8,7 +8,7 @@ * @uses int $vars['offset'] The offset in the list * @uses int $vars['limit'] Number of items per page * @uses int $vars['count'] Number of items in list - * @uses string $vars['baseurl'] Base URL to use in links + * @uses string $vars['base_url'] Base URL to use in links * @uses string $vars['offset_key'] The string to use for offet in the URL */ @@ -25,7 +25,15 @@ if (!$limit = (int) elgg_extract('limit', $vars, 10)) { $count = (int) elgg_extract('count', $vars, 0); $offset_key = elgg_extract('offset_key', $vars, 'offset'); -$base_url = elgg_extract('baseurl', $vars, current_page_url()); +// some views pass an empty string for base_url +if (isset($vars['base_url']) && $vars['base_url']) { + $base_url = $vars['base_url']; +} else if (isset($vars['baseurl']) && $vars['baseurl']) { + elgg_deprecated_notice("Use 'base_url' instead of 'baseurl' for the navigation/pagination view", 1.8); + $base_url = $vars['baseurl']; +} else { + $base_url = current_page_url(); +} $num_pages = elgg_extract('num_pages', $vars, 10); $delta = ceil($num_pages / 2); @@ -42,10 +50,12 @@ $pages = new stdClass(); $pages->prev = array( 'text' => '« ' . elgg_echo('previous'), 'href' => '', + 'is_trusted' => true, ); $pages->next = array( 'text' => elgg_echo('next') . ' »', 'href' => '', + 'is_trusted' => true, ); $pages->items = array(); @@ -103,7 +113,12 @@ foreach ($pages->items as $page) { } else { $page_offset = (($page - 1) * $limit); $url = elgg_http_add_url_query_elements($base_url, array($offset_key => $page_offset)); - echo "<li><a href=\"$url\">$page</a></li>"; + $link = elgg_view('output/url', array( + 'href' => $url, + 'text' => $page, + 'is_trusted' => true, + )); + echo "<li>$link</li>"; } } diff --git a/views/default/navigation/tabs.php b/views/default/navigation/tabs.php index 0108126ad..95e3f2669 100644 --- a/views/default/navigation/tabs.php +++ b/views/default/navigation/tabs.php @@ -5,64 +5,77 @@ * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal * @uses string $vars['class'] Additional class to add to ul * @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array( - * 'title' => string, // Title of link - * 'url' => string, // URL for the link + * 'text' => string, // The string between the <a></a> tags + * 'href' => string, // URL for the link * 'class' => string // Class of the li element * 'id' => string, // ID of the li element - * 'selected' => bool // if this li element is currently selected - * 'url_class' => string, // Class to pass to the link - * 'url_id' => string, // ID to pass to the link + * 'selected' => bool // if this tab is currently selected (applied to li element) + * 'link_class' => string, // Class to pass to the link + * 'link_id' => string, // ID to pass to the link * ) */ +$options = elgg_clean_vars($vars); $type = elgg_extract('type', $vars, 'horizontal'); + if ($type == 'horizontal') { - $type_class = "elgg-tabs elgg-htabs"; + $options['class'] = "elgg-tabs elgg-htabs"; } else { - $type_class = "elgg-tabs elgg-vtabs"; + $options['class'] = "elgg-tabs elgg-vtabs"; } - if (isset($vars['class'])) { - $type_class = "$type_class {$vars['class']}"; + $options['class'] = "{$options['class']} {$vars['class']}"; } +unset($options['tabs']); +unset($options['type']); + +$attributes = elgg_format_attributes($options); + if (isset($vars['tabs']) && is_array($vars['tabs']) && !empty($vars['tabs'])) { -?> - <ul class="<?php echo $type_class; ?>"> - <?php - foreach ($vars['tabs'] as $info) { - $class = elgg_extract('class', $info, ''); - $id = elgg_extract('id', $info, ''); - - $selected = elgg_extract('selected', $info, FALSE); - if ($selected) { - $class .= ' elgg-state-selected'; - } + ?> + <ul <?php echo $attributes; ?>> + <?php + foreach ($vars['tabs'] as $info) { + $class = elgg_extract('class', $info, ''); + $id = elgg_extract('id', $info, ''); - $class_str = ($class) ? "class=\"$class\"" : ''; - $id_str = ($id) ? "id=\"$id\"" : ''; - $title = htmlspecialchars($info['title'], ENT_QUOTES, 'UTF-8'); - $url = htmlspecialchars($info['url'], ENT_QUOTES, 'UTF-8'); + $selected = elgg_extract('selected', $info, FALSE); + if ($selected) { + $class .= ' elgg-state-selected'; + } - $options = array( - 'href' => $url, - 'title' => $title, - 'text' => $title - ); + $class_str = ($class) ? "class=\"$class\"" : ''; + $id_str = ($id) ? "id=\"$id\"" : ''; - if (isset($info['url_class'])) { - $options['class'] = $info['url_class']; - } + $options = $info; + unset($options['class']); + unset($options['id']); + unset($options['selected']); - if (isset($info['url_id'])) { - $options['id'] = $info['url_id']; - } + if (!isset($info['href']) && isset($info['url'])) { + $options['href'] = $info['url']; + unset($options['url']); + } + if (!isset($info['text']) && isset($info['title'])) { + $options['text'] = $options['title']; + unset($options['title']); + } + if (isset($info['link_class'])) { + $options['class'] = $options['link_class']; + unset($options['link_class']); + } - $link = elgg_view('output/url', $options); + if (isset($info['link_id'])) { + $options['id'] = $options['link_id']; + unset($options['link_id']); + } - echo "<li $class_str $js>$link</li>"; - } - ?> - </ul> + $link = elgg_view('output/url', $options); + + echo "<li $id_str $class_str>$link</li>"; + } + ?> + </ul> <?php } diff --git a/views/default/navigation/topbar_tools.php b/views/default/navigation/topbar_tools.php index 44cf4a63d..307f03fc6 100644 --- a/views/default/navigation/topbar_tools.php +++ b/views/default/navigation/topbar_tools.php @@ -4,5 +4,6 @@ * * @package Elgg * @subpackage Core - * + * + * @deprecated 1.8 Extend the topbar menus or the page/elements/topbar view directly */ diff --git a/views/default/navigation/viewtype.php b/views/default/navigation/viewtype.php index cdf167eb5..6dfa4ebc7 100644 --- a/views/default/navigation/viewtype.php +++ b/views/default/navigation/viewtype.php @@ -4,8 +4,8 @@ * * @package Elgg * @subpackage Core + * + * @deprecated 1.8 See how file plugin adds a toggle in function file_register_toggle() */ -elgg_deprecated_notice('navigation/viewtype was deprecated by navigation/listtype', 1.8); - -echo elgg_view('navigation/listtype', $vars);
\ No newline at end of file +elgg_deprecated_notice('navigation/viewtype was deprecated', 1.8); diff --git a/views/default/object/admin_notice.php b/views/default/object/admin_notice.php index 1a162ce4d..11524567e 100644 --- a/views/default/object/admin_notice.php +++ b/views/default/object/admin_notice.php @@ -6,6 +6,15 @@ if (isset($vars['entity']) && elgg_instanceof($vars['entity'], 'object', 'admin_notice')) { $notice = $vars['entity']; $message = $notice->description; - echo "<p>$message</p>"; + + $delete = elgg_view('output/url', array( + 'href' => "action/admin/delete_admin_notice?guid=$notice->guid", + 'text' => '<span class="elgg-icon elgg-icon-delete"></span>', + 'is_action' => true, + 'class' => 'elgg-admin-notice', + 'is_trusted' => true, + )); + + echo "<p>$delete$message</p>"; } diff --git a/views/default/object/default.php b/views/default/object/default.php index bcb1b04fd..70e098742 100644 --- a/views/default/object/default.php +++ b/views/default/object/default.php @@ -19,7 +19,7 @@ if (!$title) { } if (elgg_instanceof($vars['entity'], 'object')) { - $metadata = elgg_view('layout/objects/list/metadata', $vars); + $metadata = elgg_view('navigation/menu/metadata', $vars); } $owner_link = ''; @@ -28,6 +28,7 @@ if ($owner) { $owner_link = elgg_view('output/url', array( 'href' => $owner->getURL(), 'text' => $owner->name, + 'is_trusted' => true, )); } @@ -40,8 +41,8 @@ $params = array( 'title' => $title, 'metadata' => $metadata, 'subtitle' => $subtitle, - 'tags' => $vars['entity']->tags, ); -$body = elgg_view('layout/objects/list/body', $params); +$params = $params + $vars; +$body = elgg_view('object/elements/summary', $params); -echo elgg_view_image_block($icon, $body); +echo elgg_view_image_block($icon, $body, $vars); diff --git a/views/default/object/elements/full.php b/views/default/object/elements/full.php new file mode 100644 index 000000000..b4634fe7e --- /dev/null +++ b/views/default/object/elements/full.php @@ -0,0 +1,37 @@ +<?php +/** + * Object full rendering + * + * Sample output: + * <div class="elgg-content"> + * <div class="elgg-image-block"> + * </div> + * <div class="elgg-output"> + * </div> + * </div> + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['icon'] HTML for the content icon + * @uses $vars['summary'] HTML for the content summary + * @uses $vars['body'] HTML for the content body + * @uses $vars['class'] Optional additional class for the content wrapper + */ + +$icon = elgg_extract('icon', $vars); +$summary = elgg_extract('summary', $vars); +$body = elgg_extract('body', $vars); +$class = elgg_extract('class', $vars); +if ($class) { + $class = "elgg-content clearfix $class"; +} else { + $class = "elgg-content clearfix"; +} + +$header = elgg_view_image_block($icon, $summary); + +echo <<<HTML +<div class="$class"> +$header +$body +</div> +HTML; diff --git a/views/default/layout/objects/list/body.php b/views/default/object/elements/summary.php index 187cc9690..63ab8f816 100644 --- a/views/default/layout/objects/list/body.php +++ b/views/default/object/elements/summary.php @@ -1,19 +1,19 @@ <?php /** - * List body + * Object summary * * Sample output - * <ul class="elgg-list-metadata"><li>Public</li><li>Like this</li></ul> + * <ul class="elgg-menu elgg-menu-entity"><li>Public</li><li>Like this</li></ul> * <h3><a href="">Title</a></h3> * <p class="elgg-subtext">Posted 3 hours ago by George</p> * <p class="elgg-tags"><a href="">one</a>, <a href="">two</a></p> - * <div class="elgg-list-content">Excerpt text</div> + * <div class="elgg-content">Excerpt text</div> * * @uses $vars['entity'] ElggEntity * @uses $vars['title'] Title link (optional) false = no title, '' = default - * @uses $vars['metadata'] HTML for entity metadata and actions (optional) + * @uses $vars['metadata'] HTML for entity menu and metadata (optional) * @uses $vars['subtitle'] HTML for the subtitle (optional) - * @uses $vars['tags'] HTML for the tags (optional) + * @uses $vars['tags'] HTML for the tags (default is tags on entity, pass false for no tags) * @uses $vars['content'] HTML for the entity content (optional) */ @@ -27,8 +27,9 @@ if ($title_link === '') { $text = $entity->name; } $params = array( - 'text' => $text, + 'text' => elgg_get_excerpt($text, 100), 'href' => $entity->getURL(), + 'is_trusted' => true, ); $title_link = elgg_view('output/url', $params); } @@ -38,19 +39,21 @@ $subtitle = elgg_extract('subtitle', $vars, ''); $content = elgg_extract('content', $vars, ''); $tags = elgg_extract('tags', $vars, ''); -if ($tags !== false) { - $tag_text = elgg_view('output/tags', array('tags' => $entity->tags)); - if ($tag_text) { - $tags = '<p class="elgg-tags">' . $tag_text . '</p>'; - } +if ($tags === '') { + $tags = elgg_view('output/tags', array('tags' => $entity->tags)); } if ($metadata) { echo $metadata; } -echo "<h3>$title_link</h3>"; -echo "<p class=\"elgg-subtext\">$subtitle</p>"; +if ($title_link) { + echo "<h3>$title_link</h3>"; +} +echo "<div class=\"elgg-subtext\">$subtitle</div>"; echo $tags; + +echo elgg_view('object/summary/extend', $vars); + if ($content) { - echo "<div class=\"elgg-list-content\">$content</div>"; + echo "<div class=\"elgg-content\">$content</div>"; } diff --git a/views/default/object/plugin.php b/views/default/object/plugin.php index e9cacca35..5c7138e96 100644 --- a/views/default/object/plugin.php +++ b/views/default/object/plugin.php @@ -5,18 +5,16 @@ * @package Elgg.Core * @subpackage Plugins * - * @todo This view really should be used to display visualization on the admin panel, \ - * rather than emitting the settings forms */ -// Do we want to show admin settings or user settings -$type = elgg_extract('type', $vars, ''); - -if ($type != 'user') { - $type = ''; +if (!elgg_in_context('admin')) { + forward('/', 403); } -?> -<div> - <?php echo elgg_view_form("plugins/{$type}settings/save", array(), $vars); ?> -</div>
\ No newline at end of file +$plugin = $vars['entity']; + +if (!$plugin->isValid()) { + echo elgg_view('object/plugin/invalid', $vars); +} else { + echo elgg_view('object/plugin/full', $vars); +} diff --git a/views/default/admin/components/plugin_dependencies.php b/views/default/object/plugin/elements/dependencies.php index ea2b3a188..d8daedd33 100644 --- a/views/default/admin/components/plugin_dependencies.php +++ b/views/default/object/plugin/elements/dependencies.php @@ -9,20 +9,18 @@ */ $plugin = elgg_extract('plugin', $vars, false); -$deps = $plugin->package->checkDependencies(true); +$deps = $plugin->getPackage()->checkDependencies(true); $columns = array('type', 'name', 'expected_value', 'local_value', 'comment'); -echo '<table class="elgg-plugins-dependencies styled"> - <tr> -'; +echo '<table class="elgg-plugin-dependencies styled"><tr>'; foreach ($columns as $column) { $column = elgg_echo("admin:plugins:dependencies:$column"); echo "<th class=\"pas\">$column</th>"; } -echo '<tr/>'; +echo '</tr>'; $row = 'odd'; foreach ($deps as $dep) { @@ -30,9 +28,11 @@ foreach ($deps as $dep) { $type = $dep['type']; if ($dep['status']) { - $class = "elgg-state-success elgg-dependency-$type"; + $class = "elgg-state-success elgg-dependency elgg-dependency-$type"; + } elseif ($dep['type'] == 'suggests') { + $class = "elgg-state-warning elgg-dependency elgg-dependency-$type"; } else { - $class = "elgg-state-error elgg-dependency-$type"; + $class = "elgg-state-error elgg-dependency elgg-dependency-$type"; } echo "<tr class=\"$row\">"; diff --git a/views/default/object/plugin/full.php b/views/default/object/plugin/full.php new file mode 100644 index 000000000..2de65b555 --- /dev/null +++ b/views/default/object/plugin/full.php @@ -0,0 +1,308 @@ +<?php +/** + * Displays a plugin on the admin screen. + * + * This file renders a plugin for the admin screen, including active/deactive, + * manifest details & display plugin settings. + * + * @uses $vars['entity'] + * @uses $vars['display_reordering'] Do we display the priority reordering links? + * + * @package Elgg.Core + * @subpackage Plugins + */ + +$plugin = $vars['entity']; +$reordering = elgg_extract('display_reordering', $vars, false); +$priority = $plugin->getPriority(); +$active = $plugin->isActive(); + +$can_activate = $plugin->canActivate(); +$max_priority = elgg_get_max_plugin_priority(); +$actions_base = '/action/admin/plugins/'; +$css_id = preg_replace('/[^a-z0-9-]/i', '-', $plugin->getID()); + +// build reordering links +$links = ''; +$classes = array('elgg-plugin'); + +if ($reordering) { + $classes[] = 'elgg-state-draggable'; + + // top and up link only if not at top + if ($priority > 1) { + $top_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => 'first', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $top_url, + 'text' => elgg_echo('top'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + + $up_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => '-1', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $up_url, + 'text' => elgg_echo('up'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + } + + // down and bottom links only if not at bottom + if ($priority < $max_priority) { + $down_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => '+1', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $down_url, + 'text' => elgg_echo('down'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + + $bottom_url = elgg_http_add_url_query_elements($actions_base . 'set_priority', array( + 'plugin_guid' => $plugin->guid, + 'priority' => 'last', + 'is_action' => true + )); + + $links .= "<li>" . elgg_view('output/url', array( + 'href' => $bottom_url, + 'text' => elgg_echo('bottom'), + 'is_action' => true, + 'is_trusted' => true, + )) . "</li>"; + } +} else { + $classes[] = 'elgg-state-undraggable'; +} + + +// activate / deactivate links + +// always let them deactivate +$options = array( + 'is_action' => true, + 'is_trusted' => true, +); +if ($active) { + $classes[] = 'elgg-state-active'; + $action = 'deactivate'; + $options['text'] = elgg_echo('admin:plugins:deactivate'); + $options['class'] = "elgg-button elgg-button-cancel"; + + if (!$can_activate) { + $classes[] = 'elgg-state-active'; + $options['class'] = 'elgg-button elgg-state-warning'; + } +} else if ($can_activate) { + $classes[] = 'elgg-state-inactive'; + $action = 'activate'; + $options['text'] = elgg_echo('admin:plugins:activate'); + $options['class'] = "elgg-button elgg-button-submit"; +} else { + $classes[] = 'elgg-state-inactive'; + $action = ''; + $options['text'] = elgg_echo('admin:plugins:cannot_activate'); + $options['class'] = "elgg-button elgg-button-disabled"; + $options['disabled'] = 'disabled'; +} + +if ($action) { + $url = elgg_http_add_url_query_elements($actions_base . $action, array( + 'plugin_guids[]' => $plugin->guid + )); + + $options['href'] = $url; +} +$action_button = elgg_view('output/url', $options); + +// Display categories and make category classes +$categories = $plugin->getManifest()->getCategories(); +$categories_html = ''; +if ($categories) { + $base_url = elgg_get_site_url() . "admin/plugins?category="; + + foreach ($categories as $category) { + $css_class = preg_replace('/[^a-z0-9-]/i', '-', $category); + $classes[] = "elgg-plugin-category-$css_class"; + + $url = $base_url . urlencode($category); + $friendly_category = htmlspecialchars(ElggPluginManifest::getFriendlyCategory($category)); + $categories_html .= "<li class=\"elgg-plugin-category prm\"><a href=\"$url\">$friendly_category</a></li>"; + } +} + +$screenshots_html = ''; +$screenshots = $plugin->getManifest()->getScreenshots(); +if ($screenshots) { + $base_url = elgg_get_plugins_path() . $plugin->getID() . '/'; + foreach ($screenshots as $screenshot) { + $desc = elgg_echo($screenshot['description']); + $alt = htmlentities($desc, ENT_QUOTES, 'UTF-8'); + $screenshot_full = "{$vars['url']}admin_plugin_screenshot/{$plugin->getID()}/full/{$screenshot['path']}"; + $screenshot_src = "{$vars['url']}admin_plugin_screenshot/{$plugin->getID()}/thumbnail/{$screenshot['path']}"; + + $screenshots_html .= "<li class=\"elgg-plugin-screenshot prm ptm\"><a class=\"elgg-lightbox\" href=\"$screenshot_full\">" + . "<img src=\"$screenshot_src\" alt=\"$alt\"></a></li>"; + } +} + +// metadata +$description = elgg_view('output/longtext', array('value' => $plugin->getManifest()->getDescription())); +$author = '<span>' . elgg_echo('admin:plugins:label:author') . '</span>: ' + . elgg_view('output/text', array('value' => $plugin->getManifest()->getAuthor())); +$version = htmlspecialchars($plugin->getManifest()->getVersion()); +$website = elgg_view('output/url', array( + 'href' => $plugin->getManifest()->getWebsite(), + 'text' => $plugin->getManifest()->getWebsite(), + 'is_trusted' => true, +)); + +$resources = array( + 'repository' => $plugin->getManifest()->getRepositoryURL(), + 'bugtracker' => $plugin->getManifest()->getBugTrackerURL(), + 'donate' => $plugin->getManifest()->getDonationsPageURL(), +); + +$resources_html = "<ul class=\"elgg-plugin-resources\">"; +foreach ($resources as $id => $href) { + if ($href) { + $resources_html .= "<li class=\"prm\">"; + $resources_html .= elgg_view('output/url', array( + 'href' => $href, + 'text' => elgg_echo("admin:plugins:label:$id"), + 'is_trusted' => true, + )); + $resources_html .= "</li>"; + } +} +$resources_html .= "</ul>"; + +$copyright = elgg_view('output/text', array('value' => $plugin->getManifest()->getCopyright())); +$license = elgg_view('output/text', array('value' => $plugin->getManifest()->getLicense())); + +// show links to text files +$files = $plugin->getAvailableTextFiles(); + +$docs = ''; +if ($files) { + $docs = '<ul>'; + foreach ($files as $file => $path) { + $url = 'admin_plugin_text_file/' . $plugin->getID() . "/$file"; + $link = elgg_view('output/url', array( + 'text' => $file, + 'href' => $url, + 'is_trusted' => true, + )); + $docs .= "<li>$link</li>"; + + } + $docs .= '</ul>'; +} + +?> + +<div class="<?php echo implode(' ', $classes); ?>" id="<?php echo $css_id; ?>"> + <div class="elgg-image-block"> + <div class="elgg-image-alt"> + <?php if ($links) : ?> + <ul class="elgg-menu elgg-menu-metadata"> + <?php echo $links; ?> + </ul> + <?php endif; ?> + <div class="clearfloat float-alt mtm"> + <?php echo $action_button; ?> + </div> + </div> + <div class="elgg-body"> +<?php +$settings_view_old = 'settings/' . $plugin->getID() . '/edit'; +$settings_view_new = 'plugins/' . $plugin->getID() . '/settings'; +if (elgg_view_exists($settings_view_old) || elgg_view_exists($settings_view_new)) { + $link = elgg_get_site_url() . "admin/plugin_settings/" . $plugin->getID(); + $settings_link = "<a class='elgg-plugin-settings' href='$link'>[" . elgg_echo('settings') . "]</a>"; +} +?> + <div class="elgg-head"> + <h3><?php echo $plugin->getManifest()->getName() . " $version $settings_link"; ?></h3> + </div> + <?php + if ($plugin->getManifest()->getApiVersion() < 1.8) { + $reqs = $plugin->getManifest()->getRequires(); + if (!$reqs) { + $message = elgg_echo('admin:plugins:warning:elgg_version_unknown'); + echo "<p class=\"elgg-state-error\">$message</p>"; + } + } + + if (!$can_activate) { + if ($active) { + $message = elgg_echo('admin:plugins:warning:unmet_dependencies_active'); + echo "<p class=\"elgg-state-warning\">$message</p>"; + } else { + $message = elgg_echo('admin:plugins:warning:unmet_dependencies'); + echo "<p class=\"elgg-state-error\">$message</p>"; + } + } + ?> + + <div><?php echo $description; ?></div> + <p><?php echo $author . ' - ' . $website; ?></p> + + <?php + echo $resources_html; + echo $docs; + ?> + + <div class="pts"> + <?php + echo elgg_view('output/url', array( + 'href' => "#elgg-plugin-manifest-$css_id", + 'text' => elgg_echo("admin:plugins:label:moreinfo"), + 'rel' => 'toggle', + )); + ?> + </div> + </div> + </div> + <div class="elgg-plugin-more hidden" id="elgg-plugin-manifest-<?php echo $css_id; ?>"> + + <?php + if ($screenshots_html) { + ?> + <div><ul><?php echo $screenshots_html; ?></ul></div> + <?php + } + + if ($categories_html) { + ?> + <div><?php echo elgg_echo('admin:plugins:label:categories') . ": <ul class=\"elgg-plugin-categories\">$categories_html</ul>"; ?></div> + <?php + } + + ?> + <div><?php echo elgg_echo('admin:plugins:label:copyright') . ": " . $copyright; ?></div> + <div><?php echo elgg_echo('admin:plugins:label:licence') . ": " . $license; ?></div> + <div><?php echo elgg_echo('admin:plugins:label:location') . ": " . htmlspecialchars($plugin->getPath()) ?></div> + + <div><?php echo elgg_echo('admin:plugins:label:dependencies'); ?>: + <?php + echo elgg_view('object/plugin/elements/dependencies', array('plugin' => $plugin)); + ?> + </div> + </div> +</div> diff --git a/views/default/object/plugin/invalid.php b/views/default/object/plugin/invalid.php new file mode 100644 index 000000000..828bceaba --- /dev/null +++ b/views/default/object/plugin/invalid.php @@ -0,0 +1,42 @@ +<?php +/** + * Displays an invalid plugin on the admin screen. + * + * An invalid plugin is a plugin whose isValid() method returns false. + * This usually means there are required files missing, unreadable or in the + * wrong format. + * + * @package Elgg.Core + * @subpackage Plugins + */ + +$plugin = $vars['entity']; + +$id = $plugin->getID(); +$path = htmlspecialchars($plugin->getPath()); +$message = elgg_echo('admin:plugins:warning:invalid', array($plugin->getError())); +$css_id = preg_replace('/[^a-z0-9-]/i', '-', $plugin->getID()); + +?> + +<div class="elgg-state-draggable elgg-plugin elgg-state-inactive elgg-state-error" id="elgg-plugin-<?php echo $plugin->guid; ?>"> + <div class="elgg-head"><h3><?php echo $id; ?></h3></div> + <div class="elgg-body"> + <p class="elgg-state-error"><?php echo $message; ?></p> + <p><?php echo elgg_echo('admin:plugins:warning:invalid:check_docs'); ?></p> + + <div class="pts"> + <?php + echo elgg_view('output/url', array( + 'href' => "#elgg-plugin-manifest-$css_id", + 'text' => elgg_echo("admin:plugins:label:moreinfo"), + 'rel' => 'toggle', + )); + ?> + </div> + + <div class="hidden elgg-plugin-more" id="elgg-plugin-manifest-<?php echo $css_id; ?>"> + <p><?php echo elgg_echo('admin:plugins:label:location') . ": " . $path; ?></p> + </div> + </div> +</div>
\ No newline at end of file diff --git a/views/default/object/widget.php b/views/default/object/widget.php index efc8ef9ae..0c7994f2b 100644 --- a/views/default/object/widget.php +++ b/views/default/object/widget.php @@ -1,9 +1,75 @@ <?php /** - * Elgg default widget view + * Widget object * - * @package Elgg - * @subpackage Core + * @uses $vars['entity'] ElggWidget + * @uses $vars['show_access'] Show the access control in edit area? (true) */ -echo elgg_view('page/components/widget', $vars); +$widget = $vars['entity']; +if (!elgg_instanceof($widget, 'object', 'widget')) { + return true; +} + +$show_access = elgg_extract('show_access', $vars, true); + +// @todo catch for disabled plugins +$widget_types = elgg_get_widget_types('all'); + +$handler = $widget->handler; + +$title = $widget->getTitle(); + +$edit_area = ''; +$can_edit = $widget->canEdit(); +if ($can_edit) { + $edit_area = elgg_view('object/widget/elements/settings', array( + 'widget' => $widget, + 'show_access' => $show_access, + )); +} +$controls = elgg_view('object/widget/elements/controls', array( + 'widget' => $widget, + 'show_edit' => $edit_area != '', +)); + +// don't show content for default widgets +if (elgg_in_context('default_widgets')) { + $content = ''; +} else { + if (elgg_view_exists("widgets/$handler/content")) { + $content = elgg_view("widgets/$handler/content", $vars); + } else { + elgg_deprecated_notice("widgets use content as the display view", 1.8); + $content = elgg_view("widgets/$handler/view", $vars); + } +} + +$widget_id = "elgg-widget-$widget->guid"; +$widget_instance = "elgg-widget-instance-$handler"; +$widget_class = "elgg-module elgg-module-widget"; +if ($can_edit) { + $widget_class .= " elgg-state-draggable $widget_instance"; +} else { + $widget_class .= " elgg-state-fixed $widget_instance"; +} + +$widget_header = <<<HEADER + <div class="elgg-widget-handle clearfix"><h3>$title</h3> + $controls + </div> +HEADER; + +$widget_body = <<<BODY + $edit_area + <div class="elgg-widget-content" id="elgg-widget-content-$widget->guid"> + $content + </div> +BODY; + +echo elgg_view('page/components/module', array( + 'class' => $widget_class, + 'id' => $widget_id, + 'body' => $widget_body, + 'header' => $widget_header, +)); diff --git a/views/default/object/widget/elements/controls.php b/views/default/object/widget/elements/controls.php new file mode 100644 index 000000000..57a935f62 --- /dev/null +++ b/views/default/object/widget/elements/controls.php @@ -0,0 +1,14 @@ +<?php +/** + * Elgg widget controls + * + * @uses $vars['widget'] + * @uses $vars['show_edit'] Whether to show the edit button (true) + */ + +echo elgg_view_menu('widget', array( + 'entity' => elgg_extract('widget', $vars), + 'show_edit' => elgg_extract('show_edit', $vars, true), + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); diff --git a/views/default/object/widget/elements/settings.php b/views/default/object/widget/elements/settings.php new file mode 100644 index 000000000..25cda58c9 --- /dev/null +++ b/views/default/object/widget/elements/settings.php @@ -0,0 +1,25 @@ +<?php +/** + * Elgg widget edit settings + * + * @uses $vars['widget'] + */ + +$widget = elgg_extract('widget', $vars); + +// not using elgg_view_form() so that we can detect if the form is empty +$form_body = elgg_view('forms/widgets/save', $vars); +if (!$form_body) { + return true; +} + +$form = elgg_view('input/form', array( + 'action' => 'action/widgets/save', + 'body' => $form_body, + 'class' => 'elgg-form-widgets-save', +)); +?> + +<div class="elgg-widget-edit" id="widget-edit-<?php echo $widget->guid; ?>"> + <?php echo $form; ?> +</div> diff --git a/views/default/output/access.php b/views/default/output/access.php index cb1ffc94c..5c8d62c4d 100644 --- a/views/default/output/access.php +++ b/views/default/output/access.php @@ -9,8 +9,9 @@ //sort out the access level for display if (isset($vars['entity']) && elgg_instanceof($vars['entity'])) { $access_id = $vars['entity']->access_id; - $access_class = 'access_level'; + $access_class = 'elgg-access'; $access_id_string = get_readable_access_level($access_id); + $access_id_string = htmlspecialchars($access_id_string, ENT_QUOTES, 'UTF-8', false); // if within a group or shared access collection display group name and open/closed membership status // @todo have a better way to do this instead of checking against subtype / class. @@ -20,20 +21,22 @@ if (isset($vars['entity']) && elgg_instanceof($vars['entity'])) { // we decided to show that the item is in a group, rather than its actual access level // not required. Group ACLs are prepended with "Group: " when written. //$access_id_string = elgg_echo('groups:group') . $container->name; - $membership = $is_group->membership; + $membership = $container->membership; if ($membership == ACCESS_PUBLIC) { - $access_class .= ' group_open'; + $access_class .= ' elgg-access-group-open'; } else { - $access_class .= ' group_closed'; + $access_class .= ' elgg-access-group-closed'; } + + // @todo this is plugin specific code in core. Should be removed. } elseif ($container && $container->getSubtype() == 'shared_access') { - $access_level .= ' shared_collection'; + $access_class .= ' shared_collection'; } elseif ($access_id == ACCESS_PRIVATE) { - $access_level .= ' private'; - } else { - $access_level .= ' entity_access'; + $access_class .= ' elgg-access-private'; } - echo "<span class=\"$access_class\">$access_id_string</span>"; -}
\ No newline at end of file + $help_text = elgg_echo('access:help'); + + echo "<span title=\"$help_text\" class=\"$access_class\">$access_id_string</span>"; +} diff --git a/views/default/output/calendar.php b/views/default/output/calendar.php index 8729fa1c5..fa0bd0c04 100644 --- a/views/default/output/calendar.php +++ b/views/default/output/calendar.php @@ -9,9 +9,5 @@ * @uses $vars['value'] The current value, if any * */ - -if (is_int($vars['value'])) { - echo date("F j, Y", $vars['value']); -} else { - echo htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8'); -}
\ No newline at end of file +elgg_deprecated_notice('output/calendar was deprecated in favor of output/date', 1.8); +echo elgg_view('output/date', $vars);
\ No newline at end of file diff --git a/views/default/output/confirmlink.php b/views/default/output/confirmlink.php index 20431e5a7..532790a38 100644 --- a/views/default/output/confirmlink.php +++ b/views/default/output/confirmlink.php @@ -6,14 +6,16 @@ * @package Elgg * @subpackage Core * - * @uses $vars['text'] The text of the link - * @uses $vars['href'] The address - * @uses $vars['confirm'] The dialog text - * @uses $vars['text_encode'] Encode special characters? + * @uses $vars['text'] The text of the link + * @uses $vars['href'] The address + * @uses $vars['title'] The title text (defaults to confirm text) + * @uses $vars['confirm'] The dialog text + * @uses $vars['encode_text'] Run $vars['text'] through htmlspecialchars() (false) */ -$confirm = elgg_extract('confirm', $vars, elgg_echo('question:areyousure')); -$encode = elgg_extract('text_encode', $vars, true); +$vars['rel'] = elgg_extract('confirm', $vars, elgg_echo('question:areyousure')); +$vars['rel'] = addslashes($vars['rel']); +$encode = elgg_extract('encode_text', $vars, false); // always generate missing action tokens $vars['href'] = elgg_add_action_tokens_to_url(elgg_normalize_url($vars['href']), true); @@ -23,7 +25,10 @@ if ($encode) { $text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8', false); } -$vars['title'] = addslashes($confirm); +if (!isset($vars['title']) && isset($vars['confirm'])) { + $vars['title'] = $vars['rel']; +} + if (isset($vars['class'])) { if (!is_array($vars['class'])) { $vars['class'] = array($vars['class']); @@ -32,11 +37,11 @@ if (isset($vars['class'])) { } else { $vars['class'] = 'elgg-requires-confirmation'; } -//$vars['onclick'] = "return confirm('" . addslashes($confirm) . "')"; unset($vars['encode_text']); unset($vars['text']); unset($vars['confirm']); +unset($vars['is_trusted']); $attributes = elgg_format_attributes($vars); echo "<a $attributes>$text</a>"; diff --git a/views/default/output/date.php b/views/default/output/date.php index bd8a65714..1644a3480 100644 --- a/views/default/output/date.php +++ b/views/default/output/date.php @@ -6,10 +6,12 @@ * @package Elgg * @subpackage Core * - * @uses $vars['value'] A UNIX epoch timestamp - * + * @uses $vars['value'] Date as text or a Unix timestamp in seconds */ -if ($vars['value'] > 86400) { - echo date("F j, Y",$vars['value']); -}
\ No newline at end of file +// convert timestamps to text for display +if (is_numeric($vars['value'])) { + $vars['value'] = gmdate('Y-m-d', $vars['value']); +} + +echo $vars['value']; diff --git a/views/default/output/email.php b/views/default/output/email.php index 00eefad1f..f5a8bc4b8 100644 --- a/views/default/output/email.php +++ b/views/default/output/email.php @@ -10,6 +10,8 @@ * */ +$encoded_value = htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8'); + if (!empty($vars['value'])) { - echo "<a href=\"mailto:" . $vars['value'] . "\">". htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false) ."</a>"; + echo "<a href=\"mailto:$encoded_value\">$encoded_value</a>"; }
\ No newline at end of file diff --git a/views/default/output/img.php b/views/default/output/img.php new file mode 100644 index 000000000..d3f596801 --- /dev/null +++ b/views/default/output/img.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg image view + * + * @uses string $vars['src'] The image src url. + */ + +$vars['src'] = elgg_normalize_url($vars['src']); +$vars['src'] = elgg_format_url($vars['src']); + +$attributes = elgg_format_attributes($vars); +echo "<img $attributes/>"; diff --git a/views/default/output/location.php b/views/default/output/location.php new file mode 100644 index 000000000..e1009f17d --- /dev/null +++ b/views/default/output/location.php @@ -0,0 +1,19 @@ +<?php +/** + * Display a location + * + * @uses $vars['entity'] The ElggEntity that has a location + * @uses $vars['value'] The location string if the entity is not passed + */ + +if (isset($vars['entity'])) { + $vars['value'] = $vars['entity']->location; + unset($vars['entity']); +} + +// Fixes #4566 we used to allow arrays of strings for location +if (is_array($vars['value'])) { + $vars['value'] = implode(', ', $vars['value']); +} + +echo elgg_view('output/tag', $vars); diff --git a/views/default/output/longtext.php b/views/default/output/longtext.php index 703bb0868..589100c4f 100644 --- a/views/default/output/longtext.php +++ b/views/default/output/longtext.php @@ -11,22 +11,28 @@ * @uses $vars['class'] */ -$class = 'elgg-text'; +$class = 'elgg-output'; $additional_class = elgg_extract('class', $vars, ''); if ($additional_class) { - $class = "$class $additional_class"; + $vars['class'] = "$class $additional_class"; +} else { + $vars['class'] = $class; } $parse_urls = elgg_extract('parse_urls', $vars, true); +unset($vars['parse_urls']); $text = $vars['value']; - -$text = filter_tags($text); +unset($vars['value']); if ($parse_urls) { $text = parse_urls($text); } -$text = autop($text); +$text = filter_tags($text); + +$text = elgg_autop($text); + +$attributes = elgg_format_attributes($vars); -echo "<div class=\"$class\">$text</div>"; +echo "<div $attributes>$text</div>"; diff --git a/views/default/output/tag.php b/views/default/output/tag.php new file mode 100644 index 000000000..6bd9a72a7 --- /dev/null +++ b/views/default/output/tag.php @@ -0,0 +1,35 @@ +<?php +/** + * Elgg single tag output + * + * @uses $vars['value'] String + * @uses $vars['type'] The entity type, optional + * @uses $vars['subtype'] The entity subtype, optional + * + */ + +if (!empty($vars['type'])) { + $type = "&type=" . rawurlencode($vars['type']); +} else { + $type = ""; +} +if (!empty($vars['subtype'])) { + $subtype = "&subtype=" . rawurlencode($vars['subtype']); +} else { + $subtype = ""; +} +if (!empty($vars['object'])) { + $object = "&object=" . rawurlencode($vars['object']); +} else { + $object = ""; +} + +if (isset($vars['value'])) { + $url = elgg_get_site_url() . 'search?q=' . rawurlencode($vars['value']) . "&search_type=tags{$type}{$subtype}{$object}"; + $vars['value'] = htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false); + echo elgg_view('output/url', array( + 'href' => $url, + 'text' => $vars['value'], + 'rel' => 'tag', + )); +} diff --git a/views/default/output/tagcloud.php b/views/default/output/tagcloud.php index d9397faab..2fbf1cd0a 100644 --- a/views/default/output/tagcloud.php +++ b/views/default/output/tagcloud.php @@ -12,8 +12,6 @@ * @uses $vars['subtype'] Entity subtype */ -$context = elgg_get_context(); - if (!empty($vars['subtype'])) { $subtype = "&entity_subtype=" . urlencode($vars['subtype']); } else { @@ -41,6 +39,8 @@ if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) { $cloud = ''; foreach ($vars['tagcloud'] as $tag) { + $tag->tag = htmlspecialchars($tag->tag, ENT_QUOTES, 'UTF-8', false); + if ($cloud != '') { $cloud .= ', '; } @@ -49,23 +49,18 @@ if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) { if ($size < 100) { $size = 100; } - $url = elgg_get_site_url()."pg/search/?q=". urlencode($tag->tag) . "&search_type=tags$type$subtype"; - $url = elgg_format_url($url); - $cloud .= "<a href=\"$url\" style=\"font-size: $size%\" title=\"".addslashes($tag->tag)." ($tag->total)\">" . htmlspecialchars($tag->tag, ENT_QUOTES, 'UTF-8') . "</a>"; - } - - if ($context != 'tags') { - $text = elgg_echo('tagcloud:allsitetags'); - $cloud .= '<p class="elgg-tags">'; - $cloud .= "<a href=\"".elgg_get_site_url()."pg/tags\">$text</a>"; - $cloud .= '</p>'; + $url = "search?q=". urlencode($tag->tag) . "&search_type=tags$type$subtype"; + + $cloud .= elgg_view('output/url', array( + 'text' => $tag->tag, + 'href' => $url, + 'style' => "font-size: $size%;", + 'title' => "$tag->tag ($tag->total)", + 'rel' => 'tag' + )); } $cloud .= elgg_view('tagcloud/extend'); - if ($context != 'tags') { - echo elgg_view_module('aside', elgg_echo('tagcloud'), $cloud, array('class' => 'elgg-tagcloud')); - } else { - echo "<div class=\"elgg-tagcloud\">$cloud</div>"; - } + echo "<div class=\"elgg-tagcloud\">$cloud</div>"; } diff --git a/views/default/output/tags.php b/views/default/output/tags.php index f4804e76e..db096a3be 100644 --- a/views/default/output/tags.php +++ b/views/default/output/tags.php @@ -1,24 +1,34 @@ <?php /** * Elgg tags - * * Tags can be a single string (for one tag) or an array of strings * - * @package Elgg - * @subpackage Core - * - * @uses $vars['tags'] The tags to display - * @uses $vars['type'] The entity type, optional + * @uses $vars['value'] Array of tags or a string + * @uses $vars['type'] The entity type, optional * @uses $vars['subtype'] The entity subtype, optional + * @uses $vars['entity'] Optional. Entity whose tags are being displayed (metadata ->tags) + * @uses $vars['list_class'] Optional. Additional classes to be passed to <ul> element + * @uses $vars['item_class'] Optional. Additional classes to be passed to <li> elements + * @uses $vars['icon_class'] Optional. Additional classes to be passed to tags icon image */ +if (isset($vars['entity'])) { + $vars['tags'] = $vars['entity']->tags; + unset($vars['entity']); +} + +if (!empty($vars['type'])) { + $type = "&type=" . rawurlencode($vars['type']); +} else { + $type = ""; +} if (!empty($vars['subtype'])) { - $subtype = "&subtype=" . urlencode($vars['subtype']); + $subtype = "&subtype=" . rawurlencode($vars['subtype']); } else { $subtype = ""; } if (!empty($vars['object'])) { - $object = "&object=" . urlencode($vars['object']); + $object = "&object=" . rawurlencode($vars['object']); } else { $object = ""; } @@ -27,24 +37,46 @@ if (empty($vars['tags']) && !empty($vars['value'])) { $vars['tags'] = $vars['value']; } +if (empty($vars['tags']) && isset($vars['entity'])) { + $vars['tags'] = $vars['entity']->tags; +} + if (!empty($vars['tags'])) { if (!is_array($vars['tags'])) { $vars['tags'] = array($vars['tags']); } - echo '<ul class="elgg-tags">'; + $list_class = "elgg-tags"; + if (isset($vars['list_class'])) { + $list_class = "$list_class {$vars['list_class']}"; + } + + $item_class = "elgg-tag"; + if (isset($vars['item_class'])) { + $item_class = "$item_class {$vars['item_class']}"; + } + + $icon_class = elgg_extract('icon_class', $vars); + $list_items = '<li>' . elgg_view_icon('tag', $icon_class) . '</li>'; + foreach($vars['tags'] as $tag) { - if (!empty($vars['type'])) { - $type = "&type={$vars['type']}"; - } else { - $type = ""; - } - $url = elgg_get_site_url() . 'pg/search/?q=' . urlencode($tag) . "&search_type=tags{$type}{$subtype}{$object}"; + $url = elgg_get_site_url() . 'search?q=' . rawurlencode($tag) . "&search_type=tags{$type}{$subtype}{$object}"; if (is_string($tag)) { - echo '<li>'; - echo "<a rel=\"tag\" href=\"$url\">" . htmlspecialchars($tag, ENT_QUOTES, 'UTF-8') . "</a>"; - echo '</li>'; + $tag = htmlspecialchars($tag, ENT_QUOTES, 'UTF-8', false); + $list_items .= "<li class=\"$item_class\">"; + $list_items .= elgg_view('output/url', array('href' => $url, 'text' => $tag, 'rel' => 'tag')); + $list_items .= '</li>'; } } - echo '</ul>'; + + $list = <<<___HTML + <div class="clearfix"> + <ul class="$list_class"> + $list_items + </ul> + </div> +___HTML; + + echo $list; } + diff --git a/views/default/output/text.php b/views/default/output/text.php index 2c9242c1d..5cbfc35b0 100644 --- a/views/default/output/text.php +++ b/views/default/output/text.php @@ -6,8 +6,7 @@ * @package Elgg * @subpackage Core * - * @uses $vars['text'] The text to display - * + * @uses $vars['value'] The text to display */ echo htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false);
\ No newline at end of file diff --git a/views/default/output/url.php b/views/default/output/url.php index fdeb94ac3..81b02087d 100644 --- a/views/default/output/url.php +++ b/views/default/output/url.php @@ -8,9 +8,9 @@ * * @uses string $vars['text'] The string between the <a></a> tags. * @uses string $vars['href'] The unencoded url string - * @uses bool $vars['encode_text'] Run $vars['text'] through htmlspecialchars()? - * @uses bool $vars['is_action'] Is this a link to an action? - * + * @uses bool $vars['encode_text'] Run $vars['text'] through htmlspecialchars() (false) + * @uses bool $vars['is_action'] Is this a link to an action (false) + * @uses bool $vars['is_trusted'] Is this link trusted (false) */ $url = elgg_extract('href', $vars, null); @@ -20,7 +20,7 @@ if (!$url and isset($vars['value'])) { } if (isset($vars['text'])) { - if (isset($vars['encode_text']) && $vars['encode_text']) { + if (elgg_extract('encode_text', $vars, false)) { $text = htmlspecialchars($vars['text'], ENT_QUOTES, 'UTF-8', false); } else { $text = $vars['text']; @@ -35,13 +35,22 @@ unset($vars['encode_text']); if ($url) { $url = elgg_normalize_url($url); - if (isset($vars['is_action'])) { + if (elgg_extract('is_action', $vars, false)) { $url = elgg_add_action_tokens_to_url($url, false); - unset($vars['is_action']); + } + + if (!elgg_extract('is_trusted', $vars, false)) { + if (!isset($vars['rel'])) { + $vars['rel'] = 'nofollow'; + $url = strip_tags($url); + } } $vars['href'] = $url; } +unset($vars['is_action']); +unset($vars['is_trusted']); + $attributes = elgg_format_attributes($vars); -echo "<a $attributes>$text</a>";
\ No newline at end of file +echo "<a $attributes>$text</a>"; diff --git a/views/default/page/admin.php b/views/default/page/admin.php new file mode 100644 index 000000000..7045edd91 --- /dev/null +++ b/views/default/page/admin.php @@ -0,0 +1,66 @@ +<?php +/** + * Elgg pageshell for the admin area + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +$notices_html = ''; +$notices = elgg_get_admin_notices(); +if ($notices) { + foreach ($notices as $notice) { + $notices_html .= elgg_view_entity($notice); + } + + $notices_html = "<div class=\"elgg-admin-notices\">$notices_html</div>"; +} + +// render content before head so that JavaScript and CSS can be loaded. See #4032 +$messages = elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); +$header = elgg_view('admin/header', $vars); +$body = $vars['body']; +$footer = elgg_view('admin/footer', $vars); + + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> + <div class="elgg-page elgg-page-admin"> + <div class="elgg-inner"> + <div class="elgg-page-header"> + <div class="elgg-inner clearfix"> + <?php echo $header; ?> + </div> + </div> + <div class="elgg-page-messages"> + <?php echo $messages; ?> + <?php echo $notices_html; ?> + </div> + <div class="elgg-page-body"> + <div class="elgg-inner"> + <?php echo $body; ?> + </div> + </div> + <div class="elgg-page-footer"> + <div class="elgg-inner"> + <?php echo $footer; ?> + </div> + </div> + </div> + </div> + <?php echo elgg_view('page/elements/foot'); ?> +</body> + +</html>
\ No newline at end of file diff --git a/views/default/page/components/gallery.php b/views/default/page/components/gallery.php index f57cc99ba..e8b3f477e 100644 --- a/views/default/page/components/gallery.php +++ b/views/default/page/components/gallery.php @@ -2,13 +2,21 @@ /** * Gallery view * - * @uses $vars['items'] + * Implemented as an unorder list * - * @todo not complete - number of columns + * @uses $vars['items'] Array of ElggEntity or ElggAnnotation objects + * @uses $vars['offset'] Index of the first list item in complete list + * @uses $vars['limit'] Number of items per page + * @uses $vars['count'] Number of items in the complete list + * @uses $vars['pagination'] Show pagination? (default: true) + * @uses $vars['position'] Position of the pagination: before, after, or both + * @uses $vars['full_view'] Show the full view of the items (default: false) + * @uses $vars['gallery_class'] Additional CSS class for the <ul> element + * @uses $vars['item_class'] Additional CSS class for the <li> elements */ $items = $vars['items']; -if (!is_array($items) && sizeof($items) == 0) { +if (!is_array($items) || sizeof($items) == 0) { return true; } @@ -18,13 +26,20 @@ $offset = $vars['offset']; $limit = $vars['limit']; $count = $vars['count']; $pagination = elgg_extract('pagination', $vars, true); -$full_view = elgg_extract('full_view', $vars, false); $offset_key = elgg_extract('offset_key', $vars, 'offset'); $position = elgg_extract('position', $vars, 'after'); -$num_columns = 4; +$gallery_class = 'elgg-gallery'; +if (isset($vars['gallery_class'])) { + $gallery_class = "$gallery_class {$vars['gallery_class']}"; +} +$item_class = 'elgg-item'; +if (isset($vars['item_class'])) { + $item_class = "$item_class {$vars['item_class']}"; +} +$nav = ''; if ($pagination && $count) { $nav .= elgg_view('navigation/pagination', array( 'offset' => $offset, @@ -39,33 +54,20 @@ if ($position == 'before' || $position == 'both') { } ?> -<table class="elgg-gallery"> -<?php - -$col = 0; -foreach ($items as $item) { - if ($col == 0) { - echo '<tr>'; - } - $col++; - - echo '<td>'; - echo elgg_view_list_item($item, $full_view, $vars); - echo "</td>"; - - if ($col == $num_columns) { - echo '</tr>'; - $col = 0; - } -} - -if ($col > 0) { - echo '</tr>'; -} - -?> - -</table> +<ul class="<?php echo $gallery_class; ?>"> + <?php + foreach ($items as $item) { + if (elgg_instanceof($item)) { + $id = "elgg-{$item->getType()}-{$item->getGUID()}"; + } else { + $id = "item-{$item->getType()}-{$item->id}"; + } + echo "<li id=\"$id\" class=\"$item_class\">"; + echo elgg_view_list_item($item, $vars); + echo "</li>"; + } + ?> +</ul> <?php if ($position == 'after' || $position == 'both') { diff --git a/views/default/page/components/list.php b/views/default/page/components/list.php index 374922ecd..28ed58ddf 100644 --- a/views/default/page/components/list.php +++ b/views/default/page/components/list.php @@ -6,7 +6,7 @@ * * @uses $vars['items'] Array of ElggEntity or ElggAnnotation objects * @uses $vars['offset'] Index of the first list item in complete list - * @uses $vars['limit'] Number of items per page + * @uses $vars['limit'] Number of items per page. Only used as input to pagination. * @uses $vars['count'] Number of items in the complete list * @uses $vars['base_url'] Base URL of list (optional) * @uses $vars['pagination'] Show pagination? (default: true) @@ -17,23 +17,22 @@ */ $items = $vars['items']; -$offset = $vars['offset']; -$limit = $vars['limit']; -$count = $vars['count']; -$base_url = $vars['base_url']; +$offset = elgg_extract('offset', $vars); +$limit = elgg_extract('limit', $vars); +$count = elgg_extract('count', $vars); +$base_url = elgg_extract('base_url', $vars, ''); $pagination = elgg_extract('pagination', $vars, true); -$full_view = elgg_extract('full_view', $vars, false); $offset_key = elgg_extract('offset_key', $vars, 'offset'); $position = elgg_extract('position', $vars, 'after'); $list_class = 'elgg-list'; if (isset($vars['list_class'])) { - $list_class = "{$vars['list_class']} $list_class"; + $list_class = "$list_class {$vars['list_class']}"; } -$item_class = 'elgg-list-item'; +$item_class = 'elgg-item'; if (isset($vars['item_class'])) { - $item_class = "{$vars['item_class']} $item_class"; + $item_class = "$item_class {$vars['item_class']}"; } $html = ""; @@ -41,7 +40,7 @@ $nav = ""; if ($pagination && $count) { $nav .= elgg_view('navigation/pagination', array( - 'baseurl' => $base_url, + 'base_url' => $base_url, 'offset' => $offset, 'count' => $count, 'limit' => $limit, @@ -52,14 +51,15 @@ if ($pagination && $count) { if (is_array($items) && count($items) > 0) { $html .= "<ul class=\"$list_class\">"; foreach ($items as $item) { - if (elgg_instanceof($item)) { - $id = "elgg-{$item->getType()}-{$item->getGUID()}"; - } else { - $id = "item-{$item->getType()}-{$item->id}"; + $li = elgg_view_list_item($item, $vars); + if ($li) { + if (elgg_instanceof($item)) { + $id = "elgg-{$item->getType()}-{$item->getGUID()}"; + } else { + $id = "item-{$item->getType()}-{$item->id}"; + } + $html .= "<li id=\"$id\" class=\"$item_class\">$li</li>"; } - $html .= "<li id=\"$id\" class=\"$item_class\">"; - $html .= elgg_view_list_item($item, $full_view, $vars); - $html .= '</li>'; } $html .= '</ul>'; } diff --git a/views/default/page/components/module.php b/views/default/page/components/module.php index f7b9da59c..7e1eaff20 100644 --- a/views/default/page/components/module.php +++ b/views/default/page/components/module.php @@ -2,10 +2,10 @@ /** * Elgg module element * - * @uses $vars['title'] Title text - * @uses $vars['header'] HTML content of the header + * @uses $vars['title'] Optional title text (do not pass header with this option) + * @uses $vars['header'] Optional HTML content of the header * @uses $vars['body'] HTML content of the body - * @uses $vars['footer'] HTML content of the footer + * @uses $vars['footer'] Optional HTML content of the footer * @uses $vars['class'] Optional additional class for module * @uses $vars['id'] Optional id for module * @uses $vars['show_inner'] Optional flag to leave out inner div (default: false) @@ -29,19 +29,15 @@ if (isset($vars['id'])) { } if (isset($vars['header'])) { - if ($vars['header']) { - $header = "<div class=\"elgg-head\">$header</div>"; - } -} else { + $header = "<div class=\"elgg-head\">$header</div>"; +} elseif ($title) { $header = "<div class=\"elgg-head\"><h3>$title</h3></div>"; } $body = "<div class=\"elgg-body\">$body</div>"; -if (isset($vars['footer'])) { - if ($vars['footer']) { - $footer = "<div class=\"elgg-foot\">$footer</div>"; - } +if ($footer) { + $footer = "<div class=\"elgg-foot\">$footer</div>"; } $contents = $header . $body . $footer; diff --git a/views/default/page/components/summary.php b/views/default/page/components/summary.php new file mode 100644 index 000000000..ea61a6e4b --- /dev/null +++ b/views/default/page/components/summary.php @@ -0,0 +1,4 @@ +<?php + +// Deprecated in favor of type/elements/summary +echo elgg_view('object/elements/summary', $vars); diff --git a/views/default/page/components/widget.php b/views/default/page/components/widget.php deleted file mode 100644 index e7a16b318..000000000 --- a/views/default/page/components/widget.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Widget object - * - * @uses $vars['entity'] ElggWidget - * @uses $vars['show_access'] Show the access control in edit area? (true) - */ - -$widget = $vars['entity']; -if (!elgg_instanceof($widget, 'object', 'widget')) { - return true; -} - -$show_access = elgg_extract('show_access', $vars, true); - -// @todo catch for disabled plugins -$widget_types = elgg_get_widget_types('all'); - -$handler = $widget->handler; - -$title = $widget->getTitle(); - -$edit_area = ''; -$can_edit = $widget->canEdit(); -if ($can_edit) { - $edit_area = elgg_view('layout/objects/widget/settings', array( - 'widget' => $widget, - 'show_access' => $show_access, - )); -} -$controls = elgg_view('layout/objects/widget/controls', array( - 'widget' => $widget, - 'show_edit' => $edit_area != '', -)); - -// don't show content for default widgets -if (elgg_in_context('default_widgets')) { - $content = ''; -} else { - if (elgg_view_exists("widgets/$handler/content")) { - $content = elgg_view("widgets/$handler/content", $vars); - } else { - elgg_deprecated_notice("widgets use content as the display view", 1.8); - $content = elgg_view("widgets/$handler/view", $vars); - } -} - -$widget_id = "elgg-widget-$widget->guid"; -$widget_instance = "elgg-widget-instance-$handler"; -$widget_class = "elgg-module elgg-module-widget"; -if ($can_edit) { - $widget_class .= " elgg-state-draggable $widget_instance"; -} else { - $widget_class .= " elgg-state-fixed $widget_instance"; -} - -echo <<<HTML -<div class="$widget_class" id="$widget_id"> - <div class="elgg-head"> - <h3>$title</h3> - $controls - </div> - <div class="elgg-body"> - $edit_area - <div class="elgg-widget-content"> - $content - </div> - </div> -</div> -HTML; diff --git a/views/default/page/default.php b/views/default/page/default.php new file mode 100644 index 000000000..567494d0c --- /dev/null +++ b/views/default/page/default.php @@ -0,0 +1,76 @@ +<?php +/** + * Elgg pageshell + * The standard HTML page shell that everything else fits into + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +// backward compatability support for plugins that are not using the new approach +// of routing through admin. See reportedcontent plugin for a simple example. +if (elgg_get_context() == 'admin') { + if (get_input('handler') != 'admin') { + elgg_deprecated_notice("admin plugins should route through 'admin'.", 1.8); + } + elgg_admin_add_plugin_settings_menu(); + elgg_unregister_css('elgg'); + echo elgg_view('page/admin', $vars); + return true; +} + +// render content before head so that JavaScript and CSS can be loaded. See #4032 +$topbar = elgg_view('page/elements/topbar', $vars); +$messages = elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); +$header = elgg_view('page/elements/header', $vars); +$body = elgg_view('page/elements/body', $vars); +$footer = elgg_view('page/elements/footer', $vars); + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); + +$lang = get_current_language(); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $lang; ?>" lang="<?php echo $lang; ?>"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> +<div class="elgg-page elgg-page-default"> + <div class="elgg-page-messages"> + <?php echo $messages; ?> + </div> + + <?php if (elgg_is_logged_in()){ ?> + <div class="elgg-page-topbar"> + <div class="elgg-inner"> + <?php echo $topbar; ?> + </div> + </div> + <?php } ?> + + <div class="elgg-page-header"> + <div class="elgg-inner"> + <?php echo $header; ?> + </div> + </div> + <div class="elgg-page-body"> + <div class="elgg-inner"> + <?php echo $body; ?> + </div> + </div> + <div class="elgg-page-footer"> + <div class="elgg-inner"> + <?php echo $footer; ?> + </div> + </div> +</div> +<?php echo elgg_view('page/elements/foot'); ?> +</body> +</html>
\ No newline at end of file diff --git a/views/default/page/elements/comments.php b/views/default/page/elements/comments.php index c27a146ab..97cb9574e 100644 --- a/views/default/page/elements/comments.php +++ b/views/default/page/elements/comments.php @@ -5,26 +5,38 @@ * @uses $vars['entity'] ElggEntity * @uses $vars['show_add_form'] Display add form or not * @uses $vars['id'] Optional id for the div + * @uses $vars['class'] Optional additional class for the div */ $show_add_form = elgg_extract('show_add_form', $vars, true); $id = ''; if (isset($vars['id'])) { - $id = "id =\"{$vars['id']}\""; + $id = "id=\"{$vars['id']}\""; } -echo "<div $id class=\"elgg-comments\">"; +$class = 'elgg-comments'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +// work around for deprecation code in elgg_view() +unset($vars['internalid']); + +echo "<div $id class=\"$class\">"; $options = array( 'guid' => $vars['entity']->getGUID(), 'annotation_name' => 'generic_comment' ); -echo elgg_list_annotations($options); +$html = elgg_list_annotations($options); +if ($html) { + echo '<h3>' . elgg_echo('comments') . '</h3>'; + echo $html; +} if ($show_add_form) { - $form_vars = array('name' => 'elgg_add_comment'); - echo elgg_view_form('comments/add', $form_vars, $vars); + echo elgg_view_form('comments/add', array(), $vars); } echo '</div>'; diff --git a/views/default/page/elements/comments_block.php b/views/default/page/elements/comments_block.php new file mode 100644 index 000000000..d0f8ab809 --- /dev/null +++ b/views/default/page/elements/comments_block.php @@ -0,0 +1,45 @@ +<?php +/** + * Display the latest related comments + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being commented on + * @uses $vars['limit'] The number of comments to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { + $owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { + // not supporting groups so return + return true; +} + +$options = array( + 'annotation_name' => 'generic_comment', + 'owner_guid' => $owner_guid, + 'reverse_order_by' => true, + 'limit' => elgg_extract('limit', $vars, 4), + 'type' => 'object', + 'subtypes' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), +); + +$title = elgg_echo('generic_comments:latest'); +$comments = elgg_get_annotations($options); +if ($comments) { + $body = elgg_view('page/components/list', array( + 'items' => $comments, + 'pagination' => false, + 'list_class' => 'elgg-latest-comments', + 'full_view' => false, + )); +} else { + $body = '<p>' . elgg_echo('generic_comment:none') . '</p>'; +} + +echo elgg_view_module('aside', $title, $body); diff --git a/views/default/page/elements/content_header.php b/views/default/page/elements/content_header.php deleted file mode 100644 index 10ba4b052..000000000 --- a/views/default/page/elements/content_header.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * Displays the Add New button, and the All, Mine, My Friends tabs for plugins - * If a user is not logged in, this only displays the All tab. - * If this is in a group context, it doesn't display any tabs - * - * @uses string $vars['type'] The section type. Should be the same as the page handler. Used for generating URLs. - * @uses string $vars['context'] Which filter we're looking at: all, mine, friends, or action. Nothing to do with get_context(). - * - * @uses string $vars['all_link'] Optional. The URL to use for the "All" tab link. Defaults to mod/$type/all.php - * @uses string $vars['mine_link'] Optional. The URL to use for the "Mine" tab link. Defaults to pg/$type/$username - * @uses string $vars['friends_link'] Optional. The URL to use for the "Friends" tab link. Defaults to pg/$type/$username/friends - * @uses string $vars['new_link'] Optional. The URL to use for the "New" button. Defaults to pg/$type/$username/new - * @uses array $vars['tabs'] Optional. Override all tab generation. See view:navgiation/tabs for formatting - * - * @package Elgg - * @subpackage Core - */ - -$page_owner = elgg_get_page_owner_entity(); -$logged_in_user = elgg_get_logged_in_user_entity(); -$username = $logged_in_user->username; - -if (!$page_owner) { - $page_owner = $logged_in_user; -} - -// so we know if the user is looking at their own, everyone's or all friends -$filter_context = $vars['context']; - -// get the object type -$type = $vars['type']; - -// create an empty string to start with -$new_button = ''; - -// generate a list of default tabs -$default_tabs = array( - 'all' => array( - 'title' => elgg_echo('all'), - 'url' => (isset($vars['all_link'])) ? $vars['all_link'] : "mod/$type/all.php", - 'selected' => ($filter_context == 'everyone'), - ), - 'mine' => array( - 'title' => elgg_echo('mine'), - 'url' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "pg/$type/$username", - 'selected' => ($filter_context == 'mine'), - ), - 'friend' => array( - 'title' => elgg_echo('friends'), - 'url' => (isset($vars['friend_link'])) ? $vars['friend_link'] : "pg/$type/$username/friends", - 'selected' => ($filter_context == 'friends'), - ), -); - -// determine if using default or overwritten tabs -$tabs = (isset($vars['tabs'])) ? $vars['tabs'] : $default_tabs; -$tab_list = elgg_view('navigation/tabs', array('tabs' => $tabs)); - -$title = elgg_echo($type); -$title = '<div class="content-header-title">' . elgg_view_title($title) . '</div>'; - -// must be logged in to see any action buttons -if (elgg_is_logged_in()) { - // only show the new button when not on the add form. - // hide the tabs when on the add form. - if ($filter_context == 'action') { - $tab_list = ''; - } else { - // @todo remove the hard coded reference to the videolist plugin - if (elgg_get_context() == "videolist"){ - $video_link = elgg_get_site_url() . "pg/videolist/browse/$username/"; - $new_button = "<a href=\"{$video_link}\" class='elgg-button-action'>" . elgg_echo('videolist:browsemenu') . '</a>'; - } else { - $new_link = elgg_normalize_url((isset($vars['new_link'])) ? $vars['new_link'] : "pg/$type/$username/new"); - $new_button = "<a href=\"{$new_link}\" class='elgg-button-action'>" . elgg_echo($type . ':new') . '</a>'; - } - $new_button = "<div class='content-header-options'>$new_button</div>"; - } - - // also hide the tabs if in a group context (ie, listing groups) or - // when viewing tools belonging to a group - if (elgg_get_context() == 'groups' || $page_owner instanceof ElggGroup) { - $tab_list = ''; - } -} - -echo <<<HTML -<div id="content-header" class="clearfix"> - $title $new_button -</div> -HTML; - -echo $tab_list; diff --git a/views/default/page/elements/content_header_member.php b/views/default/page/elements/content_header_member.php deleted file mode 100644 index 4f21cbcce..000000000 --- a/views/default/page/elements/content_header_member.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * When looking at a users blog, bookmarks, video etc only show - * the users name and the tool you are viewing - * - * @package Elgg - * @subpackage Core - * - */ - -$page_owner = elgg_get_page_owner_entity(); -$name = elgg_get_page_owner_entity()->name; - -// get the object type -$type = $vars['type']; - -$title = elgg_echo($type); -$title = $name . "'s " . $type; -?> - -<div id="content-header" class="clearfix"> - <?php echo '<div class="content-header-title">' . elgg_view_title($title) . '</div>'; ?> -</div> - diff --git a/views/default/page/elements/foot.php b/views/default/page/elements/foot.php new file mode 100644 index 000000000..a56b373b4 --- /dev/null +++ b/views/default/page/elements/foot.php @@ -0,0 +1,11 @@ +<?php + +echo elgg_view('footer/analytics'); + +$js = elgg_get_loaded_js('footer'); +foreach ($js as $script) { ?> + <script type="text/javascript" src="<?php echo $script; ?>"></script> +<?php +} + +?>
\ No newline at end of file diff --git a/views/default/page/elements/footer.php b/views/default/page/elements/footer.php index 001d856b1..ded2cea9a 100644 --- a/views/default/page/elements/footer.php +++ b/views/default/page/elements/footer.php @@ -8,11 +8,15 @@ * */ -echo elgg_view_menu('footer', array('class' => 'elgg-menu-footer')); -echo elgg_view('footer/links'); +echo elgg_view_menu('footer', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz')); -?> +$powered_url = elgg_get_site_url() . "_graphics/powered_by_elgg_badge_drk_bckgnd.gif"; -<a href="http://www.elgg.org" class="elgg-alt"> - <img src="<?php echo elgg_get_site_url(); ?>_graphics/powered_by_elgg_badge_drk_bckgnd.gif" alt="Powered by Elgg" /> -</a> +echo '<div class="mts clearfloat float-alt">'; +echo elgg_view('output/url', array( + 'href' => 'http://elgg.org', + 'text' => "<img src=\"$powered_url\" alt=\"Powered by Elgg\" width=\"106\" height=\"15\" />", + 'class' => '', + 'is_trusted' => true, +)); +echo '</div>'; diff --git a/views/default/page/elements/head.php b/views/default/page/elements/head.php index 209eb35f4..d4a95b4d0 100644 --- a/views/default/page/elements/head.php +++ b/views/default/page/elements/head.php @@ -14,7 +14,7 @@ if (empty($vars['title'])) { global $autofeed; if (isset($autofeed) && $autofeed == true) { - $url = full_url(); + $url = current_page_url(); if (substr_count($url,'?')) { $url .= "&view=rss"; } else { @@ -30,8 +30,8 @@ END; $feedref = ""; } -$js = elgg_get_js('head'); -$css = elgg_get_css(); +$js = elgg_get_loaded_js('head'); +$css = elgg_get_loaded_css(); $version = get_version(); $release = get_version(true); @@ -40,7 +40,7 @@ $release = get_version(true); <meta name="ElggRelease" content="<?php echo $release; ?>" /> <meta name="ElggVersion" content="<?php echo $version; ?>" /> <title><?php echo $title; ?></title> - <link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" /> + <?php echo elgg_view('page/elements/shortcut_icon', $vars); ?> <?php foreach ($css as $link) { ?> <link rel="stylesheet" href="<?php echo $link; ?>" type="text/css" /> @@ -48,11 +48,15 @@ $release = get_version(true); <?php $ie_url = elgg_get_simplecache_url('css', 'ie'); + $ie7_url = elgg_get_simplecache_url('css', 'ie7'); $ie6_url = elgg_get_simplecache_url('css', 'ie6'); ?> - <!--[if gt IE 6]> + <!--[if gt IE 7]> <link rel="stylesheet" type="text/css" href="<?php echo $ie_url; ?>" /> <![endif]--> + <!--[if IE 7]> + <link rel="stylesheet" type="text/css" href="<?php echo $ie7_url; ?>" /> + <![endif]--> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="<?php echo $ie6_url; ?>" /> <![endif]--> @@ -62,7 +66,9 @@ $release = get_version(true); <?php } ?> <script type="text/javascript"> +// <![CDATA[ <?php echo elgg_view('js/initialize_elgg'); ?> +// ]]> </script> <?php @@ -70,7 +76,6 @@ echo $feedref; $metatags = elgg_view('metatags', $vars); if ($metatags) { - elgg_deprecated_notice("The metatags view has been deprecated for html_head/extend", 1.8); + elgg_deprecated_notice("The metatags view has been deprecated. Extend page/elements/head instead", 1.8); echo $metatags; } -echo elgg_view('html_head/extend', $vars); diff --git a/views/default/page/elements/header.php b/views/default/page/elements/header.php index 972c90272..1a1f5d211 100644 --- a/views/default/page/elements/header.php +++ b/views/default/page/elements/header.php @@ -1,8 +1,8 @@ <?php /** - * Elgg header contents - * This file holds the header output that a user will see - **/ + * Elgg page header + * In the default theme, the header lives between the topbar and main content area. + */ // link back to main site. echo elgg_view('page/elements/header_logo', $vars); @@ -11,7 +11,4 @@ echo elgg_view('page/elements/header_logo', $vars); echo elgg_view('core/account/login_dropdown'); // insert site-wide navigation -echo elgg_view_menu('site'); - -// insert a view which can be extended -echo elgg_view('header/extend'); +echo elgg_view_menu('site');
\ No newline at end of file diff --git a/views/default/page/elements/header_logo.php b/views/default/page/elements/header_logo.php index 4295deaa4..7fe721c40 100644 --- a/views/default/page/elements/header_logo.php +++ b/views/default/page/elements/header_logo.php @@ -1,13 +1,15 @@ <?php /** * Elgg header logo - * The logo to display in elgg-header. */ $site = elgg_get_site_entity(); $site_name = $site->name; +$site_url = elgg_get_site_url(); ?> <h1> - <a class="elgg-heading-site" href="<?php echo elgg_get_site_url(); ?>"><?php echo $site_name; ?></a> + <a class="elgg-heading-site" href="<?php echo $site_url; ?>"> + <?php echo $site_name; ?> + </a> </h1> diff --git a/views/default/page/elements/messages.php b/views/default/page/elements/messages.php index e4e6030f1..edd40d71e 100644 --- a/views/default/page/elements/messages.php +++ b/views/default/page/elements/messages.php @@ -11,14 +11,14 @@ echo '<ul class="elgg-system-messages">'; +// hidden li so we validate +echo '<li class="hidden"></li>'; + if (isset($vars['object']) && is_array($vars['object']) && sizeof($vars['object']) > 0) { foreach ($vars['object'] as $type => $list ) { foreach ($list as $message) { echo "<li class=\"elgg-message elgg-state-$type\">"; - echo elgg_view('output/longtext', array( - 'value' => $message, - 'parse_urls' => false - )); + echo elgg_autop($message); echo '</li>'; } } diff --git a/views/default/page/elements/owner_block.php b/views/default/page/elements/owner_block.php index 2f9fc8603..fc7f0f6d2 100644 --- a/views/default/page/elements/owner_block.php +++ b/views/default/page/elements/owner_block.php @@ -15,16 +15,12 @@ $owner = elgg_get_page_owner_entity(); if ($owner instanceof ElggGroup || ($owner instanceof ElggUser && $owner->getGUID() != elgg_get_logged_in_user_guid())) { - $header = elgg_view_entity($owner, false); + $header = elgg_view_entity($owner, array('full_view' => false)); - $body = elgg_view_menu('owner_block', array( - 'entity' => $owner, - 'class' => 'elgg-owner-block-menu', - )); + $body = elgg_view_menu('owner_block', array('entity' => $owner)); $body .= elgg_view('page/elements/owner_block/extend', $vars); - //@todo elgg-module-owner-block? echo elgg_view('page/components/module', array( 'header' => $header, 'body' => $body, diff --git a/views/default/page/elements/page_links.php b/views/default/page/elements/page_links.php deleted file mode 100644 index fb9acbfb7..000000000 --- a/views/default/page/elements/page_links.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -/** - * Page links: RSS link, reported content link, etc. - */ - -// Are there feeds to display? -global $autofeed; -$rss_link = ''; -if (isset($autofeed) && $autofeed == true) { - $url = full_url(); - if (substr_count($url,'?')) { - $url .= "&view=rss"; - } else { - $url .= "?view=rss"; - } - $url = elgg_format_url($url); - $label = elgg_echo('feed:rss'); - - $rss_link = elgg_view('output/url', array( - 'text' => '<span class="elgg-icon elgg-icon-rss"></span>', - 'href' => $url, - 'title' => $label, - 'rel' => 'nofollow', - 'encode_text' => false, - 'class' => 'right', - )); -} - -// view to extend by plugins -$links = elgg_view('page/links', $vars); - -if ($links || $rss_link) { - echo '<div class="elgg-page-links clearfix mbm">'; - echo $rss_link; - echo $links; - echo '</div>'; -} diff --git a/views/default/page/elements/shortcut_icon.php b/views/default/page/elements/shortcut_icon.php new file mode 100644 index 000000000..12fe9c1f8 --- /dev/null +++ b/views/default/page/elements/shortcut_icon.php @@ -0,0 +1,6 @@ +<?php +/** + * Displays the default shortcut icon + */ +?> +<link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" />
\ No newline at end of file diff --git a/views/default/page/elements/sidebar.php b/views/default/page/elements/sidebar.php index 8950c5f3f..fe6bb450e 100644 --- a/views/default/page/elements/sidebar.php +++ b/views/default/page/elements/sidebar.php @@ -5,7 +5,10 @@ * @uses $vars['sidebar'] Optional content that is displayed at the bottom of sidebar */ -echo elgg_view('page/elements/page_links', $vars); +echo elgg_view_menu('extras', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); echo elgg_view('page/elements/owner_block', $vars); diff --git a/views/default/page/elements/sidebar_alt.php b/views/default/page/elements/sidebar_alt.php new file mode 100644 index 000000000..6d91ca58b --- /dev/null +++ b/views/default/page/elements/sidebar_alt.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg secondary sidebar contents + * + * You can override, extend, or pass content to it + * + * @uses $vars['sidebar_alt] HTML content for the alternate sidebar + */ + +$sidebar = elgg_extract('sidebar_alt', $vars, ''); + +echo $sidebar; diff --git a/views/default/page/elements/tagcloud_block.php b/views/default/page/elements/tagcloud_block.php new file mode 100644 index 000000000..258951c41 --- /dev/null +++ b/views/default/page/elements/tagcloud_block.php @@ -0,0 +1,58 @@ +<?php +/** + * Display content-based tags + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being tagged + * @uses $vars['limit'] The maxinum number of tags to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { + $owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { + // not supporting groups so return + return true; +} + +$options = array( + 'type' => 'object', + 'subtype' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), + 'owner_guid' => $owner_guid, + 'threshold' => 0, + 'limit' => elgg_extract('limit', $vars, 50), + 'tag_name' => 'tags', +); + +$title = elgg_echo('tagcloud'); +if (is_array($options['subtype']) && count($options['subtype']) > 1) { + // we cannot provide links to tagged objects with multiple types + $tag_data = elgg_get_tags($options); + $cloud = elgg_view("output/tagcloud", array( + 'value' => $tag_data, + 'type' => $type, + )); +} else { + $cloud = elgg_view_tagcloud($options); +} +if (!$cloud) { + return true; +} + +// add a link to all site tags +$cloud .= '<p class="small">'; +$cloud .= elgg_view_icon('tag'); +$cloud .= elgg_view('output/url', array( + 'href' => 'tags', + 'text' => elgg_echo('tagcloud:allsitetags'), + 'is_trusted' => true, +)); +$cloud .= '</p>'; + + +echo elgg_view_module('aside', $title, $cloud); diff --git a/views/default/page/elements/topbar.php b/views/default/page/elements/topbar.php index 987326119..e4c6c86bb 100644 --- a/views/default/page/elements/topbar.php +++ b/views/default/page/elements/topbar.php @@ -1,66 +1,16 @@ <?php /** - * Elgg top toolbar + * Elgg topbar * The standard elgg top toolbar */ -$user = elgg_get_logged_in_user_entity(); - -//@todo echo elgg_view_menu('topbar', array('class' => 'elgg-menu-topbar')); - // Elgg logo -$image = '<img src="' . elgg_get_site_url() . '_graphics/elgg_toolbar_logo.gif" alt="Elgg logo" />'; -echo elgg_view('output/url', array( - 'href' => 'http://www.elgg.org/', - 'text' => $image, -)); - -// avatar -$user_link = $user->getURL(); -$user_image = $user->getIconURL('topbar'); -$image = "<img src=\"$user_image\" alt=\"$user->name\" class=\"bab\" />"; -echo elgg_view('output/url', array( - 'href' => $user_link, - 'text' => $image, -)); - -// friends -echo elgg_view('output/url', array( - 'href' => elgg_get_site_url() . "pg/friends/{$user->username}/", - 'text' => '<span class="elgg-icon elgg-icon-friends"></span>', - 'title' => elgg_echo('friends'), -)); - -// logout link -echo elgg_view('output/url', array( - 'href' => "action/logout", - 'text' => elgg_echo('logout'), - 'is_action' => TRUE, - 'class' => 'elgg-alt', -)); +echo elgg_view_menu('topbar', array('sort_by' => 'priority', array('elgg-menu-hz'))); // elgg tools menu // need to echo this empty view for backward compatibility. -// @todo -- do we really? So much else is broken, and the new menu system is so much nicer... -echo elgg_view("navigation/topbar_tools"); - -// enable elgg topbar extending -echo elgg_view('elgg_topbar/extend', $vars); - -//@todo echo elgg_view_menu('topbar2', array('class' => 'elgg-menu-topbar elgg-alt')); - -// user settings -echo elgg_view('output/url', array( - 'href' => elgg_get_site_url() . "pg/settings/user/{$user->username}", - 'text' => '<span class="elgg-icon elgg-icon-settings"></span>' . elgg_echo('settings'), - 'class' => 'elgg-alt', -)); - -// The administration link is for admin or site admin users only -if ($user->isAdmin()) { - echo elgg_view('output/url', array( - 'href' => elgg_get_site_url() . 'pg/admin/', - 'text' => '<span class="elgg-icon elgg-icon-settings"></span>' . elgg_echo('admin'), - 'class' => 'elgg-alt', - )); +$content = elgg_view("navigation/topbar_tools"); +if ($content) { + elgg_deprecated_notice('navigation/topbar_tools was deprecated. Extend the topbar menus or the page/elements/topbar view directly', 1.8); + echo $content; } diff --git a/views/default/page/elements/wrapper.php b/views/default/page/elements/wrapper.php new file mode 100644 index 000000000..61828832d --- /dev/null +++ b/views/default/page/elements/wrapper.php @@ -0,0 +1,22 @@ +<?php +/** + * Deprecated content wrapper view from Elgg 1.5 through 1.7 + * + * @uses $vars['body'] The content to display inside content wrapper + * @uses $vars['subclass'] Additional css class + */ + +elgg_deprecated_notice("The 'page_elements/contentwrapper' has been deprecated", 1.8); +?> + +<div class="contentWrapper<?php + + if (isset($vars['subclass'])) { + echo ' ' . $vars['subclass']; + } + +?>"> +<?php + echo $vars['body']; +?> +</div> diff --git a/views/default/page/error.php b/views/default/page/error.php new file mode 100644 index 000000000..b7ba3ae9b --- /dev/null +++ b/views/default/page/error.php @@ -0,0 +1,14 @@ +<?php +/** + * Page shell for errors + * + * This is for errors that are not unhandled exceptions. Those are handled + * through the failsafe viewtype to guarantee that no further exceptions occur. + * An example error would be 404 (page not found). + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +echo elgg_view('page/default', $vars); diff --git a/views/default/page/layouts/admin.php b/views/default/page/layouts/admin.php index 7ba4abbd1..8dbdc27e6 100644 --- a/views/default/page/layouts/admin.php +++ b/views/default/page/layouts/admin.php @@ -10,61 +10,22 @@ * @uses $vars['title'] Title string */ -$admin_title = elgg_get_site_entity()->name . ' ' . elgg_echo('admin'); - -$view_site = elgg_view('output/url', array( - 'href' => elgg_get_site_url(), - 'text' => elgg_echo('admin:view_site'), -)); -$logout = elgg_view('output/url', array( - 'href' => 'action/logout', - 'text' => elgg_echo('logout'), -)); ?> -<div class="elgg-page-header"> - <div class="elgg-inner clearfix"> - <h1 class="elgg-heading-site"> - <a href="<?php echo elgg_get_site_url(); ?>pg/admin/"> - <?php echo $admin_title; ?> - </a> - </h1> - <ul class="elgg-menu-user"> - <li><?php echo elgg_echo('admin:loggedin', array(elgg_get_logged_in_user_entity()->name)); ?></li> - <li><?php echo $view_site; ?></li> - <li><?php echo $logout; ?></li> - </ul> - </div> -</div> - -<?php -// @todo clean up system messages code -$messages = null; -if (count_messages()) { - // get messages - try for errors first - $messages = system_messages(NULL, "error"); - if (count($messages["error"]) == 0) { - // no errors so grab rest of messages - $messages = system_messages(null, ""); - } else { - // we have errors - clear out remaining messages - system_messages(null, ""); - } -} -echo elgg_view('page/elements/messages', array('object' => $messages)); -?> - -<div class="elgg-page-body"> +<div class="elgg-layout elgg-layout-one-sidebar"> <div class="elgg-sidebar clearfix"> <?php - echo elgg_view('admin/sidebar/top', $vars); - echo elgg_view('layout/shells/admin/menu', $vars); - echo elgg_view('admin/sidebar/bottom', $vars); + echo elgg_view('admin/sidebar', $vars); ?> </div> <div class="elgg-main elgg-body"> <div class="elgg-head"> <?php + echo elgg_view_menu('title', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', + )); + if (isset($vars['title'])) { echo elgg_view_title($vars['title']); } @@ -76,9 +37,4 @@ echo elgg_view('page/elements/messages', array('object' => $messages)); } ?> </div> -</div> -<div class="elgg-page-footer"> -</div> -<?php - -echo elgg_view('footer/analytics'); +</div>
\ No newline at end of file diff --git a/views/default/page/layouts/content.php b/views/default/page/layouts/content.php index 69772985a..c406c9faf 100644 --- a/views/default/page/layouts/content.php +++ b/views/default/page/layouts/content.php @@ -10,7 +10,6 @@ * @uses $vars['filter'] HTML of the content area filter (override) * @uses $vars['title'] Title text (override) * @uses $vars['context'] Page context (override) - * @uses $vars['buttons'] Content header buttons (override) * @uses $vars['filter_context'] Filter context: everyone, friends, mine * @uses $vars['class'] Additional class to apply to layout */ @@ -19,22 +18,19 @@ $sidebar_content = elgg_extract('sidebar', $vars, ''); $params = $vars; $params['content'] = $sidebar_content; -$sidebar = elgg_view('layout/shells/content/sidebar', $params); - -// navigation defaults to breadcrumbs -$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); +$sidebar = elgg_view('page/layouts/content/sidebar', $params); // allow page handlers to override the default header if (isset($vars['header'])) { $vars['header_override'] = $vars['header']; } -$header = elgg_view('layout/shells/content/header', $vars); +$header = elgg_view('page/layouts/content/header', $vars); // allow page handlers to override the default filter if (isset($vars['filter'])) { $vars['filter_override'] = $vars['filter']; } -$filter = elgg_view('layout/shells/content/filter', $vars); +$filter = elgg_view('page/layouts/content/filter', $vars); // the all important content $content = elgg_extract('content', $vars, ''); @@ -43,9 +39,9 @@ $content = elgg_extract('content', $vars, ''); $footer_content = elgg_extract('footer', $vars, ''); $params = $vars; $params['content'] = $footer_content; -$footer = elgg_view('layout/shells/content/footer', $params); +$footer = elgg_view('page/layouts/content/footer', $params); -$body = $nav . $header . $filter . $content . $footer; +$body = $header . $filter . $content . $footer; $params = array( 'content' => $body, diff --git a/views/default/layout/shells/content/filter.php b/views/default/page/layouts/content/filter.php index 9daee6d71..701c6418a 100644 --- a/views/default/layout/shells/content/filter.php +++ b/views/default/page/layouts/content/filter.php @@ -23,21 +23,30 @@ if (elgg_is_logged_in() && $context) { // generate a list of default tabs $tabs = array( 'all' => array( - 'title' => elgg_echo('all'), - 'url' => (isset($vars['all_link'])) ? $vars['all_link'] : "pg/$context/all/", + 'text' => elgg_echo('all'), + 'href' => (isset($vars['all_link'])) ? $vars['all_link'] : "$context/all", 'selected' => ($filter_context == 'all'), + 'priority' => 200, ), 'mine' => array( - 'title' => elgg_echo('mine'), - 'url' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "pg/$context/owner/$username/", + 'text' => elgg_echo('mine'), + 'href' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "$context/owner/$username", 'selected' => ($filter_context == 'mine'), + 'priority' => 300, ), 'friend' => array( - 'title' => elgg_echo('friends'), - 'url' => (isset($vars['friend_link'])) ? $vars['friend_link'] : "pg/$context/friends/$username/", + 'text' => elgg_echo('friends'), + 'href' => (isset($vars['friend_link'])) ? $vars['friend_link'] : "$context/friends/$username", 'selected' => ($filter_context == 'friends'), + 'priority' => 400, ), ); + + foreach ($tabs as $name => $tab) { + $tab['name'] = $name; + + elgg_register_menu_item('filter', $tab); + } - echo elgg_view('navigation/tabs', array('tabs' => $tabs)); + echo elgg_view_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz')); } diff --git a/views/default/layout/shells/content/footer.php b/views/default/page/layouts/content/footer.php index 66f5d3ff8..66f5d3ff8 100644 --- a/views/default/layout/shells/content/footer.php +++ b/views/default/page/layouts/content/footer.php diff --git a/views/default/page/layouts/content/header.php b/views/default/page/layouts/content/header.php new file mode 100644 index 000000000..1e66e52db --- /dev/null +++ b/views/default/page/layouts/content/header.php @@ -0,0 +1,43 @@ +<?php +/** + * Main content header + * + * Title and title menu + * + * @uses $vars['header_override'] HTML for overriding the default header (override) + * @uses $vars['title'] Title text (override) + * @uses $vars['context'] Page context (override) + */ + +if (isset($vars['buttons'])) { + // it was a bad idea to implement buttons with a pass through + elgg_deprecated_notice("Use elgg_register_menu_item() to register for the title menu", 1.0); +} + +if (isset($vars['header_override'])) { + echo $vars['header_override']; + return true; +} + +$context = elgg_extract('context', $vars, elgg_get_context()); + +$title = elgg_extract('title', $vars, ''); +if (!$title) { + $title = elgg_echo($context); +} +$title = elgg_view_title($title, array('class' => 'elgg-heading-main')); + +if (isset($vars['buttons']) && $vars['buttons']) { + $buttons = $vars['buttons']; +} else { + $buttons = elgg_view_menu('title', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', + )); +} + +echo <<<HTML +<div class="elgg-head clearfix"> + $title$buttons +</div> +HTML; diff --git a/views/default/layout/shells/content/sidebar.php b/views/default/page/layouts/content/sidebar.php index 86ca8435f..86ca8435f 100644 --- a/views/default/layout/shells/content/sidebar.php +++ b/views/default/page/layouts/content/sidebar.php diff --git a/views/default/page/layouts/error.php b/views/default/page/layouts/error.php new file mode 100644 index 000000000..cdce28a8e --- /dev/null +++ b/views/default/page/layouts/error.php @@ -0,0 +1,12 @@ +<?php +/** + * Error layout + */ + +$class = 'elgg-layout-error'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} +$vars['class'] = $class; + +echo elgg_view('page/layouts/one_column', $vars); diff --git a/views/default/page/layouts/one_column.php b/views/default/page/layouts/one_column.php index ab6a24878..491d5b459 100644 --- a/views/default/page/layouts/one_column.php +++ b/views/default/page/layouts/one_column.php @@ -9,17 +9,30 @@ * @uses $vars['class'] Additional class to apply to layout */ -$class = 'elgg-inner clearfix'; +$class = 'elgg-layout elgg-layout-one-column clearfix'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; } + +// navigation defaults to breadcrumbs +$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); + ?> -<div class="<?php echo $class; ?>" id="elgg-layout-one-column"> - <div class="elgg-body"> - <?php echo $vars['content']; ?> +<div class="<?php echo $class; ?>"> + <div class="elgg-body elgg-main"> <?php + echo $nav; + + if (isset($vars['title'])) { + echo elgg_view_title($vars['title']); + } + + echo $vars['content']; + // @deprecated 1.8 - echo $vars['area1']; + if (isset($vars['area1'])) { + echo $vars['area1']; + } ?> </div> </div>
\ No newline at end of file diff --git a/views/default/page/layouts/one_sidebar.php b/views/default/page/layouts/one_sidebar.php index 53f065b3e..d74dad53d 100644 --- a/views/default/page/layouts/one_sidebar.php +++ b/views/default/page/layouts/one_sidebar.php @@ -9,17 +9,21 @@ * @uses $vars['sidebar'] Optional content that is displayed in the sidebar * @uses $vars['title'] Optional title for main content area * @uses $vars['class'] Additional class to apply to layout + * @uses $vars['nav'] HTML of the page nav (override) (default: breadcrumbs) */ -$class = 'elgg-inner clearfix'; +$class = 'elgg-layout elgg-layout-one-sidebar clearfix'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; } +// navigation defaults to breadcrumbs +$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); + ?> -<div class="<?php echo $class; ?>" id="elgg-layout-sidebar"> - <div class="elgg-sidebar elgg-aside"> +<div class="<?php echo $class; ?>"> + <div class="elgg-sidebar"> <?php echo elgg_view('page/elements/sidebar', $vars); ?> @@ -27,6 +31,8 @@ if (isset($vars['class'])) { <div class="elgg-main elgg-body"> <?php + echo $nav; + if (isset($vars['title'])) { echo elgg_view_title($vars['title']); } diff --git a/views/default/page/layouts/two_column_left_sidebar.php b/views/default/page/layouts/two_column_left_sidebar.php index 97f4d2719..e395a5053 100644 --- a/views/default/page/layouts/two_column_left_sidebar.php +++ b/views/default/page/layouts/two_column_left_sidebar.php @@ -17,7 +17,7 @@ unset($vars['area2']); unset($vars['area3']); // backward compatability support for plugins that are not using the new approach -// of routing through pg/admin +// of routing through 'admin' if (elgg_get_context() == 'admin') { echo elgg_view('page/layouts/admin', $vars); return true; diff --git a/views/default/page/layouts/two_sidebar.php b/views/default/page/layouts/two_sidebar.php index 1e6c2aae7..7521dd44f 100644 --- a/views/default/page/layouts/two_sidebar.php +++ b/views/default/page/layouts/two_sidebar.php @@ -5,32 +5,27 @@ * @package Elgg * @subpackage Core * - * @uses $vars['content'] The content string for the main column - * @uses $vars['sidebar'] Optional content that is displayed in the sidebar + * @uses $vars['content'] The content string for the main column + * @uses $vars['sidebar'] Optional content that is displayed in the sidebar * @uses $vars['sidebar_alt'] Optional content that is displayed in the alternate sidebar - * @uses $vars['class'] Additional class to apply to layout + * @uses $vars['class'] Additional class to apply to layout */ -$class = 'elgg-inner clearfix'; +$class = 'elgg-layout elgg-layout-two-sidebar clearfix'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; } ?> -<div class="<?php echo $class; ?>" id="elgg-layout-two-sidebar"> - <div class="elgg-sidebar elgg-aside"> +<div class="<?php echo $class; ?>"> + <div class="elgg-sidebar"> <?php echo elgg_view('page/elements/sidebar', $vars); ?> </div> - <div class="elgg-sidebar elgg-alt elgg-aside"> + <div class="elgg-sidebar-alt"> <?php - //$params = $vars; - //$params['sidebar'] = $vars['sidebar_alt']; - $params = array( - 'sidebar' => elgg_view_module('test', 'Testing', 'Hello, world!'), - ); - echo elgg_view('page/elements/sidebar', $params); + echo elgg_view('page/elements/sidebar_alt', $vars); ?> </div> diff --git a/views/default/page/layouts/walled_garden.php b/views/default/page/layouts/walled_garden.php new file mode 100644 index 000000000..6ecd941ef --- /dev/null +++ b/views/default/page/layouts/walled_garden.php @@ -0,0 +1,16 @@ +<?php +/** + * Walled Garden layout + * + * @uses $vars['content'] Main content + * @uses $vars['class'] CSS classes + * @uses $vars['id'] CSS id + */ + +$class = elgg_extract('class', $vars, 'elgg-walledgarden-single'); +echo elgg_view_module('walledgarden', '', $vars['content'], array( + 'class' => $class, + 'id' => elgg_extract('id', $vars, ''), + 'header' => ' ', + 'footer' => ' ', +)); diff --git a/views/default/page/layouts/widgets.php b/views/default/page/layouts/widgets.php index eac9d43fc..c6b162516 100644 --- a/views/default/page/layouts/widgets.php +++ b/views/default/page/layouts/widgets.php @@ -16,6 +16,8 @@ $show_access = elgg_extract('show_access', $vars, true); $owner = elgg_get_page_owner_entity(); +$widget_types = elgg_get_widget_types(); + $context = elgg_get_context(); elgg_push_context('widgets'); @@ -23,26 +25,33 @@ $widgets = elgg_get_widgets($owner->guid, $context); if (elgg_can_edit_widget_layout($context)) { if ($show_add_widgets) { - echo elgg_view('layout/shells/widgets/add_button'); + echo elgg_view('page/layouts/widgets/add_button'); } $params = array( 'widgets' => $widgets, 'context' => $context, 'exact_match' => $exact_match, + 'show_access' => $show_access, ); - echo elgg_view('layout/shells/widgets/add_panel', $params); + echo elgg_view('page/layouts/widgets/add_panel', $params); } echo $vars['content']; $widget_class = "elgg-col-1of{$num_columns}"; for ($column_index = 1; $column_index <= $num_columns; $column_index++) { - $column_widgets = $widgets[$column_index]; + if (isset($widgets[$column_index])) { + $column_widgets = $widgets[$column_index]; + } else { + $column_widgets = array(); + } echo "<div class=\"$widget_class elgg-widgets\" id=\"elgg-widget-col-$column_index\">"; - if (is_array($column_widgets) && sizeof($column_widgets) > 0) { + if (sizeof($column_widgets) > 0) { foreach ($column_widgets as $widget) { - echo elgg_view_entity($widget, array('show_access' => $show_access)); + if (array_key_exists($widget->handler, $widget_types)) { + echo elgg_view_entity($widget, array('show_access' => $show_access)); + } } } echo '</div>'; diff --git a/views/default/page/layouts/widgets/add_button.php b/views/default/page/layouts/widgets/add_button.php new file mode 100644 index 000000000..c33a45f99 --- /dev/null +++ b/views/default/page/layouts/widgets/add_button.php @@ -0,0 +1,16 @@ +<?php +/** + * Button area for showing the add widgets panel + */ +?> +<div class="elgg-widget-add-control"> +<?php + echo elgg_view('output/url', array( + 'href' => '#widgets-add-panel', + 'text' => elgg_echo('widgets:add'), + 'class' => 'elgg-button elgg-button-action', + 'rel' => 'toggle', + 'is_trusted' => true, + )); +?> +</div> diff --git a/views/default/layout/shells/widgets/add_panel.php b/views/default/page/layouts/widgets/add_panel.php index 38c133c4a..d9b11342a 100644 --- a/views/default/layout/shells/widgets/add_panel.php +++ b/views/default/page/layouts/widgets/add_panel.php @@ -12,6 +12,7 @@ $context = $vars['context']; $exact = elgg_extract('exact_match', $vars, false); $widget_types = elgg_get_widget_types($context, $exact); +uasort($widget_types, create_function('$a,$b', 'return strcmp($a->name,$b->name);')); $current_handlers = array(); foreach ($widgets as $column_widgets) { @@ -21,7 +22,7 @@ foreach ($widgets as $column_widgets) { } ?> -<div class="elgg-widgets-add-panel hidden clearfix" id="elgg-togglee-add-widgets"> +<div class="elgg-widgets-add-panel hidden clearfix" id="widgets-add-panel"> <p> <?php echo elgg_echo('widgets:add:description'); ?> </p> @@ -49,10 +50,13 @@ foreach ($widgets as $column_widgets) { ?> </ul> <?php - $params = array( + echo elgg_view('input/hidden', array( 'name' => 'widget_context', 'value' => $context - ); - echo elgg_view('input/hidden', $params); + )); + echo elgg_view('input/hidden', array( + 'name' => 'show_access', + 'value' => (int)$vars['show_access'] + )); ?> </div> diff --git a/views/default/page/shells/admin.php b/views/default/page/shells/admin.php deleted file mode 100644 index 211bd4037..000000000 --- a/views/default/page/shells/admin.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Elgg pageshell for the admin area - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['title'] The page title - * @uses $vars['body'] The main content of the page - * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() - */ - -// Set the content type -header("Content-type: text/html; charset=UTF-8"); -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<?php echo elgg_view('page/elements/head', $vars); ?> -</head> -<body> - <div class="elgg-page elgg-page-admin"> - <?php echo $vars['body']; ?> - </div> - <?php echo elgg_view('footer/analytics'); ?> -</body> - -</html>
\ No newline at end of file diff --git a/views/default/page/shells/default.php b/views/default/page/shells/default.php deleted file mode 100644 index 775eb4acc..000000000 --- a/views/default/page/shells/default.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Elgg pageshell - * The standard HTML page shell that everything else fits into - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['title'] The page title - * @uses $vars['body'] The main content of the page - * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() - */ - -// backward compatability support for plugins that are not using the new approach -// of routing through pg/admin. See reportedcontent plugin for a simple example. -if (elgg_get_context() == 'admin') { - elgg_deprecated_notice("admin plugins should route through pg/admin.", 1.8); - elgg_admin_add_plugin_settings_menu(); - elgg_unregister_css('screen'); - echo elgg_view('page/shells/admin', $vars); - return true; -} - -// Set the content type -header("Content-type: text/html; charset=UTF-8"); - -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<?php echo elgg_view('page/elements/head', $vars); ?> -</head> -<body> -<div class="elgg-page elgg-page-classic"> - <div class="elgg-page-messages"> - <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> - </div> - - <?php if (elgg_is_logged_in()): ?> - <div class="elgg-page-topbar"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/topbar', $vars); ?> - </div> - </div> - <?php endif; ?> - - <div class="elgg-page-header"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/header', $vars); ?> - </div> - </div> - <div class="elgg-page-body"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/body', $vars); ?> - </div> - </div> - <div class="elgg-page-footer"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/footer', $vars); ?> - </div> - </div> -</div> -<?php echo elgg_view('footer/analytics'); ?> -</body> -</html>
\ No newline at end of file diff --git a/views/default/page/shells/upgrade.php b/views/default/page/shells/upgrade.php deleted file mode 100644 index b598c3c6a..000000000 --- a/views/default/page/shells/upgrade.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * Page shell for upgrade script - * - * Displays an ajax loader until upgrade is complete - */ -?> -<html> - <head> - <title><?php echo elgg_echo('upgrading'); ?></title> - <meta http-equiv="refresh" content="1;url=<?php echo elgg_get_site_url(); ?>upgrade.php?upgrade=upgrade"/> - </head> - <body bgcolor="white"> - <table width="100%" height="100%" border="0" style="margin: 0px; padding: 0px"> - <tr> - <td width="100%" height="100%" valign="middle" align="center"> - <img src="<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif" alt="upgrading" /> - </td> - </tr> - </table> - </body> -</html>
\ No newline at end of file diff --git a/views/default/page/shells/walled_garden.php b/views/default/page/shells/walled_garden.php deleted file mode 100644 index 74b4f3029..000000000 --- a/views/default/page/shells/walled_garden.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -/** - * - */ - -// Set the content type -header("Content-type: text/html; charset=UTF-8"); - -// Set title -$site_title = elgg_get_config('sitename'); -if (empty($vars['title'])) { - $title = $site_title; -} else if (empty($site_title)) { - $title = $vars['title']; -} else { - $title = $site_title . ": " . $vars['title']; -} - -// @todo - move the css below into it's own style-sheet -// that is called when running as a private network -?> -<html> -<head> -<?php echo elgg_view('page/elements/head', $vars); ?> - <style type="text/css"> - /* *************************************** - WalledGarden - *************************************** */ - .elgg-grid-walledgarden { - margin:100px auto 0 auto; - padding:0; - width:600px; - text-align: left; - word-wrap:break-word; - background: gray; - } - - .elgg-grid-walledgarden > .elgg-col { - background: white; - } - - .elgg-heading-walledgarden { - color:#666666; - margin-top:80px; - line-height: 1.1em; - } - - .walledgardenlogin h2 { - color:#666666; - border-bottom:1px solid #CCCCCC; - margin-bottom:5px; - padding-bottom:5px; - } - - - </style> -</head> -<body> -<div class="elgg-page elgg-page-walledgarden"> - <div class="elgg-page-messages"> - <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> - </div> - <div class="elgg-page-body"> - <div class="elgg-inner"> - <div class="elgg-grid elgg-grid-walledgarden"> - <div class="elgg-col elgg-col-1of2"> - <h1 class="elgg-heading-walledgarden">Welcome to:<br /><?php echo $title; ?></h1> - </div> - <div class="elgg-col elgg-col-1of2"> - <?php echo $vars['body']; ?> - </div> - </div> - </div> - </div> -</div> -<?php echo elgg_view('footer/analytics'); ?> -</body> -</html>
\ No newline at end of file diff --git a/views/default/page/upgrade.php b/views/default/page/upgrade.php new file mode 100644 index 000000000..1a92042be --- /dev/null +++ b/views/default/page/upgrade.php @@ -0,0 +1,18 @@ +<?php +/** + * Page shell for upgrade script + * + * Displays an ajax loader until upgrade is complete + */ +?> +<html> + <head> + <?php echo elgg_view('page/elements/head', $vars); ?> + <meta http-equiv="refresh" content="1;url=<?php echo elgg_get_site_url(); ?>upgrade.php?upgrade=upgrade"/> + </head> + <body> + <div style="margin-top:200px"> + <?php echo elgg_view('graphics/ajax_loader', array('hidden' => false)); ?> + </div> + </body> +</html>
\ No newline at end of file diff --git a/views/default/page/walled_garden.php b/views/default/page/walled_garden.php new file mode 100644 index 000000000..b280cf6b2 --- /dev/null +++ b/views/default/page/walled_garden.php @@ -0,0 +1,40 @@ +<?php +/** + * Walled garden page shell + * + * Used for the walled garden index page + */ + +$is_sticky_register = elgg_is_sticky_form('register'); +$wg_body_class = 'elgg-body-walledgarden'; +if ($is_sticky_register) { + $wg_body_class .= ' hidden'; +} + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> +<div class="elgg-page elgg-page-walledgarden"> + <div class="elgg-page-messages"> + <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> + </div> + <div class="<?php echo $wg_body_class; ?>"> + <?php echo $vars['body']; ?> + </div> +</div> +<?php if ($is_sticky_register): ?> +<script type="text/javascript"> +elgg.register_hook_handler('init', 'system', function() { + $('.registration_link').trigger('click'); +}); +</script> +<?php endif; ?> +<?php echo elgg_view('page/elements/foot'); ?> +</body> +</html>
\ No newline at end of file diff --git a/views/default/profile/icon.php b/views/default/profile/icon.php index dfbea45a0..5f06cfd54 100644 --- a/views/default/profile/icon.php +++ b/views/default/profile/icon.php @@ -9,8 +9,9 @@ * @uses $vars['override'] * @uses $vars['js'] */ +elgg_deprecated_notice('The profile/icon view was deprecated. Use elgg_view_entity_icon()', 1.8); $override = elgg_extract('override', $vars, false); -$vars['hover'] = !$override; +$vars['use_hover'] = !$override; echo elgg_view('icon/user/default', $vars); diff --git a/views/default/river/annotation/generic_comment/create.php b/views/default/river/annotation/generic_comment/create.php index aabb6a9c6..7d586450d 100644 --- a/views/default/river/annotation/generic_comment/create.php +++ b/views/default/river/annotation/generic_comment/create.php @@ -5,26 +5,7 @@ $object = $vars['item']->getObjectEntity(); $comment = $vars['item']->getAnnotation(); -$url = $object->getURL(); -$title = $object->title; -if (!$title) { - $title = elgg_echo('untitled'); -} -$params = array( - 'href' => $object->getURL(), - 'text' => $title, -); -$object_link = elgg_view('output/url', $params); - -$type = $object->getType(); -$subtype = $object->getSubtype(); - -$type_string = elgg_echo("river:commented:$type:$subtype"); -echo elgg_echo('river:generic_comment', array($type_string, $object_link)); - -if ($comment) { - $excerpt = elgg_get_excerpt($comment->value); - echo '<div class="elgg-river-content">'; - echo $excerpt; - echo '</div>'; -} +echo elgg_view('river/elements/layout', array( + 'item' => $vars['item'], + 'message' => elgg_get_excerpt($comment->value), +)); diff --git a/views/default/river/annotation/likes/create.php b/views/default/river/annotation/likes/create.php deleted file mode 100644 index 374f4a381..000000000 --- a/views/default/river/annotation/likes/create.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * Likes river view - */ -$object = $vars['item']->getObjectEntity(); -$comment = $vars['item']->getAnnotation(); - -$url = $object->getURL(); -$title = $object->title; -if (!$title) { - $title = elgg_echo('untitled'); -} -$params = array( - 'href' => $object->getURL(), - 'text' => $title, -); -$object_link = elgg_view('output/url', $params); - -$type = $object->getType(); -$subtype = $object->getSubtype(); - -$type_string = elgg_echo("river:commented:$type:$subtype"); -echo elgg_echo('river:likes', array($type_string, $object_link)); diff --git a/views/default/river/elements/body.php b/views/default/river/elements/body.php new file mode 100644 index 000000000..2cd7f2289 --- /dev/null +++ b/views/default/river/elements/body.php @@ -0,0 +1,67 @@ +<?php +/** + * Body of river item + * + * @uses $vars['item'] ElggRiverItem + * @uses $vars['summary'] Alternate summary (the short text summary of action) + * @uses $vars['message'] Optional message (usually excerpt of text) + * @uses $vars['attachments'] Optional attachments (displaying icons or other non-text data) + * @uses $vars['responses'] Alternate respones (comments, replies, etc.) + */ + +$item = $vars['item']; + +$menu = elgg_view_menu('river', array( + 'item' => $item, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); + +// river item header +$timestamp = elgg_view_friendly_time($item->getPostedTime()); + +$summary = elgg_extract('summary', $vars, elgg_view('river/elements/summary', array('item' => $vars['item']))); +if ($summary === false) { + $subject = $item->getSubjectEntity(); + $summary = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', + 'is_trusted' => true, + )); +} + +$message = elgg_extract('message', $vars, false); +if ($message !== false) { + $message = "<div class=\"elgg-river-message\">$message</div>"; +} + +$attachments = elgg_extract('attachments', $vars, false); +if ($attachments !== false) { + $attachments = "<div class=\"elgg-river-attachments clearfix\">$attachments</div>"; +} + +$responses = elgg_view('river/elements/responses', $vars); +if ($responses) { + $responses = "<div class=\"elgg-river-responses\">$responses</div>"; +} + +$group_string = ''; +$object = $item->getObjectEntity(); +$container = $object->getContainerEntity(); +if ($container instanceof ElggGroup && $container->guid != elgg_get_page_owner_guid()) { + $group_link = elgg_view('output/url', array( + 'href' => $container->getURL(), + 'text' => $container->name, + 'is_trusted' => true, + )); + $group_string = elgg_echo('river:ingroup', array($group_link)); +} + +echo <<<RIVER +$menu +<div class="elgg-river-summary">$summary $group_string <span class="elgg-river-timestamp">$timestamp</span></div> +$message +$attachments +$responses +RIVER; diff --git a/views/default/core/river/image.php b/views/default/river/elements/image.php index afb6b4019..6f6aeae65 100644 --- a/views/default/core/river/image.php +++ b/views/default/river/elements/image.php @@ -9,4 +9,8 @@ $subject = $vars['item']->getSubjectEntity(); -echo elgg_view("profile/icon", array('entity' => $subject, 'size' => 'small')); +if (elgg_in_context('widgets')) { + echo elgg_view_entity_icon($subject, 'tiny'); +} else { + echo elgg_view_entity_icon($subject, 'small'); +} diff --git a/views/default/river/elements/layout.php b/views/default/river/elements/layout.php new file mode 100644 index 000000000..94622e272 --- /dev/null +++ b/views/default/river/elements/layout.php @@ -0,0 +1,14 @@ +<?php +/** + * Layout of a river item + * + * @uses $vars['item'] ElggRiverItem + */ + +$item = $vars['item']; + +echo elgg_view('page/components/image_block', array( + 'image' => elgg_view('river/elements/image', $vars), + 'body' => elgg_view('river/elements/body', $vars), + 'class' => 'elgg-river-item', +)); diff --git a/views/default/core/river/footer.php b/views/default/river/elements/responses.php index ff960cebe..f6c32e142 100644 --- a/views/default/core/river/footer.php +++ b/views/default/river/elements/responses.php @@ -1,8 +1,18 @@ <?php /** * River item footer + * + * @uses $vars['item'] ElggRiverItem + * @uses $vars['responses'] Alternate override for this item */ +// allow river views to override the response content +$responses = elgg_extract('responses', $vars, false); +if ($responses) { + echo $responses; + return true; +} + $item = $vars['item']; $object = $item->getObjectEntity(); @@ -40,6 +50,7 @@ if ($comments) { $params = array( 'href' => $url, 'text' => elgg_echo('river:comments:more', array($num_more_comments)), + 'is_trusted' => true, ); $link = elgg_view('output/url', $params); echo "<div class=\"elgg-river-more\">$link</div>"; @@ -47,7 +58,6 @@ if ($comments) { } // inline comment form -echo elgg_view_form('comments/inline', array( - 'action' => 'action/comments/add', - 'id' => "elgg-togglee-{$object->getGUID()}", -), array('entity' => $object)); +$form_vars = array('id' => "comments-add-{$object->getGUID()}", 'class' => 'hidden'); +$body_vars = array('entity' => $object, 'inline' => true); +echo elgg_view_form('comments/add', $form_vars, $body_vars); diff --git a/views/default/river/elements/summary.php b/views/default/river/elements/summary.php new file mode 100644 index 000000000..d7bde51dd --- /dev/null +++ b/views/default/river/elements/summary.php @@ -0,0 +1,54 @@ +<?php +/** + * Short summary of the action that occurred + * + * @vars['item'] ElggRiverItem + */ + +$item = $vars['item']; + +$subject = $item->getSubjectEntity(); +$object = $item->getObjectEntity(); +$target = $object->getContainerEntity(); + +$subject_link = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', + 'is_trusted' => true, +)); + +$object_text = $object->title ? $object->title : $object->name; +$object_link = elgg_view('output/url', array( + 'href' => $object->getURL(), + 'text' => elgg_get_excerpt($object_text, 100), + 'class' => 'elgg-river-object', + 'is_trusted' => true, +)); + +$action = $item->action_type; +$type = $item->type; +$subtype = $item->subtype ? $item->subtype : 'default'; + +$container = $object->getContainerEntity(); +if ($container instanceof ElggGroup) { + $params = array( + 'href' => $container->getURL(), + 'text' => $container->name, + 'is_trusted' => true, + ); + $group_link = elgg_view('output/url', $params); + $group_string = elgg_echo('river:ingroup', array($group_link)); +} + +// check summary translation keys. +// will use the $type:$subtype if that's defined, otherwise just uses $type:default +$key = "river:$action:$type:$subtype"; +$summary = elgg_echo($key, array($subject_link, $object_link)); + +if ($summary == $key) { + $key = "river:$action:$type:default"; + $summary = elgg_echo($key, array($subject_link, $object_link)); +} + +echo $summary;
\ No newline at end of file diff --git a/views/default/river/item.php b/views/default/river/item.php index 1f28bcb76..75767e08d 100644 --- a/views/default/river/item.php +++ b/views/default/river/item.php @@ -1,11 +1,30 @@ <?php +/** + * Primary river item view + * + * Calls the individual view saved for that river item. Most of these + * individual river views then use the views in river/elements. + * + * @uses $vars['item'] ElggRiverItem + */ + +// @todo remove this in Elgg 1.9 +global $_elgg_special_river_catch; +if (!isset($_elgg_special_river_catch)) { + $_elgg_special_river_catch = false; +} +if ($_elgg_special_river_catch) { + // we changed the views a little in 1.8.1 so this catches the plugins that + // were updated in 1.8.0 and redirects to the layout view + echo elgg_view('river/elements/layout', $vars); + return true; +} +$_elgg_special_river_catch = true; + + $item = $vars['item']; -$vars = array( - 'image' => elgg_view('core/river/image', array('item' => $item)), - 'body' => elgg_view('core/river/body', array('item' => $item)), - 'image_alt' => elgg_view('core/river/controls', array('item' => $item)), - 'class' => 'elgg-river-item', -); +echo elgg_view($item->getView(), $vars); + -echo elgg_view('page/components/image_block', $vars);
\ No newline at end of file +$_elgg_special_river_catch = false; diff --git a/views/default/river/relationship/friend/create.php b/views/default/river/relationship/friend/create.php index 1e6514b4a..0408d79e1 100644 --- a/views/default/river/relationship/friend/create.php +++ b/views/default/river/relationship/friend/create.php @@ -5,18 +5,10 @@ $subject = $vars['item']->getSubjectEntity(); $object = $vars['item']->getObjectEntity(); -$params = array( - 'href' => $object->getURL(), - 'text' => $object->name, -); -$object_link = elgg_view('output/url', $params); -$subject_icon = elgg_view("profile/icon", array('entity' => $subject, 'size' => 'tiny')); -$object_icon = elgg_view("profile/icon", array('entity' => $object, 'size' => 'tiny')); +$subject_icon = elgg_view_entity_icon($subject, 'tiny'); +$object_icon = elgg_view_entity_icon($object, 'tiny'); -echo elgg_echo("friends:river:add", array($object_link)); - -echo '<div class="elgg-river-content clearfix">'; -echo $subject_icon; -echo '<span class="elgg-icon elgg-icon-following"></span>'; -echo $object_icon; -echo '</div>'; +echo elgg_view('river/elements/layout', array( + 'item' => $vars['item'], + 'attachments' => $subject_icon . elgg_view_icon('arrow-right') . $object_icon, +)); diff --git a/views/default/river/user/default/profileiconupdate.php b/views/default/river/user/default/profileiconupdate.php new file mode 100644 index 000000000..271064a06 --- /dev/null +++ b/views/default/river/user/default/profileiconupdate.php @@ -0,0 +1,24 @@ +<?php +/** + * Update avatar river view + */ + +$subject = $vars['item']->getSubjectEntity(); + +$subject_link = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', + 'is_trusted' => true, +)); + +$string = elgg_echo('river:update:user:avatar', array($subject_link)); + +echo elgg_view('river/elements/layout', array( + 'item' => $vars['item'], + 'summary' => $string, + 'attachments' => elgg_view_entity_icon($subject, 'tiny', array( + 'use_hover' => false, + 'use_link' => false, + )), +)); diff --git a/views/default/river/user/default/profileupdate.php b/views/default/river/user/default/profileupdate.php new file mode 100644 index 000000000..ce72970d6 --- /dev/null +++ b/views/default/river/user/default/profileupdate.php @@ -0,0 +1,20 @@ +<?php +/** + * Update profile river view + */ + +$subject = $vars['item']->getSubjectEntity(); + +$subject_link = elgg_view('output/url', array( + 'href' => $subject->getURL(), + 'text' => $subject->name, + 'class' => 'elgg-river-subject', + 'is_trusted' => true, +)); + +$string = elgg_echo('river:update:user:profile', array($subject_link)); + +echo elgg_view('river/elements/layout', array( + 'item' => $vars['item'], + 'summary' => $string, +)); diff --git a/views/default/user/default.php b/views/default/user/default.php index 2abc19991..6c84e84ad 100644 --- a/views/default/user/default.php +++ b/views/default/user/default.php @@ -2,49 +2,56 @@ /** * Elgg user display * - * @package Elgg - * @subpackage Core + * @uses $vars['entity'] ElggUser entity + * @uses $vars['size'] Size of the icon */ -$user = $vars['entity']; +$entity = $vars['entity']; +$size = elgg_extract('size', $vars, 'tiny'); -$icon = elgg_view('profile/icon', array('entity' => $user, 'size' => 'tiny')); +$icon = elgg_view_entity_icon($entity, $size, $vars); // Simple XFN $rel = ''; -if (elgg_get_logged_in_user_guid() == $user->guid) { +if (elgg_get_logged_in_user_guid() == $entity->guid) { $rel = 'rel="me"'; -} elseif (check_entity_relationship(elgg_get_logged_in_user_guid(), 'friend', $user->guid)) { +} elseif (check_entity_relationship(elgg_get_logged_in_user_guid(), 'friend', $entity->guid)) { $rel = 'rel="friend"'; } -$title = "<a href=\"" . $user->getUrl() . "\" $rel>" . $user->name . "</a>"; +$title = "<a href=\"" . $entity->getUrl() . "\" $rel>" . $entity->name . "</a>"; - -$metadata = "<ul class=\"elgg-list-metadata\"><li>$user->location</li>"; -$metadata .= elgg_view("entity/metadata", array('entity' => $user)); -$metadata .= "</ul>"; +$metadata = elgg_view_menu('entity', array( + 'entity' => $entity, + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); if (elgg_in_context('owner_block') || elgg_in_context('widgets')) { $metadata = ''; } -if ($user->isBanned()) { - $params = array( - 'entity' => $user, - 'title' => $title, - 'metadata' => '<ul class="elgg-list-metadata"><li>banned</li></ul>', - ); +if (elgg_get_context() == 'gallery') { + echo $icon; } else { - $params = array( - 'entity' => $user, - 'title' => $title, - 'metadata' => $metadata, - 'subtitle' => $user->briefdescription, - 'content' => elgg_view('user/status', array('entity' => $user)), - ); + if ($entity->isBanned()) { + $banned = elgg_echo('banned'); + $params = array( + 'entity' => $entity, + 'title' => $title, + 'metadata' => $metadata, + ); + } else { + $params = array( + 'entity' => $entity, + 'title' => $title, + 'metadata' => $metadata, + 'subtitle' => $entity->briefdescription, + 'content' => elgg_view('user/status', array('entity' => $entity)), + ); + } + + $list_body = elgg_view('user/elements/summary', $params); + + echo elgg_view_image_block($icon, $list_body, $vars); } - -$list_body = elgg_view('layout/objects/list/body', $params); - -echo elgg_view_image_block($icon, $list_body); diff --git a/views/default/user/elements/summary.php b/views/default/user/elements/summary.php new file mode 100644 index 000000000..46d11c14c --- /dev/null +++ b/views/default/user/elements/summary.php @@ -0,0 +1,13 @@ +<?php +/** + * User summary + * + * @uses $vars['entity'] ElggEntity + * @uses $vars['title'] Title link (optional) false = no title, '' = default + * @uses $vars['metadata'] HTML for entity metadata and actions (optional) + * @uses $vars['subtitle'] HTML for the subtitle (optional) + * @uses $vars['tags'] HTML for the tags (optional) + * @uses $vars['content'] HTML for the entity content (optional) + */ + +echo elgg_view('object/elements/summary', $vars); diff --git a/views/default/user/search/finishblurb.php b/views/default/user/search/finishblurb.php index 1e48d6145..a3878a803 100644 --- a/views/default/user/search/finishblurb.php +++ b/views/default/user/search/finishblurb.php @@ -10,7 +10,7 @@ elgg_deprecated_notice('view user/search/finishblurb was deprecated.', 1.7); if ($vars['count'] > $vars['threshold']) { ?> -<a href="<?php echo elgg_get_site_url(); ?>pg/search/users/?tag=<?php echo urlencode($vars['tag']); ?>"><?php +<a href="<?php echo elgg_get_site_url(); ?>search/users?tag=<?php echo urlencode($vars['tag']); ?>"><?php echo elgg_echo("user:search:finishblurb"); ?></a> <?php diff --git a/views/default/widgets/admin_welcome/content.php b/views/default/widgets/admin_welcome/content.php new file mode 100644 index 000000000..f4b92ea66 --- /dev/null +++ b/views/default/widgets/admin_welcome/content.php @@ -0,0 +1,19 @@ +<?php +/** + * Welcome widget for admins + */ + +// section => string replacements. +$sections = array( + 'intro' => array(), + 'admin_overview' => array(), + 'outro' => array() +); + +// don't use longtext because it filters output. +// that's annoying. +echo '<div class="elgg-output">'; +foreach ($sections as $section => $strings) { + echo '<p>' . elgg_echo("admin:widget:admin_welcome:$section", $strings) . '</p>'; +} +echo '</div>';
\ No newline at end of file diff --git a/views/default/widgets/content_stats/content.php b/views/default/widgets/content_stats/content.php index 568ebeeff..56772047d 100644 --- a/views/default/widgets/content_stats/content.php +++ b/views/default/widgets/content_stats/content.php @@ -19,7 +19,10 @@ foreach ($object_stats as $subtype => $num) { } echo '</table>'; +echo '<div class="mtm">'; echo elgg_view('output/url', array( - 'href' => 'pg/admin/statistics/overview', - 'text' => 'more', + 'href' => 'admin/statistics/overview', + 'text' => elgg_echo('more'), + 'is_trusted' => true, )); +echo '</div>'; diff --git a/views/default/widgets/control_panel/content.php b/views/default/widgets/control_panel/content.php new file mode 100644 index 000000000..a348d612f --- /dev/null +++ b/views/default/widgets/control_panel/content.php @@ -0,0 +1,38 @@ +<?php +/** + * Admin control panel widget + */ + +elgg_register_menu_item('admin_control_panel', array( + 'name' => 'flush', + 'text' => elgg_echo('admin:cache:flush'), + 'href' => 'action/admin/site/flush_cache', + 'is_action' => true, + 'link_class' => 'elgg-button elgg-button-action', +)); + +// @todo Move in this in ElggUpgradeManager::isLocked() when #4682 fixed +$is_locked = _elgg_upgrade_is_locked(); + +if (!$is_locked) { + elgg_register_menu_item('admin_control_panel', array( + 'name' => 'upgrade', + 'text' => elgg_echo('upgrade'), + 'href' => 'upgrade.php', + 'link_class' => 'elgg-button elgg-button-action', + )); +} else { + elgg_register_menu_item('admin_control_panel', array( + 'name' => 'unlock_upgrade', + 'text' => elgg_echo('upgrade:unlock'), + 'href' => 'action/admin/site/unlock_upgrade', + 'is_action' => true, + 'link_class' => 'elgg-button elgg-button-action', + 'confirm' => elgg_echo('upgrade:unlock:confirm'), + )); +} + +echo elgg_view_menu('admin_control_panel', array( + 'class' => 'elgg-menu-hz', + 'item_class' => 'mrm', +)); diff --git a/views/default/widgets/friends/content.php b/views/default/widgets/friends/content.php index e0385027d..98814c244 100644 --- a/views/default/widgets/friends/content.php +++ b/views/default/widgets/friends/content.php @@ -1,14 +1,9 @@ <?php - /** - * Elgg Friends * Friend widget display view * - * @package ElggFriends - * @subpackage Core */ - // owner of the widget $owner = $vars['entity']->getOwnerEntity(); @@ -18,20 +13,13 @@ $num = (int) $vars['entity']->num_display; // get the correct size $size = $vars['entity']->icon_size; -// Get the user's friends -if ($owner) { - $friends = $owner->getFriends("", $num); -} -// If there are any friends to view, view them -if (is_array($friends) && sizeof($friends) > 0) { - - echo "<div id=\"widget_friends_list\">"; - - foreach($friends as $friend) { - echo "<div class=\"widget_friends_singlefriend\" >"; - echo elgg_view("profile/icon",array('entity' => get_user($friend->guid), 'size' => $size)); - echo "</div>"; +if (elgg_instanceof($owner, 'user')) { + $html = $owner->listFriends('', $num, array( + 'size' => $size, + 'list_type' => 'gallery', + 'pagination' => false + )); + if ($html) { + echo $html; } - - echo "</div>"; } diff --git a/views/default/widgets/new_users/content.php b/views/default/widgets/new_users/content.php index cfa7d8bda..ba85e7421 100644 --- a/views/default/widgets/new_users/content.php +++ b/views/default/widgets/new_users/content.php @@ -1,7 +1,11 @@ <?php +/** + * New users admin widget + */ echo elgg_list_entities(array( 'type' => 'user', 'subtype'=> null, - 'full_view' => FALSE + 'full_view' => false, + 'pagination' => false, ));
\ No newline at end of file diff --git a/views/default/widgets/online_users/content.php b/views/default/widgets/online_users/content.php index e1ff69811..6e0cc7abb 100644 --- a/views/default/widgets/online_users/content.php +++ b/views/default/widgets/online_users/content.php @@ -1,3 +1,15 @@ <?php +/** + * Online users widget + */ -echo $users_online = get_online_users();
\ No newline at end of file +$count = find_active_users(600, 10, 0, true); +$objects = find_active_users(600, 10); + +if ($objects) { + echo elgg_view_entity_list($objects, array( + 'count' => $count, + 'limit' => 10, + 'pagination' => false, + )); +} diff --git a/views/default/widgets/river_widget/content.php b/views/default/widgets/river_widget/content.php new file mode 100644 index 000000000..867fc9db6 --- /dev/null +++ b/views/default/widgets/river_widget/content.php @@ -0,0 +1,27 @@ +<?php +/** + * Activity widget content view + */ + +$num = (int) $vars['entity']->num_display; + +$options = array( + 'limit' => $num, + 'pagination' => false, +); + +if (elgg_in_context('dashboard')) { + if ($vars['entity']->content_type == 'friends') { + $options['relationship_guid'] = elgg_get_page_owner_guid(); + $options['relationship'] = 'friend'; + } +} else { + $options['subject_guid'] = elgg_get_page_owner_guid(); +} + +$content = elgg_list_river($options); +if (!$content) { + $content = elgg_echo('river:none'); +} + +echo $content; diff --git a/views/default/widgets/river_widget/edit.php b/views/default/widgets/river_widget/edit.php new file mode 100644 index 000000000..228212e47 --- /dev/null +++ b/views/default/widgets/river_widget/edit.php @@ -0,0 +1,58 @@ +<?php +/** + * Edit settings for river widget + */ + +// dashboard widget has type parameter +if (elgg_in_context('dashboard')) { + if (!isset($vars['entity']->content_type)) { + $vars['entity']->content_type = 'friends'; + } + $params = array( + 'name' => 'params[content_type]', + 'value' => $vars['entity']->content_type, + 'options_values' => array( + 'friends' => elgg_echo('river:widgets:friends'), + 'all' => elgg_echo('river:widgets:all'), + ), + ); + $type_dropdown = elgg_view('input/dropdown', $params); + ?> + <div> + <?php echo elgg_echo('river:widget:type'); ?>: + <?php echo $type_dropdown; ?> + </div> + <?php +} + + +// set default value for number to display +if (!isset($vars['entity']->num_display)) { + $vars['entity']->num_display = 8; +} + +$params = array( + 'name' => 'params[num_display]', + 'value' => $vars['entity']->num_display, + 'options' => array(5, 8, 10, 12, 15, 20), +); +$num_dropdown = elgg_view('input/dropdown', $params); + +?> +<div> + <?php echo elgg_echo('widget:numbertodisplay'); ?>: + <?php echo $num_dropdown; ?> +</div> + +<?php +// pass the context so we have the correct output upon save. +if (elgg_in_context('dashboard')) { + $context = 'dashboard'; +} else { + $context = 'profile'; +} + +echo elgg_view('input/hidden', array( + 'name' => 'context', + 'value' => $context +));
\ No newline at end of file diff --git a/views/failsafe/canvas/default.php b/views/failsafe/canvas/default.php deleted file mode 100644 index 4b8d12e6d..000000000 --- a/views/failsafe/canvas/default.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -}
\ No newline at end of file diff --git a/views/failsafe/messages/exceptions/admin_exception.php b/views/failsafe/messages/exceptions/admin_exception.php new file mode 100644 index 000000000..57665d9c0 --- /dev/null +++ b/views/failsafe/messages/exceptions/admin_exception.php @@ -0,0 +1,30 @@ +<?php +/** + * Elgg exception (failsafe mode) + * Displays a single exception + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['object'] An exception + */ + +?> + +<p class="elgg-messages-exception"> + <span title="<?php echo get_class($vars['object']); ?>"> + <?php + + echo nl2br($vars['object']->getMessage()); + + ?> + </span> +</p> + +<p class="elgg-messages-exception"> + <?php + + echo nl2br(htmlentities(print_r($vars['object'], true), ENT_QUOTES, 'UTF-8')); + + ?> +</p>
\ No newline at end of file diff --git a/views/failsafe/messages/exceptions/exception.php b/views/failsafe/messages/exceptions/exception.php index 9fa7dc2a4..1873ca0d9 100644 --- a/views/failsafe/messages/exceptions/exception.php +++ b/views/failsafe/messages/exceptions/exception.php @@ -11,28 +11,10 @@ ?> -<p class="messages_exception"> - <span title="<?php echo get_class($vars['object']); ?>"> - <?php - - echo nl2br($vars['object']->getMessage()); - - ?> +<p class="elgg-messages-exception"> + <span title="Unrecoverable Error"> + <?php echo elgg_echo('exception:contact_admin'); ?> + <br /><br /> + Exception #<?php echo $vars['ts']; ?>. </span> </p> - -<?php - -if (elgg_get_config('debug')) { -?> - -<p class="messages_exception"> - <?php - - echo nl2br(htmlentities(print_r($vars['object'], true), ENT_QUOTES, 'UTF-8')); - - ?> -</p> -<?php - -} diff --git a/views/failsafe/page/shells/default.php b/views/failsafe/page/default.php index 0ce63cc1d..6d628ebbb 100644 --- a/views/failsafe/page/shells/default.php +++ b/views/failsafe/page/default.php @@ -33,7 +33,7 @@ header('Content-type: text/html; charset=utf-8'); p { margin: 0px 0px 15px 0; } - #wrapper { + #elgg-wrapper { background:white; width:570px; margin:auto; @@ -43,7 +43,7 @@ header('Content-type: text/html; charset=utf-8'); border-right: 1px solid #666666; border-bottom: 1px solid #666666; } - .messages_exception { + .elgg-messages-exception { background:#FDFFC3; display:block; padding:10px; @@ -52,7 +52,7 @@ header('Content-type: text/html; charset=utf-8'); </head> <body> - <div id="wrapper"> + <div id="elgg-wrapper"> <h1><?php echo $vars['title']; ?></h1> <?php echo $vars['body']; ?> </div> diff --git a/views/foaf/canvas/default.php b/views/foaf/canvas/default.php deleted file mode 100644 index 4b8d12e6d..000000000 --- a/views/foaf/canvas/default.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -}
\ No newline at end of file diff --git a/views/foaf/page/shells/default.php b/views/foaf/page/default.php index f955279d0..fad46ed35 100644 --- a/views/foaf/page/shells/default.php +++ b/views/foaf/page/default.php @@ -6,7 +6,7 @@ * @subpackage Core * * // @todo removed below because blog is a plugin - * <foaf:weblog rdf:resource="<?php echo elgg_get_site_url(); ?>pg/blog/<?php echo $owner->username; ?>" /> + * <foaf:weblog rdf:resource="<?php echo elgg_get_site_url(); ?>blog/<?php echo $owner->username; ?>" /> */ header("Content-Type: text/xml"); @@ -42,8 +42,6 @@ if (!$owner = elgg_get_page_owner_entity()) { <foaf:name><?php echo $owner->name; ?></foaf:name> <foaf:homepage rdf:resource="<?php echo $owner->getURL(); ?>" /> <foaf:depiction rdf:resource="<?php echo elgg_format_url($owner->getIconURL('large')); ?>" /> - <?php - echo $vars['body']; - ?> +<?php echo $vars['body']; ?> </foaf:Person> </rdf:RDF> diff --git a/views/foaf/search/entity_list.php b/views/foaf/search/entity_list.php deleted file mode 100644 index b786865d7..000000000 --- a/views/foaf/search/entity_list.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity); - } -}
\ No newline at end of file diff --git a/views/foaf/user/default.php b/views/foaf/user/default.php index 8d059bc6b..dcba55562 100644 --- a/views/foaf/user/default.php +++ b/views/foaf/user/default.php @@ -6,7 +6,8 @@ * @subpackage Core */ -$friends=get_user_friends(elgg_get_page_owner_guid(), $subtype = "", $limit = 10000, $offset = 0); +// @todo update when get_user_friends is deprecated in 1.9 +$friends = get_user_friends(elgg_get_page_owner_guid(), $subtype = "", $limit = 10000, $offset = 0); foreach ($friends as $friend) { ?> diff --git a/views/ical/canvas/default.php b/views/ical/canvas/default.php deleted file mode 100644 index 833b46e74..000000000 --- a/views/ical/canvas/default.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -/** - * Elgg ICAL output - * - * @package Elgg - * @subpackage Core - * - */ - -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -}
\ No newline at end of file diff --git a/views/ical/export/entity.php b/views/ical/export/entity.php index caa60c7a5..eaa3b56d8 100644 --- a/views/ical/export/entity.php +++ b/views/ical/export/entity.php @@ -9,23 +9,25 @@ $entity = $vars['entity']; -if ( - ($entity instanceof Notable) && - ($entity->getCalendarStartTime()) && - ($entity->getCalendarEndTime()) -) -{ -?> +if ($entity instanceof Notable && + $entity->getCalendarStartTime() && + $entity->getCalendarEndTime()) { + + $timestamp = date("Ymd\THis\Z", $entity->getTimeCreated()); + $start = date("Ymd\THis\Z", $entity->getCalendarStartTime()); + $end = date("Ymd\THis\Z", $entity->getCalendarEndTime()); + $summary = $entity->title; + $modified = date("Ymd\THis\Z", $entity->getTimeUpdated()); + + echo <<< ICAL BEGIN:VEVENT -DTSTAMP:<?php echo date("Ymd\THis\Z", $entity->getTimeCreated()); ?> -DTSTART:<?php echo date("Ymd\THis\Z", $entity->getCalendarStartTime()); ?> -DTEND:<?php echo date("Ymd\THis\Z", $entity->getCalendarEndTime()); ?> -SUMMARY:<?php echo $event->title; ?> -LAST-MODIFIED:<?php echo date("Ymd\THis\Z", $entity->getTimeUpdated()); ?> +DTSTAMP:$timestamp +DTSTART:$start +DTEND:$end +SUMMARY:$summary +LAST-MODIFIED:$modified END:VEVENT -<?php -} -?> - if ( - )
\ No newline at end of file +ICAL; + +} diff --git a/views/ical/object/default.php b/views/ical/object/default.php index 678676133..77183bb8a 100644 --- a/views/ical/object/default.php +++ b/views/ical/object/default.php @@ -7,4 +7,4 @@ * */ -elgg_view('export/entity', $vars);
\ No newline at end of file +echo elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/ical/page/shells/default.php b/views/ical/page/default.php index 9a529b24f..01bd9e86e 100644 --- a/views/ical/page/shells/default.php +++ b/views/ical/page/default.php @@ -7,12 +7,13 @@ * */ +$site = elgg_get_site_entity(); + header("Content-Type: text/calendar"); -echo $vars['body']; ?> BEGIN:VCALENDAR VERSION:2.0 -PRODID:-//Curverider Ltd//NONSGML Elgg <?php echo get_version(true); ?>//EN +PRODID:-//Elgg//NONSGML <?php echo $site->name; ?>//EN <?php echo $vars['body']; ?> END:VCALENDAR diff --git a/views/ical/search/entity_list.php b/views/ical/search/entity_list.php deleted file mode 100644 index 38c19fbb7..000000000 --- a/views/ical/search/entity_list.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) - echo elgg_view_entity($entity); -}
\ No newline at end of file diff --git a/views/installation/install/forms/template.php b/views/installation/forms/install/template.php index 5e44d928e..a01914f12 100644 --- a/views/installation/install/forms/template.php +++ b/views/installation/forms/install/template.php @@ -15,29 +15,16 @@ foreach ($variables as $field => $params) { $help = elgg_echo("install:$type:help:$field"); $params['name'] = $field; - $form_body .= '<p>'; + $form_body .= '<div>'; $form_body .= "<label>$label</label>"; $form_body .= elgg_view("input/{$params['type']}", $params); $form_body .= "<span class=\"install-help\">$help</span>"; - $form_body .= '</p>'; + $form_body .= '</div>'; } $submit_params = array( - 'value' => elgg_echo('next'), + 'value' => elgg_echo('install:next'), ); $form_body .= elgg_view('input/submit', $submit_params); echo $form_body; - -?> -<?php //@todo JS 1.8: no ?> -<script type="text/javascript"> - var was_submitted = false; - function elggCheckFormSubmission() { - if (was_submitted == false) { - was_submitted = true; - return true; - } - return false; - } -</script> diff --git a/views/installation/input/access.php b/views/installation/input/access.php index 3fde7295f..c3d4713bc 100644 --- a/views/installation/input/access.php +++ b/views/installation/input/access.php @@ -3,21 +3,12 @@ * Elgg access level input * Displays a dropdown input field * - * @package Elgg - * @subpackage Core - * * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag * @uses $vars['name'] The name of the input field * */ -if (isset($vars['class'])) { - $class = $vars['class']; -} -if (!$class) { - $class = "elgg-input-access"; -} +$class = "elgg-input-access"; if ((!isset($vars['options'])) || (!is_array($vars['options']))) { $vars['options'] = array(); @@ -28,7 +19,7 @@ if (is_array($vars['options']) && sizeof($vars['options']) > 0) { ?> - <select name="<?php echo $vars['name']; ?>" <?php if (isset($vars['js'])) echo $vars['js']; ?> <?php if ((isset($vars['disabled'])) && ($vars['disabled'])) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>"> + <select name="<?php echo $vars['name']; ?>" class="<?php echo $class; ?>"> <?php foreach($vars['options'] as $key => $option) { @@ -44,4 +35,4 @@ if (is_array($vars['options']) && sizeof($vars['options']) > 0) { <?php -}
\ No newline at end of file +} diff --git a/views/installation/input/button.php b/views/installation/input/button.php index a69f7dbfa..ec90fed9d 100644 --- a/views/installation/input/button.php +++ b/views/installation/input/button.php @@ -1,25 +1,24 @@ <?php /** * Create a input button - * Use this view for forms rather than creating a submit/reset button tag in the wild as it provides - * extra security which help prevent CSRF attacks. - * - * @package Elgg - * @subpackage Core * * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag * @uses $vars['name'] The name of the input field - * @uses $vars['type'] Submit or reset, defaults to submit. - * @uses $vars['src'] Src of an image - * + * @uses $vars['type'] submit or button. */ -$class = $vars['class']; -if (!$class) { +if (isset($vars['class'])) { + $class = $vars['class']; +} else { $class = "elgg-button-submit"; } +if (isset($vars['name'])) { + $name = $vars['name']; +} else { + $name = ''; +} + if (isset($vars['type'])) { $type = strtolower($vars['type']); } else { @@ -30,20 +29,12 @@ switch ($type) { case 'button' : $type='button'; break; - case 'reset' : - $type='reset'; - break; case 'submit': default: $type = 'submit'; } $value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); -$name = $vars['name']; -$src = $vars['src']; -// blank src if trying to access an offsite image. -if (strpos($src, elgg_get_site_url()) === false) { - $src = ""; -} + ?> -<input type="<?php echo $type; ?>" <?php if (isset($vars['id'])) echo "id=\"{$vars['id']}\"";?> <?php echo $vars['js']; ?> value="<?php echo $value; ?>" src="<?php echo $src; ?>" class="<?php echo $class; ?>" />
\ No newline at end of file +<input type="<?php echo $type; ?>" value="<?php echo $value; ?>" class="<?php echo $class; ?>" />
\ No newline at end of file diff --git a/views/installation/input/checkbox.php b/views/installation/input/checkbox.php new file mode 100644 index 000000000..6fbe25169 --- /dev/null +++ b/views/installation/input/checkbox.php @@ -0,0 +1,24 @@ +<?php +/** + * Elgg checkbox input + * Displays a checkbox input tag + * + * @uses $var['name'] + * @uses $vars['value'] + * @uses $vars['class'] + */ + + +if (isset($vars['class'])) { + $id = "class=\"{$vars['class']}\""; +} else { + $id = ''; +} + +if (!isset($vars['value'])) { + $vars['value'] = $vars['name']; +} + +?> + +<input type="checkbox" <?php echo $class; ?> name="<?php echo $vars['name']; ?>" value="<?php echo $vars['value']; ?>" />
\ No newline at end of file diff --git a/views/installation/input/checkboxes.php b/views/installation/input/checkboxes.php deleted file mode 100644 index 164509831..000000000 --- a/views/installation/input/checkboxes.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** - * Elgg checkbox input - * Displays a checkbox input field - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag - * @uses $vars['name'] The name of the input field - * @uses $vars['options'] An array of strings representing the options for the checkbox field - * - */ - -$class = $vars['class']; -if (!$class) { - $class = "elgg-input-checkboxes"; -} - -foreach($vars['options'] as $label => $option) { - //if (!in_array($option,$vars['value'])) { - if (is_array($vars['value'])) { - if (!in_array($option,$vars['value'])) { - $selected = ""; - } else { - $selected = "checked = \"checked\""; - } - } else { - if ($option != $vars['value']) { - $selected = ""; - } else { - $selected = "checked = \"checked\""; - } - } - - // handle indexed array where label is not specified - // @todo deprecate in Elgg 1.8 - if (is_integer($label)) { - $label = $option; - } - - $disabled = ""; - if ($vars['disabled']) { - $disabled = ' disabled="yes" '; - } - echo "<label><input type=\"checkbox\" $disabled {$vars['js']} name=\"{$vars['name']}[]\" {$selected} value=\"".htmlentities($option, ENT_QUOTES, 'UTF-8')."\" {$selected} class=\"$class\" />{$label}</label><br />"; -}
\ No newline at end of file diff --git a/views/installation/input/combo.php b/views/installation/input/combo.php new file mode 100644 index 000000000..508dbcd01 --- /dev/null +++ b/views/installation/input/combo.php @@ -0,0 +1,19 @@ +<?php +/** + * Combination of text box and check box. When the checkbox is checked, the + * text field is cleared and disabled. + * + */ + +$label = elgg_echo('install:label:combo:' . $vars['name']); + +$vars['class'] = "elgg-combo-text"; +echo elgg_view('input/text', $vars); + +$vars['class'] = "elgg-combo-checkbox"; +$vars['value'] = "{$vars['name']}-checkbox"; +echo elgg_view('input/checkbox', $vars); + +echo "<label class=\"elgg-combo-label\">$label</label>"; + +echo '<div class="clearfloat"></div>';
\ No newline at end of file diff --git a/views/installation/input/dropdown.php b/views/installation/input/dropdown.php index 141ff65b0..cf875492e 100644 --- a/views/installation/input/dropdown.php +++ b/views/installation/input/dropdown.php @@ -3,27 +3,20 @@ * Elgg dropdown input * Displays a dropdown input field * - * @package Elgg - * @subpackage Core - * * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag * @uses $vars['name'] The name of the input field * @uses $vars['options'] An array of strings representing the options for the dropdown field * @uses $vars['options_values'] An associative array of "value" => "option" where "value" is an internal name and "option" is * the value displayed on the button. Replaces $vars['options'] when defined. */ +$class = "elgg-input-dropdown"; -$class = $vars['class']; -if (!$class) { - $class = "elgg-input-dropdown"; -} ?> -<select name="<?php echo $vars['name']; ?>" <?php echo $vars['js']; ?> <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>"> +<select name="<?php echo $vars['name']; ?>" class="<?php echo $class; ?>"> <?php -if ($vars['options_values']) { - foreach($vars['options_values'] as $value => $option) { +if (isset($vars['options_values'])) { + foreach ($vars['options_values'] as $value => $option) { if ($value != $vars['value']) { echo "<option value=\"$value\">{$option}</option>"; } else { @@ -31,7 +24,7 @@ if ($vars['options_values']) { } } } else { - foreach($vars['options'] as $option) { + foreach ($vars['options'] as $option) { if ($option != $vars['value']) { echo "<option>{$option}</option>"; } else { @@ -40,4 +33,4 @@ if ($vars['options_values']) { } } ?> -</select>
\ No newline at end of file +</select> diff --git a/views/installation/input/form.php b/views/installation/input/form.php index b131c9d10..3556413a8 100644 --- a/views/installation/input/form.php +++ b/views/installation/input/form.php @@ -1,36 +1,21 @@ <?php /** * Create a form for data submission. - * Use this view for forms rather than creating a form tag in the wild as it provides - * extra security which help prevent CSRF attacks. * - * @package Elgg - * @subpackage Core - * - * @uses $vars['body'] The body of the form (made up of other input/xxx views and html - * @uses $vars['method'] Method (default POST) - * @uses $vars['enctype'] How the form is encoded, default blank + * @uses $vars['body'] The body of the form (made up of other input/xxx views and html * @uses $vars['action'] URL of the action being called - * + * @uses $vars['method'] Method (default POST) + * @uses $vars['name'] Form name */ -if (isset($vars['id'])) { - $id = $vars['id']; -} else { - $id = ''; -} if (isset($vars['name'])) { - $name = $vars['name']; + $name = "name=\"{$vars['name']}\""; } else { $name = ''; } + $body = $vars['body']; $action = $vars['action']; -if (isset($vars['enctype'])) { - $enctype = $vars['enctype']; -} else { - $enctype = ''; -} if (isset($vars['method'])) { $method = $vars['method']; } else { @@ -39,13 +24,7 @@ if (isset($vars['method'])) { $method = strtolower($method); -// Generate a security header -$security_header = ""; -if (!isset($vars['disable_security']) || $vars['disable_security'] != true) { - $security_header = elgg_view('input/securitytoken'); -} ?> -<form <?php if ($id) { ?>id="<?php echo $id; ?>" <?php } ?> <?php if ($name) { ?>name="<?php echo $name; ?>" <?php } ?> action="<?php echo $action; ?>" method="<?php echo $method; ?>" <?php if ($enctype!="") echo "enctype=\"$enctype\""; ?> <?php echo $vars['js']; ?>> -<?php echo $security_header; ?> +<form <?php echo $name; ?> action="<?php echo $action; ?>" method="<?php echo $method; ?>"> <?php echo $body; ?> </form>
\ No newline at end of file diff --git a/views/installation/input/hidden.php b/views/installation/input/hidden.php deleted file mode 100644 index c9800ebbb..000000000 --- a/views/installation/input/hidden.php +++ /dev/null @@ -1,16 +0,0 @@ -<?php -/** - * Create a hidden data field - * Use this view for forms rather than creating a hidden tag in the wild as it provides - * extra security which help prevent CSRF attacks. - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag - * @uses $vars['name'] The name of the input field - * - */ -?> -<input type="hidden" <?php echo $vars['js']; ?> name="<?php echo $vars['name']; ?>" value="<?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?>" />
\ No newline at end of file diff --git a/views/installation/input/longtext.php b/views/installation/input/longtext.php deleted file mode 100644 index 820a51da4..000000000 --- a/views/installation/input/longtext.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * Elgg long text input - * Displays a long text input field - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag - * @uses $vars['name'] The name of the input field - * - */ - -$class = $vars['class']; -if (!$class) { - $class = "elgg-input-textarea"; -} - -?> - -<textarea class="<?php echo $class; ?>" name="<?php echo $vars['name']; ?>" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?>><?php echo $vars['value']; ?></textarea>
\ No newline at end of file diff --git a/views/installation/input/password.php b/views/installation/input/password.php index 8ba79228d..2265ab117 100644 --- a/views/installation/input/password.php +++ b/views/installation/input/password.php @@ -3,19 +3,15 @@ * Elgg password input * Displays a password input field * - * @package Elgg - * @subpackage Core - * * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag * @uses $vars['name'] The name of the input field * */ -$class = $vars['class']; -if (!$class) { - $class = "input-password"; -} +$class = "input-password"; + +$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); + ?> -<input type="password" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['name']; ?>" <?php if (isset($vars['id'])) echo "id=\"{$vars['id']}\""; ?> value="<?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?>" class="<?php echo $class; ?>" /> +<input type="password" name="<?php echo $vars['name']; ?>" value="<?php echo $value; ?>" class="<?php echo $class; ?>" /> diff --git a/views/installation/input/reset.php b/views/installation/input/reset.php deleted file mode 100644 index 0c83a92ca..000000000 --- a/views/installation/input/reset.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Create a reset input button - * Use this view for forms rather than creating a submit/reset button tag in the wild as it provides - * extra security which help prevent CSRF attacks. - * - * @package Elgg - * @subpackage Core - */ - -$vars['type'] = 'reset'; - -echo elgg_view('input/button', $vars);
\ No newline at end of file diff --git a/views/installation/input/securitytoken.php b/views/installation/input/securitytoken.php deleted file mode 100644 index 75410848a..000000000 --- a/views/installation/input/securitytoken.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/** - * CSRF security token view for use with secure forms. - * - * It is still recommended that you use input/form. - * - * @package Elgg - * @subpackage Core - */ - -$ts = time(); -$token = generate_action_token($ts); - -echo elgg_view('input/hidden', array('name' => '__elgg_token', 'value' => $token)); -echo elgg_view('input/hidden', array('name' => '__elgg_ts', 'value' => $ts)); diff --git a/views/installation/input/submit.php b/views/installation/input/submit.php index aefb2ada6..5d891c380 100644 --- a/views/installation/input/submit.php +++ b/views/installation/input/submit.php @@ -1,11 +1,9 @@ <?php /** * Create a submit input button - * Use this view for forms rather than creating a submit/reset button tag in the wild as it provides - * extra security which help prevent CSRF attacks. * - * @package Elgg - * @subpackage Core + * @uses $vars['value'] The current value, if any + * @uses $vars['name'] The name of the input field */ $vars['type'] = 'submit'; diff --git a/views/installation/input/text.php b/views/installation/input/text.php index c59278b40..375b91c44 100644 --- a/views/installation/input/text.php +++ b/views/installation/input/text.php @@ -3,22 +3,18 @@ * Elgg text input * Displays a text input field * - * @package Elgg - * @subpackage Core - - - * * @uses $vars['value'] The current value, if any - * @uses $vars['js'] Any Javascript to enter into the input tag - * @uses $vars['name'] The name of the input field - * @uses $vars['disabled'] If true then control is read-only - * @uses $vars['class'] Class override + * @uses $vars['name'] The name of the input field + * @uses $vars['class'] CSS class */ -$class = $vars['class']; -if (!$class) { - $class = "input-text"; +if (isset($vars['class'])) { + $class = "class=\"{$vars['class']}\""; +} else { + $class = "elgg-input-text"; } +$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); + ?> -<input type="text" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['name']; ?>" value="<?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?>" class="<?php echo $class ?>"/>
\ No newline at end of file +<input type="text" name="<?php echo $vars['name']; ?>" value="<?php echo $value; ?>" <?php echo $class; ?> />
\ No newline at end of file diff --git a/views/installation/install/footer.php b/views/installation/install/footer.php deleted file mode 100644 index 69cd27f66..000000000 --- a/views/installation/install/footer.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -/** - * Install footer - offers help links - */ -?> -<ul> - <li><a href="http://docs.elgg.org/wiki/Installation">Install instructions</a></li> - <li><a href="http://docs.elgg.org/wiki/Install_Troubleshooting">Install troubleshooting</a></li> - <li><a href="http://community.elgg.org/pg/groups/world/">Elgg community forums</a></li> -</ul>
\ No newline at end of file diff --git a/views/installation/install/forms/admin.php b/views/installation/install/forms/admin.php deleted file mode 100644 index d860096cf..000000000 --- a/views/installation/install/forms/admin.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -/** - * Admin account form - * - * @uses $vars['variables'] Array of form variables. See ElggInstaller. - * - * @todo Forms 1.8: Convert to use elgg_view_form - */ - -$vars['type'] = 'admin'; -$form_body = elgg_view('install/forms/template', $vars); - -$url = current_page_url(); - -$params = array( - 'body' => $form_body, - 'action' => $url, - 'disable_security' => TRUE, - 'js' => 'onsubmit="return elggCheckFormSubmission()"', -); -echo elgg_view('input/form', $params); diff --git a/views/installation/install/forms/database.php b/views/installation/install/forms/database.php deleted file mode 100644 index 02e3816ee..000000000 --- a/views/installation/install/forms/database.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -/** - * Database form - * - * @uses $vars['variables'] Array of form variables. See ElggInstaller. - * - * @todo Forms 1.8: Convert to use elgg_view_form - */ - -$vars['type'] = 'database'; -$form_body = elgg_view('install/forms/template', $vars); - -$url = current_page_url(); - -$params = array( - 'body' => $form_body, - 'action' => $url, - 'disable_security' => TRUE, - 'js' => 'onsubmit="return elggCheckFormSubmission()"', -); -echo elgg_view('input/form', $params); diff --git a/views/installation/install/forms/settings.php b/views/installation/install/forms/settings.php deleted file mode 100644 index 3aa90c10b..000000000 --- a/views/installation/install/forms/settings.php +++ /dev/null @@ -1,21 +0,0 @@ -<?php -/** - * Site settings form - * - * @uses $vars['variables'] Array of form variables. See ElggInstaller. - * - * @todo Forms 1.8: Convert to use elgg_view_form - */ - -$vars['type'] = 'settings'; -$form_body = elgg_view('install/forms/template', $vars); - -$url = current_page_url(); - -$params = array( - 'body' => $form_body, - 'action' => $url, - 'disable_security' => TRUE, - 'js' => 'onsubmit="return elggCheckFormSubmission()"', -); -echo elgg_view('input/form', $params); diff --git a/views/installation/install/js_rewrite_check.php b/views/installation/install/js_rewrite_check.php new file mode 100644 index 000000000..04d81171d --- /dev/null +++ b/views/installation/install/js_rewrite_check.php @@ -0,0 +1,12 @@ +<?php +/** + * Some servers don't allow PHP to check the rewrite, so try via AJAX + */ +?> +<script type="text/javascript"> + elgg.installer.rewriteTest( + '<?php echo $vars['url'];?>', + '<?php echo elgg_echo('install:check:rewrite:success'); ?>', + '<?php echo $vars['config']->wwwroot; ?>install.php?step=database' + ); +</script>
\ No newline at end of file diff --git a/views/installation/install/nav.php b/views/installation/install/nav.php index 5426071c6..c150cb2cb 100644 --- a/views/installation/install/nav.php +++ b/views/installation/install/nav.php @@ -12,12 +12,12 @@ // has a refresh button been requested $refresh = ''; if (isset($vars['refresh']) && $vars['refresh']) { - $refresh_text = elgg_echo('Refresh'); + $refresh_text = elgg_echo('install:refresh'); $refresh = "<a href=\"\">$refresh_text</a>"; } // create next button and selectively disable -$next_text = elgg_echo('next'); +$next_text = elgg_echo('install:next'); $next_link = elgg_get_site_url()."install.php?step={$vars['next_step']}"; $next = "<a href=\"$next_link\">$next_text</a>"; if (isset($vars['advance']) && !$vars['advance']) { @@ -27,7 +27,7 @@ if (isset($vars['advance']) && !$vars['advance']) { echo <<<___END -<div class="install-nav"> +<div class="elgg-install-nav"> $next $refresh </div> diff --git a/views/installation/install/pages/admin.php b/views/installation/install/pages/admin.php index 1fdd5dced..e810aa701 100644 --- a/views/installation/install/pages/admin.php +++ b/views/installation/install/pages/admin.php @@ -3,6 +3,15 @@ * Install create admin account page */ -echo autop(elgg_echo('install:admin:instructions')); +echo elgg_autop(elgg_echo('install:admin:instructions')); -echo elgg_view('install/forms/admin', $vars); +$vars['type'] = 'admin'; + +$url = current_page_url(); + +$form_vars = array( + 'action' => $url, + 'disable_security' => TRUE, +); + +echo elgg_view_form('install/template', $form_vars, $vars); diff --git a/views/installation/install/pages/complete.php b/views/installation/install/pages/complete.php index 0c9821fc2..80f8e7434 100644 --- a/views/installation/install/pages/complete.php +++ b/views/installation/install/pages/complete.php @@ -3,11 +3,11 @@ * Install completion page */ -echo autop(elgg_echo('install:complete:instructions')); +echo elgg_autop(elgg_echo('install:complete:instructions')); ?> -<div class="install-nav"> +<div class="elgg-install-nav"> <?php $url = elgg_get_site_url() . $vars['destination']; $text = elgg_echo('install:complete:gotosite'); diff --git a/views/installation/install/pages/database.php b/views/installation/install/pages/database.php index 7765c6e48..d24b4f57b 100644 --- a/views/installation/install/pages/database.php +++ b/views/installation/install/pages/database.php @@ -6,11 +6,21 @@ */ if (isset($vars['failure']) && $vars['failure']) { - echo autop(elgg_echo('install:database:error')); + echo elgg_autop(elgg_echo('install:database:error')); $vars['refresh'] = TRUE; $vars['advance'] = FALSE; echo elgg_view('install/nav', $vars); } else { - echo autop(elgg_echo('install:database:instructions')); - echo elgg_view('install/forms/database', $vars); + echo elgg_autop(elgg_echo('install:database:instructions')); + + $vars['type'] = 'database'; + + $url = current_page_url(); + + $form_vars = array( + 'action' => $url, + 'disable_security' => TRUE, + ); + + echo elgg_view_form('install/template', $form_vars, $vars); }
\ No newline at end of file diff --git a/views/installation/install/pages/requirements.php b/views/installation/install/pages/requirements.php index b6516840f..3f0941c95 100644 --- a/views/installation/install/pages/requirements.php +++ b/views/installation/install/pages/requirements.php @@ -14,26 +14,26 @@ if ($vars['num_failures'] != 0) { $instruct_text = elgg_echo('install:requirements:instructions:success'); } -echo autop($instruct_text); +echo elgg_autop($instruct_text); $report = $vars['report']; foreach ($report as $category => $checks) { $title = elgg_echo("install:require:$category"); echo "<h3>$title</h3>"; - echo "<ul>"; + echo "<ul class=\"elgg-require-$category\">"; foreach ($checks as $check) { echo "<li class=\"{$check['severity']}\">"; - echo autop($check['message']); + echo elgg_autop($check['message']); echo "</li>"; } echo "</ul>"; } -$vars['refresh'] = TRUE; +$vars['refresh'] = true; // cannot advance to next step with a failure if ($vars['num_failures'] != 0) { - $vars['advance'] = FALSE; + $vars['advance'] = false; } echo elgg_view('install/nav', $vars); diff --git a/views/installation/install/pages/settings.php b/views/installation/install/pages/settings.php index 6f20573ef..04f23c0ea 100644 --- a/views/installation/install/pages/settings.php +++ b/views/installation/install/pages/settings.php @@ -1,5 +1,14 @@ <?php -echo autop(elgg_echo('install:settings:instructions')); +echo elgg_autop(elgg_echo('install:settings:instructions')); -echo elgg_view('install/forms/settings', $vars); +$vars['type'] = 'settings'; + +$url = current_page_url(); + +$form_vars = array( + 'action' => $url, + 'disable_security' => TRUE, +); + +echo elgg_view_form('install/template', $form_vars, $vars); diff --git a/views/installation/install/pages/welcome.php b/views/installation/install/pages/welcome.php index f069e4ba7..f370c15f3 100644 --- a/views/installation/install/pages/welcome.php +++ b/views/installation/install/pages/welcome.php @@ -3,6 +3,6 @@ * Install welcome page */ -echo autop(elgg_echo('install:welcome:instructions')); +echo elgg_autop(elgg_echo('install:welcome:instructions')); echo elgg_view('install/nav', $vars); diff --git a/views/installation/page/shells/default.php b/views/installation/page/default.php index abee13dba..662e8206e 100644 --- a/views/installation/page/shells/default.php +++ b/views/installation/page/default.php @@ -29,24 +29,29 @@ header('Expires: Fri, 05 Feb 1982 00:00:00 -0500', TRUE); <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" /> <link rel="stylesheet" href="<?php echo elgg_get_site_url(); ?>install/css/install.css" type="text/css" /> + <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery-1.6.4.min.js"></script> + <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>install/js/install.js"></script> </head> <body> - <div id="elgg-wrapper"> - <div id="elgg-header"> - <?php echo elgg_view('install/header', $vars); ?> + <div class="elgg-page"> + <div class="elgg-page-header"> + <?php echo elgg_view('page/elements/header', $vars); ?> + </div> + <div class="elgg-page-body"> + <div class="elgg-layout"> + <div class="elgg-sidebar"> + <?php echo elgg_view('page/elements/sidebar', $vars); ?> + </div> + <div class="elgg-body"> + <h2><?php echo $vars['title']; ?></h2> + <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> + <?php echo $vars['body']; ?> + </div> + </div> + </div> + <div class="elgg-page-footer"> + <?php echo elgg_view('page/elements/footer'); ?> + </div> </div> - <div id="elgg-sidebar"> - <?php echo elgg_view('install/sidebar', $vars); ?> - </div> - <div id="elgg-content"> - <h2><?php echo $vars['title']; ?></h2> - <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> - <?php echo $vars['body']; ?> - </div> - <div class="clearfloat"></div> - </div> - <div id="elgg-footer"> - <?php echo elgg_view('install/footer'); ?> - </div> </body> </html> diff --git a/views/installation/page/elements/footer.php b/views/installation/page/elements/footer.php new file mode 100644 index 000000000..d6a755fba --- /dev/null +++ b/views/installation/page/elements/footer.php @@ -0,0 +1,10 @@ +<?php +/** + * Install footer - offers help links + */ +?> +<ul> + <li><a href="http://docs.elgg.org/wiki/Installation" target="_blank">Install instructions</a></li> + <li><a href="http://docs.elgg.org/wiki/Install_Troubleshooting" target="_blank">Install troubleshooting</a></li> + <li><a href="http://community.elgg.org/pg/groups/world" target="_blank">Elgg community forums</a></li> +</ul>
\ No newline at end of file diff --git a/views/installation/install/header.php b/views/installation/page/elements/header.php index 8c18dbffd..8c18dbffd 100644 --- a/views/installation/install/header.php +++ b/views/installation/page/elements/header.php diff --git a/views/installation/page/elements/messages.php b/views/installation/page/elements/messages.php index 2a06a7b1e..46261dca4 100644 --- a/views/installation/page/elements/messages.php +++ b/views/installation/page/elements/messages.php @@ -12,7 +12,7 @@ if (isset($vars['object']) && is_array($vars['object']) && sizeof($vars['object' foreach ($vars['object'] as $type => $list ) { foreach ($list as $message) { echo "<li class=\"elgg-state-$type\">"; - echo autop($message); + echo elgg_autop($message); echo '</li>'; } } diff --git a/views/installation/install/sidebar.php b/views/installation/page/elements/sidebar.php index 8136cd898..8136cd898 100644 --- a/views/installation/install/sidebar.php +++ b/views/installation/page/elements/sidebar.php diff --git a/views/json/api/output.php b/views/json/api/output.php index aab68f0dc..adeb7cc75 100644 --- a/views/json/api/output.php +++ b/views/json/api/output.php @@ -1,11 +1,10 @@ <?php /** * Elgg JSON output - * This outputs the api as JSON + * This outputs the api results as JSON * * @package Elgg * @subpackage Core - * */ $result = $vars['result']; diff --git a/views/json/canvas/default.php b/views/json/canvas/default.php deleted file mode 100644 index faaf615fb..000000000 --- a/views/json/canvas/default.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php - -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -} diff --git a/views/json/entities/entity_list.php b/views/json/entities/entity_list.php deleted file mode 100644 index f3d388f21..000000000 --- a/views/json/entities/entity_list.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -$entities = $vars['entities']; -$fullview = $vars['fullview']; - -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity, $fullview); - } -} diff --git a/views/json/export/entity.php b/views/json/export/entity.php index 52cd9d244..36af5eaef 100644 --- a/views/json/export/entity.php +++ b/views/json/export/entity.php @@ -19,4 +19,7 @@ foreach ($exportable_values as $v) { $export->url = $entity->getURL(); global $jsonexport; -$jsonexport[$entity->getType()][$entity->getSubtype()][] = $export;
\ No newline at end of file +$jsonexport[$entity->getType()][$entity->getSubtype()][] = $export; + +// @todo hack to fix #4504 +echo "Fix for bug #4504"; diff --git a/views/json/group/default.php b/views/json/group/default.php index a01b215cc..dd190d402 100644 --- a/views/json/group/default.php +++ b/views/json/group/default.php @@ -1,9 +1,9 @@ <?php /** - * Elgg default layout + * JSON group view * * @package Elgg * @subpackage Core */ -elgg_view('export/entity', $vars);
\ No newline at end of file +echo elgg_view('export/entity', $vars); diff --git a/views/json/object/default.php b/views/json/object/default.php index a01b215cc..8b88b3010 100644 --- a/views/json/object/default.php +++ b/views/json/object/default.php @@ -1,9 +1,9 @@ <?php /** - * Elgg default layout + * JSON object view * * @package Elgg * @subpackage Core */ -elgg_view('export/entity', $vars);
\ No newline at end of file +echo elgg_view('export/entity', $vars); diff --git a/views/json/page/components/list.php b/views/json/page/components/list.php new file mode 100644 index 000000000..5de4f1f59 --- /dev/null +++ b/views/json/page/components/list.php @@ -0,0 +1,14 @@ +<?php +/** + * JSON list view + * + * @uses $vars['items'] + */ + +$items = $vars['items']; + +if (is_array($items) && sizeof($items) > 0) { + foreach ($items as $item) { + elgg_view_list_item($item, $vars); + } +}
\ No newline at end of file diff --git a/views/json/page/default.php b/views/json/page/default.php new file mode 100644 index 000000000..2d0403e11 --- /dev/null +++ b/views/json/page/default.php @@ -0,0 +1,13 @@ +<?php +/** + * Elgg JSON output pageshell + * + * @package Elgg + * @subpackage Core + * + */ + +header("Content-Type: application/json"); + +global $jsonexport; +echo json_encode($jsonexport);
\ No newline at end of file diff --git a/views/json/page/shells/default.php b/views/json/page/shells/default.php deleted file mode 100644 index d1f86c8a7..000000000 --- a/views/json/page/shells/default.php +++ /dev/null @@ -1,18 +0,0 @@ -<?php -/** - * Elgg JSON output pageshell - * - * @package Elgg - * @subpackage Core - * - */ - -if(stristr($_SERVER["HTTP_ACCEPT"],"application/json")) { - header("Content-Type: application/json"); -} else { - header("Content-Type: application/javascript"); -} -// echo $vars['body']; - -global $jsonexport; -echo json_encode($jsonexport);
\ No newline at end of file diff --git a/views/json/river/item.php b/views/json/river/item.php new file mode 100644 index 000000000..64677817f --- /dev/null +++ b/views/json/river/item.php @@ -0,0 +1,19 @@ +<?php +/** + * JSON river item view + * + * @uses $vars['item'] + */ + +global $jsonexport; + +if (!isset($jsonexport['activity'])) { + $jsonexport['activity'] = array(); +} + +$item = $vars['item']; +if (elgg_view_exists($item->view, 'default')) { + $item->string = elgg_view('river/elements/summary', array('item' => $item), FALSE, FALSE, 'default'); +} + +$jsonexport['activity'][] = $vars['item']; diff --git a/views/json/river/item/list.php b/views/json/river/item/list.php deleted file mode 100644 index c79cd1042..000000000 --- a/views/json/river/item/list.php +++ /dev/null @@ -1,45 +0,0 @@ -<?php -/** - * JSON river view - * - * @package Elgg - * @subpackage Core - */ -global $jsonexport; - -$json_items = array(); - -if (isset($vars['items']) && is_array($vars['items'])) { - $i = 0; - - if (!empty($vars['items'])) { - foreach($vars['items'] as $item) { - - $json_entry = array( - 'subject' => NULL, - 'object' => NULL, - 'type' => NULL, - 'subtype' => NULL, - 'action_type' => NULL, - 'view' => NULL, - 'annotation' => NULL, - 'timestamp' => NULL, - 'string' => NULL - ); - - if (elgg_view_exists($item->view, 'default')) { - $json_entry['string'] = elgg_view($item->view, array('item' => $item), FALSE, FALSE, 'default'); - $json_entry['timestamp'] = (int)$item->posted; - } - - $json_items[] = $json_entry; - - $i++; - if ($i >= $vars['limit']) { - break; - } - } - } -} - -$jsonexport['activity'] = $json_items; diff --git a/views/json/search/entity_list.php b/views/json/search/entity_list.php deleted file mode 100644 index c778bf5df..000000000 --- a/views/json/search/entity_list.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity); - } -} diff --git a/views/json/site/default.php b/views/json/site/default.php index a01b215cc..ee4eda489 100644 --- a/views/json/site/default.php +++ b/views/json/site/default.php @@ -1,9 +1,9 @@ <?php /** - * Elgg default layout + * JSON site view * * @package Elgg * @subpackage Core */ -elgg_view('export/entity', $vars);
\ No newline at end of file +echo elgg_view('export/entity', $vars); diff --git a/views/json/user/default.php b/views/json/user/default.php index a01b215cc..4d44692c9 100644 --- a/views/json/user/default.php +++ b/views/json/user/default.php @@ -1,9 +1,9 @@ <?php /** - * Elgg default layout + * JSON user view * * @package Elgg * @subpackage Core */ -elgg_view('export/entity', $vars);
\ No newline at end of file +echo elgg_view('export/entity', $vars); diff --git a/views/opendd/canvas/default.php b/views/opendd/canvas/default.php deleted file mode 100644 index 4b8d12e6d..000000000 --- a/views/opendd/canvas/default.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -}
\ No newline at end of file diff --git a/views/opendd/messages/exceptions/exception.php b/views/opendd/messages/exceptions/exception.php index 54868f1f4..dc0f48a8d 100644 --- a/views/opendd/messages/exceptions/exception.php +++ b/views/opendd/messages/exceptions/exception.php @@ -11,7 +11,7 @@ ?> <!-- -<?php echo get_class($vars['object']); ?>: <?php echo autop($vars['object']->getMessage()); ?> +<?php echo get_class($vars['object']); ?>: <?php echo elgg_autop($vars['object']->getMessage()); ?> <?php if (elgg_get_config('debug')) { ?> <?php echo print_r($vars['object'], true); diff --git a/views/opendd/page/shells/default.php b/views/opendd/page/default.php index bdd59d45e..bdd59d45e 100644 --- a/views/opendd/page/shells/default.php +++ b/views/opendd/page/default.php diff --git a/views/php/api/output.php b/views/php/api/output.php index cc76b97e0..14259564c 100644 --- a/views/php/api/output.php +++ b/views/php/api/output.php @@ -1,11 +1,10 @@ <?php /** * Elgg PHP output - * This outputs the api as PHP + * This outputs the api results as serialized PHP * * @package Elgg * @subpackage Core - * */ $result = $vars['result']; diff --git a/views/php/canvas/default.php b/views/php/canvas/default.php deleted file mode 100644 index 4b8d12e6d..000000000 --- a/views/php/canvas/default.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -}
\ No newline at end of file diff --git a/views/php/group/default.php b/views/php/group/default.php index eed1dbfbd..968d68bcd 100644 --- a/views/php/group/default.php +++ b/views/php/group/default.php @@ -1,6 +1,6 @@ <?php /** - * Elgg default layout + * PHP group view * * @package Elgg * @subpackage Core diff --git a/views/php/object/default.php b/views/php/object/default.php index eed1dbfbd..8cf4eb8c6 100644 --- a/views/php/object/default.php +++ b/views/php/object/default.php @@ -1,6 +1,6 @@ <?php /** - * Elgg default layout + * PHP object view * * @package Elgg * @subpackage Core diff --git a/views/php/page/shells/default.php b/views/php/page/default.php index c7692c432..87211a462 100644 --- a/views/php/page/shells/default.php +++ b/views/php/page/default.php @@ -1,10 +1,9 @@ <?php /** - * Elgg PHP output pageshell + * PHP output pageshell * * @package Elgg * @subpackage Core - * */ echo $vars['body'];
\ No newline at end of file diff --git a/views/php/search/entity_list.php b/views/php/search/entity_list.php deleted file mode 100644 index c56874bdb..000000000 --- a/views/php/search/entity_list.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -/** - * Elgg default layout - * - * @package Elgg - * @subpackage Core - */ - -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity); - } -}
\ No newline at end of file diff --git a/views/php/site/default.php b/views/php/site/default.php index 4b8d12e6d..102ac7ec7 100644 --- a/views/php/site/default.php +++ b/views/php/site/default.php @@ -1,13 +1,9 @@ <?php /** - * Elgg default layout + * PHP site view * * @package Elgg * @subpackage Core */ -for ($i = 1; $i < 8; $i++) { - if (isset($vars["area{$i}"])) { - echo $vars["area{$i}"]; - } -}
\ No newline at end of file +elgg_view('export/entity', $vars);
\ No newline at end of file diff --git a/views/php/user/default.php b/views/php/user/default.php index eed1dbfbd..1bb0f8fa9 100644 --- a/views/php/user/default.php +++ b/views/php/user/default.php @@ -1,6 +1,6 @@ <?php /** - * Elgg default layout + * PHP user view * * @package Elgg * @subpackage Core diff --git a/views/rss/annotation/default.php b/views/rss/annotation/default.php deleted file mode 100644 index 98329f132..000000000 --- a/views/rss/annotation/default.php +++ /dev/null @@ -1,34 +0,0 @@ -<?php -/** - * Elgg RSS view for a generic comment - * - * @package Elgg - * @subpackage Core - */ - -$entity = get_entity($vars['annotation']->entity_guid); - -$title = substr($vars['annotation']->value, 0, 32); -if (strlen($vars['annotation']->value) > 32) { - $title .= " ..."; -} - -$permalink = $entity->getURL(); -$pubdate = date('r', $entity->time_created); - -$creator = elgg_view('object/creator', array('entity' => $entity)); -$georss = elgg_view('object/georss', array('entity' => $entity)); -$extensions = elgg_view('extensions/item'); - -$item = <<<__HTML -<item> - <guid isPermaLink='true'>$permalink#{$vars['annotation']->id}</guid> - <pubDate>$pubdate</pubDate> - <link>$permalink#{$vars['annotation']->id}</link> - <title><![CDATA[$title]]></title> - <description><![CDATA[{$vars['annotation']->value}]]></description> - $creator$georss$extensions -</item> -__HTML; - -echo $item; diff --git a/views/rss/annotation/generic_comment.php b/views/rss/annotation/generic_comment.php new file mode 100644 index 000000000..de652fc8e --- /dev/null +++ b/views/rss/annotation/generic_comment.php @@ -0,0 +1,33 @@ +<?php +/** + * Elgg RSS view for a generic_comment annotation + * + * @package Elgg + * @subpackage Core + */ + +$annotation = $vars['annotation']; + +$poster = $annotation->getOwnerEntity(); +$poster_name = htmlspecialchars($poster->name, ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $annotation->getTimeCreated()); +$permalink = $annotation->getURL(); + +$title = elgg_echo('generic_comment:title', array($poster_name)); + +$creator = elgg_view('page/components/creator', array('entity' => $annotation)); +$extensions = elgg_view('extensions/item', $vars); + +$item = <<<__HTML +<item> + <guid isPermaLink='true'>$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[{$vars['annotation']->value}]]></description> + $creator$extensions +</item> + +__HTML; + +echo $item; diff --git a/views/rss/core/river/body.php b/views/rss/core/river/body.php deleted file mode 100644 index a168dd6a9..000000000 --- a/views/rss/core/river/body.php +++ /dev/null @@ -1,32 +0,0 @@ -<?php -/** - * RSS river view - * - * @uses $vars['item'] - */ -$item = $vars['item']; - -$view = $item->getView(); - -$name = $item->getSubjectEntity()->name; -$body = elgg_view($item->getView(), array('item' => $item), false, false, 'default'); -$body = "$name $body"; - -$title = strip_tags($body); -$timestamp = date('r', $item->getPostedTime()); - -$object = $item->getObjectEntity(); -if ($object) { - $url = htmlspecialchars($object->getURL()); -} else { - $url = elgg_get_site_url() . 'pg/activity'; -} - -?> -<item> - <guid isPermaLink='true'><?php echo $url; ?></guid> - <pubDate><?php echo $timestamp; ?></pubDate> - <link><?php echo $url; ?></link> - <title><![CDATA[<?php echo $title; ?>]]></title> - <description><![CDATA[<?php echo ($body); ?>]]></description> -</item> diff --git a/views/rss/group/default.php b/views/rss/group/default.php index 4ffceba78..7fef4d434 100644 --- a/views/rss/group/default.php +++ b/views/rss/group/default.php @@ -1,37 +1,37 @@ <?php /** - * Elgg default group view + * RSS group view * * @package Elgg * @subpackage Core */ -?> +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); +$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8'); +if ($vars['entity']->description) { + $description = elgg_autop($vars['entity']->description); +} elseif ($vars['entity']->briefdescription) { + $description = elgg_autop($vars['entity']->briefdescription); +} else { + $description = ''; +} + +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); + +$item = <<<__HTML <item> -<guid isPermaLink='true'><?php echo htmlspecialchars($vars['entity']->getURL()); ?></guid> -<pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate> -<link><?php echo htmlspecialchars($vars['entity']->getURL()); ?></link> -<title><![CDATA[<?php echo (($vars['entity']->name)); ?>]]></title> -<description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description> -<?php - $owner = $vars['entity']->getOwnerEntity(); - if ($owner) { -?> -<dc:creator><?php echo $owner->name; ?></dc:creator> -<?php - } -?> -<?php - if ( - ($vars['entity'] instanceof Locatable) && - ($vars['entity']->getLongitude()) && - ($vars['entity']->getLatitude()) - ) { - ?> - <georss:point><?php echo $vars['entity']->getLatitude(); ?> <?php echo $vars['entity']->getLongitude(); ?></georss:point> - <?php - } -?> -<?php echo elgg_view('extensions/item'); ?> + <guid isPermaLink="true">$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$description]]></description> + $creator$georss$extension </item> + +__HTML; + +echo $item; diff --git a/views/rss/object/creator.php b/views/rss/object/creator.php deleted file mode 100644 index 2bc6fd57d..000000000 --- a/views/rss/object/creator.php +++ /dev/null @@ -1,8 +0,0 @@ -<?php -/** - * - */ - -if ($owner = $vars['entity']->getOwnerEntity()) { - echo "<dc:creator>{$owner->name}</dc:creator>"; -} diff --git a/views/rss/object/default.php b/views/rss/object/default.php index 29e5d4591..8c7d5d8e0 100644 --- a/views/rss/object/default.php +++ b/views/rss/object/default.php @@ -1,6 +1,6 @@ <?php /** - * Elgg default object view + * RSS object view * * @package Elgg * @subpackage Core @@ -8,19 +8,18 @@ $title = $vars['entity']->title; if (empty($title)) { - $subtitle = strip_tags($vars['entity']->description); - $title = substr($subtitle, 0, 32); - if (strlen($subtitle) > 32) { - $title .= ' ...'; - } + $title = strip_tags($vars['entity']->description); + $title = elgg_get_excerpt($title, 32); } -$permalink = htmlspecialchars($vars['entity']->getURL()); -$pubdate = date('r', $vars['entity']->time_created); +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); -$creator = elgg_view('object/creator', $vars); -$georss = elgg_view('object/georss', $vars); -$extension = elgg_view('extensions/item'); +$description = elgg_autop($vars['entity']->description); + +$creator = elgg_view('page/components/creator', $vars); +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); $item = <<<__HTML <item> @@ -28,7 +27,7 @@ $item = <<<__HTML <pubDate>$pubdate</pubDate> <link>$permalink</link> <title><![CDATA[$title]]></title> - <description><![CDATA[{$vars['entity']->description}]]></description> + <description><![CDATA[$description]]></description> $creator$georss$extension </item> diff --git a/views/rss/object/georss.php b/views/rss/object/georss.php deleted file mode 100644 index 8aa027519..000000000 --- a/views/rss/object/georss.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php -/** - * - */ - -if (($vars['entity'] instanceof Locatable) && - ($latitude = $vars['entity']->getLongitude()) && ($longitude = $vars['entity']->getLatitude()) -) { - echo "<georss:point>$latitude $longitude</georss:point>"; -}
\ No newline at end of file diff --git a/views/rss/output/url.php b/views/rss/output/url.php index e0b94bf8d..b0f4d9792 100644 --- a/views/rss/output/url.php +++ b/views/rss/output/url.php @@ -1,6 +1,6 @@ <?php /** - * RSS url view + * RSS url output view * */ echo elgg_view('output/url', $vars, false, false, 'default'); diff --git a/views/rss/page/components/creator.php b/views/rss/page/components/creator.php new file mode 100644 index 000000000..a14f1dbca --- /dev/null +++ b/views/rss/page/components/creator.php @@ -0,0 +1,14 @@ +<?php +/** + * Creator view + * + * Implements Dublin Core creator + * + * @uses $vars['entity'] + */ + +$owner = $vars['entity']->getOwnerEntity(); +if ($owner) { + $owner_name = htmlspecialchars($owner->name, ENT_NOQUOTES, 'UTF-8'); + echo "<dc:creator>$owner_name</dc:creator>"; +} diff --git a/views/rss/page/components/gallery.php b/views/rss/page/components/gallery.php new file mode 100644 index 000000000..690416e5b --- /dev/null +++ b/views/rss/page/components/gallery.php @@ -0,0 +1,8 @@ +<?php +/* + * RSS gallery view + * + * @uses $vars['items'] + */ + +echo elgg_view('page/components/list', $vars); diff --git a/views/rss/page/components/georss.php b/views/rss/page/components/georss.php new file mode 100644 index 000000000..d176b8cac --- /dev/null +++ b/views/rss/page/components/georss.php @@ -0,0 +1,15 @@ +<?php +/** + * GeoRSS view + * + * This implements GeoRSS-Simple + * + * @uses $vars['entity'] + */ + +$longitude = $vars['entity']->getLongitude(); +$latitude = $vars['entity']->getLatitude(); + +if ($vars['entity'] instanceof Locatable && $longitude && $latitude) { + echo "<georss:point>$latitude $longitude</georss:point>"; +} diff --git a/views/rss/layout/objects/image_block.php b/views/rss/page/components/image_block.php index ff94bcff2..ff94bcff2 100644 --- a/views/rss/layout/objects/image_block.php +++ b/views/rss/page/components/image_block.php diff --git a/views/rss/layout/objects/list.php b/views/rss/page/components/list.php index 9892d2779..2650fc006 100644 --- a/views/rss/layout/objects/list.php +++ b/views/rss/page/components/list.php @@ -6,10 +6,9 @@ */ $items = $vars['items']; -$full_view = elgg_extract('full_view', $vars, false); if (is_array($items) && sizeof($items) > 0) { foreach ($items as $item) { - echo elgg_view_list_item($item, $full_view, $vars); + echo elgg_view_list_item($item, $vars); } }
\ No newline at end of file diff --git a/views/rss/page/default.php b/views/rss/page/default.php new file mode 100644 index 000000000..a7b757760 --- /dev/null +++ b/views/rss/page/default.php @@ -0,0 +1,46 @@ +<?php +/** + * Elgg RSS output pageshell + * + * @package Elgg.Core + * + * @uses $vars['title'] The title of the RSS feed + * @uses $vars['body'] The items for the RSS feed as a string + * @uses $vars['descrption'] The description for the RSS feed + */ + +// Set title +if (empty($vars['title'])) { + $title = elgg_get_config('sitename'); +} else { + $title = elgg_get_config('sitename') . ": " . $vars['title']; +} + +// Remove RSS from URL +$url = str_replace('?view=rss', '', current_page_url()); +$url = str_replace('&view=rss', '', $url); +$url = htmlspecialchars($url, ENT_NOQUOTES, 'UTF-8'); + +$body = elgg_extract('body', $vars, ''); +$description = elgg_extract('description', $vars, ''); + +$namespaces = elgg_view('extensions/xmlns'); +$extensions = elgg_view('extensions/channel'); + + +// allow caching as required by stupid MS products for https feeds. +header('Pragma: public', true); +header("Content-Type: text/xml"); + +echo "<?xml version='1.0'?>"; +echo <<<END +<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" $namespaces> +<channel> + <title><![CDATA[$title]]></title> + <link>$url</link> + <description><![CDATA[$description]]></description> + $extensions + $body +</channel> +</rss> +END; diff --git a/views/rss/page/elements/comments.php b/views/rss/page/elements/comments.php new file mode 100644 index 000000000..9c655ffef --- /dev/null +++ b/views/rss/page/elements/comments.php @@ -0,0 +1,13 @@ +<?php +/** + * RSS comments view + * + * @uses $vars['entity'] + */ + +$options = array( + 'guid' => $vars['entity']->getGUID(), + 'annotation_name' => 'generic_comment', + 'order_by' => 'n_table.time_created desc', +); +echo elgg_list_annotations($options); diff --git a/views/rss/layout/shells/default.php b/views/rss/page/layouts/default.php index 7f3ddebbd..7f3ddebbd 100644 --- a/views/rss/layout/shells/default.php +++ b/views/rss/page/layouts/default.php diff --git a/views/rss/page/shells/default.php b/views/rss/page/shells/default.php deleted file mode 100644 index da6f69c41..000000000 --- a/views/rss/page/shells/default.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php -/** - * Elgg RSS output pageshell - * - * @package Elgg - * @subpackage Core - * - */ - -header("Content-Type: text/xml"); - -// allow caching as required by stupid MS products for https feeds. -header('Pragma: public', TRUE); - -echo "<?xml version='1.0'?>\n"; - -// Set title -if (empty($vars['title'])) { - $title = elgg_get_config('sitename'); -} else { - $title = elgg_get_config('sitename') . ": " . $vars['title']; -} - -// Remove RSS from URL -$url = str_replace('?view=rss','', full_url()); -$url = str_replace('&view=rss','', $url); - -?> - -<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:georss="http://www.georss.org/georss" <?php echo elgg_view('extensions/xmlns'); ?> > -<channel> - <title><![CDATA[<?php echo $title; ?>]]></title> - <link><?php echo htmlentities($url); ?></link> - <?php echo elgg_view('extensions/channel'); ?> - <?php - - echo $vars['body']; - - ?> -</channel> -</rss> diff --git a/views/rss/river/item.php b/views/rss/river/item.php new file mode 100644 index 000000000..fa2914eff --- /dev/null +++ b/views/rss/river/item.php @@ -0,0 +1,35 @@ +<?php +/** + * RSS river view + * + * @uses $vars['item'] + */ +$item = $vars['item']; + +$name = $item->getSubjectEntity()->name; +$name = htmlspecialchars($name, ENT_NOQUOTES, 'UTF-8'); +$title = elgg_echo('river:update', array($name)); + +$timestamp = date('r', $item->getPostedTime()); +$body = elgg_view('river/elements/summary', $vars, false, false, 'default'); + + +$object = $item->getObjectEntity(); +if ($object) { + $url = htmlspecialchars($object->getURL()); +} else { + $url = elgg_normalize_url('activity'); +} + +$html = <<<__HTML +<item> + <guid>$item->id</guid> + <pubDate>$timestamp</pubDate> + <link>$url</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$body]]></description> +</item> + +__HTML; + +echo $html; diff --git a/views/rss/river/item/list.php b/views/rss/river/item/list.php deleted file mode 100644 index 3b2fc6179..000000000 --- a/views/rss/river/item/list.php +++ /dev/null @@ -1,17 +0,0 @@ -<?php -/** - * @package Elgg - * @subpackage Core - */ - -if (isset($vars['items']) && is_array($vars['items']) && !empty($vars['items'])) { - $i = 1; - foreach($vars['items'] as $item) { - if ($i++ >= $vars['limit']) { - break; - } - - $entity = get_entity($item->object_guid); - echo elgg_view_entity($entity); - } -} diff --git a/views/rss/search/entity_list.php b/views/rss/search/entity_list.php deleted file mode 100644 index 1e44adf18..000000000 --- a/views/rss/search/entity_list.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php -/** - * @package Elgg - * @subpackage Core - */ - -$entities = $vars['entities']; -if (is_array($entities) && sizeof($entities) > 0) { - foreach($entities as $entity) { - echo elgg_view_entity($entity); - } -}
\ No newline at end of file diff --git a/views/rss/user/default.php b/views/rss/user/default.php index a8b9d073c..92c9427b2 100644 --- a/views/rss/user/default.php +++ b/views/rss/user/default.php @@ -1,29 +1,34 @@ <?php /** - * Elgg default user view + * RSS user view * * @package Elgg * @subpackage Core */ -?> +$permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8'); +$pubdate = date('r', $vars['entity']->getTimeCreated()); +$title = htmlspecialchars($vars['entity']->name, ENT_NOQUOTES, 'UTF-8'); +if ($vars['entity']->description) { + $description = elgg_autop($vars['entity']->description); +} else { + $description = ''; +} + +$georss = elgg_view('page/components/georss', $vars); +$extension = elgg_view('extensions/item', $vars); + +$item = <<<__HTML <item> -<guid isPermaLink='true'><?php echo $vars['entity']->getURL(); ?></guid> -<pubDate><?php echo date("r",$vars['entity']->time_created) ?></pubDate> -<link><?php echo $vars['entity']->getURL(); ?></link> -<title><![CDATA[<?php echo (($vars['entity']->name)); ?>]]></title> -<description><![CDATA[<?php echo (autop($vars['entity']->description)); ?>]]></description> -<?php - if ( - ($vars['entity'] instanceof Locatable) && - ($vars['entity']->getLongitude()) && - ($vars['entity']->getLatitude()) - ) { - ?> - <georss:point><?php echo $vars['entity']->getLatitude(); ?> <?php echo $vars['entity']->getLongitude(); ?></georss:point> - <?php - } -?> -<?php echo elgg_view('extensions/item'); ?> + <guid isPermaLink="true">$permalink</guid> + <pubDate>$pubdate</pubDate> + <link>$permalink</link> + <title><![CDATA[$title]]></title> + <description><![CDATA[$description]]></description> + $georss$extension </item> + +__HTML; + +echo $item; diff --git a/views/xml/messages/exceptions/exception.php b/views/xml/messages/exceptions/exception.php index 3e4e1c376..66a0f2b96 100644 --- a/views/xml/messages/exceptions/exception.php +++ b/views/xml/messages/exceptions/exception.php @@ -11,7 +11,7 @@ ?> <!-- -<?php echo get_class($vars['object']); ?>: <?php echo autop($vars['object']->getMessage()); ?> +<?php echo get_class($vars['object']); ?>: <?php echo elgg_autop($vars['object']->getMessage()); ?> <?php if (elgg_get_config('debug')) { ?> diff --git a/views/xml/page/shells/default.php b/views/xml/page/default.php index 0f0aecbe4..0f0aecbe4 100644 --- a/views/xml/page/shells/default.php +++ b/views/xml/page/default.php |
