aboutsummaryrefslogtreecommitdiff
path: root/views/default
diff options
context:
space:
mode:
Diffstat (limited to 'views/default')
-rw-r--r--views/default/account/forms/forgotten_password.php19
-rw-r--r--views/default/account/forms/login.php31
-rw-r--r--views/default/account/forms/register.php42
-rw-r--r--views/default/account/forms/useradd.php34
-rw-r--r--views/default/admin/appearance/default_widgets.php82
-rw-r--r--views/default/admin/appearance/menu_items.php10
-rw-r--r--views/default/admin/appearance/profile_fields.php24
-rw-r--r--views/default/admin/appearance/profile_fields/list.php55
-rw-r--r--views/default/admin/dashboard.php12
-rw-r--r--views/default/admin/footer.php9
-rw-r--r--views/default/admin/header.php27
-rw-r--r--views/default/admin/main.php19
-rw-r--r--views/default/admin/main_opt/plugins.php19
-rw-r--r--views/default/admin/main_opt/site.php17
-rw-r--r--views/default/admin/main_opt/statistics.php17
-rw-r--r--views/default/admin/main_opt/user.php17
-rw-r--r--views/default/admin/plugin_settings.php26
-rw-r--r--views/default/admin/plugins.php242
-rw-r--r--views/default/admin/plugins_opt/plugin.php77
-rw-r--r--views/default/admin/settings/advanced.php9
-rw-r--r--views/default/admin/settings/advanced/site_secret.php11
-rw-r--r--views/default/admin/settings/basic.php9
-rw-r--r--views/default/admin/sidebar.php8
-rw-r--r--views/default/admin/site.php20
-rw-r--r--views/default/admin/statistics.php22
-rw-r--r--views/default/admin/statistics/overview.php13
-rw-r--r--views/default/admin/statistics/overview/basic.php19
-rw-r--r--views/default/admin/statistics/overview/numentities.php40
-rw-r--r--views/default/admin/statistics/server.php8
-rw-r--r--views/default/admin/statistics/server/php.php50
-rw-r--r--views/default/admin/statistics/server/web_server.php16
-rw-r--r--views/default/admin/statistics_opt/basic.php38
-rw-r--r--views/default/admin/statistics_opt/numentities.php55
-rw-r--r--views/default/admin/statistics_opt/online.php22
-rw-r--r--views/default/admin/user.php23
-rw-r--r--views/default/admin/user_opt/adduser.php20
-rw-r--r--views/default/admin/user_opt/search.php25
-rw-r--r--views/default/admin/users/add.php9
-rw-r--r--views/default/admin/users/admins.php12
-rw-r--r--views/default/admin/users/newest.php18
-rw-r--r--views/default/admin/users/online.php13
-rw-r--r--views/default/ajax/loader.php29
-rw-r--r--views/default/annotation/default.php40
-rw-r--r--views/default/annotation/generic_comment.php130
-rw-r--r--views/default/api/output.php34
-rw-r--r--views/default/basic_elements/welcome.php19
-rw-r--r--views/default/canvas/default.php21
-rw-r--r--views/default/canvas/layouts/one_column.php21
-rw-r--r--views/default/canvas/layouts/two_column_left_sidebar.php34
-rw-r--r--views/default/canvas/layouts/two_column_right_sidebar.php31
-rw-r--r--views/default/canvas/layouts/widgets.php324
-rw-r--r--views/default/canvas_header/submenu_group.php15
-rw-r--r--views/default/canvas_header/submenu_template.php10
-rw-r--r--views/default/comments/forms/edit.php25
-rw-r--r--views/default/core/account/login_box.php21
-rw-r--r--views/default/core/account/login_dropdown.php27
-rw-r--r--views/default/core/avatar/crop.php16
-rw-r--r--views/default/core/avatar/upload.php51
-rw-r--r--views/default/core/friends/collection.php64
-rw-r--r--views/default/core/friends/collections.php39
-rw-r--r--views/default/core/friends/collectiontabs.php62
-rw-r--r--views/default/core/friends/tablelist.php50
-rw-r--r--views/default/core/friends/tablelistcountupdate.php17
-rw-r--r--views/default/core/river/filter.php38
-rw-r--r--views/default/core/settings/account.php9
-rw-r--r--views/default/core/settings/account/default_access.php25
-rw-r--r--views/default/core/settings/account/email.php19
-rw-r--r--views/default/core/settings/account/language.php20
-rw-r--r--views/default/core/settings/account/name.php21
-rw-r--r--views/default/core/settings/account/notifications.php44
-rw-r--r--views/default/core/settings/account/password.php33
-rw-r--r--views/default/core/settings/statistics.php6
-rw-r--r--views/default/core/settings/statistics/numentities.php44
-rw-r--r--views/default/core/settings/statistics/online.php42
-rw-r--r--views/default/core/settings/tools.php34
-rw-r--r--views/default/core/walled_garden/login.php31
-rw-r--r--views/default/core/walled_garden/lost_password.php13
-rw-r--r--views/default/core/walled_garden/register.php17
-rw-r--r--views/default/css.php2105
-rw-r--r--views/default/css/admin.php1677
-rw-r--r--views/default/css/elements/OOCSS_LICENSE30
-rw-r--r--views/default/css/elements/buttons.php156
-rw-r--r--views/default/css/elements/components.php286
-rw-r--r--views/default/css/elements/core.php117
-rw-r--r--views/default/css/elements/forms.php375
-rw-r--r--views/default/css/elements/grid.php54
-rw-r--r--views/default/css/elements/helpers.php144
-rw-r--r--views/default/css/elements/icons.php348
-rw-r--r--views/default/css/elements/layout.php121
-rw-r--r--views/default/css/elements/misc.php62
-rw-r--r--views/default/css/elements/modules.php194
-rw-r--r--views/default/css/elements/navigation.php560
-rw-r--r--views/default/css/elements/reset.php79
-rw-r--r--views/default/css/elements/typography.php162
-rw-r--r--views/default/css/elgg.php68
-rw-r--r--views/default/css/ie.php16
-rw-r--r--views/default/css/ie6.php12
-rw-r--r--views/default/css/ie7.php75
-rw-r--r--views/default/css/lightbox.php371
-rw-r--r--views/default/css/walled_garden.php81
-rw-r--r--views/default/dashboard/blurb.php12
-rw-r--r--views/default/errors/404.php8
-rw-r--r--views/default/errors/default.php8
-rw-r--r--views/default/export/entity.php93
-rw-r--r--views/default/export/metadata.php28
-rw-r--r--views/default/export/relationship.php42
-rw-r--r--views/default/forms/account/settings.php10
-rw-r--r--views/default/forms/admin/menu/save.php102
-rw-r--r--views/default/forms/admin/plugins/change_state.php22
-rw-r--r--views/default/forms/admin/plugins/filter.php26
-rw-r--r--views/default/forms/admin/plugins/sort.php26
-rw-r--r--views/default/forms/admin/site/regenerate_secret.php24
-rw-r--r--views/default/forms/admin/site/update_advanced.php101
-rw-r--r--views/default/forms/admin/site/update_basic.php31
-rw-r--r--views/default/forms/avatar/crop.php42
-rw-r--r--views/default/forms/avatar/upload.php16
-rw-r--r--views/default/forms/comments/add.php37
-rw-r--r--views/default/forms/friends/collections/add.php53
-rw-r--r--views/default/forms/login.php49
-rw-r--r--views/default/forms/members/name_search.php9
-rw-r--r--views/default/forms/members/tag_search.php12
-rw-r--r--views/default/forms/plugins/settings/save.php31
-rw-r--r--views/default/forms/plugins/usersettings/save.php14
-rw-r--r--views/default/forms/profile/edit.php81
-rw-r--r--views/default/forms/profile/fields/add.php29
-rw-r--r--views/default/forms/register.php80
-rw-r--r--views/default/forms/user/passwordreset.php20
-rw-r--r--views/default/forms/user/requestnewpassword.php24
-rw-r--r--views/default/forms/useradd.php78
-rw-r--r--views/default/forms/usersettings/save.php14
-rw-r--r--views/default/forms/widgets/save.php41
-rw-r--r--views/default/friends/collection.php56
-rw-r--r--views/default/friends/collections.php62
-rw-r--r--views/default/friends/collectiontabs.php48
-rw-r--r--views/default/friends/forms/collectionfields.php23
-rw-r--r--views/default/friends/forms/edit.php59
-rw-r--r--views/default/friends/list.php27
-rw-r--r--views/default/friends/picker.php289
-rw-r--r--views/default/friends/tablelist.php66
-rw-r--r--views/default/friends/tablelistcountupdate.php22
-rw-r--r--views/default/graphics/ajax_loader.php32
-rw-r--r--views/default/graphics/icon.php32
-rw-r--r--views/default/group/default.php19
-rw-r--r--views/default/group/elements/summary.php13
-rw-r--r--views/default/group/search/finishblurb.php18
-rw-r--r--views/default/group/search/startblurb.php14
-rw-r--r--views/default/icon/default.php80
-rw-r--r--views/default/icon/user/default.php103
-rw-r--r--views/default/input/access.php85
-rw-r--r--views/default/input/autocomplete.php49
-rw-r--r--views/default/input/button.php73
-rw-r--r--views/default/input/calendar.php50
-rw-r--r--views/default/input/captcha.php8
-rw-r--r--views/default/input/checkbox.php39
-rw-r--r--views/default/input/checkboxes.php139
-rw-r--r--views/default/input/date.php56
-rw-r--r--views/default/input/datepicker.php6
-rw-r--r--views/default/input/dropdown.php71
-rw-r--r--views/default/input/email.php48
-rw-r--r--views/default/input/file.php55
-rw-r--r--views/default/input/form.php83
-rw-r--r--views/default/input/friendspicker.php319
-rw-r--r--views/default/input/hidden.php28
-rw-r--r--views/default/input/location.php27
-rw-r--r--views/default/input/longtext.php65
-rw-r--r--views/default/input/password.php50
-rw-r--r--views/default/input/plaintext.php37
-rw-r--r--views/default/input/pulldown.php59
-rw-r--r--views/default/input/radio.php115
-rw-r--r--views/default/input/reset.php37
-rw-r--r--views/default/input/securitytoken.php15
-rw-r--r--views/default/input/submit.php37
-rw-r--r--views/default/input/tag.php25
-rw-r--r--views/default/input/tags.php90
-rw-r--r--views/default/input/text.php51
-rw-r--r--views/default/input/url.php49
-rw-r--r--views/default/input/urlshortener.php8
-rw-r--r--views/default/input/userpicker.php75
-rw-r--r--views/default/js/admin.php126
-rw-r--r--views/default/js/elgg.php77
-rw-r--r--views/default/js/friendsPickerv1.php94
-rw-r--r--views/default/js/initialise_elgg.php247
-rw-r--r--views/default/js/initialize_elgg.php52
-rw-r--r--views/default/js/languages.php33
-rw-r--r--views/default/js/languages/en.php2
-rw-r--r--views/default/js/lightbox.php36
-rw-r--r--views/default/js/walled_garden.php67
-rw-r--r--views/default/messages/errors/error.php20
-rw-r--r--views/default/messages/errors/list.php57
-rw-r--r--views/default/messages/exceptions/exception.php44
-rw-r--r--views/default/messages/list.php25
-rw-r--r--views/default/messages/messages/list.php58
-rw-r--r--views/default/messages/messages/message.php20
-rw-r--r--views/default/navigation/breadcrumbs.php41
-rw-r--r--views/default/navigation/menu/default.php31
-rw-r--r--views/default/navigation/menu/elements/item.php43
-rw-r--r--views/default/navigation/menu/elements/section.php30
-rw-r--r--views/default/navigation/menu/page.php36
-rw-r--r--views/default/navigation/menu/site.php30
-rw-r--r--views/default/navigation/menu/user_hover.php60
-rw-r--r--views/default/navigation/pagination.php248
-rw-r--r--views/default/navigation/tabs.php81
-rw-r--r--views/default/navigation/topbar_tools.php58
-rw-r--r--views/default/navigation/viewtype.php45
-rw-r--r--views/default/notifications/settings/usersettings.php46
-rw-r--r--views/default/object/admin_notice.php20
-rw-r--r--views/default/object/default.php105
-rw-r--r--views/default/object/elements/full.php37
-rw-r--r--views/default/object/elements/summary.php59
-rw-r--r--views/default/object/object.php20
-rw-r--r--views/default/object/plugin.php38
-rw-r--r--views/default/object/plugin/elements/dependencies.php49
-rw-r--r--views/default/object/plugin/full.php308
-rw-r--r--views/default/object/plugin/invalid.php42
-rw-r--r--views/default/object/widget.php91
-rw-r--r--views/default/object/widget/elements/controls.php14
-rw-r--r--views/default/object/widget/elements/settings.php25
-rw-r--r--views/default/output/access.php42
-rw-r--r--views/default/output/calendar.php35
-rw-r--r--views/default/output/checkboxes.php32
-rw-r--r--views/default/output/confirmlink.php68
-rw-r--r--views/default/output/date.php38
-rw-r--r--views/default/output/dropdown.php13
-rw-r--r--views/default/output/email.php38
-rw-r--r--views/default/output/friendlytime.php12
-rw-r--r--views/default/output/friendlytitle.php19
-rw-r--r--views/default/output/iframe.php22
-rw-r--r--views/default/output/img.php12
-rw-r--r--views/default/output/location.php19
-rw-r--r--views/default/output/longtext.php57
-rw-r--r--views/default/output/pulldown.php33
-rw-r--r--views/default/output/radio.php32
-rw-r--r--views/default/output/tag.php35
-rw-r--r--views/default/output/tagcloud.php118
-rw-r--r--views/default/output/tags.php137
-rw-r--r--views/default/output/text.php31
-rw-r--r--views/default/output/url.php82
-rw-r--r--views/default/page/admin.php66
-rw-r--r--views/default/page/components/gallery.php77
-rw-r--r--views/default/page/components/image_block.php52
-rw-r--r--views/default/page/components/list.php75
-rw-r--r--views/default/page/components/module.php48
-rw-r--r--views/default/page/components/summary.php4
-rw-r--r--views/default/page/default.php76
-rw-r--r--views/default/page/elements/body.php8
-rw-r--r--views/default/page/elements/comments.php42
-rw-r--r--views/default/page/elements/comments_block.php45
-rw-r--r--views/default/page/elements/foot.php11
-rw-r--r--views/default/page/elements/footer.php22
-rw-r--r--views/default/page/elements/head.php81
-rw-r--r--views/default/page/elements/header.php14
-rw-r--r--views/default/page/elements/header_logo.php15
-rw-r--r--views/default/page/elements/messages.php27
-rw-r--r--views/default/page/elements/owner_block.php31
-rw-r--r--views/default/page/elements/shortcut_icon.php6
-rw-r--r--views/default/page/elements/sidebar.php32
-rw-r--r--views/default/page/elements/sidebar_alt.php12
-rw-r--r--views/default/page/elements/tagcloud_block.php58
-rw-r--r--views/default/page/elements/title.php14
-rw-r--r--views/default/page/elements/topbar.php16
-rw-r--r--views/default/page/elements/wrapper.php22
-rw-r--r--views/default/page/error.php14
-rw-r--r--views/default/page/layouts/admin.php40
-rw-r--r--views/default/page/layouts/content.php53
-rw-r--r--views/default/page/layouts/content/filter.php52
-rw-r--r--views/default/page/layouts/content/footer.php8
-rw-r--r--views/default/page/layouts/content/header.php43
-rw-r--r--views/default/page/layouts/content/sidebar.php8
-rw-r--r--views/default/page/layouts/default.php18
-rw-r--r--views/default/page/layouts/error.php12
-rw-r--r--views/default/page/layouts/one_column.php38
-rw-r--r--views/default/page/layouts/one_sidebar.php48
-rw-r--r--views/default/page/layouts/two_column_left_sidebar.php26
-rw-r--r--views/default/page/layouts/two_sidebar.php43
-rw-r--r--views/default/page/layouts/walled_garden.php16
-rw-r--r--views/default/page/layouts/widgets.php62
-rw-r--r--views/default/page/layouts/widgets/add_button.php16
-rw-r--r--views/default/page/layouts/widgets/add_panel.php62
-rw-r--r--views/default/page/upgrade.php18
-rw-r--r--views/default/page/walled_garden.php40
-rw-r--r--views/default/page_elements/elgg_topbar.php85
-rw-r--r--views/default/page_elements/footer.php67
-rw-r--r--views/default/page_elements/header.php103
-rw-r--r--views/default/page_elements/owner_block.php100
-rw-r--r--views/default/page_elements/spotlight.php64
-rw-r--r--views/default/page_elements/title.php48
-rw-r--r--views/default/pageshells/pageshell.php60
-rw-r--r--views/default/profile/icon.php17
-rw-r--r--views/default/river/annotation/generic_comment/create.php11
-rw-r--r--views/default/river/dashboard.php25
-rw-r--r--views/default/river/elements/body.php67
-rw-r--r--views/default/river/elements/image.php16
-rw-r--r--views/default/river/elements/layout.php14
-rw-r--r--views/default/river/elements/responses.php63
-rw-r--r--views/default/river/elements/summary.php54
-rw-r--r--views/default/river/item.php30
-rw-r--r--views/default/river/relationship/friend/create.php57
-rw-r--r--views/default/river/user/default/profileiconupdate.php24
-rw-r--r--views/default/river/user/default/profileupdate.php20
-rw-r--r--views/default/river/wrapper.php51
-rw-r--r--views/default/search/entity_list.php61
-rw-r--r--views/default/search/gallery.php49
-rw-r--r--views/default/search/gallery_listing.php35
-rw-r--r--views/default/search/listing.php45
-rw-r--r--views/default/search/startblurb.php8
-rw-r--r--views/default/settings/install.php19
-rw-r--r--views/default/settings/system.php63
-rw-r--r--views/default/settings/upgrading.php19
-rw-r--r--views/default/site/default.php27
-rw-r--r--views/default/spotlight/default.php82
-rw-r--r--views/default/text/about.php17
-rw-r--r--views/default/text/privacy_view.php15
-rw-r--r--views/default/text/tos_view.php14
-rw-r--r--views/default/user/default.php80
-rw-r--r--views/default/user/elements/summary.php13
-rw-r--r--views/default/user/search/finishblurb.php33
-rw-r--r--views/default/user/search/startblurb.php18
-rw-r--r--views/default/user/settings/email.php27
-rw-r--r--views/default/user/settings/language.php33
-rw-r--r--views/default/user/settings/name.php27
-rw-r--r--views/default/user/settings/password.php28
-rw-r--r--views/default/usersettings/form.php7
-rw-r--r--views/default/usersettings/main.php16
-rw-r--r--views/default/usersettings/main_opt/plugins.php19
-rw-r--r--views/default/usersettings/main_opt/statistics.php17
-rw-r--r--views/default/usersettings/main_opt/user.php17
-rw-r--r--views/default/usersettings/plugins.php33
-rw-r--r--views/default/usersettings/plugins_opt/plugin.php35
-rw-r--r--views/default/usersettings/statistics.php13
-rw-r--r--views/default/usersettings/statistics_opt/numentities.php53
-rw-r--r--views/default/usersettings/statistics_opt/online.php30
-rw-r--r--views/default/usersettings/user.php3
-rw-r--r--views/default/welcome.php20
-rw-r--r--views/default/welcome/logged_in.php29
-rw-r--r--views/default/welcome/logged_out.php24
-rw-r--r--views/default/widgets/admin_welcome/content.php19
-rw-r--r--views/default/widgets/content_stats/content.php28
-rw-r--r--views/default/widgets/content_stats/edit.php23
-rw-r--r--views/default/widgets/control_panel/content.php38
-rw-r--r--views/default/widgets/editwrapper.php46
-rw-r--r--views/default/widgets/friends/content.php25
-rw-r--r--views/default/widgets/friends/edit.php52
-rw-r--r--views/default/widgets/new_users/content.php11
-rw-r--r--views/default/widgets/new_users/edit.php23
-rw-r--r--views/default/widgets/online_users/content.php15
-rw-r--r--views/default/widgets/online_users/edit.php22
-rw-r--r--views/default/widgets/river_widget/content.php27
-rw-r--r--views/default/widgets/river_widget/edit.php58
-rw-r--r--views/default/widgets/wrapper.php108
349 files changed, 13524 insertions, 7620 deletions
diff --git a/views/default/account/forms/forgotten_password.php b/views/default/account/forms/forgotten_password.php
deleted file mode 100644
index c11eaecf4..000000000
--- a/views/default/account/forms/forgotten_password.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
- /**
- * Elgg forgotten password.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $form_body = "<p>" . elgg_echo('user:password:text') . "</p>";
- $form_body .= "<p><b>". elgg_echo('username') . "</b> " . elgg_view('input/text', array('internalname' => 'username')) . "</p>";
- $form_body .= "<p>" . elgg_view('input/submit', array('value' => elgg_echo('request'))) . "</p>";
-?>
-<div id="forgotten_box">
- <?php echo elgg_view('input/form', array('action' => "{$vars['url']}actions/user/requestnewpassword", 'body' => $form_body)); ?>
-</div> \ No newline at end of file
diff --git a/views/default/account/forms/login.php b/views/default/account/forms/login.php
deleted file mode 100644
index 17b44cc78..000000000
--- a/views/default/account/forms/login.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
- /**
- * Elgg login form
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $CONFIG;
-
- $form_body = "<p class=\"loginbox\"><label>" . elgg_echo('username') . "<br />" . elgg_view('input/text', array('internalname' => 'username', 'class' => 'login-textarea')) . "</label>";
- $form_body .= "<br />";
- $form_body .= "<label>" . elgg_echo('password') . "<br />" . elgg_view('input/password', array('internalname' => 'password', 'class' => 'login-textarea')) . "</label><br />";
- $form_body .= elgg_view('input/submit', array('value' => elgg_echo('login'))) . " <div id=\"persistent_login\"><label><input type=\"checkbox\" name=\"persistent\" value=\"true\" />".elgg_echo('user:persistent')."</label></div></p>";
- $form_body .= "<p class=\"loginbox\">";
- $form_body .= (!isset($CONFIG->disable_registration) || !($CONFIG->disable_registration)) ? "<a href=\"{$vars['url']}account/register.php\">" . elgg_echo('register') . "</a> | " : "";
- $form_body .= "<a href=\"{$vars['url']}account/forgotten_password.php\">" . elgg_echo('user:password:lost') . "</a></p>";
-
- //<input name=\"username\" type=\"text\" class="general-textarea" /></label>
-?>
-
- <div id="login-box">
- <h2><?php echo elgg_echo('login'); ?></h2>
- <?php echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$vars['url']}action/login")); ?>
-
- </div> \ No newline at end of file
diff --git a/views/default/account/forms/register.php b/views/default/account/forms/register.php
deleted file mode 100644
index cbc29f52b..000000000
--- a/views/default/account/forms/register.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
- /**
- * Elgg register form
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $username = get_input('u');
- $email = get_input('e');
- $name = get_input('n');
-
- $admin_option = false;
- if (($_SESSION['user']->admin) && ($vars['show_admin']))
- $admin_option = true;
-
- $form_body = "<p><label>" . elgg_echo('name') . "<br />" . elgg_view('input/text' , array('internalname' => 'name', 'class' => "general-textarea", 'value' => $name)) . "</label><br />";
-
- $form_body .= "<label>" . elgg_echo('email') . "<br />" . elgg_view('input/text' , array('internalname' => 'email', 'class' => "general-textarea", 'value' => $email)) . "</label><br />";
- $form_body .= "<label>" . elgg_echo('username') . "<br />" . elgg_view('input/text' , array('internalname' => 'username', 'class' => "general-textarea", 'value' => $username)) . "</label><br />";
- $form_body .= "<label>" . elgg_echo('password') . "<br />" . elgg_view('input/password' , array('internalname' => 'password', 'class' => "general-textarea")) . "</label><br />";
- $form_body .= "<label>" . elgg_echo('passwordagain') . "<br />" . elgg_view('input/password' , array('internalname' => 'password2', 'class' => "general-textarea")) . "</label><br />";
-
- if ($admin_option)
- $form_body .= elgg_view('input/checkboxes', array('internalname' => "admin", 'options' => array(elgg_echo('admin_option'))));
-
- $form_body .= elgg_view('input/hidden', array('internalname' => 'friend_guid', 'value' => $vars['friend_guid']));
- $form_body .= elgg_view('input/hidden', array('internalname' => 'invitecode', 'value' => $vars['invitecode']));
- $form_body .= elgg_view('input/hidden', array('internalname' => 'action', 'value' => 'register'));
- $form_body .= elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('register'))) . "</p>";
-?>
-
-
- <div id="register-box">
- <h2><?php echo elgg_echo('register'); ?></h2>
- <?php echo elgg_view('input/form', array('action' => "{$vars['url']}action/register", 'body' => $form_body)) ?>
- </div> \ No newline at end of file
diff --git a/views/default/account/forms/useradd.php b/views/default/account/forms/useradd.php
deleted file mode 100644
index 0f6dc81ab..000000000
--- a/views/default/account/forms/useradd.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
- /**
- * Elgg add user form.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $admin_option = false;
- if (($_SESSION['user']->admin) && ($vars['show_admin']))
- $admin_option = true;
-
- $form_body = "<p><label>" . elgg_echo('name') . "<br />" . elgg_view('input/text' , array('internalname' => 'name')) . "</label></p>";
-
- $form_body .= "<p><label>" . elgg_echo('email') . "<br />" . elgg_view('input/text' , array('internalname' => 'email')) . "</label></p>";
- $form_body .= "<p><label>" . elgg_echo('username') . "<br />" . elgg_view('input/text' , array('internalname' => 'username')) . "</label></p>";
- $form_body .= "<p><label>" . elgg_echo('password') . "<br />" . elgg_view('input/password' , array('internalname' => 'password')) . "</label></p>";
- $form_body .= "<p><label>" . elgg_echo('passwordagain') . "<br />" . elgg_view('input/password' , array('internalname' => 'password2')) . "</label></p>";
-
- if ($admin_option)
- $form_body .= "<p>" . elgg_view('input/checkboxes', array('internalname' => "admin", 'options' => array(elgg_echo('admin_option'))));
-
- $form_body .= elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('register'))) . "</p>";
-?>
-
-
- <div id="add-box">
- <h2><?php echo elgg_echo('adduser'); ?></h2>
- <?php echo elgg_view('input/form', array('action' => "{$vars['url']}action/useradd", 'body' => $form_body)) ?>
- </div> \ No newline at end of file
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
new file mode 100644
index 000000000..1d5c95cf9
--- /dev/null
+++ b/views/default/admin/appearance/menu_items.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Elgg administration menu items
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+
+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
new file mode 100644
index 000000000..f1d78c19f
--- /dev/null
+++ b/views/default/admin/appearance/profile_fields.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Admin area: edit default profile fields
+ */
+
+$add = elgg_view_form('profile/fields/add', array('class' => 'elgg-form-settings'), array());
+$list = elgg_view('admin/appearance/profile_fields/list');
+
+$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="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
new file mode 100644
index 000000000..b9440a95d
--- /dev/null
+++ b/views/default/admin/appearance/profile_fields/list.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Profile fields.
+ *
+ * @todo Needs some review
+ */
+
+// List form elements
+$n = 0;
+$loaded_defaults = array();
+$items = array();
+$fieldlist = elgg_get_config('profile_custom_fields');
+if ($fieldlist) {
+ $fieldlistarray = explode(',', $fieldlist);
+ foreach ($fieldlistarray as $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_echo("profile:field:$type");
+ $items[] = $item;
+ }
+ }
+}
+?>
+<ul id="elgg-profile-fields" class="mvm">
+<?php
+
+$save = elgg_echo('save');
+$cancel = elgg_echo('cancel');
+
+foreach ($items as $item) {
+ echo elgg_view("profile/", array('value' => $item->translation));
+
+ //$even_odd = ( 'odd' != $even_odd ) ? 'odd' : 'even';
+ $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-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> \ No newline at end of file
diff --git a/views/default/admin/dashboard.php b/views/default/admin/dashboard.php
new file mode 100644
index 000000000..d3976ca38
--- /dev/null
+++ b/views/default/admin/dashboard.php
@@ -0,0 +1,12 @@
+<?php
+
+elgg_set_page_owner_guid(elgg_get_logged_in_user_guid());
+
+$params = array(
+ 'num_columns' => 2,
+ 'exact_match' => true,
+ 'show_access' => false,
+);
+$widgets = elgg_view_layout('widgets', $params);
+
+echo $widgets; \ 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/main.php b/views/default/admin/main.php
deleted file mode 100644
index cda5a4bab..000000000
--- a/views/default/admin/main.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
- /**
- * Elgg administration main screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // Description of what's going on
- echo "<p>" . autop(elgg_echo("admin:description")) . "</p>";
-
-
-
-?> \ No newline at end of file
diff --git a/views/default/admin/main_opt/plugins.php b/views/default/admin/main_opt/plugins.php
deleted file mode 100644
index 207fb0682..000000000
--- a/views/default/admin/main_opt/plugins.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
- /**
- * Elgg plugin sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $CONFIG;
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('admin:plugins'); ?> </h2>
- <p><?php echo elgg_echo('admin:plugins:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/admin/plugins/"; ?>"><?php echo elgg_echo('admin:plugins:opt:linktext'); ?></a></p>
-</div> \ No newline at end of file
diff --git a/views/default/admin/main_opt/site.php b/views/default/admin/main_opt/site.php
deleted file mode 100644
index 76be1f505..000000000
--- a/views/default/admin/main_opt/site.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
- /**
- * Elgg site sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('admin:site'); ?> </h2>
- <p><?php echo elgg_echo('admin:site:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/admin/site/"; ?>"><?php echo elgg_echo('admin:site:opt:linktext'); ?></a></p>
-</div> \ No newline at end of file
diff --git a/views/default/admin/main_opt/statistics.php b/views/default/admin/main_opt/statistics.php
deleted file mode 100644
index 9961f9bb0..000000000
--- a/views/default/admin/main_opt/statistics.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
- /**
- * Elgg satistics sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('admin:statistics'); ?> </h2>
- <p><?php echo elgg_echo('admin:statistics:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/admin/statistics/"; ?>"><?php echo elgg_echo('admin:statistics:opt:linktext'); ?></a></p>
-</div>
diff --git a/views/default/admin/main_opt/user.php b/views/default/admin/main_opt/user.php
deleted file mode 100644
index ac1ae839b..000000000
--- a/views/default/admin/main_opt/user.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
- /**
- * Elgg user sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('admin:user'); ?> </h2>
- <p><?php echo elgg_echo('admin:user:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/admin/user/"; ?>"><?php echo elgg_echo('admin:user:opt:linktext'); ?></a></p>
-</div> \ No newline at end of file
diff --git a/views/default/admin/plugin_settings.php b/views/default/admin/plugin_settings.php
new file mode 100644
index 000000000..1c6e9e206
--- /dev/null
+++ b/views/default/admin/plugin_settings.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Elgg plugin settings
+ *
+ * @uses ElggPlugin $vars['plugin'] The plugin object to display settings for.
+ *
+ * @package Elgg.Core
+ * @subpackage Plugins.Settings
+ */
+
+$plugin = $vars['plugin'];
+$plugin_id = $plugin->getID();
+
+// required for plugin settings backward compatibility
+$vars['entity'] = $plugin;
+
+$settings = false;
+
+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", 'class' => 'elgg-form-settings');
+ $body = elgg_view_form("plugins/settings/save", $params, $vars);
+
+ echo elgg_view_module('info', $title, $body);
+} \ No newline at end of file
diff --git a/views/default/admin/plugins.php b/views/default/admin/plugins.php
index cc96b40f8..42f153d0f 100644
--- a/views/default/admin/plugins.php
+++ b/views/default/admin/plugins.php
@@ -1,51 +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 administration plugin main screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // Description of what's going on
- echo "<p>" . autop(elgg_echo("admin:plugins:description")) . "</p>";
-
- $limit = get_input('limit', 10);
- $offset = get_input('offset', 0);
-
-
- // Get the installed plugins
- $installed_plugins = $vars['installed_plugins'];
- $count = count($installed_plugins);
-
- $plugin_list = get_plugin_list();
- $max = 0;
- foreach($plugin_list as $key => $foo)
- if ($key > $max) $max = $key;
-
- // Display list of plugins
- $n = 0;
- foreach ($installed_plugins as $plugin => $data)
- {
- //if (($n>=$offset) && ($n < $offset+$limit))
- echo elgg_view("admin/plugins_opt/plugin", array('plugin' => $plugin, 'details' => $data, 'maxorder' => $max, 'order' => array_search($plugin, $plugin_list)));
-
- $n++;
+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);
+ }
}
-
- // Diplay nav
- /*
- if ($count)
- {
- echo elgg_view('navigation/pagination',array(
- 'baseurl' => $_SERVER['REQUEST_URI'],
- 'offset' => $offset,
- 'count' => $count,
- ));
- }
- */
-?> \ No newline at end of file
+ }
+}
+
+$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_opt/plugin.php b/views/default/admin/plugins_opt/plugin.php
deleted file mode 100644
index 9b799c27c..000000000
--- a/views/default/admin/plugins_opt/plugin.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
- /**
- * Elgg plugin manifest class
- *
- * This file renders a plugin for the admin screen, including active/deactive, manifest details & display plugin
- * settings.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-
- $plugin = $vars['plugin'];
- $details = $vars['details'];
-
- $active = $details['active'];
- $manifest = $details['manifest'];
-
- $ts = time();
- $token = generate_action_token($ts);
-?>
-<div class="plugin_details <?php if ($active) echo "active"; else echo "not-active" ?>">
- <div class="admin_plugin_reorder">
- <?php
- if ($vars['order'] > 10) {
-?>
- <a href="<?php echo $vars['url']; ?>actions/admin/plugins/reorder?plugin=<?php echo $plugin; ?>&order=1&__elgg_token=<?php echo $token; ?>&__elgg_ts=<?php echo $ts; ?>"><?php echo elgg_echo("top"); ?></a>
- <a href="<?php echo $vars['url']; ?>actions/admin/plugins/reorder?plugin=<?php echo $plugin; ?>&order=<?php echo $vars['order'] - 11; ?>&__elgg_token=<?php echo $token; ?>&__elgg_ts=<?php echo $ts; ?>"><?php echo elgg_echo("up"); ?></a>
-<?php
- }
- ?>
- <?php
- if ($vars['order'] < $vars['maxorder']) {
-?>
- <a href="<?php echo $vars['url']; ?>actions/admin/plugins/reorder?plugin=<?php echo $plugin; ?>&order=<?php echo $vars['order'] + 11; ?>&__elgg_token=<?php echo $token; ?>&__elgg_ts=<?php echo $ts; ?>"><?php echo elgg_echo("down"); ?></a>
- <a href="<?php echo $vars['url']; ?>actions/admin/plugins/reorder?plugin=<?php echo $plugin; ?>&order=<?php echo $vars['maxorder'] + 11; ?>&__elgg_token=<?php echo $token; ?>&__elgg_ts=<?php echo $ts; ?>"><?php echo elgg_echo("bottom"); ?></a>
-<?php
- }
- ?>
- </div><div class="clearfloat"></div>
- <div class="admin_plugin_enable_disable">
- <?php if ($active) { ?>
- <a href="<?php echo $vars['url']; ?>actions/admin/plugins/disable?plugin=<?php echo $plugin; ?>&__elgg_token=<?php echo $token; ?>&__elgg_ts=<?php echo $ts; ?>"><?php echo elgg_echo("disable"); ?></a>
- <?php } else { ?>
- <a href="<?php echo $vars['url']; ?>actions/admin/plugins/enable?plugin=<?php echo $plugin; ?>&__elgg_token=<?php echo $token; ?>&__elgg_ts=<?php echo $ts; ?>"><?php echo elgg_echo("enable"); ?></a>
- <?php } ?>
- </div>
-
- <h3><?php echo $plugin; ?></h3>
- <p><a class="manifest_details"><?php echo elgg_echo("admin:plugins:label:moreinfo"); ?></a></p>
-
- <div class="manifest_file">
-
- <?php if ($manifest) { ?>
- <div><?php echo $manifest['description'] ?></div>
- <div><?php echo elgg_echo('admin:plugins:label:author') . ": ". $manifest['author'] ?></div>
- <div><?php echo elgg_echo('admin:plugins:label:copyright') . ": ". $manifest['copyright'] ?></div>
- <div><?php echo elgg_echo('admin:plugins:label:licence') . ": ". $manifest['licence'] ?></div>
- <div><?php echo elgg_echo('admin:plugins:label:website') . ": "; ?><a href="<?php echo $manifest['website']; ?>"><?php echo $manifest['website']; ?></a></div>
- <?php } ?>
-
- <?php if (elgg_view("settings/{$plugin}/edit")) { ?>
- <div class="pluginsettings">
- <h3><?php echo elgg_echo("settings"); ?></h3>
- <div id="<?php echo $plugin; ?>_settings">
- <?php echo elgg_view("object/plugin", array('plugin' => $plugin, 'entity' => find_plugin_settings($plugin))) ?>
- </div>
- </div>
- <?php } ?>
-
- </div>
-
-</div> \ No newline at end of file
diff --git a/views/default/admin/settings/advanced.php b/views/default/admin/settings/advanced.php
new file mode 100644
index 000000000..a262740f2
--- /dev/null
+++ b/views/default/admin/settings/advanced.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Elgg administration site advanced settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+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/settings/basic.php b/views/default/admin/settings/basic.php
new file mode 100644
index 000000000..9334ba81b
--- /dev/null
+++ b/views/default/admin/settings/basic.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Elgg administration site basic settings
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+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/site.php b/views/default/admin/site.php
deleted file mode 100644
index 5e143b547..000000000
--- a/views/default/admin/site.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
- /**
- * Elgg administration site main screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $CONFIG;
-
- // Description of what's going on
- echo "<p>" . autop(elgg_echo("admin:site:description")) . "</p>";
-
- echo elgg_view("settings/system",array("action" => $CONFIG->wwwroot."action/admin/site/update_basic")); // Always want to do this first.
-?> \ No newline at end of file
diff --git a/views/default/admin/statistics.php b/views/default/admin/statistics.php
deleted file mode 100644
index 9caf935b6..000000000
--- a/views/default/admin/statistics.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
- /**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $CONFIG;
-
- // echo "<p>" . autop(elgg_echo("admin:statistics:description")) . "</p>";
-
-?>
-
- <p>
- <?php echo elgg_echo('admin:statistics:description'); ?>
- <a href="http://elgg.com/"><?php echo elgg_echo('learnmore'); ?></a>
- </p> \ No newline at end of file
diff --git a/views/default/admin/statistics/overview.php b/views/default/admin/statistics/overview.php
new file mode 100644
index 000000000..ac5aaac36
--- /dev/null
+++ b/views/default/admin/statistics/overview.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Elgg statistics screen
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+echo elgg_view('admin/statistics/extend');
+
+echo elgg_view_module('inline', elgg_echo('admin:statistics:label:basic'), elgg_view('admin/statistics/overview/basic'));
+
+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) . '&nbsp; ' . $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/statistics_opt/basic.php b/views/default/admin/statistics_opt/basic.php
deleted file mode 100644
index f36bebdd2..000000000
--- a/views/default/admin/statistics_opt/basic.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
- /**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // Work out number of users
- $users_stats = get_number_users();
- $total_users = get_number_users(true);
-
-
- global $CONFIG;
-
- // Get version information
- $version = get_version();
- $release = get_version(true);
-
-?>
-<div class="admin_statistics">
- <h3><?php echo elgg_echo('admin:statistics:label:basic'); ?></h3>
- <table>
- <tr class="odd">
- <td class="column_one"><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 class="column_one"><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> \ No newline at end of file
diff --git a/views/default/admin/statistics_opt/numentities.php b/views/default/admin/statistics_opt/numentities.php
deleted file mode 100644
index f0baeb76c..000000000
--- a/views/default/admin/statistics_opt/numentities.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
- /**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-
- // Get entity statistics
- $entity_stats = get_entity_statistics();
- $even_odd = "";
-?>
-<div class="admin_statistics">
- <h3><?php echo elgg_echo('admin:statistics:label:numentities'); ?></h3>
- <table>
- <?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 class="column_one">{$a}:</td>
- <td>{$b}</td>
- </tr>
-END;
- }
- }
- ?>
- </table>
-</div> \ No newline at end of file
diff --git a/views/default/admin/statistics_opt/online.php b/views/default/admin/statistics_opt/online.php
deleted file mode 100644
index c90986c12..000000000
--- a/views/default/admin/statistics_opt/online.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
- /**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // users online
- get_context('search');
- $users_online = get_online_users();
- get_context('admin');
-?>
-
-<div class="admin_users_online">
- <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?></h3>
- <?php echo $users_online; ?>
-</div>
diff --git a/views/default/admin/user.php b/views/default/admin/user.php
deleted file mode 100644
index c4e1b4cc7..000000000
--- a/views/default/admin/user.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
- /**
- * Elgg administration user main screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // Description of what's going on
- echo "<p>" . autop(elgg_echo("admin:user:description")) . "</p>";
-
- echo elgg_view("admin/user_opt/adduser");
-
- echo elgg_view("admin/user_opt/search");
-
- if ($vars['list']) echo $vars['list'];
-
-?> \ No newline at end of file
diff --git a/views/default/admin/user_opt/adduser.php b/views/default/admin/user_opt/adduser.php
deleted file mode 100644
index 986b968a1..000000000
--- a/views/default/admin/user_opt/adduser.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
- /**
- * Add a user.
- * Form to add a new user.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-
-<div class="admin_adduser_link">
- <a href="#" onclick="$('#add_user_showhide').toggle()"><?php echo elgg_echo('admin:user:adduser:label'); ?></a>
-</div>
-<div id="add_user_showhide" style="display:none" >
-<?php echo elgg_view('account/forms/useradd', array('show_admin'=>true)); ?>
-</div> \ No newline at end of file
diff --git a/views/default/admin/user_opt/search.php b/views/default/admin/user_opt/search.php
deleted file mode 100644
index a0371b4a3..000000000
--- a/views/default/admin/user_opt/search.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
- /**
- * Elgg user search box.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-<div id="search-box">
- <form action="<?php echo $vars['url']; ?>search/" method="get">
- <b><?php echo elgg_echo('admin:user:label:search'); ?></b>
- <?php
-
- echo elgg_view('input/text',array('internalname' => 'tag'));
-
- ?>
- <input type="hidden" name="object" value="user" />
- <input type="submit" name="<?php echo elgg_echo('admin:user:label:seachbutton'); ?>"
- value="<?php echo elgg_echo('admin:user:label:seachbutton'); ?>" />
- </form>
-</div>
diff --git a/views/default/admin/users/add.php b/views/default/admin/users/add.php
new file mode 100644
index 000000000..6d22b9c29
--- /dev/null
+++ b/views/default/admin/users/add.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Display an add user form.
+ */
+
+$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/admin/users/newest.php b/views/default/admin/users/newest.php
new file mode 100644
index 000000000..91a6fa338
--- /dev/null
+++ b/views/default/admin/users/newest.php
@@ -0,0 +1,18 @@
+<?php
+// newest users
+$users = elgg_list_entities(array(
+ 'type' => 'user',
+ 'subtype'=> null,
+ 'full_view' => FALSE
+));
+
+?>
+
+<div class="elgg-module elgg-module-inline">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('admin:users:newest'); ?></h3>
+ </div>
+ <div class="elgg-body">
+ <?php echo $users; ?>
+ </div>
+</div>
diff --git a/views/default/admin/users/online.php b/views/default/admin/users/online.php
new file mode 100644
index 000000000..dbda06066
--- /dev/null
+++ b/views/default/admin/users/online.php
@@ -0,0 +1,13 @@
+<?php
+
+$users_online = get_online_users();
+
+?>
+<div class="elgg-module elgg-module-inline">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?></h3>
+ </div>
+ <div class="elgg-body">
+ <?php echo $users_online; ?>
+ </div>
+</div>
diff --git a/views/default/ajax/loader.php b/views/default/ajax/loader.php
deleted file mode 100644
index 62167c971..000000000
--- a/views/default/ajax/loader.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
- /**
- * Elgg AJAX loader
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $loader = <<< END
-
- <div align="center" class="ajax_loader"></div>
-
-END;
-
- $loader = str_replace("\n","",$loader);
- $loader = str_replace("\r","",$loader);
-
- if (isset($vars['slashes']) && $vars['slashes'] == true) {
- $loader = addslashes($loader);
- }
-
- echo $loader;
-
-?> \ No newline at end of file
diff --git a/views/default/annotation/default.php b/views/default/annotation/default.php
new file mode 100644
index 000000000..5d29a53e2
--- /dev/null
+++ b/views/default/annotation/default.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Elgg default annotation view
+ *
+ * @note To add or remove from the annotation menu, register handlers for the menu:annotation hook.
+ *
+ * @uses $vars['annotation']
+ */
+
+$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);
+
+$body = <<<HTML
+<div class="mbn">
+ $menu
+ $owner_link
+ <span class="elgg-subtext">
+ $friendlytime
+ </span>
+ $text
+</div>
+HTML;
+
+echo elgg_view_image_block($icon, $body);
diff --git a/views/default/annotation/generic_comment.php b/views/default/annotation/generic_comment.php
index aebb219c2..22a8d9211 100644
--- a/views/default/annotation/generic_comment.php
+++ b/views/default/annotation/generic_comment.php
@@ -1,61 +1,69 @@
-<?php
-
- /**
- * Elgg generic comment
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-
- $owner = get_user($vars['annotation']->owner_guid);
-
-?>
-
-
- <div class="generic_comment"><!-- start of generic_comment div -->
-
- <div class="generic_comment_icon">
- <?php
- echo elgg_view("profile/icon",
- array(
- 'entity' => $owner,
- 'size' => 'small'));
- ?>
- </div>
- <div class="generic_comment_details">
-
- <!-- output the actual comment -->
- <?php echo elgg_view("output/longtext",array("value" => $vars['annotation']->value)); ?>
-
- <p class="generic_comment_owner">
- <a href="<?php echo $owner->getURL(); ?>"><?php echo $owner->name; ?></a> <?php echo friendly_time($vars['annotation']->time_created); ?>
- </p>
-
- <?php
-
- // if the user looking at the comment can edit, show the delete link
- if ($vars['annotation']->canEdit()) {
-
- ?>
- <p>
- <?php
-
- echo elgg_view("output/confirmlink",array(
- 'href' => $vars['url'] . "action/comments/delete?annotation_id=" . $vars['annotation']->id,
- 'text' => elgg_echo('delete'),
- 'confirm' => elgg_echo('deleteconfirm'),
- ));
-
- ?>
- </p>
-
- <?php
- } //end of can edit if statement
- ?>
- </div><!-- end of generic_comment_details -->
- </div><!-- end of generic_comment div --> \ No newline at end of file
+<?php
+/**
+ * Elgg generic comment view
+ *
+ * @uses $vars['annotation'] ElggAnnotation object
+ * @uses $vars['full_view'] Display fill view or brief view
+ */
+
+if (!isset($vars['annotation'])) {
+ return true;
+}
+
+$full_view = elgg_extract('full_view', $vars, true);
+
+$comment = $vars['annotation'];
+
+$entity = get_entity($comment->entity_guid);
+$commenter = get_user($comment->owner_guid);
+if (!$entity || !$commenter) {
+ return true;
+}
+
+$friendlytime = elgg_view_friendly_time($comment->time_created);
+
+$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) {
+ $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">
+ $menu
+ $commenter_link
+ <span class="elgg-subtext">
+ $friendlytime
+ </span>
+ $comment_text
+</div>
+HTML;
+
+ echo elgg_view_image_block($commenter_icon, $body);
+
+} else {
+ // brief view
+
+ //@todo need link to actual comment!
+
+ $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">
+ $commented_on ($friendlytime): $excerpt
+</span>
+HTML;
+
+ echo elgg_view_image_block($commenter_icon, $body);
+}
diff --git a/views/default/api/output.php b/views/default/api/output.php
index 465c08396..a7041c0f4 100644
--- a/views/default/api/output.php
+++ b/views/default/api/output.php
@@ -1,20 +1,16 @@
<?php
- /**
- * Elgg API default output
- * This outputs the api in a human readable way.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
+/**
+ * Elgg API default output
+ * This outputs the api in a human readable way.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ */
+
+$result = $vars['result'];
+$export = $result->export();
- $result = $vars['result'];
- $export = $result->export();
-
?>
<div id="api_result">
<table width="100%">
@@ -26,19 +22,19 @@
echo "**** ERROR ({$export->status}) ****";
?>
</td></tr>
-
+
<?php if ($export->message!="") { ?>
<tr><td width="100" valign="top"><b>Message:</b></td> <td><?php echo $export->message; ?></td></tr>
<?php } ?>
<?php if ($export->result) { ?>
<tr><td width="100" valign="top"><b>Result:</b></td> <td><pre><?php print_r($export->result); ?></pre></td></tr>
<?php } ?>
-
-
+
+
<?php if ($export->pam) { ?>
<tr><td width="100" valign="top"><b>PAM:</b></td> <td><pre><?php print_r($export->pam); ?></pre></td></tr>
<?php } ?>
-
+
<?php if ($export->runtime_errors) { ?>
<tr><td width="100" valign="top"><b>Runtime:</b></td> <td><pre><?php print_r($export->runtime_errors); ?></pre></td></tr>
<?php } ?>
diff --git a/views/default/basic_elements/welcome.php b/views/default/basic_elements/welcome.php
deleted file mode 100644
index a9e08148c..000000000
--- a/views/default/basic_elements/welcome.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
- /**
- * Elgg sample welcome page
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $user = $vars['name'];
-
-?>
-
-<p>Welcome <?php echo $user; ?></p>
-<p><a href="<?php echo $vars['url']; ?>action/logout">[logout]</a></p> \ No newline at end of file
diff --git a/views/default/canvas/default.php b/views/default/canvas/default.php
deleted file mode 100644
index 2d2707918..000000000
--- a/views/default/canvas/default.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
- /**
- * Elgg default layout
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- 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/default/canvas/layouts/one_column.php b/views/default/canvas/layouts/one_column.php
deleted file mode 100644
index 661df772a..000000000
--- a/views/default/canvas/layouts/one_column.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
- /**
- * Elgg one-column layout
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?>
-
-<!-- main content -->
-<div id="one_column">
-
-<?php echo $vars['area1']; ?>
-
-</div><!-- /one_column --> \ No newline at end of file
diff --git a/views/default/canvas/layouts/two_column_left_sidebar.php b/views/default/canvas/layouts/two_column_left_sidebar.php
deleted file mode 100644
index b80e81bf1..000000000
--- a/views/default/canvas/layouts/two_column_left_sidebar.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
- /**
- * Elgg 2 column left sidebar canvas layout
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?>
-<!-- left sidebar -->
-<div id="two_column_left_sidebar">
-
- <?php
-
- echo elgg_view('page_elements/owner_block',array('content' => $vars['area1']));
-
- ?>
-
- <?php if (isset($vars['area3'])) echo $vars['area3']; ?>
-
-</div><!-- /two_column_left_sidebar -->
-
-<!-- main content -->
-<div id="two_column_left_sidebar_maincontent">
-
-<?php if (isset($vars['area2'])) echo $vars['area2']; ?>
-
-</div><!-- /two_column_left_sidebar_maincontent -->
-
diff --git a/views/default/canvas/layouts/two_column_right_sidebar.php b/views/default/canvas/layouts/two_column_right_sidebar.php
deleted file mode 100644
index 157f95f2e..000000000
--- a/views/default/canvas/layouts/two_column_right_sidebar.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
- /**
- * Elgg 2 column right sidebar canvas layout
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?>
-<!-- main content -->
-<div id="two_column_right_sidebar_maincontent">
-
-<?php
-
- echo elgg_view('page_elements/owner_block',array('content' => $vars['area1']));
- if (isset($vars['area2'])) echo $vars['area2']; ?>
-
-</div><!-- /two_column_right_sidebar_maincontent -->
-
-<!-- right sidebar -->
-<div id="two_column_right_sidebar">
-
-<?php if (isset($vars['area1'])) echo $vars['area1']; ?>
-
-</div><!-- /two_column_right_sidebar -->
-
diff --git a/views/default/canvas/layouts/widgets.php b/views/default/canvas/layouts/widgets.php
deleted file mode 100644
index f84a60df9..000000000
--- a/views/default/canvas/layouts/widgets.php
+++ /dev/null
@@ -1,324 +0,0 @@
-<?php
-
- /**
- * Elgg widget layout
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $widgettypes = get_widget_types();
-
- $owner = page_owner_entity();
-
- $area1widgets = get_widgets(page_owner(),get_context(),1);
- $area2widgets = get_widgets(page_owner(),get_context(),2);
- $area3widgets = get_widgets(page_owner(),get_context(),3);
-
- if (empty($area1widgets) && empty($area2widgets) && empty($area3widgets)) {
-
- if (isset($vars['area3'])) $vars['area1'] = $vars['area3'];
- if (isset($vars['area4'])) $vars['area2'] = $vars['area4'];
-
- }
-
- if (is_array($widgettypes) && sizeof($widgettypes) > 0 && $owner && $owner->canEdit()) {
-
-
-?>
-
-<div id="customise_editpanel">
-
-<div id="customise_editpanel_rhs">
-<h2><?php echo elgg_echo("widgets:gallery"); ?></h2>
-<div id="widget_picker_gallery">
-
-
-<?php
-
- foreach($widgettypes as $handler => $widget) {
-
-?>
-
-<table class="draggable_widget" cellspacing="0"><tr><td>
- <h3>
- <?php echo $widget->name; ?>
- <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget->handler]->multiple; ?>" />
- <input type="hidden" name="side" value="<?php if (is_array($widgettypes[$widget->handler]->positions)) echo in_array('side',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="main" value="<?php if (is_array($widgettypes[$widget->handler]->positions)) echo in_array('main',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="handler" value="<?php echo htmlentities($handler); ?>" />
- <input type="hidden" name="description" value="<?php echo htmlentities($widget->description, null, 'UTF-8'); ?>" />
- <input type="hidden" name="guid" value="0" />
- </h3>
-</td>
-<td width="17px" align="right"></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
-</tr></table>
-
-<?php
- }
-?>
-
-<br /><!-- bit of space at the bottom of the widget gallery -->
-
-</div><!-- /#customise_editpanel_rhs -->
-</div><!-- /#widget_picker_gallery -->
-
-
-<div class="customise_editpanel_instructions">
-<h2><?php echo elgg_echo('widgets:add'); ?></h2>
-<?php echo autop(elgg_echo('widgets:add:description')); ?>
-</div>
-
-
-<div id="customise_page_view">
-
-<table cellspacing="0">
- <tr>
- <td colspan="2" align="left" valign="top">
-
- <?php
- if(get_context() == "profile"){
- ?>
- <h2 class="profile_box"><?php echo elgg_echo("widgets:profilebox"); ?></h2>
- <div id="profile_box_widgets">
- <p><small><?php echo elgg_echo('widgets:position:fixed'); ?></small></p>
- </div>
- <?php
- }
- ?>
-
- </td>
-
-
- <td rowspan="2" align="left" valign="top">
- <h2><?php echo elgg_echo("widgets:rightcolumn"); ?></h2>
- <div id="rightcolumn_widgets" <?php if(get_context() == "profile")echo "class=\"long\""; ?>>
- <?php
- $rightcolumn_widgets = "";
- if (is_array($area3widgets) && sizeof($area3widgets) > 0) {
- foreach($area3widgets as $widget) {
- if (!empty($rightcolumn_widgets)) {
- $rightcolumn_widgets .= "::";
- }
- $rightcolumn_widgets .= "{$widget->handler}::{$widget->getGUID()}";
- ?>
-
- <table class="draggable_widget" cellspacing="0"><tr><td width="149px">
- <h3>
- <?php echo $widgettypes[$widget->handler]->name; ?>
- <input type="hidden" name="handler" value="<?php
- echo $widget->handler;
- ?>" />
- <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget->handler]->multiple; ?>" />
- <input type="hidden" name="side" value="<?php echo in_array('side',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="main" value="<?php echo in_array('main',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="description" value="<?php echo htmlentities($widgettypes[$widget->handler]->description); ?>" />
- <input type="hidden" name="guid" value="<?php echo $widget->getGUID(); ?>" />
- </h3>
- </td>
- <td width="17px" align="right"></td>
- <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
- <td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
- </tr></table>
-
- <?php
-
- }
- }
- ?>
-
- </div>
- </td><!-- /rightcolumn td -->
-
- </tr>
-
- <tr>
-
-<td>
-<h2><?php echo elgg_echo("widgets:leftcolumn"); ?></h2>
-<div id="leftcolumn_widgets">
-
-<?php
- $leftcolumn_widgets = "";
- if (is_array($area1widgets) && sizeof($area1widgets) > 0) {
- foreach($area1widgets as $widget) {
- if (!empty($leftcolumn_widgets)) {
- $leftcolumn_widgets .= "::";
- }
- $leftcolumn_widgets .= "{$widget->handler}::{$widget->getGUID()}";
-?>
-
-<table class="draggable_widget" cellspacing="0"><tr><td width="149px">
- <h3>
- <?php echo $widgettypes[$widget->handler]->name; ?>
- <input type="hidden" name="handler" value="<?php
- echo $widget->handler;
- ?>" />
- <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget->handler]->multiple; ?>" />
- <input type="hidden" name="side" value="<?php echo in_array('side',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="main" value="<?php echo in_array('main',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="description" value="<?php echo htmlentities($widgettypes[$widget->handler]->description); ?>" />
- <input type="hidden" name="guid" value="<?php echo $widget->getGUID(); ?>" />
- </h3>
-</td>
-<td width="17px" align="right"></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
-</tr></table>
-
-<?php
-
- }
- }
-?>
-</div>
-</td>
-
-<td>
-
-<h2><?php echo elgg_echo("widgets:middlecolumn"); ?></h2>
-<div id="middlecolumn_widgets">
-
-<?php
- $middlecolumn_widgets = "";
- if (is_array($area2widgets) && sizeof($area2widgets) > 0) {
- foreach($area2widgets as $widget) {
- if (!empty($middlecolumn_widgets)) {
- $middlecolumn_widgets .= "::";
- }
- $middlecolumn_widgets .= "{$widget->handler}::{$widget->getGUID()}";
-?>
-
-<table class="draggable_widget" cellspacing="0"><tr><td width="149px">
- <h3>
- <?php echo $widgettypes[$widget->handler]->name; ?>
- <input type="hidden" name="handler" value="<?php
- echo $widget->handler;
- ?>" />
- <input type="hidden" name="multiple" value="<?php echo $widgettypes[$widget->handler]->multiple; ?>" />
- <input type="hidden" name="side" value="<?php echo in_array('side',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="main" value="<?php echo in_array('main',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="description" value="<?php echo htmlentities($widgettypes[$widget->handler]->description); ?>" />
- <input type="hidden" name="guid" value="<?php echo $widget->getGUID(); ?>" />
- </h3>
-</td>
-<td width="17px" align="right"></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="14px" height="14px" class="more_info" /></a></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo $vars['url']; ?>_graphics/spacer.gif" width="15px" height="15px" class="drag_handle" /></a></td>
-</tr></table>
-
-<?php
-
- }
- }
-?>
-
-</div>
-</td>
-
-
-
-
-
-
-</tr>
-</table>
-
-</div><!-- /#customise_page_view -->
-
-<form action="<?php echo $vars['url']; ?>action/widgets/reorder" method="post">
-<textarea type="textarea" value="Left widgets" style="display:none" name="debugField1" id="debugField1" /><?php echo $leftcolumn_widgets; ?></textarea>
-<textarea type="textarea" value="Middle widgets" style="display:none" name="debugField2" id="debugField2" /><?php echo $middlecolumn_widgets; ?></textarea>
-<textarea type="textarea" value="Right widgets" style="display:none" name="debugField3" id="debugField3" /><?php echo $rightcolumn_widgets; ?></textarea>
-
-<input type="hidden" name="context" value="<?php echo get_context(); ?>" />
-<input type="hidden" name="owner" value="<?php echo page_owner(); ?>" />
-<input type="submit" value="<?php echo elgg_echo('save'); ?>" class="submit_button" onclick="$('a.toggle_customise_edit_panel').click();" />
-<input type="button" value="<?php echo elgg_echo('cancel'); ?>" class="cancel_button" onclick="$('a.toggle_customise_edit_panel').click();" />
-
-</form>
-</div><!-- /customise_editpanel -->
-
-<?php
-
- }
-
-?>
-
-
-<table cellspacing="0" id="widget_table">
- <tr>
- <td colspan="2" align="left" valign="top" height="1px">
- <!-- profile box or 'dashboard info' notice -->
- <?php if (isset($vars['area1'])) echo $vars['area1']; ?>
- </td>
- <td rowspan="2" align="left" valign="top" height="100%">
- <?php
- if($_SESSION['user']->guid == page_owner()){
- ?>
- <!-- customise page button -->
- <a href="javascript:void(0);" class="toggle_customise_edit_panel"><?php echo(elgg_echo('dashboard:configure')); ?></a>
- <!-- <div style="clear:both;"></div> -->
- <?php
- }
- ?>
-
- <div id="widgets_right">
- <?php
-
- if (is_array($area3widgets) && sizeof($area3widgets) > 0)
- foreach($area3widgets as $widget) {
- echo elgg_view_entity($widget);
- }
-
- ?>
-
- </div><!-- /#widgets_right -->
- </td>
- </tr>
- <tr>
- <td align="left" valign="top">
-
- <!-- left widgets -->
- <div id="widgets_left">
-
- <?php
-
- if (is_array($area1widgets) && sizeof($area1widgets) > 0)
- foreach($area1widgets as $widget) {
- echo elgg_view_entity($widget);
- }
-
- ?>
-
- </div><!-- /#widgets_left -->
-
- </td>
- <td align="left" valign="top">
-
- <!-- widgets middle -->
- <div id="widgets_middle">
-
- <?php if (isset($vars['area2'])) echo $vars['area2']; ?>
- <?php
-
- if (is_array($area2widgets) && sizeof($area2widgets) > 0)
- foreach($area2widgets as $widget) {
- echo elgg_view_entity($widget);
- }
-
- ?>
-
- </div><!-- /#widgets_middle -->
-
- </td>
- </tr>
-</table>
-
-
diff --git a/views/default/canvas_header/submenu_group.php b/views/default/canvas_header/submenu_group.php
deleted file mode 100644
index 5af0f0609..000000000
--- a/views/default/canvas_header/submenu_group.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
- if (isset($vars['group_name'])) {
- $groupname = $vars['group_name'];
- } else {
- $groupname = "main";
- }
- if (isset($vars['submenu'])) {
-
- $submenu = "<ul>" . $vars['submenu'] . "</ul>";
- echo "<div class=\"submenu_group\"><div class=\"submenu_group_{$groupname}\">{$submenu}</div></div>";
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/canvas_header/submenu_template.php b/views/default/canvas_header/submenu_template.php
deleted file mode 100644
index ff43ac153..000000000
--- a/views/default/canvas_header/submenu_template.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
- if (isset($vars['selected']) && $vars['selected'] == true) {
- $selected = "class=\"selected\"";
- } else {
- $selected = "";
- }
-
-?>
-<li <?php echo $selected; ?>><a href="<?php echo $vars['href']; ?>"><?php echo $vars['label']; ?></a></li> \ No newline at end of file
diff --git a/views/default/comments/forms/edit.php b/views/default/comments/forms/edit.php
deleted file mode 100644
index 95227218b..000000000
--- a/views/default/comments/forms/edit.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
- /**
- * Elgg comments add form
- *
- * @package Elgg
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd <info@elgg.com>
- * @copyright Curverider Ltd 2008
- * @link http://elgg.com/
- *
- * @uses $vars['entity']
- */
-
- if (isset($vars['entity']) && isloggedin()) {
-
- $form_body = "<p><label>".elgg_echo("generic_comments:text")."<br />" . elgg_view('input/longtext',array('internalname' => 'generic_comment')) . "</label></p>";
- $form_body .= "<p>" . elgg_view('input/hidden', array('internalname' => 'entity_guid', 'value' => $vars['entity']->getGUID()));
- $form_body .= elgg_view('input/submit', array('value' => elgg_echo("save"))) . "</p>";
-
- echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$vars['url']}action/comments/add"));
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/core/account/login_box.php b/views/default/core/account/login_box.php
new file mode 100644
index 000000000..f39113653
--- /dev/null
+++ b/views/default/core/account/login_box.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Elgg login box
+ *
+ * @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);
+}
+
+$title = elgg_echo('login');
+$body = elgg_view_form('login', array('action' => "{$login_url}action/login"));
+
+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
new file mode 100644
index 000000000..e90cbf106
--- /dev/null
+++ b/views/default/core/account/login_dropdown.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Elgg drop-down login form
+ */
+
+if (elgg_is_logged_in()) {
+ return true;
+}
+
+$login_url = elgg_get_site_url();
+if (elgg_get_config('https_login')) {
+ $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">
+ <?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/avatar/crop.php b/views/default/core/avatar/crop.php
new file mode 100644
index 000000000..1c59842c8
--- /dev/null
+++ b/views/default/core/avatar/crop.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Avatar cropping view
+ *
+ * @uses vars['entity']
+ */
+
+?>
+<div id="avatar-croppingtool" class="mtl ptm">
+ <label><?php echo elgg_echo('avatar:crop:title'); ?></label>
+ <br />
+ <p>
+ <?php echo elgg_echo("avatar:create:instructions"); ?>
+ </p>
+ <?php echo elgg_view_form('avatar/crop', array(), $vars); ?>
+</div>
diff --git a/views/default/core/avatar/upload.php b/views/default/core/avatar/upload.php
new file mode 100644
index 000000000..6f9124192
--- /dev/null
+++ b/views/default/core/avatar/upload.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Avatar upload view
+ *
+ * @uses $vars['entity']
+ */
+
+$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);
+
+?>
+
+<p class="mtm">
+ <?php echo elgg_echo('avatar:upload:instructions'); ?>
+</p>
+
+<?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">
+ $upload_form
+</div>
+HTML;
+
+echo elgg_view_image_block($image, $upload_form);
diff --git a/views/default/core/friends/collection.php b/views/default/core/friends/collection.php
new file mode 100644
index 000000000..1a330af01
--- /dev/null
+++ b/views/default/core/friends/collection.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * View a friends collection
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['collection'] The individual friends collection
+ */
+
+$coll = $vars['collection'];
+
+if (is_array($vars['collection']->members)) {
+ $count = sizeof($vars['collection']->members);
+} else {
+ $count = 0;
+}
+
+echo "<li><h2>";
+
+//as collections are private, check that the logged in user is the owner
+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/collections/delete?collection=' . $coll->id,
+ 'class' => 'delete_collection',
+ 'text' => elgg_view_icon('delete'),
+ 'encode_text' => false,
+ ));
+ echo "</div>";
+}
+echo $coll->name;
+echo " (<span id=\"friends_membership_count{$vars['friendspicker']}\">{$count}</span>) </h2>";
+
+// individual collection panels
+$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('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">
+ $(function () {
+
+ $('#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>
+ <?php
+}
+
+// close friends-picker div and the accordian list item
+echo "</li>";
diff --git a/views/default/core/friends/collections.php b/views/default/core/friends/collections.php
new file mode 100644
index 000000000..c6ee082c8
--- /dev/null
+++ b/views/default/core/friends/collections.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Elgg friends collections
+ * Lists a user's friends collections
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['collections'] The array of friends collections
+ */
+
+if (is_array($vars['collections']) && sizeof($vars['collections'])) {
+ echo "<ul id=\"friends_collections_accordian\">";
+
+ $friendspicker = 0;
+ foreach ($vars['collections'] as $collection) {
+ $friendspicker++;
+ echo elgg_view('core/friends/collection', array(
+ 'collection' => $collection,
+ 'friendspicker' => $friendspicker,
+ ));
+ }
+
+ echo "</ul>";
+
+} else {
+ echo elgg_echo("friends:nocollections");
+}
+
+?>
+<?php //@todo JS 1.8: no ?>
+<script>
+$(function(){
+ $('#friends_collections_accordian h2').click(function () {
+ $(this.parentNode).children("[class=friends-picker-main-wrapper]").slideToggle("fast");
+ //return false;
+ });
+});
+</script>
diff --git a/views/default/core/friends/collectiontabs.php b/views/default/core/friends/collectiontabs.php
new file mode 100644
index 000000000..bf12e0edb
--- /dev/null
+++ b/views/default/core/friends/collectiontabs.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Elgg friends collections
+ * Lists a user's friends collections
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['collections'] The array of friends collections
+ */
+
+$friendspicker = $vars['friendspicker'];
+
+$collectionid = $vars['collection']->id;
+$ownerid = $vars['owner']->getGUID();
+
+?>
+
+<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>
+
+<?php //@todo JS 1.8: no ?>
+<script type="text/javascript">
+$(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/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.elgg-state-selected").removeClass("elgg-state-selected");
+ // add selected class to current tab
+ $(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/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.elgg-state-selected").removeClass("elgg-state-selected");
+ // add selected class to current tab
+ $(this).parent().addClass("elgg-state-selected");
+
+ return false;
+ });
+
+
+});
+</script>
diff --git a/views/default/core/friends/tablelist.php b/views/default/core/friends/tablelist.php
new file mode 100644
index 000000000..339b9ab1b
--- /dev/null
+++ b/views/default/core/friends/tablelist.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Elgg friends picker
+ * Lists the friends picker
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['entities'] The array of ElggUser objects
+ */
+
+if (is_array($vars['entities'])) {
+
+?>
+
+<table cellspacing="0" id="friendspicker-members-table">
+ <tr>
+ <?php
+ $column = 0;
+ foreach($vars['entities'] as $entity) {
+ if (!($entity instanceof ElggEntity)) {
+ $entity = get_entity($entity);
+ }
+
+ if ($entity instanceof ElggEntity) {
+ ?>
+ <td style="width:25px;">
+ <div style="width: 25px;" class="mbl">
+ <?php echo elgg_view_entity_icon($entity, 'tiny'); ?>
+ </div>
+ </td>
+ <td style="width: 200px;" class="pas">
+ <?php echo $entity->name; ?>
+ </td>
+ <?php
+ $column++;
+ if ($column == 3) {
+ echo "</tr><tr>";
+ $column = 0;
+ }
+ }
+ }
+
+if ($column < 3 && $column != 0) echo "</tr>";
+ echo "</table>";
+}
+
+if (isset($vars['content'])) {
+ echo $vars['content'];
+} \ No newline at end of file
diff --git a/views/default/core/friends/tablelistcountupdate.php b/views/default/core/friends/tablelistcountupdate.php
new file mode 100644
index 000000000..7a0da1caa
--- /dev/null
+++ b/views/default/core/friends/tablelistcountupdate.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Elgg friends picker count updater
+ * Updates the friends count on a collection
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['count'] The count
+ * @uses $vars['friendspicker'] The friendspicker counter number
+ */
+
+?>
+<?php //@todo JS 1.8: no ?>
+<script language="text/javascript">
+ $("#friends_membership_count<?php echo $vars['friendspicker']; ?>").html("<?php echo $vars['count']; ?>");
+</script> \ No newline at end of file
diff --git a/views/default/core/river/filter.php b/views/default/core/river/filter.php
new file mode 100644
index 000000000..9b7fadaa8
--- /dev/null
+++ b/views/default/core/river/filter.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Content filter for river
+ *
+ * @uses $vars[]
+ */
+
+// create selection array
+$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) {
+ // subtype will always be an array.
+ if (!count($subtypes)) {
+ $label = elgg_echo('river:select', array(elgg_echo("item:$type")));
+ $options["type=$type"] = $label;
+ } else {
+ foreach ($subtypes as $subtype) {
+ $label = elgg_echo('river:select', array(elgg_echo("item:$type:$subtype")));
+ $options["type=$type&subtype=$subtype"] = $label;
+ }
+ }
+ }
+}
+
+$params = array(
+ 'id' => 'elgg-river-selector',
+ 'options_values' => $options,
+);
+$selector = $vars['selector'];
+if ($selector) {
+ $params['value'] = $selector;
+}
+echo elgg_view('input/dropdown', $params);
+
+elgg_load_js('elgg.ui.river');
diff --git a/views/default/core/settings/account.php b/views/default/core/settings/account.php
new file mode 100644
index 000000000..0c3792ece
--- /dev/null
+++ b/views/default/core/settings/account.php
@@ -0,0 +1,9 @@
+<?php
+/**
+ * Account settings form wrapper
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+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
new file mode 100644
index 000000000..690f2714a
--- /dev/null
+++ b/views/default/core/settings/account/default_access.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Provide a way of setting your default access
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+if (elgg_get_config('allow_user_default_access')) {
+ $user = elgg_get_page_owner_entity();
+
+ if ($user) {
+ if (false === ($default_access = $user->getPrivateSetting('elgg_default_access'))) {
+ $default_access = elgg_get_config('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,
+ ));
+
+ echo elgg_view_module('info', $title, $content);
+ }
+}
diff --git a/views/default/core/settings/account/email.php b/views/default/core/settings/account/email.php
new file mode 100644
index 000000000..4bcdbb100
--- /dev/null
+++ b/views/default/core/settings/account/email.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Provide a way of setting your email
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$user = elgg_get_page_owner_entity();
+
+if ($user) {
+ $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
new file mode 100644
index 000000000..b36057422
--- /dev/null
+++ b/views/default/core/settings/account/language.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Provide a way of setting your language prefs
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$user = elgg_get_page_owner_entity();
+
+if ($user) {
+ $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
new file mode 100644
index 000000000..e356146a3
--- /dev/null
+++ b/views/default/core/settings/account/name.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Provide a way of setting your full name.
+ *
+ * @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);
+
+ // 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
new file mode 100644
index 000000000..c212b3886
--- /dev/null
+++ b/views/default/core/settings/account/notifications.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * User settings for notifications.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+global $NOTIFICATION_HANDLERS;
+$notification_settings = get_user_notification_settings(elgg_get_page_owner_guid());
+
+$title = elgg_echo('notifications:usersettings');
+
+$rows = '';
+
+// Loop through options
+foreach ($NOTIFICATION_HANDLERS as $k => $v) {
+
+ if ($notification_settings->$k) {
+ $val = "yes";
+ } else {
+ $val = "no";
+ }
+
+ $radio = elgg_view('input/radio', array(
+ 'name' => "method[$k]",
+ 'value' => $val,
+ 'options' => array(
+ elgg_echo('option:yes') => 'yes',
+ elgg_echo('option:no') => 'no'
+ ),
+ ));
+
+ $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
new file mode 100644
index 000000000..4857034b2
--- /dev/null
+++ b/views/default/core/settings/account/password.php
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * Provide a way of setting your password
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+$user = elgg_get_page_owner_entity();
+
+if ($user) {
+ $title = elgg_echo('user:set:password');
+
+ // 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>";
+ }
+
+ $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.php b/views/default/core/settings/statistics.php
new file mode 100644
index 000000000..1d7a5b052
--- /dev/null
+++ b/views/default/core/settings/statistics.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * User statitsics
+ *
+ * Blank view that can be extended
+ */
diff --git a/views/default/core/settings/statistics/numentities.php b/views/default/core/settings/statistics/numentities.php
new file mode 100644
index 000000000..3782fd8bc
--- /dev/null
+++ b/views/default/core/settings/statistics/numentities.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Elgg statistics screen
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+// Get entity statistics
+$entity_stats = get_entity_statistics(elgg_get_page_owner_guid());
+
+if ($entity_stats) {
+ $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';
+
+ 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";
+ }
+ }
+ $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
new file mode 100644
index 000000000..1385ff60f
--- /dev/null
+++ b/views/default/core/settings/statistics/online.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Statistics about this user.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$user = elgg_get_page_owner_entity();
+
+$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');
+
+$time_created = date("r", $user->time_created);
+$last_login = date("r", $user->last_login);
+
+$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
new file mode 100644
index 000000000..195db1d61
--- /dev/null
+++ b/views/default/core/settings/tools.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Elgg plugin specific user settings.
+ *
+ * @uses array $vars['installed_plugins'] An array of plugins as returned by elgg_get_plugins()
+ *
+ * @package Elgg.Core
+ * @subpackage Plugins.Settings
+ */
+
+// Description of what's going on
+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 all plugins' usersettings forms
+foreach ($installed_plugins as $plugin) {
+ $plugin_id = $plugin->getID();
+ if ($plugin->isActive()) {
+ 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/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 937b6e4ca..e67c79c36 100644
--- a/views/default/css.php
+++ b/views/default/css.php
@@ -1,2100 +1,7 @@
<?php
-
- /**
- * Elgg CSS
- * The standard CSS file
- *
- * Updated 29 Oct - v1.1
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['wwwroot'] The site URL
- */
-
-?>
-
-/* ***************************************
- RESET BASE STYLES
-*************************************** */
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, font, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-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;
-}
-/* remember to define focus styles! */
-:focus {
- outline: 0;
-}
-ol, ul {
- list-style: none;
-}
-/* tables still need cellspacing="0" (for ie6) */
-table {
- border-collapse: separate;
- border-spacing: 0;
-}
-caption, th, td {
- text-align: left;
- font-weight: normal;
- vertical-align: top;
-}
-blockquote:before, blockquote:after,
-q:before, q:after {
- content: "";
-}
-blockquote, q {
- quotes: "" "";
-}
-.clearfloat {
- clear:both;
- height:0;
- font-size: 1px;
- line-height: 0px;
-}
-
-/* ***************************************
- DEFAULTS
-*************************************** */
-
-/* elgg open source blue #4690d6 */
-/* elgg open source dark blue #0054a7 */
-/* elgg open source light yellow #FDFFC3 */
-
-
-body {
- text-align:left;
- margin:0 auto;
- padding:0;
- background: #4690d6;
- font: 80%/1.4 "Lucida Grande", Verdana, sans-serif;
- color: #333333;
- background: url(<?php echo $vars['url']; ?>_graphics/page_back_linen.gif) repeat left 1px;
-}
-a {
- color: #4690d6;
- text-decoration: none;
- -moz-outline-style: none;
- outline: none;
-}
-a:visited {
-
-}
-a:hover {
- color: #0054a7;
- text-decoration: underline;
-}
-p {
- margin: 0px 0px 15px 0;
-}
-img {
- border: none;
-}
-ul {
- margin: 5px 0px 15px;
- padding-left: 20px;
-}
-ul li {
- margin: 0px;
-}
-ol {
- margin: 5px 0px 15px;
- padding-left: 20px;
-}
-ul li {
- margin: 0px;
-}
-form {
- margin: 0px;
- padding: 0px;
-}
-small {
- font-size: 90%;
-}
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
- line-height: normal;
-}
-h1 { font-size: 1.8em; }
-h2 { font-size: 1.5em; }
-h3 { font-size: 1.2em; }
-h4 { font-size: 1.0em; }
-h5 { font-size: 0.9em; }
-h6 { font-size: 0.8em; }
-
-dt {
- margin: 0;
- padding: 0;
- font-weight: bold;
-}
-dd {
- margin: 0 0 1em 1em;
- padding: 0;
-}
-pre, code {
- font-family:Monaco,"Courier New",Courier,monospace;
- font-size:12px;
- background:#EBF5FF;
- overflow:auto;
-}
-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;
- line-height:1.3em;
- background:#fdffc3;
- border:none !important;
-}
-
-/* ***************************************
- PAGE LAYOUT - MAIN STRUCTURE
-*************************************** */
-#page_container {
- margin:0;
- padding:0;
- background: url(<?php echo $vars['url']; ?>_graphics/page_back_linen_shadow.gif) repeat-y center top;
-}
-#page_wrapper {
- width:998px;
- margin:0 auto;
- padding:0;
- min-height: 300px;
- background: #f4f4f4;
- border-right: 1px solid #333333;
- border-bottom: 1px solid #333333;
-}
-#layout_header {
- text-align:left;
- width:100%;
- height:67px;
- border-bottom:1px solid #4690d6;
- background:white;
-}
-#wrapper_header {
- margin:0;
- padding:10px 20px 20px 20px;
-}
-#wrapper_header h1 {
- margin:10px 0 0 0;
- letter-spacing: -0.03em;
-}
-#layout_canvas {
- margin:0;
- padding:0;
- min-height: 360px;
-}
-
-
-/* canvas layout: 1 column, no sidebar */
-#one_column {
- width:918px;
- margin:20px;
- min-height: 360px;
- background: white;
- padding:20px;
- border-right: 1px solid #cccccc;
- border-bottom: 1px solid #cccccc;
-}
-
-/* canvas layout: 2 column left sidebar */
-#two_column_left_sidebar {
- width:210px;
- margin:20px 0 20px 20px;
- min-height:360px;
- float:left;
- background: white;
- padding:0px;
- border-bottom:1px solid #cccccc;
- border-right:1px solid #cccccc;
-}
-
-#two_column_left_sidebar_maincontent {
- width:685px;
- margin:20px;
- min-height: 360px;
- float:left;
- background: white;
- padding:20px;
- border-bottom:1px solid #cccccc;
- border-right:1px solid #cccccc;
-}
-
-/* canvas layout: widgets (profile and dashboard) */
-#widgets_left {
- width:306px;
- margin:20px;
- min-height:360px;
- padding:0;
-}
-#widgets_middle {
- width:306px;
- margin:20px 0 20px 0;
- padding:0;
-}
-#widgets_right {
- width:306px;
- margin:20px 20px 20px 20px;
- float:left;
- padding:0;
-}
-#widget_table td {
- border:0;
- padding:0;
- margin:0;
- text-align: left;
- vertical-align: top;
-}
-
-/* IE 6 fixes */
-* html #widgets_left {
- height:360px;
-}
-* html #widgets_middle {
- height:360px;
-}
-* html #widgets_right {
- height:360px;
- float:none;
-}
-
-/* IE6 layout fixes */
-* html #profile_info_column_left {
- margin:0 10px 0 0;
- width:200px;
-}
-/* IE7 */
-*:first-child+html #profile_info_column_left {
- width:200px;
-}
-* html #two_column_left_sidebar {
- width:210px;
- margin:20px 10px 20px 10px;
-}
-* html #two_column_left_sidebar_maincontent {
- width:685px;
- margin:20px 10px 20px 10px;
-}
-* html a.toggle_customise_edit_panel {
- float:none;
- clear:none;
- color: #4690d6;
- background: white;
- border:1px solid #cccccc;
- padding: 5px 10px 5px 10px;
- margin:20px 20px 0px 20px;
- width:284px;
- display:block;
- text-align: left;
-}
-* html #dashboard_info {
- width:585px;
-}
-#layout_spotlight {
- padding:0;
- margin:0;
-}
-#wrapper_spotlight {
- margin:0;
- padding:0;
- height:auto;
-}
-/* ***************************************
- SPOTLIGHT
-*************************************** */
-/* IE7 */
-*:first-child+html #wrapper_spotlight .collapsable_box_content {
- width:958px;
-}
-#wrapper_spotlight #spotlight_table h2 {
- color:#4690d6;
- font-size:1.25em;
- line-height:1.2em;
-}
-#wrapper_spotlight #spotlight_table li {
- list-style: square;
- line-height: 1.2em;
- margin:5px 20px 5px 0;
- color:#4690d6;
-}
-#wrapper_spotlight .collapsable_box_content {
- margin:0;
- padding:20px 20px 10px 20px;
- background: #ffffff url(<?php echo $vars['url']; ?>_graphics/spotlight_back.gif) repeat-x left top;
- min-height:60px;
- border:none;
-}
-#layout_spotlight .collapsable_box_content p {
- padding:0;
-}
-#wrapper_spotlight .collapsable_box_header {
- border-left: none;
- border-right: none;
-}
-/* ***************************************
- FOOTER
-*************************************** */
-#layout_footer {
- background: url(<?php echo $vars['url']; ?>_graphics/footer_back.gif) repeat-x left top;
- height:80px;
-}
-#layout_footer table {
- margin:0 0 0 20px;
-}
-#layout_footer a, #layout_footer p {
- color:white;
- margin:0;
-}
-#layout_footer .footer_toolbar_links {
- text-align:right;
- padding:15px 0 0 0;
- font-size:1.2em;
-}
-#layout_footer .footer_legal_links {
- text-align:right;
-}
-
-
-/* ***************************************
- HORIZONTAL ELGG TOPBAR
-*************************************** */
-#elgg_topbar {
- background:#333333 url(<?php echo $vars['url']; ?>_graphics/toptoolbar_background.gif) repeat-x top left;
- color:#eeeeee;
- border-bottom:1px solid #000000;
- min-width:998px;
- position:relative;
- width:100%;
- height:24px;
-}
-#elgg_topbar_container_left {
- float:left;
- height:24px;
- left:0px;
- top:0px;
- position:absolute;
- text-align:left;
- width:60%;
-}
-#elgg_topbar_container_right {
- float:right;
- height:24px;
- position:absolute;
- right:0px;
- top:0px;
- /* width:120px;*/
- text-align:right;
-}
-#elgg_topbar_container_search {
- float:right;
- height:21px;
- /*width:280px;*/
- position:relative;
- right:120px;
- text-align:right;
- margin:3px 0 0 0;
-}
-#elgg_topbar_container_left .toolbarimages {
- float:left;
- margin-right:20px;
-}
-#elgg_topbar_container_left .toolbarlinks {
- margin:0 0 10px 0;
- float:left;
-}
-#elgg_topbar_container_left .toolbarlinks2 {
- margin:3px 0 0 0;
- float:left;
-}
-#elgg_topbar_container_left a.loggedinuser {
- color:#eeeeee;
- font-weight:bold;
- margin:0 0 0 5px;
-}
-#elgg_topbar_container_left a.pagelinks {
- color:white;
- margin:0 15px 0 5px;
- display:block;
- padding:3px;
-}
-#elgg_topbar_container_left a.pagelinks:hover {
- background: #4690d6;
- text-decoration: none;
-}
-#elgg_topbar_container_left a.privatemessages {
- background:transparent url(<?php echo $vars['url']; ?>_graphics/toolbar_messages_icon.gif) no-repeat left 2px;
- padding:0 0 4px 16px;
- margin:0 15px 0 5px;
- cursor:pointer;
-}
-#elgg_topbar_container_left a.privatemessages:hover {
- text-decoration: none;
- background:transparent url(<?php echo $vars['url']; ?>_graphics/toolbar_messages_icon.gif) no-repeat left -36px;
-}
-#elgg_topbar_container_left a.privatemessages_new {
- background:transparent url(<?php echo $vars['url']; ?>_graphics/toolbar_messages_icon.gif) no-repeat left -17px;
- padding:0 0 0 18px;
- margin:0 15px 0 5px;
- color:white;
-}
-/* IE6 */
-* html #elgg_topbar_container_left a.privatemessages_new { background-position: left -18px; }
-/* IE7 */
-*+html #elgg_topbar_container_left a.privatemessages_new { background-position: left -18px; }
-
-#elgg_topbar_container_left a.privatemessages_new:hover {
- text-decoration: none;
-}
-
-#elgg_topbar_container_left a.usersettings {
- margin:0 0 0 20px;
- color:#999999;
- padding:3px;
-}
-#elgg_topbar_container_left a.usersettings:hover {
- color:#eeeeee;
-}
-#elgg_topbar_container_left img {
- margin:2px 0 0 5px;
-}
-#elgg_topbar_container_left .user_mini_avatar {
- border:1px solid #eeeeee;
- margin:0 0 0 20px;
-}
-#elgg_topbar_container_right {
- padding:3px 0 0 0;
-}
-#elgg_topbar_container_right a {
- color:#eeeeee;
- margin:0 5px 0 0;
- background:transparent url(<?php echo $vars['url']; ?>_graphics/elgg_toolbar_logout.gif) no-repeat top right;
- padding:0 21px 0 0;
- display:block;
- height:20px;
-}
-/* IE6 fix */
-* html #elgg_topbar_container_right a {
- width: 120px;
-}
-#elgg_topbar_container_right a:hover {
- background-position: right -21px;
-}
-#elgg_topbar_panel {
- background:#333333;
- color:#eeeeee;
- height:200px;
- width:100%;
- padding:10px 20px 10px 20px;
- display:none;
- position:relative;
-}
-#searchform input.search_input {
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- background-color:#FFFFFF;
- border:1px solid #BBBBBB;
- color:#999999;
- font-size:12px;
- font-weight:bold;
- margin:0pt;
- padding:2px;
- width:180px;
- height:12px;
-}
-#searchform input.search_submit_button {
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- color:#333333;
- background: #cccccc;
- border:none;
- font-size:12px;
- font-weight:bold;
- margin:0px;
- padding:2px;
- width:auto;
- height:18px;
- cursor:pointer;
-}
-#searchform input.search_submit_button:hover {
- color:#ffffff;
- background: #0054a7;
-}
-
-/* ***************************************
- TOP BAR - VERTICAL TOOLS MENU
-*************************************** */
-#topbardropdownmenu, #topbardropdownmenu ul {
- margin:0;
- padding:0;
- display:inline;
- float:left;
- list-style-type: none;
- z-index: 99999999;
-}
-#topbardropdownmenu {
- margin:0pt 15px 0pt 5px;
-}
-/* Tools link in top menu */
-#topbardropdownmenu a, #topbardropdownmenu a:visited {
- display:block;
- padding:3px 13px 3px 3px;
- text-decoration:none;
- color:white;
-}
-#topbardropdownmenu li ul a {
- width:120px;
- height:auto;
- float:left;
-}
-
-/* menu list items */
-#topbardropdownmenu li {float:left; position:relative; background:#cccccc;}
-#topbardropdownmenu ul a {
- border-left:1px solid #f5f5f5;
- border-right:1px solid #333333;
- color:#4690d6 !important;
- padding:2px 6px 2px 6px !important;
- background: #DEDEDE !important;
- border-top:1px solid #f5f5f5;
- border-bottom:1px solid #999999;
-}
-
-/* IE7 */
-#topbardropdownmenu li:hover {position:relative;}
-/* Make the Tools nav color persist */
-#topbardropdownmenu li:hover > a {background: #4690d6 url(<?php echo $vars['url']; ?>_graphics/toolbar_arrow.png) no-repeat right -18px;}
-#topbardropdownmenu li ul {display:none;width:134px !important;}
-#topbardropdownmenu li:hover > ul {
- display:block;
- position:absolute;
- top:-11px;
- left:80px;
- padding:10px 30px 30px 30px;
- background:transparent url(<?php echo $vars['url']; ?>_graphics/spacer.gif);
-}
-/* Position the first sub level beneath the top level links */
-#topbardropdownmenu > li:hover > ul {
- left:-30px;
- top:16px;
-}
-#topbardropdownmenu li a:active, #topbardropdownmenu li a:focus {
- background:#4690d6;
- color:white;
-}
-#topbardropdownmenu li.drop {
- background: url(<?php echo $vars['url']; ?>_graphics/toolbar_arrow.png) no-repeat right 9px;
-}
-/* dropdown list links hover */
-#topbardropdownmenu li.drop ul li a:hover {
- color:white !important;
- background: #4690d6 !important;
- border-left:1px solid #99ccff;
- border-top:1px solid #99ccff;
-}
-/* IE6 ONLY - make the sublevels appear */
-* html #topbardropdownmenu li ul {visibility:hidden; display:block; position:absolute; top:-11px; left:80px; padding:10px 30px 30px 30px; background:transparent url(<?php echo $vars['url']; ?>_graphics/spacer.gif);}
-#topbardropdownmenu li a:hover ul {visibility:visible; left:-30px; top:14px; lef\t:-31px; to\p:15px;}
-#topbardropdownmenu table {position:absolute; border-collapse:collapse; top:0; left:0; z-index:99999; font-size:1em;}
-* html #topbardropdownmenu li.drop {background: url(<?php echo $vars['url']; ?>_graphics/toolbar_arrow_ie.gif) no-repeat right 9px;}
-* html #topbardropdownmenu li a:hover {position:relative; background:#4690d6 url(<?php echo $vars['url']; ?>_graphics/toolbar_arrow_ie.gif) no-repeat right -18px;}
-
-
-/* ***************************************
- SYSTEM MESSSAGES
-*************************************** */
-.messages {
- background:#ccffcc;
- color:#000000;
- padding:3px 10px 3px 10px;
- z-index: 9999;
- margin:0;
- position:fixed;
- top:30px;
- width:969px;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- border:4px solid #00CC00;
- cursor: pointer;
-}
-.messages_error {
- border:4px solid #D3322A;
- background:#F7DAD8;
- color:#000000;
- padding:3px 10px 3px 10px;
- z-index: 9999;
- margin:0;
- position:fixed;
- top:30px;
- width:969px;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- cursor: pointer;
-}
-.closeMessages {
- float:right;
- margin-top:17px;
-}
-.closeMessages a {
- color:#666666;
- cursor: pointer;
- text-decoration: none;
- font-size: 80%;
-}
-.closeMessages a:hover {
- color:black;
-}
-
-
-/* ***************************************
- COLLAPSABLE BOXES
-*************************************** */
-.collapsable_box {
- margin: 0 0 20px 0;
- height:auto;
-}
-/* IE6 fix */
-* html .collapsable_box {
- height:10px;
-}
-.collapsable_box_header {
- color: #4690d6;
- background: #f5f5f5;
- border-top:2px solid #4690d6;
- padding: 5px 10px 5px 10px;
- margin:0;
- border-left: 1px solid #cccccc;
- border-right: 1px solid #cccccc;
- border-bottom: 1px solid #cccccc;
-}
-.collapsable_box_header h1 {
- color: #0054a7;
- font-size:1.25em;
- line-height: 1.2em;
-}
-.collapsable_box_content {
- padding: 10px;
- margin:0;
- height:auto;
- background: white;
- border-left: 1px solid #cccccc;
- border-right: 1px solid #cccccc;
- border-bottom: 1px solid #cccccc;
-}
-.collapsable_box_editpanel {
- display: none;
- background: #dedede;
- padding:5px 10px 5px 10px;
-}
-.collapsable_box_header a.toggle_box_contents {
- color: #4690d6;
- cursor:pointer;
- font-family: Arial, Helvetica, sans-serif;
- font-size:20px;
- font-weight: bold;
- text-decoration:none;
- float:right;
- margin: 0;
- margin-top: -7px;
-}
-.collapsable_box_header a.toggle_box_edit_panel {
- color: #4690d6;
- cursor:pointer;
- font-size:9px;
- text-transform: uppercase;
- text-decoration:none;
- font-weight: normal;
- float:right;
- margin: 3px 10px 0 0;
-}
-.collapsable_box_editpanel label {
- font-weight: normal;
- font-size: 100%;
-}
-/* used for collapsing a content box */
-.display_none {
- display:none;
-}
-/* used on spotlight box - to cancel default box margin */
-.no_space_after {
- margin: 0 0 0 0;
-}
-
-
-
-/* ***************************************
- GENERAL FORM ELEMENTS
-*************************************** */
-label {
- font-weight: bold;
- color:#333333;
- font-size: 140%;
-}
-input {
- font: 120% Arial, Helvetica, sans-serif;
- padding: 5px;
- border: 1px solid #cccccc;
- color:#666666;
-}
-textarea {
- font: 120% Arial, Helvetica, sans-serif;
- border: solid 1px #cccccc;
- padding: 5px;
- color:#666666;
-}
-textarea:focus, input[type="text"]:focus {
- border: solid 1px #4690d6;
- background: #e4ecf5;
- color:#333333;
-}
-.submit_button {
- font: 12px/100% Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: #ffffff;
- background:#4690d6;
- border: 1px solid #4690d6;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- width: auto;
- height: 25px;
- padding: 2px 6px 2px 6px;
- margin:10px 0 10px 0;
- cursor: pointer;
-}
-.submit_button:hover, input[type="submit"]:hover {
- background: #0054a7;
-}
-
-input[type="submit"] {
- font: 12px/100% Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: #ffffff;
- background:#4690d6;
- border: 1px solid #4690d6;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- width: auto;
- height: 25px;
- padding: 2px 6px 2px 6px;
- margin:10px 0 10px 0;
- cursor: pointer;
-}
-.cancel_button {
- font: 12px/100% Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: #999999;
- background:#dddddd;
- border: 1px solid #999999;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- width: auto;
- height: 25px;
- padding: 2px 6px 2px 6px;
- margin:10px 0 10px 10px;
- cursor: pointer;
-}
-.cancel_button:hover {
- background: #cccccc;
-}
-
-.input-text,
-.input-tags,
-.input-url,
-.input-textarea {
- width:98%;
-}
-
-.input-textarea {
- height: 200px;
-}
-
-
-/* ***************************************
- LOGIN / REGISTER
-*************************************** */
-#login-box {
- margin: 10px;
- text-align:left;
- padding:10px;
- background: #ffffff;
-}
-#login-box .login-textarea {
- width:155px;
-}
-#login-box label,
-#register-box label {
- font-size: 1.2em;
- color:gray;
-}
-#login-box p.loginbox {
- margin:10px 0 0 0;
-}
-#login-box input[type="text"],
-#login-box input[type="password"],
-#register-box input[type="text"],
-#register-box input[type="password"] {
- margin:0 0 10px 0;
-}
-#login-box-openid {
- margin: 10px;
- text-align:left;
- padding:10px;
- background: #ffffff;
-}
-#login-box h2,
-#login-box-openid h2,
-#register-box h2,
-#add-box h2 {
- background:#F5F5F5;
- border-top:2px solid #4690D6;
- color:#0054A7;
- font-size:1.35em;
- line-height:1.2em;
- margin:0pt 0pt 5px;
- padding:5px;
-}
-#register-box {
- text-align:left;
- border:1px solid #ddd;
- width:400px;
- padding:20px;
- background: #ffffff;
- margin:20px;
-}
-#persistent_login label {
- font-size:1.0em;
- font-weight: normal;
-}
-
-/* ***************************************
- PROFILE
-*************************************** */
-#profile_info {
- margin:20px 0px 0 20px;
- padding:20px;
- border-bottom:1px solid #cccccc;
- border-right:1px solid #cccccc;
- background: white;
-}
-#profile_info_column_left {
- float:left;
- padding: 0;
- margin:0 20px 0 0;
-}
-#profile_info_column_middle {
- float:left;
- width:368px;
- padding: 0;
-}
-#profile_info_column_right {
- width:590px;
- margin:0 0 0 0;
- padding: 0;
-}
-#dashboard_info {
- margin:20px 0px 0 20px;
- padding:20px;
- border-bottom:1px solid #cccccc;
- border-right:1px solid #cccccc;
- background: white;
-}
-#profile_menu_wrapper {
- margin:10px 0 10px 0;
- width:200px;
-}
-#profile_menu_wrapper p {
- border-bottom:1px solid #cccccc;
-}
-#profile_menu_wrapper p:first-child {
- border-top:1px solid #cccccc;
-}
-#profile_menu_wrapper a {
- display:block;
- padding:0 0 0 3px;
-}
-#profile_menu_wrapper a:hover {
- color:#ffffff;
- background:#4690d6;
- text-decoration:none;
-}
-p.user_menu_friends, p.user_menu_profile,
-p.user_menu_removefriend,
-p.user_menu_friends_of {
- margin:0;
-}
-#profile_menu_wrapper .user_menu_admin {
- border-top:none;
-}
-
-#profile_info_column_middle p {
- margin:7px 0 7px 0;
- padding:2px 4px 2px 4px;
-}
-/* profile owner name */
-#profile_info_column_middle h2 {
- padding:0 0 14px 0;
- margin:0;
-}
-#profile_info_column_middle .odd {
- background:#f5f5f5;
-}
-#profile_info_column_right p {
- margin:0 0 7px 0;
-}
-#profile_info_column_right .profile_aboutme_title {
- margin:0;
- padding:0;
- line-height:1em;
-}
-/* edit profile button */
-.profile_info_edit_buttons {
- float:right;
- margin:0 !important;
- padding:0 !important;
- font-size: 90%;
-}
-
-/* ***************************************
- RIVER
-*************************************** */
-.activity_item p {
- margin:0;
- padding:2px 0 0 0;
- line-height:1.1em;
- min-height:17px;
-}
-.activity_item .activity_item_time {
- font-size:90%;
- color:#666666;
-}
-#river {
- border-top:1px solid #dddddd;
-}
-.river_item p {
- margin:0;
- padding:2px 0 0 20px;
- line-height:1.1em;
- min-height:17px;
-}
-.river_item {
- border-bottom:1px solid #dddddd;
- padding:2px 0 2px 0;
-}
-.river_item_time {
- font-size:90%;
- color:#666666;
-}
-/* IE6 fix */
-* html .river_item p {
- padding:3px 0 3px 20px;
-}
-/* IE7 */
-*:first-child+html .river_item p {
- min-height:17px;
-}
-.river_user_update {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_profile.gif) no-repeat left -1px;
-}
-.river_user_profileupdate {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_profile.gif) no-repeat left -1px;
-}
-.river_user_profileiconupdate {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_profile.gif) no-repeat left -1px;
-}
-.river_annotate {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_comment.gif) no-repeat left -1px;
-}
-.river_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/dummy_river_icon.gif) no-repeat left -1px;
-}
-.river_bookmarks_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_bookmarks.gif) no-repeat left -1px;
-}
-.river_status_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_status.gif) no-repeat left -1px;
-}
-.river_file_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_files.gif) no-repeat left -1px;
-}
-.river_widget_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_plugin.gif) no-repeat left -1px;
-}
-.river_forums_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_forum.gif) no-repeat left -1px;
-}
-.river_forums_update {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_forum.gif) no-repeat left -1px;
-}
-.river_widget_update {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_plugin.gif) no-repeat left -1px;
-}
-.river_blog_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_blog.gif) no-repeat left -1px;
-}
-.river_blog_update {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_blog.gif) no-repeat left -1px;
-}
-.river_forumtopic_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_forum.gif) no-repeat left -1px;
-}
-.river_relationship_friend_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_friends.gif) no-repeat left -1px;
-}
-.river_relationship_member_create {
- background: url(<?php echo $vars['url']; ?>_graphics/river_icons/river_icon_forum.gif) no-repeat left -1px;
-}
-
-/* ***************************************
- SEARCH LISTINGS
-*************************************** */
-.search_listing {
- display: block;
- background-color: #eee;
- padding: 5px;
- margin-bottom: 10px;
-}
-.search_listing_icon {
- float:left;
-}
-.search_listing_icon img {
- width: 40px;
-}
-.search_listing_icon .avatar_menu_button img {
- width: 15px;
-}
-.search_listing_info {
- margin-left: 50px;
- min-height: 40px;
-}
-/* IE 6 fix */
-* html .search_listing_info {
- height:40px;
-}
-.search_listing_info p {
- margin:0 0 3px 0;
- line-height:1.2em;
-}
-.search_listing_info p.owner_timestamp {
- margin:0;
- padding:0;
- color:#666666;
- font-size: 90%;
-}
-table.search_gallery {
- border-spacing: 5px;
- margin:0 0 20px 0;
- background: #f5f5f5;
-}
-.search_gallery td {
- padding: 5px;
-}
-.search_gallery_item {
- border:1px dotted silver;
- background-color: white;
-}
-.search_gallery_item:hover {
- border:1px dotted black;
-}
-.search_gallery_item .search_listing {
- background: none;
- text-align: center;
-}
-.search_gallery_item .search_listing_header {
- text-align: center;
-}
-.search_gallery_item .search_listing_icon {
- position: relative;
- text-align: center;
-}
-.search_gallery_item .search_listing_info {
- margin: 5px;
-}
-.search_gallery_item .search_listing_info p {
- margin: 5px;
- margin-bottom: 10px;
-}
-.search_gallery_item .search_listing {
- background: none;
- text-align: center;
-}
-.search_gallery_item .search_listing_icon {
- position: absolute;
- margin-bottom: 20px;
-}
-.search_gallery_item .search_listing_info {
- margin: 5px;
-}
-.search_gallery_item .search_listing_info p {
- margin: 5px;
- margin-bottom: 10px;
-}
-
-
-/* ***************************************
- FRIENDS
-*************************************** */
-/* friends widget */
-#widget_friends_list {
- display:table;
- width:100%;
-}
-.widget_friends_singlefriend {
- float:left;
- margin:0 5px 5px 0;
-}
-
-
-/* ***************************************
- ADMIN AREA - PLUGIN SETTINGS
-*************************************** */
-.plugin_details {
- margin:0 0 10px 0;
- padding:5px 10px 5px 10px;
-}
-.admin_plugin_reorder {
- float:right;
- width:200px;
- text-align: right;
-}
-.admin_plugin_reorder a {
- padding-left:10px;
-}
-.active {
- border:1px solid #00cc00;
- background:#ccffcc;
-}
-.not-active {
- border:1px solid #D3322A;
- background:#F7DAD8;
-}
-.plugin_details p {
- margin:0;
- padding:4px 0 0 0;
-}
-.plugin_details a.manifest_details {
- cursor:pointer;
- font-size:80%;
-}
-.not-active .admin_plugin_enable_disable a {
- float:right;
- font: 12px/100% Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: #ffffff;
- background:#4690d6;
- border: 1px solid #4690d6;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- width: auto;
- padding: 4px;
- margin:5px 0 0 0;
- cursor: pointer;
-}
-.not-active .admin_plugin_enable_disable a:hover {
- background: #0054a7;
-}
-.active .admin_plugin_enable_disable a {
- float:right;
- font: 12px/100% Arial, Helvetica, sans-serif;
- font-weight: bold;
- color: #ffffff;
- background:#999999;
- border: 1px solid #999999;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- width: auto;
- padding: 4px;
- margin:5px 0 0 0;
- cursor: pointer;
-}
-.active .admin_plugin_enable_disable a:hover {
- background: #333333;
-}
-.pluginsettings {
- margin:20px 0 0 0;
-}
-.pluginsettings h3 {
- padding:0 0 5px 0;
- margin:0 0 5px 0;
- border-bottom:1px solid #999999;
-}
-#updateclient_settings h3 {
- padding:0;
- margin:0;
- border:none;
-}
-.input-access {
- margin:5px 0 0 0;
-}
-
-/* ***************************************
- GENERIC COMMENTS
-*************************************** */
-.generic_comment_owner {
- font-size: 90%;
- color:#666666;
-}
-.generic_comment {
- margin-bottom: 10px;
- padding-bottom: 10px;
-}
-.generic_comment_icon {
- float:left;
-}
-.generic_comment_details {
- margin-left: 60px;
- border-bottom: 1px solid #aaaaaa;
-}
-.generic_comment_owner {
- color:#666666;
- margin: 0px;
- font-size:90%;
-}
-
-
-/* ***************************************
- PAGE-OWNER BLOCK
-*************************************** */
-#owner_block {
- background: url(<?php echo $vars['url']; ?>_graphics/owner_block_back.jpg) no-repeat left top;
- padding:10px;
- border-bottom:1px dashed #cccccc;
-}
-#owner_block_icon {
- float:left;
- margin:0 10px 0 0;
-}
-#owner_block_rss_feed,
-#owner_block_odd_feed,
-#owner_block_bookmark_this,
-#owner_block_report_this {
- padding:2px 0 3px 0;
-}
-#owner_block_report_this {
- border-bottom:1px solid #cccccc;
-}
-#owner_block_rss_feed a {
- font-size: 90%;
- color:#999999;
- padding:0 0 4px 20px;
- background: url(<?php echo $vars['url']; ?>_graphics/icon_rss.gif) no-repeat left top;
-}
-#owner_block_odd_feed a {
- font-size: 90%;
- color:#999999;
- padding:0 0 4px 20px;
- background: url(<?php echo $vars['url']; ?>_graphics/icon_odd.gif) no-repeat left top;
-}
-#owner_block_bookmark_this a {
- font-size: 90%;
- color:#999999;
- padding:0 0 4px 20px;
- background: url(<?php echo $vars['url']; ?>_graphics/icon_bookmarkthis.gif) no-repeat left top;
-}
-#owner_block_report_this a {
- font-size: 90%;
- color:#999999;
- padding:0 0 4px 20px;
- background: url(<?php echo $vars['url']; ?>_graphics/icon_reportthis.gif) no-repeat left top;
-}
-#owner_block_rss_feed a:hover,
-#owner_block_odd_feed a:hover,
-#owner_block_bookmark_this a:hover,
-#owner_block_report_this a:hover {
- color: #0054a7;
-}
-#owner_block_desc {
- padding:4px 0 4px 0;
- margin:0 0 0 0;
- line-height: 1.2em;
- border-bottom:1px solid #cccccc;
- color:#666666;
-}
-#owner_block_content {
- margin:0 0 4px 0;
- padding:3px 0 0 0;
- min-height:35px;
- font-weight: bold;
-}
-.ownerblockline {
- padding:0;
- margin:0;
- border-bottom:1px solid #cccccc;
- height:1px;
-}
-#owner_block_submenu {
- margin:20px 0 20px 0;
- padding: 0;
- width:100%;
-}
-#owner_block_submenu ul {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-#owner_block_submenu ul li.selected a {
- background: url(<?php echo $vars['url']; ?>_graphics/owner_block_menu_arrow.gif) no-repeat left 6px;
- padding-left:10px;
-}
-#owner_block_submenu ul li a {
- text-decoration: none;
- display: block;
- padding: 0;
- margin: 0;
- color:#4690d6;
- padding:4px 6px 4px 10px;
- border-top: 1px solid #cccccc;
- font-weight: bold;
- line-height: 1.1em;
-}
-#owner_block_submenu ul li a:hover {
- color:white;
- background: #4690d6;
-}
-
-/* IE 6 + 7 menu arrow position fix */
-* html #owner_block_submenu ul li.selected a {
- background-position: left 10px;
-}
-*:first-child+html #owner_block_submenu ul li.selected a {
- background-position: left 8px;
-}
-
-#owner_block_submenu .submenu_group {
- border-bottom: 1px solid #cccccc;
- margin:22px 0 0 0;
-}
-
-/* filetypes filter menu */
-#owner_block_submenu .submenu_group .submenu_group_filetypes ul li a {
- color:#666666;
-}
-#owner_block_submenu .submenu_group .submenu_group_filetypes ul li.selected a {
- background: url(<?php echo $vars['url']; ?>_graphics/owner_block_menu_dot.gif) no-repeat left 7px;
-}
-#owner_block_submenu .submenu_group .submenu_group_filetypes ul li a:hover {
- color:white;
- background: #999999;
-}
-
-/* pages actions menu */
-#owner_block_submenu .submenu_group .submenu_group_pagesactions ul li a {
- color:#666666;
-}
-#owner_block_submenu .submenu_group .submenu_group_pagesactions ul li.selected a {
- background: url(<?php echo $vars['url']; ?>_graphics/owner_block_menu_dot.gif) no-repeat left 7px;
-}
-#owner_block_submenu .submenu_group .submenu_group_pagesactions ul li a:hover {
- color:white;
- background: #999999;
-}
-
-
-/* ***************************************
- PAGINATION
-*************************************** */
-.pagination {
- margin:10px 0 20px 0;
-}
-.pagination .pagination_number {
- display:block;
- float:left;
- background:#ffffff;
- border:1px solid #4690d6;
- text-align: center;
- color:#4690d6;
- font-size: 12px;
- font-weight: normal;
- margin:0 6px 0 0;
- padding:0px 4px;
- cursor: pointer;
-}
-.pagination .pagination_number:hover {
- background:#4690d6;
- color:white;
- text-decoration: none;
-}
-.pagination .pagination_more {
- display:block;
- float:left;
- background:#ffffff;
- border:1px solid #ffffff;
- text-align: center;
- color:#4690d6;
- font-size: 12px;
- font-weight: normal;
- margin:0 6px 0 0;
- padding:0px 4px;
-}
-.pagination .pagination_previous,
-.pagination .pagination_next {
- display:block;
- float:left;
- border:1px solid #4690d6;
- color:#4690d6;
- text-align: center;
- font-size: 12px;
- font-weight: normal;
- margin:0 6px 0 0;
- padding:0px 4px;
- cursor: pointer;
-}
-.pagination .pagination_previous:hover,
-.pagination .pagination_next:hover {
- background:#4690d6;
- color:white;
- text-decoration: none;
-}
-.pagination .pagination_currentpage {
- display:block;
- float:left;
- background:#4690d6;
- border:1px solid #4690d6;
- text-align: center;
- color:white;
- font-size: 12px;
- font-weight: bold;
- margin:0 6px 0 0;
- padding:0px 4px;
- cursor: pointer;
-}
-
-
-/* ***************************************
- FRIENDS COLLECTIONS ACCORDIAN
-*************************************** */
-ul#friends_collections_accordian {
- margin: 0 0 0 0;
- padding: 0;
- border-bottom:1px solid #cccccc;
-}
-#friends_collections_accordian li {
- margin: 0 0 0 0;
- padding: 0;
- list-style-type: none;
- color: #666666;
-}
-#friends_collections_accordian li h2 {
- background:#efefef;
- color: #999999;
- padding:4px 2px 4px 6px;
- margin:0;
- border-top:1px solid #cccccc;
- font-size:1.2em;
- cursor:pointer;
-}
-#friends_collections_accordian li h2:hover {
- background:#4690D6;
- color:white;
-}
-#friends_collections_accordian .friends_picker {
- background:white;
- padding:0;
- display:none;
-}
-#friends_collections_accordian .friends_collections_controls {
- font-size:70%;
- float:right;
-}
-#friends_collections_accordian .friends_collections_controls a {
- color:#999999;
- font-weight:normal;
-}
-div.expandall {
- margin: 20px 0 0 0;
- padding:0;
-}
-div.expandall p {
- cursor:pointer;
- color:#999999;
- text-align:right;
- margin: 0;
- padding:0;
-}
-
-
-/* ***************************************
- FRIENDS PICKER SLIDER
-*************************************** */
-.friendsPicker_container h3 { font-size:3em; text-align: left; margin:0 0 20px 0; color:#999999; }
-
-.friendsPicker .friendsPicker_container .panel ul {
- text-align: left;
- margin: 0;
- padding:0;
-}
-.friendsPicker_wrapper {
- margin: 0;
- padding:0;
- position: relative;
- width: 100%;
-}
-.friendsPicker {
- position: relative;
- overflow: hidden;
- margin: 0;
- padding:0;
- width: 685px;
- height: 300px;
- background: white;
-}
-.friendsPicker .friendsPicker_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;
-}
-.friendsPicker .friendsPicker_container .panel {
- float:left;
- height: 100%;
- position: relative;
- width: 685px;
- margin: 0;
- padding:0;
-}
-.friendsPicker .friendsPicker_container .panel .wrapper {
- margin: 0;
- padding: 10px;
- background: #efefef;
- min-height: 230px;
-}
-.friendsPickerNavigation {
- margin: 0 0 10px 0;
- padding:0;
-}
-.friendsPickerNavigation ul {
- list-style: none;
- padding-left: 0;
-}
-.friendsPickerNavigation ul li {
- float: left;
- margin:0;
- background:white;
-}
-.friendsPickerNavigation a {
- font-weight: bold;
- text-align: center;
- background: white;
- color: #999999;
- text-decoration: none;
- display: block;
- padding: 0;
- width:20px;
-}
-.tabHasContent {
- background: white; color:#333333 !important;
-}
-.friendsPickerNavigation li a:hover {
- background: #333333;
- color:white !important;
-}
-.friendsPickerNavigation li a.current {
- background: #4690D6;
- color:white !important;
-}
-.friendsPickerNavigationAll {
- margin:0px 0 0 20px;
- float:left;
-}
-.friendsPickerNavigationAll a {
- font-weight: bold;
- text-align: left;
- font-size:0.8em;
- background: white;
- color: #999999;
- text-decoration: none;
- display: block;
- padding: 0 4px 0 4px;
- width:auto;
-}
-.friendsPickerNavigationAll a:hover {
- background: #4690D6;
- color:white;
-}
-.friendsPickerNavigationL, .friendsPickerNavigationR {
- position: absolute;
- top: 46px;
- text-indent: -9000em;
-}
-.friendsPickerNavigationL a, .friendsPickerNavigationR a {
- display: block;
- height: 43px;
- width: 43px;
-}
-.friendsPickerNavigationL {
- right: 58px;
- z-index:1;
-}
-.friendsPickerNavigationR {
- right: 10px;
- z-index:1;
-}
-.friendsPickerNavigationL {
- background: url("<?php echo $vars['url']; ?>_graphics/friends_picker_arrows.gif") no-repeat left top;
-}
-.friendsPickerNavigationR {
- background: url("<?php echo $vars['url']; ?>_graphics/friends_picker_arrows.gif") no-repeat -60px top;
-}
-.friendsPickerNavigationL:hover {
- background: url("<?php echo $vars['url']; ?>_graphics/friends_picker_arrows.gif") no-repeat left -44px;
-}
-.friendsPickerNavigationR:hover {
- background: url("<?php echo $vars['url']; ?>_graphics/friends_picker_arrows.gif") no-repeat -60px -44px;
-}
-.friends_collections_controls a.delete_collection {
- display:block;
- cursor: pointer;
- width:14px;
- height:14px;
- margin:0 3px 0 0;
- background: url("<?php echo $vars['url']; ?>_graphics/icon_customise_remove.png") no-repeat 0 0;
-}
-.friends_collections_controls a.delete_collection:hover {
- background-position: 0 -16px;
-}
-
-/* picker tabbed navigation */
-#friendsPickerNavigationTabs {
- margin:10px 0 10px 0;
- padding: 0;
- border-bottom: 1px solid #cccccc;
- display:table;
- width:100%;
-}
-#friendsPickerNavigationTabs ul {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-#friendsPickerNavigationTabs li {
- float: left;
- border: 1px solid #ffffff;
- border-bottom-width: 0;
- margin: 0;
-}
-#friendsPickerNavigationTabs a {
- text-decoration: none;
- display: block;
- padding: 0.22em 1em;
- color: #666666;
- text-align: center;
-}
-#friendsPickerNavigationTabs a:hover {
- color: #4690d6;
-}
-#friendsPickerNavigationTabs .selected {
- border-color: #cccccc;
-}
-#friendsPickerNavigationTabs .selected a {
- position: relative;
- top: 1px;
- background: white;
- color: #4690d6;
-}
-
-
-
-/* ***************************************
- WIDGET PICKER (PROFILE & DASHBOARD)
-*************************************** */
-/* 'edit page' button */
-a.toggle_customise_edit_panel {
- float:right;
- clear:right;
- color: #4690d6;
- background: white;
- border:1px solid #cccccc;
- padding: 5px 10px 5px 10px;
- margin:20px 20px 0px 20px;
- width:284px;
- text-align: left;
-}
-a.toggle_customise_edit_panel:hover {
- color: #ffffff;
- background: #0054a7;
- text-decoration:none;
-}
-#customise_editpanel {
- display:none;
- margin: 0;
- padding:20px;
- background: #dedede;
-}
-
-/* Top area - instructions */
-.customise_editpanel_instructions {
- width:690px;
- padding:0 0 10px 0;
-}
-.customise_editpanel_instructions h2 {
- padding:0 0 10px 0;
-}
-.customise_editpanel_instructions p {
- margin:0 0 5px 0;
- line-height: 1.4em;
-}
-
-/* RHS (widget gallery area) */
-#customise_editpanel_rhs {
- float:right;
- width:230px;
- background:white;
-}
-#customise_editpanel #customise_editpanel_rhs h2 {
- color:#333333;
- font-size: 1.4em;
- margin:0;
- padding:6px;
-}
-#widget_picker_gallery {
- border-top:1px solid #cccccc;
- background:white;
- width:210px;
- height:340px;
- padding:10px;
- overflow:scroll;
- overflow-x:hidden;
-}
-
-/* main page widget area */
-#customise_page_view {
- width:656px;
- padding:10px;
- margin:0 0 10px 0;
- background:white;
-}
-#customise_page_view h2 {
- border-top:1px solid #cccccc;
- border-right:1px solid #cccccc;
- border-left:1px solid #cccccc;
- margin:0;
- padding:5px;
- width:200px;
- color: #0054a7;
- background: #f5f5f5;
- font-size:1.25em;
- line-height: 1.2em;
-}
-#profile_box_widgets {
- width:422px;
- margin:0 10px 10px 0;
- padding:5px 5px 0px 5px;
- min-height: 50px;
- border:1px solid #cccccc;
- background: #f5f5f5;
-}
-#customise_page_view h2.profile_box {
- width:422px;
- color: #999999;
-}
-#profile_box_widgets p {
- color:#999999;
-}
-#leftcolumn_widgets {
- width:200px;
- margin:0 10px 0 0;
- padding:5px 5px 40px 5px;
- min-height: 190px;
- border:1px solid #cccccc;
-}
-#middlecolumn_widgets {
- width:200px;
- margin:0 10px 0 0;
- padding:5px 5px 40px 5px;
- min-height: 190px;
- border:1px solid #cccccc;
-}
-#rightcolumn_widgets {
- width:200px;
- margin:0;
- padding:5px 5px 40px 5px;
- min-height: 190px;
- border:1px solid #cccccc;
-}
-#rightcolumn_widgets.long {
- min-height: 288px;
-}
-/* IE6 fix */
-* html #leftcolumn_widgets {
- height: 190px;
-}
-* html #middlecolumn_widgets {
- height: 190px;
-}
-* html #rightcolumn_widgets {
- height: 190px;
-}
-* html #rightcolumn_widgets.long {
- height: 338px;
-}
-
-#customise_editpanel table.draggable_widget {
- width:200px;
- background: #cccccc;
- margin: 10px 0 0 0;
- vertical-align:text-top;
- border:1px solid #cccccc;
-}
-#widget_picker_gallery table.draggable_widget {
- width:200px;
- background: #cccccc;
- margin: 10px 0 0 0;
-}
-
-/* take care of long widget names */
-#customise_editpanel table.draggable_widget h3 {
- word-wrap:break-word;/* safari, webkit, ie */
- width:140px;
- line-height: 1.1em;
- overflow: hidden;/* ff */
- padding:4px;
-}
-#widget_picker_gallery table.draggable_widget h3 {
- word-wrap:break-word;
- width:145px;
- line-height: 1.1em;
- overflow: hidden;
- padding:4px;
-}
-#customise_editpanel img.more_info {
- background: url(<?php echo $vars['url']; ?>_graphics/icon_customise_info.gif) no-repeat top left;
- cursor:pointer;
-}
-#customise_editpanel img.drag_handle {
- background: url(<?php echo $vars['url']; ?>_graphics/icon_customise_drag.gif) no-repeat top left;
- cursor:move;
-}
-#customise_editpanel img {
- margin-top:4px;
-}
-#widget_moreinfo {
- position:absolute;
- border:1px solid #333333;
- background:#e4ecf5;
- color:#333333;
- padding:5px;
- display:none;
- width: 200px;
- line-height: 1.2em;
-}
-/* droppable area hover class */
-.droppable-hover {
- background:#fdffc3;
-}
-/* target drop area class */
-.placeholder {
- border:2px dashed #AAA;
- width:196px !important;
- margin: 10px 0 10px 0;
-}
-/* class of widget while dragging */
-.ui-sortable-helper {
- background: #4690d6;
- color:white;
- padding: 4px;
- margin: 10px 0 0 0;
- width:200px;
-}
-/* IE6 fix */
-* html .placeholder {
- margin: 0;
-}
-/* IE7 */
-*:first-child+html .placeholder {
- margin: 0;
-}
-/* IE6 fix */
-* html .ui-sortable-helper h3 {
- padding: 4px;
-}
-* html .ui-sortable-helper img.drag_handle, * html .ui-sortable-helper img.remove_me, * html .ui-sortable-helper img.more_info {
- padding-top: 4px;
-}
-/* IE7 */
-*:first-child+html .ui-sortable-helper h3 {
- padding: 4px;
-}
-*:first-child+html .ui-sortable-helper img.drag_handle, *:first-child+html .ui-sortable-helper img.remove_me, *:first-child+html .ui-sortable-helper img.more_info {
- padding-top: 4px;
-}
-
-
-/* ***************************************
- BREADCRUMBS
-*************************************** */
-#pages_breadcrumbs {
- font-size: 80%;
- color:#999999;
- padding:0;
- margin:0 0 10px 0;
-}
-#pages_breadcrumbs a {
- color:#999999;
- text-decoration: none;
-}
-#pages_breadcrumbs a:hover {
- color: #0054a7;
- text-decoration: underline;
-}
-
-
-/* ***************************************
- MISC.
-*************************************** */
-/* general page titles in main content area */
-#content_area_user_title h2 {
- background:#F5F5F5;
- border-top:2px solid #4690D6;
- margin:0 0 5px 0;
- padding:5px;
- color:#0054A7;
- font-size:1.35em;
- line-height:1.2em;
-}
-#sidebar_page_tree {
- margin:10px;
-}
-#sidebar_page_tree h3 {
- background:#F5F5F5;
- border-top:2px solid #4690D6;
- margin:0 0 5px 0;
- padding:5px;
- color:#0054A7;
- font-size:1.25em;
- line-height:1.2em;
-}
-
-/* tag icon */
-.object_tag_string {
- background: url(<?php echo $vars['url']; ?>_graphics/icon_tag.gif) no-repeat left 2px;
- padding:0 0 0 14px;
- margin:0;
-}
-
-/* profile picture upload n crop page */
-#profile_picture_form {
- height:145px;
-}
-#current_user_avatar {
- float:left;
- width:160px;
- height:130px;
- border-right:1px solid #cccccc;
- margin:0 20px 0 0;
-}
-#profile_picture_croppingtool {
- border-top: 1px solid #cccccc;
- margin:20px 0 0 0;
- padding:10px 0 0 0;
-}
-#profile_picture_croppingtool #user_avatar {
- float: left;
- margin-right: 20px;
-}
-#profile_picture_croppingtool #applycropping {
-
-}
-#profile_picture_croppingtool #user_avatar_preview {
- float: left;
- position: relative;
- overflow: hidden;
- width: 100px;
- height: 100px;
-}
-
-
-/* ***************************************
- SETTINGS & ADMIN
-*************************************** */
-.settings_form h3,
-.usersettings_statistics h3,
-.admin_statistics h3,
-.admin_users_online h3 {
- background:#e4e4e4;
- border-bottom:1px solid #d0d0d0;
- color:#666666;
- font-size:1.1em;
- line-height:1em;
- margin:30px 0 10px 0;
- padding:5px;
-}
-.settings_form label,
-.admin_debug label,
-.admin_usage label {
- color:#333333;
- font-size:100%;
- font-weight:normal;
-}
-.settings_form {
- border-bottom:1px solid #cccccc;
- padding:0 0 20px 0;
-}
-.admin_usage {
- border-bottom:1px solid #cccccc;
- padding:0 0 20px 0;
-}
-
-.usersettings_statistics .odd,
-.admin_statistics .odd {
- background:#f5f5f5;
-}
-.usersettings_statistics .even,
-.admin_statistics .even {
- background:#ffffff;
-}
-.usersettings_statistics td,
-.admin_statistics td {
- padding:2px 4px 2px 4px;
-}
-.usersettings_statistics td.column_one,
-.admin_statistics td.column_one {
- width:200px;
-}
-
-/* add user pane on user admin */
-#add_user_showhide #add-box {
- padding:20px;
- background: #dedede;
-}
-.admin_adduser_link {
- margin:0 0 20px 0;
-}
-#search-box {
- margin:0 0 20px 0;
-}
-
-.manifest_file {
- display:none;
-}
-
-/* force tinyMCE editor initial width for safari */
-.mceLayout {
- width:683px;
-}
-
-div.ajax_loader {
- background: url(<?php echo $vars['url']; ?>_graphics/ajax_loader.gif) no-repeat top center;
- width:100%;
- height:33px;
-}
+/**
+ *
+ * This is a deprecated CSS view used in Elgg 1.0-1.7.
+ * Please use the view 'css/elgg' now.
+ *
+ */
diff --git a/views/default/css/admin.php b/views/default/css/admin.php
new file mode 100644
index 000000000..c435621b2
--- /dev/null
+++ b/views/default/css/admin.php
@@ -0,0 +1,1677 @@
+<?php
+/**
+ * Elgg Admin CSS
+ *
+ * This is a distinct theme from the theme of the site. There are dependencies
+ * on the HTML created by the views in Elgg core.
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+
+?>
+
+/* ***************************************
+ RESET CSS
+*************************************** */
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-weight: inherit;
+ font-style: inherit;
+ font-size: 100%;
+ font-family: inherit;
+ vertical-align: baseline;
+}
+<?php // force vertical scroll bar ?>
+html, body {
+ height: 100%;
+ margin-bottom: 1px;
+}
+img {
+ border-width: 0;
+ border-color: transparent;
+}
+ol, ul {
+ list-style: none;
+}
+em, i {
+ font-style: italic;
+}
+ins {
+ text-decoration: none;
+}
+del {
+ text-decoration:line-through;
+}
+strong, b {
+ font-weight: bold;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+caption, th, td {
+ text-align: left;
+ font-weight: normal;
+ vertical-align: top;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: "";
+}
+blockquote, q {
+ quotes: "" "";
+}
+
+/* ***************************************
+ BASICS
+*************************************** */
+body {
+ background-color: #eee;
+ font-size: 80%;
+ line-height: 1.4em;
+ font-family: "Lucida Grande",Arial,Tahoma,Verdana,sans-serif;
+}
+h1, h2, h3, h4, h5, h6 {
+ font-weight: bold;
+ line-height: auto;
+ color: #666;
+}
+h1 { font-size: 1.8em; }
+h2 { font-size: 1.5em; line-height: 1.1em; }
+h3 { font-size: 1.2em; }
+h4 { font-size: 1.0em; }
+h5 { font-size: 0.9em; }
+h6 { font-size: 0.8em; }
+
+a {
+ color: #333;
+ text-decoration: none;
+}
+a:hover {
+ color: black;
+ text-decoration: underline;
+}
+pre, code {
+ 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;
+}
+p {
+ margin-bottom: 15px;
+}
+
+.clearfloat {
+ clear: both;
+}
+
+/* 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;
+}
+
+.elgg-body {
+ width: auto;
+ word-wrap: break-word;
+ overflow: hidden;
+}
+.elgg-body:after {
+ display: block;
+ 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 ";
+}
+
+/* ***************************************
+ PAGE WRAPPER
+*************************************** */
+.elgg-page > .elgg-inner {
+ margin: 0 auto;
+ padding: 20px 40px 0;
+ min-width: 800px;
+ max-width: 1600px;
+}
+
+/* ***************************************
+ HEADER
+*************************************** */
+.elgg-page-header {
+ background-color: #111;
+ border: 1px solid #999;
+ padding: 20px 20px;
+}
+.elgg-heading-site {
+ font-size: 1.8em;
+ float: left;
+}
+.elgg-heading-site a {
+ color: #ffffff;
+ text-decoration: none;
+}
+.elgg-heading-site a:hover {
+ color: white;
+ text-decoration: none;
+}
+.elgg-menu-user {
+ float: right;
+ margin-top: 5px;
+}
+.elgg-menu-user, .elgg-menu-user a {
+ color: #999999;
+}
+.elgg-menu-user a {
+ text-decoration: underline;
+}
+.elgg-menu-user a:hover {
+ color: white;
+}
+.elgg-menu-user li {
+ display: inline;
+}
+.elgg-menu-user li:after {
+ content: "|";
+ display: inline-block;
+ font-weight: normal;
+ margin-left: 8px;
+ margin-right: 4px;
+}
+.elgg-menu-user li:last-child:after {
+ content: "";
+}
+
+/* ***************************************
+ MESSAGES
+*************************************** */
+.elgg-page-messages {
+ padding: 20px 0 0;
+ width: 500px;
+ margin-bottom: -10px;
+}
+.elgg-system-messages p {
+ margin: 0;
+}
+.elgg-message {
+ padding: 10px;
+ margin-bottom: 10px;
+ 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 {
+ padding: 20px 0;
+}
+.elgg-main {
+ background-color: #fff;
+ border: 1px solid #ccc;
+ padding: 20px;
+ position: relative;
+ min-height: 400px;
+}
+.elgg-sidebar {
+ width: 210px;
+ float: right;
+ margin-left: 30px;
+}
+.elgg-main > .elgg-head {
+ margin-bottom: 10px;
+}
+.elgg-main h2 {
+ color: #333333;
+}
+
+/* ***************************************
+ FOOTER
+*************************************** */
+.elgg-page-footer {
+ background-color: #111;
+ border: 1px solid #999;
+ padding: 10px 20px;
+ margin-bottom: 10px;
+}
+.elgg-page-footer a {
+ color: #ddd;
+ font-weight: bold;
+ text-decoration: none;
+}
+.elgg-page-footer a:hover {
+ text-decoration: underline;
+}
+
+/* ***************************************
+ MODULES
+*************************************** */
+.elgg-module {
+ overflow: hidden;
+}
+.elgg-module-main {
+ 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: #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;
+}
+
+/* ***************************************
+ TABLE
+*************************************** */
+.elgg-table {
+ width: 100%;
+ border-top: 1px solid #ccc;
+}
+.elgg-table td, .elgg-table th {
+ background: white;
+ border: 1px solid #ccc;
+ padding: 4px 8px;
+ vertical-align: middle;
+}
+.elgg-table th {
+ background-color: #ddd;
+}
+.elgg-table .alt td {
+ background: #eee;
+}
+.elgg-table input[type=checkbox] {
+ margin-top: 3px;
+}
+
+.elgg-table-alt {
+ width: 100%;
+ border-top: 1px solid #ccc;
+}
+.elgg-table-alt th {
+ background-color: #eee;
+ font-weight: bold;
+}
+.elgg-table-alt td, th {
+ padding: 2px 4px;
+ border-bottom: 1px solid #ccc;
+}
+.elgg-table-alt td:first-child {
+ width: 200px;
+}
+.elgg-table-alt tr:hover {
+ background: #E4E4E4;
+}
+
+/* ***************************************
+ LISTS AND IMAGE BLOCK
+*************************************** */
+.elgg-image-block {
+ padding: 3px 0;
+}
+.elgg-image-block .elgg-image {
+ float: left;
+ margin-right: 5px;
+}
+.elgg-image-block .elgg-image-alt {
+ float: right;
+ margin-left: 5px;
+}
+.elgg-item {
+ margin: 3px;
+}
+.elgg-list-simple li {
+ margin-bottom: 5px;
+}
+.elgg-list-distinct {
+ border-top: 1px dotted #CCCCCC;
+ margin: 5px 0;
+ clear: both;
+}
+.elgg-list-distinct > li {
+ border-bottom: 1px dotted #CCCCCC;
+}
+
+/* ***************************************
+ FORMS AND INPUT
+*************************************** */
+label {
+ font-weight: bold;
+ color: #333333;
+ font-size: 110%;
+}
+fieldset > div {
+ margin-bottom: 15px;
+}
+fieldset > div:last-child {
+ margin-bottom: 0;
+}
+input {
+ font: 120% Arial, Helvetica, sans-serif;
+ padding: 5px;
+ border: 1px solid #ccc;
+ color: #666;
+
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ margin: 0;
+}
+
+/* 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;
+ text-decoration: none;
+
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+
+ width: auto;
+ padding: 2px 4px;
+ cursor: pointer;
+}
+a.elgg-button {
+ padding: 3px 6px;
+}
+
+.elgg-button + .elgg-button {
+ margin-left: 5px;
+}
+
+.elgg-button-submit,
+.elgg-button-action {
+ color: white;
+ 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-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
+*************************************** */
+.elgg-pagination {
+ margin: 10px 0;
+ display: block;
+ text-align: center;
+}
+.elgg-pagination li {
+ display: inline;
+ margin: 0 6px 0 0;
+ text-align: center;
+}
+.elgg-pagination a, .elgg-pagination span {
+ padding: 2px 6px;
+ color: #333;
+ border: 1px solid #333;
+ font-size: 12px;
+ text-decoration: none;
+}
+.elgg-pagination a:hover {
+ background: #333;
+ color: white;
+ text-decoration: none;
+}
+.elgg-pagination .elgg-state-disabled span {
+ color: #CCC;
+ border-color: #CCC;
+}
+.elgg-pagination .elgg-state-selected span {
+ color: #000;
+ border-color: #ccc;
+}
+
+/* ***************************************
+ TABS
+*************************************** */
+.elgg-tabs {
+ margin-bottom: 5px;
+ border-bottom: 1px solid #ccc;
+ display: table;
+ width: 100%;
+}
+.elgg-tabs li {
+ float: left;
+ border: 1px solid #ccc;
+ border-bottom-width: 0;
+ background: #eee;
+ margin: 0 0 0 10px;
+}
+.elgg-tabs a {
+ text-decoration: none;
+ display: block;
+ padding: 3px 10px 0 10px;
+ text-align: center;
+ height: 21px;
+ color: #999;
+}
+.elgg-tabs a:hover {
+ background: #dedede;
+ color:#333;
+}
+.elgg-tabs .elgg-state-selected {
+ border-color: #ccc;
+ background: white;
+}
+.elgg-tabs .elgg-state-selected a {
+ position: relative;
+ top: 2px;
+ background: white;
+}
+
+/* ***************************************
+ 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 {
+ float: right;
+ min-height: 30px;
+}
+.elgg-widget-add-control {
+ text-align: right;
+ margin: 5px 5px 15px;
+}
+.elgg-widgets-add-panel {
+ padding: 10px;
+ margin: 0 5px 15px;
+ background: #eee;
+ border: 1px solid #ccc;
+}
+.elgg-widgets-add-panel ul {
+ padding: 0;
+ margin: 0;
+}
+.elgg-widgets-add-panel li {
+ float: left;
+ margin: 2px 10px;
+ list-style: none;
+ width: 200px;
+ padding: 4px;
+ 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;
+ padding: 1px;
+ margin: 0 5px 15px;
+ position: relative;
+}
+.elgg-module-widget:hover {
+ background-color: #ccc;
+}
+.elgg-module-widget > .elgg-head {
+ background-color: #f5f5f5;
+ height: 26px;
+ overflow: hidden;
+}
+.elgg-module-widget.elgg-state-draggable .elgg-widget-handle {
+ cursor: move;
+}
+.elgg-module-widget > .elgg-head h3 {
+ float: left;
+ padding: 4px 45px 0 20px;
+ color: #333;
+}
+
+.elgg-widget-collapse-button {
+ color: #c5c5c5;
+ text-decoration: none;
+}
+a.elgg-widget-collapse-button:hover,
+a.elgg-widget-collapsed:hover {
+ color: #9d9d9d;
+ text-decoration: none;
+}
+a.elgg-widget-collapse-button:before {
+ content: "\25BC";
+}
+a.elgg-widget-collapsed:before {
+ content: "\25BA";
+}
+.elgg-module-widget > .elgg-body {
+ border-top: 1px solid #dedede;
+ background-color: white;
+ width: 100%;
+ overflow: hidden;
+}
+.elgg-widget-edit {
+ display: none;
+ width: 96%;
+ padding: 2%;
+ border-bottom: 1px solid #dedede;
+}
+.elgg-widget-content {
+ padding: 10px;
+}
+.elgg-widget-placeholder {
+ border: 2px dashed #dedede;
+ 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%;
+}
+
+/* ***************************************
+ 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;
+}
+
+.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;
+}
+
+/* ***************************************
+ AVATAR ICONS
+*************************************** */
+.elgg-avatar {
+ position: relative;
+ display: inline-block;
+}
+.elgg-avatar > a > img {
+ display: block;
+}
+.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-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-avatar-medium > a > img {
+ width: 100px;
+ height: 100px;
+}
+.elgg-avatar-large > a > img {
+ width: 200px;
+ height: 200px;
+}
+.elgg-avatar > .elgg-icon-hover-menu {
+ display: none;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ margin: 0;
+ cursor: pointer;
+}
+.elgg-avatar {
+ position: relative;
+}
+.elgg-avatar > a > img {
+ display: block;
+}
+.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-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-avatar-medium > a > img {
+ width: 100px;
+ height: 100px;
+}
+.elgg-avatar-large > a > img {
+ width: 200px;
+ height: 200px;
+}
+
+/* ***************************************
+ PLUGINS
+**************************************** */
+.elgg-plugin {
+ border: 1px solid #999;
+ margin: 0 0 5px;
+ padding: 0 7px 4px 10px;
+
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+}
+.elgg-plugin.elgg-state-draggable > .elgg-image-block .elgg-head {
+ cursor: move;
+}
+.elgg-plugin p {
+ margin: 0;
+}
+.elgg-plugin h3 {
+ color: black;
+ padding-bottom: 10px;
+}
+.elgg-plugin-settings {
+ font-weight: normal;
+ font-size: 0.9em;
+}
+.elgg-plugin-screenshot {
+ display: inline;
+}
+.elgg-plugin-screenshot img {
+ border: 1px solid #999;
+}
+.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;
+}
+.elgg-plugin-screenshot-lightbox h2 {
+ color: black;
+}
+.elgg-plugin.elgg-state-active {
+ background: white;
+}
+.elgg-plugin.elgg-state-inactive {
+ background: #dedede;
+}
+.elgg-plugin .elgg-state-error {
+ background: #fbe3e4;
+ color: #8a1f11;
+ border-color: #fbc2c4;
+ font-weight: bold;
+}
+.elgg-plugin .elgg-state-warning {
+ background: #fbedb5;
+ color: #000000;
+ border-color: #fbe58b;
+ font-weight: bold;
+}
+.elgg-plugin-more {
+ background-color: #eee;
+
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ border-radius: 8px;
+
+ padding: 5px 10px;
+ margin: 4px 0;
+}
+ul.elgg-plugin-categories, ul.elgg-plugin-categories > li,
+ul.elgg-plugin-resources, ul.elgg-plugin-resources > li {
+ display: inline;
+}
+.elgg-plugin-category-bundled {
+ border-width: 2px;
+ border-color: #0054A7;
+}
+
+/****************************************
+ MARKDOWN
+****************************************/
+.elgg-markdown {
+ margin: 15px;
+}
+.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;
+}
+.elgg-markdown ol {
+ list-style: decimal;
+ padding-left: 2em;
+}
+.elgg-markdown ul {
+ list-style: disc;
+ padding-left: 2em;
+}
+.elgg-markdown p {
+ margin: 15px 0;
+}
+
+/* ***************************************
+ MISC
+*************************************** */
+.elgg-content-thin {
+ max-width: 600px;
+}
+
+.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;
+}
+
+.elgg-longtext-control {
+ margin-left: 14px;
+ font-size: 80%;
+ cursor: pointer;
+}
+
+table.mceLayout {
+ width:100% !important;
+}
+
+.elgg-output dt {
+ font-weight: bold;
+}
+.elgg-output dd {
+ margin: 0 0 1em 2em;
+}
+
+/* ***************************************
+ SITE SECRET
+*************************************** */
+.elgg-form-admin-site-regenerate-secret table {
+ width: 60%;
+ margin: 1em auto;
+}
+td.elgg-strength-strong,
+td.elgg-strength-strong h4 {
+ background: #DFF0D8; color: #468847;
+}
+td.elgg-strength-moderate,
+td.elgg-strength-moderate h4 {
+ background: #FCF8E3; color: #C09853;
+}
+td.elgg-strength-weak,
+td.elgg-strength-weak h4 {
+ background: #F2DEDE; color: #B94A48;
+}
+
+/* ***************************************
+ HELPERS
+*************************************** */
+.hidden {
+ display: none;
+}
+.centered {
+ margin: 0 auto;
+}
+.center {
+ text-align: center;
+}
+.float {
+ float: left;
+}
+.float-alt {
+ float: right;
+}
+.elgg-toggle {
+ cursor: pointer;
+}
+.elgg-discover .elgg-discoverable {
+ display: none;
+}
+.elgg-discover:hover .elgg-discoverable {
+ 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)
+*************************************** */
+.pan{padding:0}
+.pas{padding:5px}
+.pam{padding:10px}
+.pal{padding:20px}
+.ptn{padding-top:0}
+.pts{padding-top:5px}
+.ptm{padding-top:10px}
+.ptl{padding-top:20px}
+.prn{padding-right:0}
+.prs{padding-right:5px}
+.prm{padding-right:10px}
+.prl{padding-right:20px}
+.pbn{padding-bottom:0}
+.pbs{padding-bottom:5px}
+.pbm{padding-bottom:10px}
+.pbl{padding-bottom:20px}
+.pln{padding-left:0}
+.pls{padding-left:5px}
+.plm{padding-left:10px}
+.pll{padding-left:20px}
+.phn{padding-left:0;padding-right:0}
+.phs{padding-left:5px;padding-right:5px}
+.phm{padding-left:10px;padding-right:10px}
+.phl{padding-left:20px;padding-right:20px}
+.pvn{padding-top:0;padding-bottom:0}
+.pvs{padding-top:5px;padding-bottom:5px}
+.pvm{padding-top:10px;padding-bottom:10px}
+.pvl{padding-top:20px;padding-bottom:20px}
+.man{margin:0}
+.mas{margin:5px}
+.mam{margin:10px}
+.mal{margin:20px}
+.mtn{margin-top:0}
+.mts{margin-top:5px}
+.mtm{margin-top:10px}
+.mtl{margin-top:20px}
+.mrn{margin-right:0}
+.mrs{margin-right:5px}
+.mrm{margin-right:10px}
+.mrl{margin-right:20px}
+.mbn{margin-bottom:0}
+.mbs{margin-bottom:5px}
+.mbm{margin-bottom:10px}
+.mbl{margin-bottom:20px}
+.mln{margin-left:0}
+.mls{margin-left:5px}
+.mlm{margin-left:10px}
+.mll{margin-left:20px}
+.mhn{margin-left:0;margin-right:0}
+.mhs{margin-left:5px;margin-right:5px}
+.mhm{margin-left:10px;margin-right:10px}
+.mhl{margin-left:20px;margin-right:20px}
+.mvn{margin-top:0;margin-bottom:0}
+.mvs{margin-top:5px;margin-bottom:5px}
+.mvm{margin-top:10px;margin-bottom:10px}
+.mvl{margin-top:20px;margin-bottom:20px}
diff --git a/views/default/css/elements/OOCSS_LICENSE b/views/default/css/elements/OOCSS_LICENSE
new file mode 100644
index 000000000..c09c45873
--- /dev/null
+++ b/views/default/css/elements/OOCSS_LICENSE
@@ -0,0 +1,30 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2009, Nicole Sullivan.
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the
+ following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+* Neither the name of Nicole Sullivan nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior
+ written permission of Nicole Sullivan.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file
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/components.php b/views/default/css/elements/components.php
new file mode 100644
index 000000000..7fe535d57
--- /dev/null
+++ b/views/default/css/elements/components.php
@@ -0,0 +1,286 @@
+<?php
+/**
+ * Layout Object CSS
+ *
+ * Image blocks, lists, tables, gallery, messages
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+?>
+
+/* ***************************************
+ Image Block
+*************************************** */
+.elgg-image-block {
+ padding: 3px 0;
+}
+.elgg-image-block .elgg-image {
+ float: left;
+ margin-right: 5px;
+}
+.elgg-image-block .elgg-image-alt {
+ float: right;
+ margin-left: 5px;
+}
+
+/* ***************************************
+ List
+*************************************** */
+.elgg-list {
+ border-top: 1px dotted #CCCCCC;
+ margin: 5px 0;
+ clear: both;
+}
+.elgg-list > li {
+ border-bottom: 1px dotted #CCCCCC;
+}
+
+.elgg-item .elgg-subtext {
+ margin-bottom: 5px;
+}
+.elgg-item .elgg-content {
+ margin: 10px 5px;
+}
+
+/* ***************************************
+ Gallery
+*************************************** */
+.elgg-gallery {
+ border: none;
+ margin-right: auto;
+ margin-left: auto;
+}
+.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 #ccc;
+}
+.elgg-table td, .elgg-table th {
+ padding: 4px 8px;
+ border: 1px solid #ccc;
+}
+.elgg-table th {
+ background-color: #ddd;
+}
+.elgg-table tr:nth-child(odd), .elgg-table tr.odd {
+ 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 #ccc;
+}
+.elgg-table-alt th {
+ background-color: #eee;
+ font-weight: bold;
+}
+.elgg-table-alt td, .elgg-table-alt th {
+ padding: 2px 4px 2px 4px;
+ border-bottom: 1px solid #ccc;
+}
+.elgg-table-alt td:first-child {
+ width: 200px;
+}
+.elgg-table-alt tr:hover {
+ background: #E4E4E4;
+}
+
+/* ***************************************
+ Owner Block
+*************************************** */
+.elgg-owner-block {
+ margin-bottom: 20px;
+}
+
+/* ***************************************
+ Messages
+*************************************** */
+.elgg-message {
+ color: white;
+ font-weight: bold;
+ display: block;
+ 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;
+}
+.elgg-state-error {
+ background-color: red;
+}
+.elgg-state-notice {
+ background-color: #4690D6;
+}
+
+/* ***************************************
+ River
+*************************************** */
+.elgg-list-river {
+ border-top: 1px solid #CCC;
+}
+.elgg-list-river > li {
+ border-bottom: 1px solid #CCC;
+}
+.elgg-river-item {
+ padding: 7px 0;
+}
+.elgg-river-item .elgg-pict {
+ margin-right: 20px;
+}
+.elgg-river-timestamp {
+ 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 #CCC;
+ font-size: 85%;
+ line-height: 1.5em;
+ margin: 8px 0 5px 0;
+ padding-left: 5px;
+}
+.elgg-river-attachments .elgg-avatar,
+.elgg-river-attachments .elgg-icon {
+ float: left;
+}
+.elgg-river-layout .elgg-input-dropdown {
+ float: right;
+ margin: 10px 0;
+}
+
+.elgg-river-comments-tab {
+ display: block;
+ background-color: #EEE;
+ color: #4690D6;
+ margin-top: 5px;
+ width: auto;
+ float: right;
+ font-size: 85%;
+ padding: 1px 7px;
+
+ -webkit-border-radius: 5px 5px 0 0;
+ -moz-border-radius: 5px 5px 0 0;
+ border-radius: 5px 5px 0 0;
+}
+
+<?php //@todo components.php ?>
+.elgg-river-comments {
+ margin: 0;
+ border-top: none;
+}
+.elgg-river-comments li:first-child {
+ -webkit-border-radius: 5px 0 0;
+ -moz-border-radius: 5px 0 0;
+ border-radius: 5px 0 0;
+}
+.elgg-river-comments li:last-child {
+ -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: #EEE;
+ border-bottom: none;
+ padding: 4px;
+ margin-bottom: 2px;
+}
+.elgg-river-comments .elgg-media {
+ padding: 0;
+}
+.elgg-river-more {
+ background-color: #EEE;
+
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+
+ padding: 2px 4px;
+ font-size: 85%;
+ margin-bottom: 2px;
+}
+
+<?php //@todo location-dependent styles ?>
+.elgg-river-item form {
+ background-color: #EEE;
+ padding: 4px;
+
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+
+ height: 30px;
+}
+.elgg-river-item input[type=text] {
+ width: 80%;
+}
+.elgg-river-item input[type=submit] {
+ margin: 0 0 0 10px;
+}
+
+
+/* **************************************
+ Comments (from elgg_view_comments)
+************************************** */
+.elgg-comments {
+ margin-top: 25px;
+}
+.elgg-comments > form {
+ margin-top: 15px;
+}
+
+/* ***************************************
+ Image-related
+*************************************** */
+.elgg-photo {
+ border: 1px solid #ccc;
+ padding: 3px;
+ background-color: white;
+}
+
+/* ***************************************
+ Tags
+*************************************** */
+.elgg-tags {
+ font-size: 85%;
+}
+.elgg-tags > li {
+ float:left;
+ margin-right: 5px;
+}
+.elgg-tags li.elgg-tag:after {
+ content: ",";
+}
+.elgg-tags li.elgg-tag:last-child:after {
+ content: "";
+}
+.elgg-tagcloud {
+ text-align: justify;
+}
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
new file mode 100644
index 000000000..068cc8fd6
--- /dev/null
+++ b/views/default/css/elements/forms.php
@@ -0,0 +1,375 @@
+<?php
+/**
+ * CSS form/input elements
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+?>
+
+/* ***************************************
+ Form Elements
+*************************************** */
+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: #333;
+ font-size: 110%;
+}
+
+input, textarea {
+ border: 1px solid #ccc;
+ color: #666;
+ font: 120% Arial, Helvetica, sans-serif;
+ padding: 5px;
+ width: 100%;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+input[type=text]:focus, textarea:focus {
+ border: solid 1px #4690d6;
+ background: #e4ecf5;
+ color:#333;
+}
+
+textarea {
+ height: 200px;
+}
+
+
+.elgg-longtext-control {
+ float: right;
+ margin-left: 14px;
+ font-size: 80%;
+ cursor: pointer;
+}
+
+
+.elgg-input-access {
+ margin:5px 0 0 0;
+}
+
+input[type="checkbox"],
+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-radios.elgg-horizontal li {
+ display: inline;
+ padding-right: 10px;
+}
+
+.elgg-form-login, .elgg-form-account {
+ max-width: 450px;
+}
+
+/* ***************************************
+ 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;
+}
+
+/* ***************************************
+ 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;
+}
+
+/* ***************************************
+ 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);
+}
+.ui-datepicker-inline {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+.ui-datepicker-header {
+ position: relative;
+ background: #4690D6;
+ color: white;
+ padding: 2px 0;
+ border-bottom: 1px solid #0054A7;
+}
+.ui-datepicker-header a {
+ color: white;
+}
+.ui-datepicker-prev, .ui-datepicker-next {
+ position: absolute;
+ top: 5px;
+ 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: 4px;
+}
+.ui-datepicker th {
+ color: #0054A7;
+ 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: #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
new file mode 100644
index 000000000..fdbaf4aca
--- /dev/null
+++ b/views/default/css/elements/grid.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * CSS grid
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ *
+ * To work around subpixel rounding discrepancies, apply .elgg-col-last to
+ * the last column (@todo we need broswer-specific test cases for this).
+ */
+?>
+
+/* ***************************************
+ 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%;
+}
diff --git a/views/default/css/elements/helpers.php b/views/default/css/elements/helpers.php
new file mode 100644
index 000000000..e9a9e0a30
--- /dev/null
+++ b/views/default/css/elements/helpers.php
@@ -0,0 +1,144 @@
+<?php
+/**
+ * Helpers CSS
+ *
+ * Contains generic elements that can be used throughout the site.
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+?>
+
+.clearfloat {
+ clear: both;
+}
+
+.hidden {
+ display: none;
+}
+
+.centered {
+ margin: 0 auto;
+}
+
+.center {
+ text-align: center;
+}
+
+.float {
+ float: left;
+}
+
+.float-alt {
+ float: right;
+}
+
+.link {
+ cursor: pointer;
+}
+
+.elgg-discover .elgg-discoverable {
+ display: none;
+}
+
+.elgg-discover:hover .elgg-discoverable {
+ 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)
+*************************************** */
+<?php
+/**
+ * Spacing classes
+ * Should be used to modify the default spacing between objects (not between nodes of the same object)
+ * Please use judiciously. You want to be using defaults most of the time, these are exceptions!
+ * <type><location><size>
+ * <type>: m = margin, p = padding
+ * <location>: a = all, t = top, r = right, b = bottom, l = left, h = horizontal, v = vertical
+ * <size>: n = none, s = small, m = medium, l = large
+ */
+
+$none = '0';
+$small = '5px';
+$medium = '10px';
+$large = '20px';
+
+echo <<<CSS
+/* Padding */
+.pan{padding:$none}
+.prn, .phn{padding-right:$none}
+.pln, .phn{padding-left:$none}
+.ptn, .pvn{padding-top:$none}
+.pbn, .pvn{padding-bottom:$none}
+
+.pas{padding:$small}
+.prs, .phs{padding-right:$small}
+.pls, .phs{padding-left:$small}
+.pts, .pvs{padding-top:$small}
+.pbs, .pvs{padding-bottom:$small}
+
+.pam{padding:$medium}
+.prm, .phm{padding-right:$medium}
+.plm, .phm{padding-left:$medium}
+.ptm, .pvm{padding-top:$medium}
+.pbm, .pvm{padding-bottom:$medium}
+
+.pal{padding:$large}
+.prl, .phl{padding-right:$large}
+.pll, .phl{padding-left:$large}
+.ptl, .pvl{padding-top:$large}
+.pbl, .pvl{padding-bottom:$large}
+
+/* Margin */
+.man{margin:$none}
+.mrn, .mhn{margin-right:$none}
+.mln, .mhn{margin-left:$none}
+.mtn, .mvn{margin-top:$none}
+.mbn, .mvn{margin-bottom:$none}
+
+.mas{margin:$small}
+.mrs, .mhs{margin-right:$small}
+.mls, .mhs{margin-left:$small}
+.mts, .mvs{margin-top:$small}
+.mbs, .mvs{margin-bottom:$small}
+
+.mam{margin:$medium}
+.mrm, .mhm{margin-right:$medium}
+.mlm, .mhm{margin-left:$medium}
+.mtm, .mvm{margin-top:$medium}
+.mbm, .mvm{margin-bottom:$medium}
+
+.mal{margin:$large}
+.mrl, .mhl{margin-right:$large}
+.mll, .mhl{margin-left:$large}
+.mtl, .mvl{margin-top:$large}
+.mbl, .mvl{margin-bottom:$large}
+CSS;
+?> \ No newline at end of file
diff --git a/views/default/css/elements/icons.php b/views/default/css/elements/icons.php
new file mode 100644
index 000000000..9b12e0a57
--- /dev/null
+++ b/views/default/css/elements/icons.php
@@ -0,0 +1,348 @@
+<?php
+/**
+ * Elgg icons
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+
+?>
+
+/* ***************************************
+ ICONS
+*************************************** */
+
+.elgg-icon {
+ background: transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left;
+ width: 16px;
+ height: 16px;
+ margin: 0 2px;
+}
+.elgg-icon-arrow-left {
+ background-position: 0 -0px;
+}
+.elgg-icon-arrow-right {
+ background-position: 0 -18px;
+}
+.elgg-icon-arrow-two-head {
+ background-position: 0 -36px;
+}
+.elgg-icon-attention:hover {
+ background-position: 0 -54px;
+}
+.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: 0 -252px;
+}
+.elgg-icon-delete {
+ background-position: 0 -270px;
+}
+.elgg-icon-download:hover {
+ background-position: 0 -288px;
+}
+.elgg-icon-download {
+ background-position: 0 -306px;
+}
+.elgg-icon-eye {
+ background-position: 0 -324px;
+}
+.elgg-icon-facebook {
+ background-position: 0 -342px;
+}
+.elgg-icon-grid:hover {
+ background-position: 0 -360px;
+}
+.elgg-icon-grid {
+ background-position: 0 -378px;
+}
+.elgg-icon-home:hover {
+ background-position: 0 -396px;
+}
+.elgg-icon-home {
+ background-position: 0 -414px;
+}
+.elgg-icon-hover-menu:hover {
+ 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-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;
+ right: 0;
+ bottom: 0;
+ margin: 0;
+ cursor: pointer;
+}
+
+.elgg-ajax-loader {
+ background: white url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif) no-repeat center center;
+ min-height: 31px;
+ min-width: 31px;
+}
+
+/* ***************************************
+ AVATAR ICONS
+*************************************** */
+.elgg-avatar {
+ position: relative;
+ display: inline-block;
+}
+.elgg-avatar > a > img {
+ display: block;
+}
+.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-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-avatar-medium > a > img {
+ width: 100px;
+ height: 100px;
+}
+.elgg-avatar-large > a > img {
+ width: 200px;
+ height: 200px;
+}
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
new file mode 100644
index 000000000..d9622d34a
--- /dev/null
+++ b/views/default/css/elements/misc.php
@@ -0,0 +1,62 @@
+/* ***************************************
+ MISC
+*************************************** */
+#login-dropdown {
+ position: absolute;
+ top:10px;
+ right:0;
+ z-index: 100;
+}
+
+/* ***************************************
+ AVATAR UPLOADING & CROPPING
+*************************************** */
+
+#current-user-avatar {
+ border-right:1px solid #ccc;
+}
+#avatar-croppingtool {
+ border-top: 1px solid #ccc;
+}
+#user-avatar-cropper {
+ float: left;
+}
+#user-avatar-preview {
+ float: left;
+ position: relative;
+ overflow: hidden;
+ width: 100px;
+ height: 100px;
+}
+
+/* ***************************************
+ FRIENDS COLLECTIONS
+*************************************** */
+
+#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;
+}
+#friends_collections_accordian li h2:hover {
+ background-color: #333;
+}
+#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
new file mode 100644
index 000000000..a37ae094b
--- /dev/null
+++ b/views/default/css/elements/modules.php
@@ -0,0 +1,194 @@
+/* ***************************************
+ Modules
+*************************************** */
+.elgg-module {
+ overflow: hidden;
+ margin-bottom: 20px;
+}
+
+/* Aside */
+.elgg-module-aside .elgg-head {
+ border-bottom: 1px solid #CCC;
+
+ margin-bottom: 5px;
+ padding-bottom: 5px;
+}
+
+/* Info */
+.elgg-module-info > .elgg-head {
+ background: #e4e4e4;
+ padding: 5px;
+ margin-bottom: 10px;
+
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ border-radius: 3px;
+}
+.elgg-module-info > .elgg-head * {
+ color: #333;
+}
+
+/* Popup */
+.elgg-module-popup {
+ background-color: white;
+ border: 1px solid #ccc;
+
+ z-index: 9999;
+ margin-bottom: 0;
+ padding: 5px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ border-radius: 6px;
+
+ -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);
+}
+.elgg-module-popup > .elgg-head {
+ margin-bottom: 5px;
+}
+.elgg-module-popup > .elgg-head * {
+ color: #0054A7;
+}
+
+/* Dropdown */
+.elgg-module-dropdown {
+ background-color:white;
+ border:5px solid #CCC;
+
+ -webkit-border-radius: 5px 0 5px 5px;
+ -moz-border-radius: 5px 0 5px 5px;
+ border-radius: 5px 0 5px 5px;
+
+ display:none;
+
+ width: 210px;
+ 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;
+ 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;
+ background-color: #4690D6;
+}
+.elgg-module-featured > .elgg-head * {
+ color: white;
+}
+.elgg-module-featured > .elgg-body {
+ padding: 10px;
+}
+
+/* ***************************************
+ Widgets
+*************************************** */
+.elgg-widgets {
+ float: right;
+ min-height: 30px;
+}
+.elgg-widget-add-control {
+ text-align: right;
+ margin: 5px 5px 15px;
+}
+.elgg-widgets-add-panel {
+ padding: 10px;
+ margin: 0 5px 15px;
+ background: #dedede;
+ border: 2px solid #ccc;
+}
+<?php //@todo location-dependent style: make an extension of elgg-gallery ?>
+.elgg-widgets-add-panel li {
+ float: left;
+ margin: 2px 10px;
+ width: 200px;
+ padding: 4px;
+ background-color: #ccc;
+ border: 2px solid #b0b0b0;
+ font-weight: bold;
+}
+.elgg-widgets-add-panel li a {
+ display: block;
+}
+.elgg-widgets-add-panel .elgg-state-available {
+ color: #333;
+ cursor: pointer;
+}
+.elgg-widgets-add-panel .elgg-state-available:hover {
+ background-color: #bcbcbc;
+}
+.elgg-widgets-add-panel .elgg-state-unavailable {
+ color: #888;
+}
+
+.elgg-module-widget {
+ background-color: #dedede;
+ padding: 2px;
+ margin: 0 5px 15px;
+ position: relative;
+}
+.elgg-module-widget:hover {
+ background-color: #ccc;
+}
+.elgg-module-widget > .elgg-head {
+ background-color: #eeeeee;
+ height: 26px;
+ overflow: hidden;
+}
+.elgg-module-widget > .elgg-head h3 {
+ float: left;
+ padding: 4px 45px 0 20px;
+ color: #666;
+}
+.elgg-module-widget.elgg-state-draggable .elgg-widget-handle {
+ cursor: move;
+}
+a.elgg-widget-collapse-button {
+ color: #c5c5c5;
+}
+a.elgg-widget-collapse-button:hover,
+a.elgg-widget-collapsed:hover {
+ color: #9d9d9d;
+ text-decoration: none;
+}
+a.elgg-widget-collapse-button:before {
+ content: "\25BC";
+}
+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;
+}
+.elgg-widget-placeholder {
+ border: 2px dashed #dedede;
+ margin-bottom: 15px;
+}
diff --git a/views/default/css/elements/navigation.php b/views/default/css/elements/navigation.php
new file mode 100644
index 000000000..6b29e4c19
--- /dev/null
+++ b/views/default/css/elements/navigation.php
@@ -0,0 +1,560 @@
+<?php
+/**
+ * Navigation
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+?>
+
+/* ***************************************
+ PAGINATION
+*************************************** */
+.elgg-pagination {
+ margin: 10px 0;
+ display: block;
+ text-align: center;
+}
+.elgg-pagination li {
+ display: inline-block;
+ margin: 0 6px 0 0;
+ text-align: center;
+}
+.elgg-pagination a, .elgg-pagination span {
+ -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;
+}
+.elgg-pagination a:hover {
+ background: #4690d6;
+ color: white;
+ text-decoration: none;
+}
+.elgg-pagination .elgg-state-disabled span {
+ color: #CCCCCC;
+ border-color: #CCCCCC;
+}
+.elgg-pagination .elgg-state-selected span {
+ color: #555555;
+ border-color: #555555;
+}
+
+/* ***************************************
+ TABS
+*************************************** */
+.elgg-tabs {
+ margin-bottom: 5px;
+ border-bottom: 2px solid #cccccc;
+ display: table;
+ width: 100%;
+}
+.elgg-tabs 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-tabs a {
+ text-decoration: none;
+ display: block;
+ padding: 3px 10px 0 10px;
+ text-align: center;
+ height: 21px;
+ color: #999;
+}
+.elgg-tabs a:hover {
+ background: #dedede;
+ color: #4690D6;
+}
+.elgg-tabs .elgg-state-selected {
+ border-color: #ccc;
+ background: white;
+}
+.elgg-tabs .elgg-state-selected a {
+ position: relative;
+ top: 2px;
+ background: white;
+}
+
+/* ***************************************
+ BREADCRUMBS
+*************************************** */
+.elgg-breadcrumbs {
+ font-size: 80%;
+ font-weight: bold;
+ line-height: 1.2em;
+ color: #bababa;
+}
+.elgg-breadcrumbs > li {
+ display: inline-block;
+}
+.elgg-breadcrumbs > li:after {
+ content: "\003E";
+ padding: 0 4px;
+ font-weight: normal;
+}
+.elgg-breadcrumbs > li > a {
+ display: inline-block;
+ color: #999;
+}
+.elgg-breadcrumbs > li > a:hover {
+ color: #0054a7;
+ text-decoration: underline;
+}
+
+.elgg-main .elgg-breadcrumbs {
+ position: relative;
+ top: -6px;
+ left: 0;
+}
+
+/* ***************************************
+ 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;
+ bottom: 0;
+ left: 0;
+ height: 23px;
+}
+
+.elgg-menu-site-default > li {
+ float: left;
+ margin-right: 1px;
+}
+
+.elgg-menu-site-default > li > a {
+ color: white;
+}
+
+.elgg-menu-site > li > ul {
+ display: none;
+ background-color: white;
+}
+
+.elgg-menu-site > li:hover > ul {
+ display: block;
+}
+
+.elgg-menu-site-default > .elgg-state-selected > a,
+.elgg-menu-site-default > li:hover > a {
+ background: white;
+ 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);
+ 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-more {
+ position: relative;
+ left: -1px;
+ width: 100%;
+ min-width: 150px;
+ 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-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-more > li > a:hover {
+ background: #4690D6;
+ color: white;
+}
+
+.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;
+ padding: 2px 4px 2px 8px;
+}
+.elgg-menu-page a:hover {
+ background-color: #0054A7;
+ color: white;
+ text-decoration: none;
+}
+.elgg-menu-page li.elgg-state-selected > a {
+ background-color: #4690D6;
+ color: white;
+}
+.elgg-menu-page .elgg-child-menu {
+ display: none;
+ margin-left: 15px;
+}
+.elgg-menu-page .elgg-menu-closed:before, .elgg-menu-opened:before {
+ display: inline-block;
+ padding-right: 4px;
+}
+.elgg-menu-page .elgg-menu-closed:before {
+ content: "\002B";
+}
+.elgg-menu-page .elgg-menu-opened:before {
+ content: "\002D";
+}
+
+/* ***************************************
+ HOVER MENU
+*************************************** */
+.elgg-menu-hover {
+ display: none;
+ position: absolute;
+ z-index: 10000;
+
+ 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 #ddd;
+}
+.elgg-menu-hover > li:last-child {
+ border-bottom: none;
+}
+.elgg-menu-hover .elgg-heading-basic {
+ display: block;
+}
+.elgg-menu-hover a {
+ 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;
+}
+
+/* ***************************************
+ SITE FOOTER
+*************************************** */
+.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;
+}
+
+/* ***************************************
+ 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;
+ 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-widget > .elgg-menu-item-settings {
+ right: 25px;
+}
diff --git a/views/default/css/elements/reset.php b/views/default/css/elements/reset.php
new file mode 100644
index 000000000..44bf2fac9
--- /dev/null
+++ b/views/default/css/elements/reset.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * CSS reset
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+?>
+
+/* ***************************************
+ RESET CSS
+*************************************** */
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+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;
+}
+body {
+ background-color: white;
+}
+<?php // force vertical scroll bar ?>
+html, body {
+ height: 100%;
+ margin-bottom: 1px;
+}
+img {
+ border-width:0;
+ border-color:transparent;
+}
+:focus {
+ outline: 0 none;
+}
+ol, ul {
+ list-style: none;
+}
+em, i {
+ font-style:italic;
+}
+ins {
+ text-decoration:none;
+}
+del {
+ text-decoration:line-through;
+}
+strong, b {
+ font-weight:bold;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+caption, th, td {
+ text-align: left;
+ font-weight: normal;
+ vertical-align: top;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: "";
+}
+blockquote, q {
+ quotes: "" "";
+}
+a {
+ text-decoration: none;
+}
diff --git a/views/default/css/elements/typography.php b/views/default/css/elements/typography.php
new file mode 100644
index 000000000..c044cb1cc
--- /dev/null
+++ b/views/default/css/elements/typography.php
@@ -0,0 +1,162 @@
+<?php
+/**
+ * CSS typography
+ *
+ * @package Elgg.Core
+ * @subpackage UI
+ */
+?>
+
+/* ***************************************
+ Typography
+*************************************** */
+body {
+ font-size: 80%;
+ line-height: 1.4em;
+ 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-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 */
+
+}
+
+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; padding-bottom:5px}
+h3 { font-size: 1.2em; }
+h4 { font-size: 1.0em; }
+h5 { font-size: 0.9em; }
+h6 { font-size: 0.8em; }
+
+.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;
+}
+
+.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/elgg.php b/views/default/css/elgg.php
new file mode 100644
index 000000000..4960e6ade
--- /dev/null
+++ b/views/default/css/elgg.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Elgg primary CSS view
+ *
+ * @package Elgg.Core
+ * @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 != elgg_get_config('viewpath')) {
+ echo elgg_view('css', $vars);
+ return true;
+}
+
+
+/*******************************************************************************
+
+Base CSS
+ * CSS reset
+ * core
+ * helpers (moved to end to have a higher priority)
+ * grid
+
+*******************************************************************************/
+echo elgg_view('css/elements/reset', $vars);
+echo elgg_view('css/elements/core', $vars);
+echo elgg_view('css/elements/grid', $vars);
+
+
+/*******************************************************************************
+
+Skin CSS
+ * typography - fonts, line spacing
+ * 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
+ * layout - page layout
+ * misc - to be removed/redone
+
+*******************************************************************************/
+echo elgg_view('css/elements/typography', $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/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
new file mode 100644
index 000000000..34ececa89
--- /dev/null
+++ b/views/default/css/ie.php
@@ -0,0 +1,16 @@
+/**
+ * CSS for IE8 and above
+ */
+
+/* ie8 does not like shrink wrapping this div with inline-block */
+.elgg-avatar {
+ display: block;
+}
+
+/* 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;
+}
+.elgg-gallery .elgg-avatar > .elgg-icon-hover-menu {
+ bottom: 4px;
+}
diff --git a/views/default/css/ie6.php b/views/default/css/ie6.php
new file mode 100644
index 000000000..cf49d33f2
--- /dev/null
+++ b/views/default/css/ie6.php
@@ -0,0 +1,12 @@
+/**
+ * CSS for IE6
+ */
+
+* {zoom: 1;} /* trigger hasLayout in IE */
+
+/* main nav drop-down */
+#elgg-header {z-index:1;}
+
+/* @todo check this one */
+.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/dashboard/blurb.php b/views/default/dashboard/blurb.php
deleted file mode 100644
index 6220ba595..000000000
--- a/views/default/dashboard/blurb.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<div id="dashboard_info">
-<p>
-<?php
-
- echo elgg_echo("dashboard:nowidgets");
-
-?>
-</p>
-<p>
- <a href="<?php echo $vars['url']; ?>dashboard/latest.php"><?php echo elgg_echo('content:latest:blurb'); ?></a>
-</p>
-</div> \ 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 38d2d0902..3064f1288 100644
--- a/views/default/export/entity.php
+++ b/views/default/export/entity.php
@@ -1,66 +1,62 @@
<?php
- /**
- * Elgg Entity export.
- * Displays an entity using the current view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
+/**
+ * Elgg Entity export.
+ * Displays an entity using the current view.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
- $entity = $vars['entity'];
- if (!$entity) throw new InvalidParameterException(elgg_echo('InvalidParameterException:NoEntityFound'));
-
- $metadata = get_metadata_for_entity($entity->guid);
- $annotations = get_annotations($entity->guid);
- $relationships = get_entity_relationships($entity->guid);
-
+$entity = $vars['entity'];
+if (!$entity) {
+ throw new InvalidParameterException(elgg_echo('InvalidParameterException:NoEntityFound'));
+}
+$options = array(
+ 'guid' => $entity->guid,
+ 'limit' => 0
+);
+$metadata = elgg_get_metadata($options);
+$annotations = elgg_get_annotations($options);
+$relationships = get_entity_relationships($entity->guid);
+
+$exportable_values = $entity->getExportableValues();
?>
<div>
+<h2><?php echo elgg_echo('Entity'); ?></h2>
<?php
- foreach ($entity as $k => $v)
- {
+ foreach ($entity as $k => $v) {
+ if ((in_array($k, $exportable_values)) || (elgg_is_admin_logged_in())) {
?>
- <div>
- <p><b><?php echo $k; ?>: </b><?php echo $v; ?></p>
- </div>
+ <p class="margin-none"><b><?php echo $k; ?>: </b><?php echo strip_tags($v); ?></p>
<?php
+ }
}
?>
</div>
<?php if ($metadata) { ?>
-<div id="metadata">
-<h2><?php echo elgg_echo('metadata'); ?></h2>
+<div id="metadata" class="mtm">
+<h2><?php echo elgg_echo('metadata'); ?></h2>
<?php
- foreach ($metadata as $m)
- {
+ foreach ($metadata as $m) {
?>
- <div>
- <p><b><?php echo $m->name; ?>: </b><?php echo $m->value; ?></p>
- </div>
+ <p class="margin-none"><b><?php echo $m->name; ?>: </b><?php echo $m->value; ?></p>
<?php
}
?>
-
+
</div>
<?php } ?>
<?php if ($annotations) { ?>
-<div id="annotations">
-<h2><?php echo elgg_echo('annotations'); ?></h2>
+<div id="annotations" class="mtm">
+<h2><?php echo elgg_echo('annotations'); ?></h2>
<?php
- foreach ($annotations as $a)
- {
+ foreach ($annotations as $a) {
?>
- <div>
- <table>
- <p><b><?php echo $a->name; ?>: </b><?php echo $a->value; ?></p>
- </table>
- </div>
+ <table>
+ <p class="margin-none"><b><?php echo $a->name; ?>: </b><?php echo $a->value; ?></p>
+ </table>
<?php
}
?>
@@ -68,19 +64,16 @@
<?php } ?>
<?php if ($relationships) { ?>
-<div id="relationship">
-<h2><?php echo elgg_echo('relationships'); ?></h2>
+<div id="relationship" class="mtm">
+<h2><?php echo elgg_echo('relationships'); ?></h2>
<?php
- foreach ($relationships as $r)
- {
+ foreach ($relationships as $r) {
?>
- <div>
- <table>
- <p><b><?php echo $r->relationship; ?>: </b><?php echo $r->guid_two; ?></p>
- </table>
- </div>
+ <table>
+ <p class="margin-none"><b><?php echo $r->relationship; ?>: </b><?php echo $r->guid_two; ?></p>
+ </table>
<?php
}
?>
</div>
-<?php } ?> \ No newline at end of file
+<?php } ?>
diff --git a/views/default/export/metadata.php b/views/default/export/metadata.php
index 93e3cc455..1dd7f2054 100644
--- a/views/default/export/metadata.php
+++ b/views/default/export/metadata.php
@@ -1,20 +1,14 @@
<?php
- /**
- * Elgg metadata export.
- * Displays a metadata item using the current view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
+/**
+ * Elgg metadata export.
+ * Displays a metadata item using the current view.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
- $m = $vars['metadata'];
- $e = get_entity($m->entity_guid);
+$m = $vars['metadata'];
+$e = get_entity($m->entity_guid);
?>
-<div>
- <p><?php if ($e) echo "<a href=\"" . $e->getURL() . "\">GUID:{$m->entity_guid}</a>"; else echo "GUID:".$m->entity_guid;
- ?>: <b><?php echo $m->name; ?></b> <?php echo $m->value; ?></p>
-</div> \ No newline at end of file
+<p class="margin-none"><?php if ($e) echo "<a href=\"" . $e->getURL() . "\">GUID:{$m->entity_guid}</a>"; else echo "GUID:".$m->entity_guid;
+?>: <b><?php echo $m->name; ?></b> <?php echo $m->value; ?></p> \ No newline at end of file
diff --git a/views/default/export/relationship.php b/views/default/export/relationship.php
index f53d663f4..d8cb3e4f4 100644
--- a/views/default/export/relationship.php
+++ b/views/default/export/relationship.php
@@ -1,29 +1,21 @@
<?php
- /**
- * Elgg relationship export.
- * Displays a relationship using the current view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
+/**
+ * Elgg relationship export.
+ * Displays a relationship using the current view.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
- $r = $vars['relationship'];
-
- $e1 = get_entity($r->guid_one);
- $e2 = get_entity($r->guid_two);
+$r = $vars['relationship'];
-
+$e1 = get_entity($r->guid_one);
+$e2 = get_entity($r->guid_two);
?>
-<div>
- <p><?php
- if ($e1) echo "<a href=\"" . $e1->getURL() . "\">GUID:" . $r->guid_one . "</a>"; else echo "GUID:".$r->guid_one;
- ?>
- <b><?php echo $r->relationship; ?></b>
- <?php
- if ($e2) echo "<a href=\"" . $e2->getURL() . "\">GUID:" . $r->guid_two . "</a>"; else echo "GUID:".$r->guid_two;
- ?></p>
-</div> \ No newline at end of file
+<p class="margin-none"><?php
+ if ($e1) echo "<a href=\"" . $e1->getURL() . "\">GUID:" . $r->guid_one . "</a>"; else echo "GUID:".$r->guid_one;
+?>
+<b><?php echo $r->relationship; ?></b>
+<?php
+ if ($e2) echo "<a href=\"" . $e2->getURL() . "\">GUID:" . $r->guid_two . "</a>"; else echo "GUID:".$r->guid_two;
+?></p>
diff --git a/views/default/forms/account/settings.php b/views/default/forms/account/settings.php
new file mode 100644
index 000000000..3967207ce
--- /dev/null
+++ b/views/default/forms/account/settings.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Account settings form used for user settings
+ *
+ * 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
new file mode 100644
index 000000000..1a67ffcc4
--- /dev/null
+++ b/views/default/forms/admin/menu/save.php
@@ -0,0 +1,102 @@
+<?php
+/**
+ * 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'];
+$builder = new ElggMenuBuilder($menu);
+$menu = $builder->getMenu('name');
+$menu_items = $menu['default'];
+
+$featured_menu_names = elgg_get_config('site_featured_menu_names');
+
+$dropdown_values = array();
+foreach ($menu_items as $item) {
+ $dropdown_values[$item->getName()] = $item->getText();
+}
+$dropdown_values[' '] = elgg_echo('none');
+
+?>
+<div class="elgg-module elgg-module-inline">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('admin:menu_items:configure'); ?></h3>
+ </div>
+ <div class="elgg-body">
+<?php
+echo elgg_view('output/longtext', array(
+ 'value' => elgg_echo("admin:menu_items:description")
+));
+
+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 = ' ';
+ }
+
+ echo elgg_view('input/dropdown', array(
+ 'options_values' => $dropdown_values,
+ 'name' => 'featured_menu_names[]',
+ 'value' => $current_value
+ ));
+}
+?>
+ </div>
+</div>
+
+<div class="elgg-module elgg-module-inline">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('admin:add_menu_item'); ?></h3>
+ </div>
+ <div class="elgg-body">
+<?php
+echo elgg_view('output/longtext', array(
+ 'value' => elgg_echo("admin:add_menu_item:description")
+));
+
+$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-list elgg-list-simple">';
+
+if (is_array($custom_items)) {
+ foreach ($custom_items as $title => $url) {
+ $name_input = elgg_view('input/text', array(
+ 'name' => 'custom_menu_titles[]',
+ 'value' => $title
+ ));
+
+ $url_input = elgg_view('input/text', array(
+ 'name' => 'custom_menu_urls[]',
+ 'value' => $url
+ ));
+
+ echo "<li>$name_str: $name_input $url_str: $url_input $delete</li>";
+ }
+}
+
+$new = elgg_echo('new');
+$name_input = elgg_view('input/text', array(
+ 'name' => 'custom_menu_titles[]',
+));
+
+$url_input = elgg_view('input/text', array(
+ 'name' => 'custom_menu_urls[]',
+));
+
+echo "<li class='custom_menuitem'>$name_str: $name_input $url_str: $url_input</li>
+</ul>";
+
+?>
+ </div>
+</div>
+<?php
+
+echo elgg_view('input/submit', array('value' => elgg_echo('save')));
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/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
new file mode 100644
index 000000000..14b74e4f9
--- /dev/null
+++ b/views/default/forms/admin/site/update_advanced.php
@@ -0,0 +1,101 @@
+<?php
+/**
+ * @todo cleanup
+ */
+$form_body = "";
+
+foreach (array('wwwroot', 'path', 'dataroot') as $field) {
+ $form_body .= "<div>";
+ $form_body .= elgg_echo('installation:' . $field) . "<br />";
+ $warning = elgg_echo('installation:warning:' . $field);
+ if ($warning != 'installation:warning:' . $field) {
+ echo "<b>" . $warning . "</b><br />";
+ }
+ $value = elgg_get_config($field);
+ $form_body .= elgg_view("input/text",array('name' => $field, 'value' => $value));
+ $form_body .= "</div>";
+}
+
+$form_body .= "<div>" . elgg_echo('admin:site:access:warning') . "<br />";
+$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') => 1),
+ 'name' => 'allow_user_default_access',
+ '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') => 1),
+ 'name' => 'simplecache_enabled',
+ 'value' => (elgg_get_config('simplecache_enabled') ? 1 : 0),
+)) . "</div>";
+$form_body .= "<div>" . elgg_echo('installation:systemcache:description') . "<br />";
+$form_body .= elgg_view("input/checkboxes", array(
+ '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'));
+$form_body .= "<div>" . elgg_echo('installation:debug');
+$form_body .= elgg_view('input/dropdown', array(
+ 'options_values' => $debug_options,
+ 'name' => 'debug',
+ 'value' => elgg_get_config('debug'),
+));
+$form_body .= '</div>';
+
+// control new user registration
+$options = array(
+ 'options' => array(elgg_echo('installation:registration:label') => 1),
+ 'name' => 'allow_registration',
+ '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>';
+
+// control walled garden
+$walled_garden = elgg_get_config(walled_garden);
+$options = array(
+ 'options' => array(elgg_echo('installation:walled_garden:label') => 1),
+ 'name' => 'walled_garden',
+ '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') => 1),
+ 'name' => 'https_login',
+ 'value' => (elgg_get_config('https_login') ? 1 : 0)
+)) . "</div>";
+
+$form_body .= "<div>" . elgg_echo('installation:disableapi') . "<br />";
+$disable_api = elgg_get_config('disable_api');
+$on = $disable_api ? 0 : 1;
+$form_body .= elgg_view("input/checkboxes", array(
+ 'options' => array(elgg_echo('installation:disableapi:label') => 1),
+ 'name' => 'api',
+ 'value' => $on,
+));
+$form_body .= "</div>";
+
+$form_body .= elgg_view('input/hidden', array('name' => 'settings', 'value' => 'go'));
+
+$form_body .= '<div class="elgg-foot">';
+$form_body .= elgg_view('input/submit', array('value' => elgg_echo("save")));
+$form_body .= '</div>';
+
+echo $form_body;
diff --git a/views/default/forms/admin/site/update_basic.php b/views/default/forms/admin/site/update_basic.php
new file mode 100644
index 000000000..88870bc60
--- /dev/null
+++ b/views/default/forms/admin/site/update_basic.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * @todo cleanup
+ */
+$form_body = "";
+
+foreach (array('sitename','sitedescription', 'siteemail') as $field) {
+ $form_body .= "<div>";
+ $form_body .= elgg_echo('installation:' . $field) . "<br />";
+ $warning = elgg_echo('installation:warning:' . $field);
+ if ($warning != 'installation:warning:' . $field) {
+ echo "<b>" . $warning . "</b><br />";
+ }
+ $value = elgg_get_config($field);
+ $form_body .= elgg_view("input/text",array('name' => $field, 'value' => $value));
+ $form_body .= "</div>";
+}
+
+$languages = get_installed_translations();
+$form_body .= "<div>" . elgg_echo('installation:language');
+$form_body .= elgg_view("input/dropdown", array(
+ 'name' => 'language',
+ 'value' => elgg_get_config('language'),
+ 'options_values' => $languages,
+)) . "</div>";
+
+$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
diff --git a/views/default/forms/avatar/crop.php b/views/default/forms/avatar/crop.php
new file mode 100644
index 000000000..3e798cb27
--- /dev/null
+++ b/views/default/forms/avatar/crop.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Avatar crop form
+ *
+ * @uses $vars['entity']
+ */
+
+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 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="elgg-foot">
+<?php
+$coords = array('x1', 'x2', 'y1', 'y2');
+foreach ($coords as $coord) {
+ echo elgg_view('input/hidden', array('name' => $coord, 'value' => $vars['entity']->$coord));
+}
+
+echo elgg_view('input/hidden', array('name' => 'guid', 'value' => $vars['entity']->guid));
+
+echo elgg_view('input/submit', array('value' => elgg_echo('avatar:create')));
+
+?>
+</div>
diff --git a/views/default/forms/avatar/upload.php b/views/default/forms/avatar/upload.php
new file mode 100644
index 000000000..d91e8575e
--- /dev/null
+++ b/views/default/forms/avatar/upload.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Avatar upload form
+ *
+ * @uses $vars['entity']
+ */
+
+?>
+<div>
+ <label><?php echo elgg_echo("avatar:upload"); ?></label><br />
+ <?php echo elgg_view("input/file",array('name' => 'avatar')); ?>
+</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
new file mode 100644
index 000000000..9acabf3ea
--- /dev/null
+++ b/views/default/forms/comments/add.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Elgg comments add form
+ *
+ * @package Elgg
+ *
+ * @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>
+ <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()
+ ));
+}
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/login.php b/views/default/forms/login.php
new file mode 100644
index 000000000..d2c6e6221
--- /dev/null
+++ b/views/default/forms/login.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Elgg login form
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+?>
+
+<div>
+ <label><?php echo elgg_echo('loginusername'); ?></label>
+ <?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', $vars); ?>
+
+<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 (isset($vars['returntoreferer'])) {
+ echo elgg_view('input/hidden', array('name' => 'returntoreferer', 'value' => 'true'));
+ }
+ ?>
+
+ <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
new file mode 100644
index 000000000..5f6b9a4b6
--- /dev/null
+++ b/views/default/forms/members/name_search.php
@@ -0,0 +1,9 @@
+<?php
+
+$params = array(
+ 'name' => 'name',
+ 'class' => 'mbm',
+);
+echo elgg_view('input/text', $params);
+
+echo elgg_view('input/submit', array('value' => elgg_echo('search')));
diff --git a/views/default/forms/members/tag_search.php b/views/default/forms/members/tag_search.php
new file mode 100644
index 000000000..4fe9bb32a
--- /dev/null
+++ b/views/default/forms/members/tag_search.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Simple members search by tag form
+ */
+
+$params = array(
+ 'name' => 'tag',
+ 'class' => 'mbm',
+);
+echo elgg_view('input/text', $params);
+
+echo elgg_view('input/submit', array('value' => elgg_echo('search')));
diff --git a/views/default/forms/plugins/settings/save.php b/views/default/forms/plugins/settings/save.php
new file mode 100644
index 000000000..116529905
--- /dev/null
+++ b/views/default/forms/plugins/settings/save.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Used to show plugin settings for both users and admins.
+ *
+ * @package Elgg.Core
+ * @subpackage Plugins
+ */
+
+$plugin = $vars['entity'];
+$plugin_id = $plugin->getID();
+$user_guid = elgg_extract('user_guid', $vars, elgg_get_logged_in_user_guid());
+
+// Do we want to show admin settings or user settings
+$type = elgg_extract('type', $vars, '');
+
+if ($type != 'user') {
+ $type = '';
+}
+
+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 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>';
diff --git a/views/default/forms/plugins/usersettings/save.php b/views/default/forms/plugins/usersettings/save.php
new file mode 100644
index 000000000..ced88f818
--- /dev/null
+++ b/views/default/forms/plugins/usersettings/save.php
@@ -0,0 +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
new file mode 100644
index 000000000..cb0a37ca4
--- /dev/null
+++ b/views/default/forms/profile/edit.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Edit profile form
+ *
+ * @uses vars['entity']
+ */
+
+?>
+
+<div>
+ <label><?php echo elgg_echo('user:name:label'); ?></label>
+ <?php echo elgg_view('input/text', array('name' => 'name', 'value' => $vars['entity']->name)); ?>
+</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,
+ 'limit' => false
+ ));
+ if ($metadata) {
+ if (is_array($metadata)) {
+ $value = '';
+ foreach ($metadata as $md) {
+ if (!empty($value)) {
+ $value .= ', ';
+ }
+ $value .= $md->value;
+ $access_id = $md->access_id;
+ }
+ } else {
+ $value = $metadata->value;
+ $access_id = $metadata->access_id;
+ }
+ } else {
+ $value = '';
+ $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>
+ <?php
+ $params = array(
+ 'name' => $shortname,
+ 'value' => $value,
+ );
+ echo elgg_view("input/{$valtype}", $params);
+ $params = array(
+ 'name' => "accesslevel[$shortname]",
+ 'value' => $access_id,
+ );
+ echo elgg_view('input/access', $params);
+ ?>
+</div>
+<?php
+ }
+}
+
+elgg_clear_sticky_form('profile:edit');
+
+?>
+<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')));
+?>
+</div>
diff --git a/views/default/forms/profile/fields/add.php b/views/default/forms/profile/fields/add.php
new file mode 100644
index 000000000..2087ec299
--- /dev/null
+++ b/views/default/forms/profile/fields/add.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * 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/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
+ <div>$label_text: $label_control</div>
+ <div class="elgg-foot">$type_text: $type_control
+ $submit_control</div>
+END;
+
+echo elgg_autop(elgg_echo('profile:explainchangefields'));
+echo $formbody;
diff --git a/views/default/forms/register.php b/views/default/forms/register.php
new file mode 100644
index 000000000..c0ee66f76
--- /dev/null
+++ b/views/default/forms/register.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ * Elgg register form
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+elgg_load_js('elgg.register');
+
+$password = $password2 = '';
+$username = get_input('u');
+$email = get_input('e');
+$name = get_input('n');
+
+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,
+ 'class' => 'elgg-autofocus',
+ ));
+ ?>
+</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('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',
+ 'value' => $password,
+ ));
+ ?>
+</div>
+<div>
+ <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', $vars);
+
+// Add captcha hook
+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')));
+echo '</div>';
diff --git a/views/default/forms/user/passwordreset.php b/views/default/forms/user/passwordreset.php
new file mode 100644
index 000000000..5946fa7c0
--- /dev/null
+++ b/views/default/forms/user/passwordreset.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Reset user password form
+ */
+
+echo elgg_autop(elgg_echo('user:resetpassword:reset_password_confirm'));
+
+echo elgg_view('input/hidden', array(
+ 'name' => 'u',
+ 'value' => $vars['guid'],
+));
+
+echo elgg_view('input/hidden', array(
+ 'name' => 'c',
+ 'value' => $vars['code'],
+));
+
+echo elgg_view('input/submit', array(
+ 'value' => elgg_echo('resetpassword')
+));
diff --git a/views/default/forms/user/requestnewpassword.php b/views/default/forms/user/requestnewpassword.php
new file mode 100644
index 000000000..c90971eaf
--- /dev/null
+++ b/views/default/forms/user/requestnewpassword.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Elgg forgotten password.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+?>
+
+<div class="mtm">
+ <?php echo elgg_echo('user:password:text'); ?>
+</div>
+<div>
+ <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 class="elgg-foot">
+ <?php echo elgg_view('input/submit', array('value' => elgg_echo('request'))); ?>
+</div>
diff --git a/views/default/forms/useradd.php b/views/default/forms/useradd.php
new file mode 100644
index 000000000..4f337e4e4
--- /dev/null
+++ b/views/default/forms/useradd.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ * Elgg add user form.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ */
+
+$name = $username = $email = $password = $password2 = $admin = '';
+
+if (elgg_is_sticky_form('useradd')) {
+ extract(elgg_get_sticky_values('useradd'));
+ elgg_clear_sticky_form('useradd');
+ if (is_array($admin)) {
+ $admin = $admin[0];
+ }
+}
+
+?>
+<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-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
new file mode 100644
index 000000000..71323083f
--- /dev/null
+++ b/views/default/forms/usersettings/save.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * User account settings.
+ *
+ * Plugins should extend "forms/account/settings" to add to the settings.
+ */
+
+$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>';
+
+echo $form_body; \ No newline at end of file
diff --git a/views/default/forms/widgets/save.php b/views/default/forms/widgets/save.php
new file mode 100644
index 000000000..6959b2a82
--- /dev/null
+++ b/views/default/forms/widgets/save.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Elgg widget edit settings
+ *
+ * @uses $vars['widget']
+ * @uses $vars['show_access']
+ */
+
+$widget = $vars['widget'];
+$show_access = elgg_extract('show_access', $vars, true);
+
+$edit_view = "widgets/$widget->handler/edit";
+$custom_form_section = elgg_view($edit_view, array('entity' => $widget));
+
+$access = '';
+if ($show_access) {
+ $access = elgg_echo('access') . ': ' . elgg_view('input/access', array(
+ 'name' => 'params[access_id]',
+ 'value' => $widget->access_id,
+ ));
+}
+
+if (!$custom_form_section && !$access) {
+ return true;
+}
+
+$hidden = elgg_view('input/hidden', array('name' => 'guid', 'value' => $widget->guid));
+$submit = elgg_view('input/submit', array('value' => elgg_echo('save')));
+
+$body = <<<___END
+ $custom_form_section
+ <div>
+ $access
+ </div>
+ <div class="elgg-foot">
+ $hidden
+ $submit
+ </div>
+___END;
+
+echo $body;
diff --git a/views/default/friends/collection.php b/views/default/friends/collection.php
deleted file mode 100644
index c80482ecc..000000000
--- a/views/default/friends/collection.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
- /**
- * Elgg friends collection
- * Lists one of a user's friends collections
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @see collections.php
- *
- * @uses $vars['collection'] The individual friends collection
- */
-
- $coll = $vars['collection'];
-
- if (is_array($vars['collection']->members)) {
- $count = sizeof($vars['collection']->members);
- } else {
- $count = 0;
- }
-
- echo "<li><h2>";
-
- //as collections are private, check that the logged in user is the owner
- if($coll->owner_guid == $_SESSION['user']->getGUID())
- echo "<div class=\"friends_collections_controls\"> <a href=\"" . $vars['url'] . "action/friends/deletecollection?collection={$coll->id}\" class=\"delete_collection\" onclick=\"$('div.friends_picker').empty();\"> </a>";
-
- echo "</div>";
- 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('friends/collectiontabs', array('owner' => $_SESSION['user'], 'collection' => $vars['collection'], 'friendspicker' => $vars['friendspicker']));
- echo elgg_view('friends/picker',array('entities' => $friends, 'value' => $members, 'content' => $content, 'replacement' => '', 'friendspicker' => $vars['friendspicker']));
- ?>
-
-<script type="text/javascript">
-$(document).ready(function () {
-
- $('#friends_picker_placeholder<?php echo $vars['friendspicker']; ?>').load('<?php echo $vars['url']; ?>friends/pickercallback.php?username=<?php echo $_SESSION['user']->username; ?>&type=list&collection=<?php echo $vars['collection']->id; ?>');
-
- });
-</script>
- <?php
- }
-
- // close friends_picker div and the accordian list item
- echo "</li>";
-
-?> \ No newline at end of file
diff --git a/views/default/friends/collections.php b/views/default/friends/collections.php
deleted file mode 100644
index 7554a0545..000000000
--- a/views/default/friends/collections.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
- /**
- * Elgg friends collections
- * Lists a user's friends collections
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['collections'] The array of friends collections
- */
-
- if (!isset($friendspicker)) $friendspicker = 0;
-
- if (is_array($vars['collections']) && sizeof($vars['collections'])) {
-
- echo "<div class=\"expandall\"><p>expand all</p></div>";
- echo "<ul id=\"friends_collections_accordian\">";
-
- foreach($vars['collections'] as $collection) {
-
- $friendspicker++;
- echo elgg_view('friends/collection',array('collection' => $collection, 'friendspicker' => $friendspicker));
-
- }
-
- echo "</ul>";
-
- } else {
-
- echo elgg_echo("friends:nocollections");
-
- }
-
-?>
-
-<script>
-$(document).ready(function(){
-
-$('#friends_collections_accordian h2').click(function () {
- $(this.parentNode).children("[class=friends_picker]").slideToggle("fast");
- //return false;
-});
-
-// global more info expand all/close all
-$('div.expandall p').click(function () {
- if (this.innerHTML == 'close all') {
- $('div.friends_picker').slideUp("fast");
- $('div.expandall p').html('expand all');
-}
-else {
- $('div.friends_picker:hidden').slideDown("fast");
- $('div.expandall p').html('close all');
- }
-});
-
-});
-</script> \ No newline at end of file
diff --git a/views/default/friends/collectiontabs.php b/views/default/friends/collectiontabs.php
deleted file mode 100644
index 61970af4a..000000000
--- a/views/default/friends/collectiontabs.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
- $friendspicker = $vars['friendspicker'];
-
- $collectionid = $vars['collection']->id;
- $ownerid = $vars['owner']->getGUID();
-
-?>
-
-<div id="friendsPickerNavigationTabs">
-<ul>
-<li class="selected"><a href="#" class="collectionmembers<?php echo $friendspicker; ?>">Collection members</a></li>
-
-<li><a href="#" class="editmembers<?php echo $friendspicker; ?>">Edit collection</a></li>
-
-</ul>
-</div>
-
-<script type="text/javascript">
-$(document).ready(function () {
-
- $('a.collectionmembers<?php echo $friendspicker; ?>').click(function () {
- // load collection members pane
- $('#friends_picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo $vars['url']; ?>friends/pickercallback.php?username=<?php echo $_SESSION['user']->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");
- // add selected class to current tab
- $(this).parent().addClass("selected");
-
- return false;
- });
-
- $('a.editmembers<?php echo $friendspicker; ?>').click(function () {
- // load friends picker pane
- $('#friends_picker_placeholder<?php echo $friendspicker; ?>').load('<?php echo $vars['url']; ?>friends/pickercallback.php?username=<?php echo $_SESSION['user']->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");
- // add selected class to current tab
- $(this).parent().addClass("selected");
-
- return false;
- });
-
-
-});
-</script> \ No newline at end of file
diff --git a/views/default/friends/forms/collectionfields.php b/views/default/friends/forms/collectionfields.php
deleted file mode 100644
index ef3c367e3..000000000
--- a/views/default/friends/forms/collectionfields.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
- /**
- * Elgg friend collections required hidden fields for js friends picker form
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- 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/friends/forms/edit.php b/views/default/friends/forms/edit.php
deleted file mode 100644
index 828d47dfd..000000000
--- a/views/default/friends/forms/edit.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
- /**
- * Elgg friend collections add/edit
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] Optionally, the collection edit
- */
-
- // var_export($vars['collection'][0]->id);
-
- // Set title, form destination
- if (isset($vars['collection'])) {
- $action = "friends/editcollection";
- $title = $vars['collection'][0]->name;
- } else {
- $action = "friends/addcollection";
- $title = "";
- }
-
-
- $form_body = "<p><label>" . elgg_echo("friends:collectionname") . "<br />" .
- elgg_view("input/text", array(
- "internalname" => "collection_name",
- "value" => $title,
- )) . "</label></p>";
-
- $form_body .= "<p>";
-
- 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 .= "</p>";
-
- $form_body .= "<p><label>" . elgg_echo("friends:addfriends") . "<br />".
- elgg_view('friends/picker',array('entities' => $vars['friends'], 'internalname' => 'friends_collection')) . "</label></p>";
-
- $form_body .= "<p>";
- if (isset($vars['collection'])) {
- $form_body .= elgg_view('input/hidden', array('internalname' => 'collection_id', 'value' => "{$vars['collection'][0]->id}"));
- }
- $form_body .= elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save')));
- $form_body .= "</p>";
-
- echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$vars['url']}action/$action"));
-?> \ No newline at end of file
diff --git a/views/default/friends/list.php b/views/default/friends/list.php
deleted file mode 100644
index d45a3f374..000000000
--- a/views/default/friends/list.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
- /**
- * Elgg friends list
- * Lists a user's friends
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['friends'] The array of ElggUser objects
- */
-
- if (is_array($vars['friends']) && sizeof($vars['friends']) > 0) {
-
- foreach($vars['friends'] as $friend) {
-
- echo elgg_view_entity($friend);
-
- }
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/friends/picker.php b/views/default/friends/picker.php
deleted file mode 100644
index e1e1ba369..000000000
--- a/views/default/friends/picker.php
+++ /dev/null
@@ -1,289 +0,0 @@
-<?php
-
- /**
- * Elgg friends picker
- * Lists the friends picker
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['entities'] The array of ElggUser objects
- */
-
- // Let the system know that the friends picker is in use
- global $pickerinuse;
- $pickerinuse = true;
-
- // Initialise internalname
- if (!isset($vars['internalname'])) {
- $internalname = "friend";
- } else {
- $internalname = $vars['internalname'];
- }
-
- // Initialise values
- if (!isset($vars['value'])) {
- $vars['value'] = array();
- } else {
- if (!is_array($vars['value'])) {
- $vars['value'] = (int) $vars['value'];
- $vars['value'] = array($vars['value']);
- }
- }
-
- // Initialise whether we're calling back or not
- if (isset($vars['callback'])) {
- $callback = $vars['callback'];
- } else {
- $callback = false;
- }
-
- // We need to count the number of friends pickers on the page.
- if (!isset($vars['friendspicker'])) {
- global $friendspicker;
- if (!isset($friendspicker)) $friendspicker = 0;
- $friendspicker++;
- } else {
- $friendspicker = $vars['friendspicker'];
- }
-
- $users = array();
- $activeletters = array();
-
- // Are we displaying form tags and submit buttons?
- // (If we've been given a target, then yes! Otherwise, no.)
- if (isset($vars['formtarget'])) {
- $formtarget = $vars['formtarget'];
- } else {
- $formtarget = false;
- }
-
- // Sort users by letter
- if (is_array($vars['entities']) && sizeof($vars['entities']))
- foreach($vars['entities'] as $user) {
-
- $letter = strtoupper(substr($user->name,0,1));
- if ($letter >= "0" && $letter <= "9") {
- $letter = "0";
- }
- if (!isset($users[$letter])) {
- $users[$letter] = array();
- }
- $users[$letter][$user->name] = $user;
-
- }
-
- if (!$callback) {
-
-?>
-
-<div class="friends_picker">
-
-<?php
-
- if (isset($vars['content'])) echo $vars['content'];
-
-
-?>
-
- <div id="friends_picker_placeholder<?php echo $friendspicker; ?>">
-
-<?php
-
- }
-
- if (!isset($vars['replacement'])) {
-
- if ($formtarget) {
-?>
-
- <script language="text/javascript">
- $(function() { // onload...do
- $('#collectionMembersForm<?php echo $friendspicker; ?>').submit(function() {
- var inputs = [];
- $(':input', this).each(function() {
- if (this.type != 'checkbox' || (this.type == 'checkbox' && this.checked != false)) {
- inputs.push(this.name + '=' + escape(this.value));
- }
- });
- jQuery.ajax({
- type: "POST",
- data: inputs.join('&'),
- url: this.action,
- success: function(){
- $('a.collectionmembers<?php echo $friendspicker; ?>').click();
- }
-
- });
- return false;
- })
- })
-
- </script>
-
- <!-- Collection members form -->
- <form id="collectionMembersForm<?php echo $friendspicker; ?>" action="<?php echo $formtarget; ?>" method="post"> <!-- action="" method=""> -->
-
-<?php
-
- }
-
-?>
-
- <div class="friendsPicker_wrapper">
- <div id="friendsPicker<?php echo $friendspicker; ?>">
- <div class="friendsPicker_container">
-<?php
-
- // Initialise letters
- $letter = 'A';
- while (1 == 1) {
-?>
- <div class="panel" title="<?php echo $letter; ?>">
- <div class="wrapper">
- <h3><?php echo $letter; ?></h3>
-
-<?php
-
- if (isset($users[$letter])) {
- ksort($users[$letter]);
-
- echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
- $col = 0;
-
- foreach($users[$letter] as $friend) {
- if ($col == 0) echo "<tr>";
-
- //echo "<p>" . $user->name . "</p>";
- $label = elgg_view("profile/icon",array('entity' => $friend, 'size' => 'tiny', 'override' => true));
- $options[$label] = $friend->getGUID();
- if (in_array($friend->getGUID(),$vars['value'])) {
- $checked = "checked = \"checked\"";
- if (!in_array($letter,$activeletters))
- $activeletters[] = $letter;
- } else {
- $checked = "";
- }
-
-?>
-
- <td>
-
- <input type="checkbox" <?php echo $checked; ?> name="<?php echo $internalname; ?>[]" value="<?php echo $options[$label]; ?>" />
-
- </td>
-
- <td >
-
- <div style="width: 25px; margin-bottom: 15px;">
-<?php
-
- echo $label;
-
-?>
- </div>
- </td>
- <td style="width: 200px; padding: 5px;">
-<?php
-
- echo $friend->name;
-
-?>
- </td>
-<?php
-
- $col++;
- if ($col == 3){
- echo "</tr>";
- $col = 0;
- }
- }
- if ($col < 3) echo "</tr>";
-
- echo "</table>";
-
- }
-
-?>
-
- </div>
- </div>
-<?php
- if ($letter == 'Z') break;
- $letter++;
- }
-
-?>
- </div>
-
-<?php
-
- if ($formtarget) {
-
- if (isset($vars['formcontents']))
- echo $vars['formcontents'];
-
-?>
- <input type="submit" class="submit_button" value="<?php echo elgg_echo('save'); ?>" />
- <!-- onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();" -->
- <input type="button" class="cancel_button" value="<?php echo elgg_echo('cancel'); ?>" onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();" />
- </form>
-
-<?php
-
- }
-
-?>
-
- </div>
- </div>
-
-<?php
- } else {
- echo $vars['replacement'];
- }
- if (!$callback) {
-
-?>
-
- </div>
-</div>
-
-
-<?php
-
- }
-
- if (!isset($vars['replacement'])) {
-?>
-
-<script type="text/javascript">
- // initialise picker
- $("div#friendsPicker<?php echo $friendspicker; ?>").friendsPicker(<?php echo $friendspicker; ?>);
-</script>
-<script>
- $(document).ready(function () {
- // manually add class to corresponding tab for panels that have content
-<?php
- if (sizeof($activeletters) > 0)
- $chararray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- foreach($activeletters as $letter) {
- $tab = strpos($chararray, $letter) + 1;
-?>
- $("div#friendsPickerNavigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent");
-<?php
- }
-
-?>
- });
-</script>
-
-<?php
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/friends/tablelist.php b/views/default/friends/tablelist.php
deleted file mode 100644
index f59e02250..000000000
--- a/views/default/friends/tablelist.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
- /**
- * Elgg friends picker
- * Lists the friends picker
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['entities'] The array of ElggUser objects
- */
-
- if (is_array($vars['entities'])) {
-
-?>
-
- <table cellspacing="0" id="collectionMembersTable" style="margin:10px;">
- <tr>
-<?php
- $column = 0;
- foreach($vars['entities'] as $entity) {
- if (!($entity instanceof ElggEntity)) $entity = get_entity($entity);
- 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>
- </td>
- <td style="width: 200px; padding: 5px;">
-<?php
-
- echo $entity->name;
-
-?>
- </td>
-
-<?php
-
- $column++;
- if ($column == 3) {
- echo "</tr><tr>";
- $column = 0;
- }
-
- }
-
-
-?>
-
-
-
-<?php
- }
- if ($column < 3 && $column != 0) echo "</tr>";
- echo "</table>";
- }
-
- if (isset($vars['content'])) echo $vars['content'];
-
-?> \ No newline at end of file
diff --git a/views/default/friends/tablelistcountupdate.php b/views/default/friends/tablelistcountupdate.php
deleted file mode 100644
index 64f793a07..000000000
--- a/views/default/friends/tablelistcountupdate.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
- /**
- * Elgg friends picker count updater
- * Updates the friends count on a collection
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['count'] The count
- * @uses $vars['friendspicker'] The friendspicker counter number
- */
-
-?>
-
-<script language="text/javascript">
- $("#friends_membership_count<?php echo $vars['friendspicker']; ?>").html("<?php echo $vars['count']; ?>");
-</script> \ No newline at end of file
diff --git a/views/default/graphics/ajax_loader.php b/views/default/graphics/ajax_loader.php
new file mode 100644
index 000000000..d5ce87ea9
--- /dev/null
+++ b/views/default/graphics/ajax_loader.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Elgg AJAX loader
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['id'] CSS id
+ * @uses $vars['class'] Optional additional CSS class
+ * @uses $vars['hidden'] Begin hidden? (true)
+ */
+
+if (isset($vars['id'])) {
+ $id = "id=\"{$vars['id']}\"";
+}
+
+$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="$class" $id></div>
+
+END;
+
+echo $loader; \ No newline at end of file
diff --git a/views/default/graphics/icon.php b/views/default/graphics/icon.php
deleted file mode 100644
index 9d85265ce..000000000
--- a/views/default/graphics/icon.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
- /**
- * Generic icon view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $entity = $vars['entity'];
-
- // Get size
- if (!in_array($vars['size'],array('small','medium','large','tiny','master','topbar')))
- $vars['size'] = "medium";
-
- // Get any align and js
- if (!empty($vars['align'])) {
- $align = " align=\"{$vars['align']}\" ";
- } else {
- $align = "";
- }
-
-
-?>
-<div class="icon">
-<?php if ($vars['link']) { ?><a href="<?php echo $vars['link'] ?>"><?php } ?>
-<img src="<?php echo $entity->getIcon($vars['size']); ?>" border="0" <?php echo $align; ?> <?php echo $vars['js']; ?> />
-<?php if ($vars['link']) { ?></a><?php } ?>
-</div> \ No newline at end of file
diff --git a/views/default/group/default.php b/views/default/group/default.php
index abcb53335..383a25c49 100644
--- a/views/default/group/default.php
+++ b/views/default/group/default.php
@@ -1,14 +1,9 @@
<?php
- /**
- * ElggGroup default view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
+/**
+ * ElggGroup default view.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
- echo elgg_view('object/default', $vars);
-?> \ No newline at end of file
+echo elgg_view('object/default', $vars);
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
new file mode 100644
index 000000000..ceaeb0ff0
--- /dev/null
+++ b/views/default/group/search/finishblurb.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * @package Elgg
+ * @subpackage Core
+ * @deprecated 1.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(); ?>search/groups?tag=<?php echo urlencode($vars['tag']); ?>">
+ <?php
+ echo elgg_echo("group:search:finishblurb");
+ ?></a>
+</div>
+<?php
+}
diff --git a/views/default/group/search/startblurb.php b/views/default/group/search/startblurb.php
new file mode 100644
index 000000000..92256d1db
--- /dev/null
+++ b/views/default/group/search/startblurb.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * @package Elgg
+ * @subpackage Core
+ * @deprecated 1.7
+ */
+elgg_deprecated_notice('view groups/search/startblurb was deprecated.', 1.7);
+?>
+
+<div class="contentWrapper">
+ <?php
+ echo elgg_echo("group:search:startblurb", array($vars['tag']));
+ ?>
+</div>
diff --git a/views/default/icon/default.php b/views/default/icon/default.php
new file mode 100644
index 000000000..7f13a1189
--- /dev/null
+++ b/views/default/icon/default.php
@@ -0,0 +1,80 @@
+<?php
+/**
+ * Generic icon view.
+ *
+ * @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['img_class'] Optional CSS class added to img
+ * @uses $vars['link_class'] Optional CSS class for the link
+ */
+
+$entity = $vars['entity'];
+
+$sizes = array('small', 'medium', 'large', 'tiny', 'master', 'topbar');
+// Get size
+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'];
+}
+
+$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) {
+ $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
new file mode 100644
index 000000000..c0b0e7483
--- /dev/null
+++ b/views/default/icon/user/default.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * Elgg user icon
+ *
+ * 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['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());
+$size = elgg_extract('size', $vars, 'medium');
+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', false);
+$username = $user->username;
+
+$icontime = $user->icontime;
+if (!$icontime) {
+ $icontime = "default";
+}
+
+$js = elgg_extract('js', $vars, '');
+if ($js) {
+ elgg_deprecated_notice("Passing 'js' to icon views is deprecated.", 1.8, 5);
+}
+
+$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 = 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 = $use_hover && (elgg_is_admin_logged_in() || !$user->isBanned());
+
+?>
+<div class="<?php echo $class; ?>">
+<?php
+
+if ($show_menu) {
+ $params = array(
+ 'entity' => $user,
+ 'username' => $username,
+ 'name' => $name,
+ );
+ echo elgg_view_icon('hover-menu');
+ echo elgg_view_menu('user_hover', $params);
+}
+
+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 dfd23df1d..137eea288 100644
--- a/views/default/input/access.php
+++ b/views/default/input/access.php
@@ -1,51 +1,38 @@
-<?php
-
- /**
- * Elgg access level input
- * Displays a pulldown input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
+<?php
+/**
+ * Elgg access level input
+ * Displays a dropdown 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
+ */
- $class = $vars['class'];
- if (!$class) $class = "input-access";
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-access {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-access";
+}
- if (!is_array($vars['options']))
- {
- $vars['options'] = array();
- $vars['options'] = get_write_access_array();
- }
-
- if (is_array($vars['options']) && sizeof($vars['options']) > 0) {
-
-?>
-
-<select name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['js'])) echo $vars['js']; ?> <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>">
-<?php
-
- foreach($vars['options'] as $key => $option) {
- if ($key != $vars['value']) {
- echo "<option value=\"{$key}\">{$option}</option>";
- } else {
- echo "<option value=\"{$key}\" selected=\"selected\">{$option}</option>";
- }
- }
-
-?>
-</select>
-
-<?php
-
- }
-
-?> \ No newline at end of file
+$defaults = array(
+ '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) {
+ $vars['value'] = get_default_access();
+}
+
+if (is_array($vars['options_values']) && sizeof($vars['options_values']) > 0) {
+ echo elgg_view('input/dropdown', $vars);
+}
diff --git a/views/default/input/autocomplete.php b/views/default/input/autocomplete.php
new file mode 100644
index 000000000..e58eb1ae8
--- /dev/null
+++ b/views/default/input/autocomplete.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Displays an autocomplete text input.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @todo This currently only works for ONE AUTOCOMPLETE TEXT FIELD on a page.
+ *
+ * @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(
+ 'value' => '',
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
+
+$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);
+
+elgg_load_js('elgg.autocomplete');
+elgg_load_js('jquery.ui.autocomplete.html');
+
+?>
+
+<script type="text/javascript">
+elgg.provide('elgg.autocomplete');
+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 9a72f38b0..9957fdc54 100644
--- a/views/default/input/button.php
+++ b/views/default/input/button.php
@@ -1,41 +1,40 @@
<?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
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['type'] Submit or reset, defaults to submit.
- * @uses $vars['src'] Src of an image
- *
- */
+/**
+ * Create a input button
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['src'] Src of an image
+ * @uses $vars['class'] Additional CSS class
+ */
- global $CONFIG;
-
- $class = $vars['class'];
- if (!$class) $class = "submit_button";
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-button {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-button";
+}
- if (isset($vars['type'])) { $type = strtolower($vars['type']); } else { $type = 'submit'; }
- switch ($type)
- {
- case 'button' : $type='button'; break;
- case 'reset' : $type='reset'; break;
- case 'submit':
- default: $type = 'submit';
- }
-
- $value = htmlentities($vars['value'], null, 'UTF-8');
- $name = $vars['internalname'];
- $src = $vars['src'];
- if (strpos($src,$CONFIG->wwwroot)===false) $src = ""; // blank src if trying to access an offsite image.
+$defaults = array(
+ 'type' => 'button',
+);
+
+$vars = array_merge($defaults, $vars);
+
+switch ($vars['type']) {
+ case 'button':
+ case 'reset':
+ case 'submit':
+ case 'image':
+ break;
+ default:
+ $vars['type'] = 'button';
+ break;
+}
+
+// blank src if trying to access an offsite image. @todo why?
+if (isset($vars['src']) && strpos($vars['src'], elgg_get_site_url()) === false) {
+ $vars['src'] = "";
+}
?>
-<input type="<?php echo $type; ?>" class="<?php echo $type; ?>_button" <?php echo $vars['js']; ?> value="<?php echo $value; ?>" src="<?php echo $src; ?>" class="<?php echo $class; ?>" /> \ 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 0082d2a7e..52c84ff82 100644
--- a/views/default/input/calendar.php
+++ b/views/default/input/calendar.php
@@ -1,44 +1,6 @@
-<?php
-
- /**
- * Elgg calendar input
- * Displays a calendar input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
-
- static $calendarjs;
- if (empty($calendarjs)) {
-
- echo <<< END
-
-<script language="JavaScript" src="{$vars['url']}vendors/calendarpopup/CalendarPopup.js"></script>
-
-END;
- $calendarjs = 1;
- }
- $strippedname = sanitise_string($vars['internalname']);
- $js = "cal" . $strippedname;
-
- if ($vars['value'] > 86400) {
- $val = date("F j, Y",$vars['value']);
- } else {
- $val = $vars['value'];
- }
-
-?>
-<script language="JavaScript">
- var cal<?php echo $strippedname; ?> = new CalendarPopup();
-</script>
-<input type="text" <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" id="<?php echo $strippedname; ?>" value="<?php echo $val; ?>" />
-<a href="#" onclick="<?php echo $js; ?>.select(document.getElementById('<?php echo $strippedname; ?>'),'anchor<?php echo $strippedname; ?>','MMM dd, yyyy'); return false;" TITLE="<?php echo $js; ?>.select(document.forms[0].<?php echo $strippedname; ?>,'anchor<?php echo $strippedname; ?>','MMM dd, yyyy'); return false;" NAME="anchor<?php echo $strippedname; ?>" ID="anchor<?php echo $strippedname; ?>">select</a> \ No newline at end of file
+<?php
+// @deprecated Use input/date instead.
+
+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
new file mode 100644
index 000000000..1c2e22aaa
--- /dev/null
+++ b/views/default/input/captcha.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * This view provides a hook for third parties to provide a CAPTCHA.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+?> \ No newline at end of file
diff --git a/views/default/input/checkbox.php b/views/default/input/checkbox.php
new file mode 100644
index 000000000..3dc75c6c3
--- /dev/null
+++ b/views/default/input/checkbox.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Elgg checkbox input
+ * Displays a checkbox input tag
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ *
+ * Pass input tag attributes as key value pairs. For a list of allowable
+ * attributes, see http://www.w3schools.com/tags/tag_input.asp
+ *
+ * @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(
+ 'default' => 0,
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
+
+$default = $vars['default'];
+unset($vars['default']);
+
+if (isset($vars['name']) && $default !== false) {
+ echo "<input type=\"hidden\" name=\"{$vars['name']}\" value=\"$default\"/>";
+}
+
+?>
+<input type="checkbox" <?php echo elgg_format_attributes($vars); ?> />
diff --git a/views/default/input/checkboxes.php b/views/default/input/checkboxes.php
index 2b9970aaa..db4b06949 100644
--- a/views/default/input/checkboxes.php
+++ b/views/default/input/checkboxes.php
@@ -1,49 +1,90 @@
-<?php
-
- /**
- * Elgg checkbox input
- * Displays a checkbox input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['options'] An array of strings representing the label => options for the checkbox field
- *
- */
-
- $class = $vars['class'];
- if (!$class) $class = "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\"";
- }
- }
- $labelint = (int) $label;
- if ("{$label}" == "{$labelint}") {
- $label = $option;
- }
-
- $disabled = "";
- if ($vars['disabled']) $disabled = ' disabled="yes" ';
- echo "<label><input type=\"checkbox\" $disabled {$vars['js']} name=\"{$vars['internalname']}[]\" {$selected} value=\"".htmlentities($option, null, 'UTF-8')."\" {$selected} class=\"$class\" />{$label}</label><br />";
- }
-
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg checkbox input
+ * Displays a checkbox input field
+ *
+ * @note This also includes a hidden input with the same name as the checkboxes
+ * to make sure something is sent to the server. The default value is 0.
+ * If using JS, be specific to avoid selecting the hidden default value:
+ * $('input[type=checkbox][name=name]')
+ *
+ * @warning Passing integers as labels does not currently work due to a
+ * deprecated hack that will be removed in Elgg 1.9. To use integer labels,
+ * the labels must be character codes: 1 would be &#0049;
+ *
+ * @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['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'
+ *
+ */
+
+$defaults = array(
+ 'align' => 'vertical',
+ 'value' => array(),
+ 'default' => 0,
+ 'disabled' => false,
+ 'options' => array(),
+ 'name' => '',
+);
+
+$vars = array_merge($defaults, $vars);
+
+$class = "elgg-input-checkboxes elgg-{$vars['align']}";
+if (isset($vars['class'])) {
+ $class .= " {$vars['class']}";
+ unset($vars['class']);
+}
+
+$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 ($vars['name'] && $vars['default'] !== false) {
+ echo "<input type=\"hidden\" name=\"{$vars['name']}\" value=\"{$vars['default']}\" />";
+ }
+
+ 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 = $value;
+ }
+
+ $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 '</ul>';
+}
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
new file mode 100644
index 000000000..8955e6e53
--- /dev/null
+++ b/views/default/input/datepicker.php
@@ -0,0 +1,6 @@
+<?php
+/**
+ * @deprecated use input/date instead
+ */
+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
new file mode 100644
index 000000000..9f07874f1
--- /dev/null
+++ b/views/default/input/dropdown.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Elgg dropdown input
+ * Displays a dropdown (select) input field
+ *
+ * @warning Default values of FALSE or NULL will match '' (empty string) but not 0.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @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 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(
+ 'disabled' => false,
+ 'value' => '',
+ 'options_values' => array(),
+ 'options' => array(),
+);
+
+$vars = array_merge($defaults, $vars);
+
+$options_values = $vars['options_values'];
+unset($vars['options_values']);
+
+$options = $vars['options'];
+unset($vars['options']);
+
+$value = $vars['value'];
+unset($vars['value']);
+
+?>
+<select <?php echo elgg_format_attributes($vars); ?>>
+<?php
+
+if ($options_values) {
+ foreach ($options_values as $opt_value => $option) {
+
+ $option_attrs = elgg_format_attributes(array(
+ 'value' => $opt_value,
+ 'selected' => (string)$opt_value == (string)$value,
+ ));
+
+ echo "<option $option_attrs>$option</option>";
+ }
+} else {
+ if (is_array($options)) {
+ foreach ($options as $option) {
+
+ $option_attrs = elgg_format_attributes(array(
+ 'selected' => (string)$option == (string)$value
+ ));
+
+ echo "<option $option_attrs>$option</option>";
+ }
+ }
+}
+?>
+</select>
diff --git a/views/default/input/email.php b/views/default/input/email.php
index bedf93e27..190fb88c6 100644
--- a/views/default/input/email.php
+++ b/views/default/input/email.php
@@ -1,24 +1,26 @@
-<?php
-
- /**
- * Elgg email input
- * Displays an email input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
+<?php
+/**
+ * Elgg email input
+ * Displays an email input field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['class'] Additional CSS class
+ */
- $class = $vars['class'];
- if (!$class) $class = "input-text";
-?>
-
-<input type="text" <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" value="<?php echo $vars['value']; ?>" class="<?php echo $class; ?>"/> \ No newline at end of file
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-email {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-email";
+}
+
+$defaults = array(
+ '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/file.php b/views/default/input/file.php
index de0098b3e..452fe72b9 100644
--- a/views/default/input/file.php
+++ b/views/default/input/file.php
@@ -1,26 +1,31 @@
-<?php
-
- /**
- * Elgg file input
- * Displays a file input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
-
- if (!empty($vars['value'])) {
- echo elgg_echo('fileexists') . "<br />";
- }
+<?php
+/**
+ * Elgg file input
+ * Displays a file input field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] The current value if any
+ * @uses $vars['class'] Additional CSS class
+ */
- $class = $vars['class'];
- if (!$class) $class = "input-file";
-?>
-<input type="file" size="30" <?php echo $vars['js']; ?>name="<?php echo $vars['internalname']; ?>" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>" /> \ No newline at end of file
+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(
+ 'disabled' => false,
+ 'size' => 30,
+);
+
+$attrs = array_merge($defaults, $vars);
+
+?>
+<input type="file" <?php echo elgg_format_attributes($attrs); ?> />
diff --git a/views/default/input/form.php b/views/default/input/form.php
index 2931fb07c..df30133b3 100644
--- a/views/default/input/form.php
+++ b/views/default/input/form.php
@@ -1,41 +1,44 @@
<?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
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @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['action'] URL of the action being called
- *
- */
-
- if (isset($vars['internalid'])) { $id = $vars['internalid']; } else { $id = ''; }
- if (isset($vars['internalname'])) { $name = $vars['internalname']; } 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 { $method = 'POST'; }
-
- // Generate a security header
- $security_header = "";
- if ($vars['disable_security']!=true)
- {
- $ts = time();
- $token = generate_action_token($ts);
- $security_header = elgg_view('input/hidden', array('internalname' => '__elgg_token', 'value' => $token));
- $security_header .= elgg_view('input/hidden', array('internalname' => '__elgg_ts', 'value' => $ts));
- }
-?>
-<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 $security_header; ?>
-<?php echo $body; ?>
-</form> \ No newline at end of file
+/**
+ * Create a form for data submission.
+ * 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(
+ 'method' => "post",
+ 'disable_security' => FALSE,
+);
+
+$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']);
+
+$body = $vars['body'];
+unset($vars['body']);
+
+// Generate a security header
+if (!$vars['disable_security']) {
+ $body = elgg_view('input/securitytoken') . $body;
+}
+unset($vars['disable_security']);
+
+$attributes = elgg_format_attributes($vars);
+
+echo "<form $attributes><fieldset>$body</fieldset></form>";
diff --git a/views/default/input/friendspicker.php b/views/default/input/friendspicker.php
new file mode 100644
index 000000000..40708c890
--- /dev/null
+++ b/views/default/input/friendspicker.php
@@ -0,0 +1,319 @@
+<?php
+/**
+ * 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']
+ */
+
+elgg_load_js('elgg.friendspicker');
+elgg_load_js('jquery.easing');
+
+
+$chararray = elgg_echo('friendspicker:chararray');
+
+// Initialise name
+if (!isset($vars['name'])) {
+ $name = "friend";
+} else {
+ $name = $vars['name'];
+}
+
+// Are we highlighting default or all?
+if (empty($vars['highlight'])) {
+ $vars['highlight'] = 'default';
+}
+if ($vars['highlight'] != 'all') {
+ $vars['highlight'] = 'default';
+}
+
+// Initialise values
+if (!isset($vars['value'])) {
+ $vars['value'] = array();
+} else {
+ if (!is_array($vars['value'])) {
+ $vars['value'] = (int) $vars['value'];
+ $vars['value'] = array($vars['value']);
+ }
+}
+
+// Initialise whether we're calling back or not
+if (isset($vars['callback'])) {
+ $callback = $vars['callback'];
+} else {
+ $callback = false;
+}
+
+// We need to count the number of friends pickers on the page.
+if (!isset($vars['friendspicker'])) {
+ global $friendspicker;
+ if (!isset($friendspicker)) {
+ $friendspicker = 0;
+ }
+ $friendspicker++;
+} else {
+ $friendspicker = $vars['friendspicker'];
+}
+
+$users = array();
+$activeletters = array();
+
+// Are we displaying form tags and submit buttons?
+// (If we've been given a target, then yes! Otherwise, no.)
+if (isset($vars['formtarget'])) {
+ $formtarget = $vars['formtarget'];
+} else {
+ $formtarget = false;
+}
+
+// Sort users by letter
+if (is_array($vars['entities']) && sizeof($vars['entities'])) {
+ foreach($vars['entities'] as $user) {
+ $letter = elgg_strtoupper(elgg_substr($user->name, 0, 1));
+
+ if (!elgg_substr_count($chararray, $letter)) {
+ $letter = "*";
+ }
+ if (!isset($users[$letter])) {
+ $users[$letter] = array();
+ }
+ $users[$letter][$user->guid] = $user;
+ }
+}
+
+// sort users in letters alphabetically
+foreach ($users as $letter => $letter_users) {
+ usort($letter_users, create_function('$a, $b', '
+ return strcasecmp($a->name, $b->name);
+ '));
+ $users[$letter] = $letter_users;
+}
+
+if (!$callback) {
+ ?>
+
+ <div class="friends-picker-main-wrapper">
+
+ <?php
+
+ if (isset($vars['content'])) {
+ echo $vars['content'];
+ }
+ ?>
+
+ <div id="friends-picker_placeholder<?php echo $friendspicker; ?>">
+
+ <?php
+}
+
+if (!isset($vars['replacement'])) {
+ if ($formtarget) {
+?>
+<?php //@todo JS 1.8: no ?>
+<script language="text/javascript">
+ $(function() { // onload...do
+ $('#collectionMembersForm<?php echo $friendspicker; ?>').submit(function() {
+ var inputs = [];
+ $(':input', this).each(function() {
+ if (this.type != 'checkbox' || (this.type == 'checkbox' && this.checked != false)) {
+ inputs.push(this.name + '=' + escape(this.value));
+ }
+ });
+ jQuery.ajax({
+ type: "POST",
+ data: inputs.join('&'),
+ url: this.action,
+ success: function(){
+ $('a.collectionmembers<?php echo $friendspicker; ?>').click();
+ }
+
+ });
+ return false;
+ })
+ })
+
+ </script>
+
+<!-- Collection members form -->
+<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'],
+ ));
+ }
+?>
+
+<div class="friends-picker-wrapper">
+<div id="friends-picker<?php echo $friendspicker; ?>">
+ <div class="friends-picker-container">
+<?php
+
+// Initialise letters
+ $chararray .= "*";
+ $letter = elgg_substr($chararray, 0, 1);
+ $letpos = 0;
+ while (1 == 1) {
+ ?>
+ <div class="panel" title="<?php echo $letter; ?>">
+ <div class="wrapper">
+ <h3><?php echo $letter; ?></h3>
+ <?php
+
+ if (isset($users[$letter])) {
+ ksort($users[$letter]);
+
+ echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
+ $col = 0;
+
+ foreach($users[$letter] as $friend) {
+ if ($col == 0) {
+ echo "<tr>";
+ }
+
+ //echo "<p>" . $user->name . "</p>";
+ $label = elgg_view_entity_icon($friend, 'tiny', array('use_hover' => false));
+ $options[$label] = $friend->getGUID();
+
+ if ($vars['highlight'] == 'all' && !in_array($letter,$activeletters)) {
+ $activeletters[] = $letter;
+ }
+
+
+ if (in_array($friend->getGUID(),$vars['value'])) {
+ $checked = "checked = \"checked\"";
+ if (!in_array($letter,$activeletters) && $vars['highlight'] == 'default') {
+ $activeletters[] = $letter;
+ }
+ } else {
+ $checked = "";
+ }
+ ?>
+
+ <td>
+
+ <input type="checkbox" <?php echo $checked; ?> name="<?php echo $name; ?>[]" value="<?php echo $options[$label]; ?>" />
+
+ </td>
+
+ <td>
+
+ <div style="width: 25px; margin-bottom: 15px;">
+ <?php
+ echo $label;
+ ?>
+ </div>
+ </td>
+ <td style="width: 200px; padding: 5px;">
+ <?php echo $friend->name; ?>
+ </td>
+ <?php
+ $col++;
+ if ($col == 3){
+ echo "</tr>";
+ $col = 0;
+ }
+ }
+ if ($col < 3) {
+ echo "</tr>";
+ }
+
+ echo "</table>";
+ }
+
+?>
+
+ </div>
+ </div>
+<?php
+
+ $substr = elgg_substr($chararray, elgg_strlen($chararray) - 1, 1);
+ if ($letter == $substr) {
+ break;
+ }
+ //$letter++;
+ $letpos++;
+ $letter = elgg_substr($chararray, $letpos, 1);
+ }
+
+?>
+ </div>
+
+<?php
+
+if ($formtarget) {
+
+ if (isset($vars['formcontents']))
+ echo $vars['formcontents'];
+
+?>
+ <div class="clearfix"></div>
+ <div class="friendspicker-savebuttons">
+ <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>
+
+<?php
+
+}
+
+?>
+
+</div>
+</div>
+
+<?php
+} else {
+ echo $vars['replacement'];
+}
+if (!$callback) {
+
+?>
+
+</div>
+</div>
+
+
+<?php
+
+}
+
+if (!isset($vars['replacement'])) {
+?>
+<?php //@todo JS 1.8: no ?>
+<script type="text/javascript">
+ // initialise picker
+ $("div#friends-picker<?php echo $friendspicker; ?>").friendsPicker(<?php echo $friendspicker; ?>);
+</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 = elgg_strpos($chararray, $letter) + 1;
+?>
+$("div#friends-picker-navigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent");
+<?php
+ }
+
+?>
+});
+</script>
+
+<?php
+
+} \ No newline at end of file
diff --git a/views/default/input/hidden.php b/views/default/input/hidden.php
index 4ff9f31da..9c2fc6c08 100644
--- a/views/default/input/hidden.php
+++ b/views/default/input/hidden.php
@@ -1,20 +1,12 @@
<?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
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
+/**
+ * Create a hidden data field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] The current value, if any
+ */
+
?>
-<input type="hidden" <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" value="<?php echo htmlentities($vars['value'], null, 'UTF-8'); ?>" /> \ No newline at end of file
+<input type="hidden" <?php echo elgg_format_attributes($vars); ?> /> \ No newline at end of file
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 85c3f8186..61dc7ca19 100644
--- a/views/default/input/longtext.php
+++ b/views/default/input/longtext.php
@@ -1,25 +1,42 @@
-<?php
-
- /**
- * Elgg long text input
- * Displays a long text input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
+<?php
+/**
+ * Elgg long text input
+ * 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['disabled'] Is the input field disabled?
+ * @uses $vars['class'] Additional CSS class
+ */
- $class = $vars['class'];
- if (!$class) $class = "input-textarea";
-
-?>
-
-<textarea class="<?php echo $class; ?>" name="<?php echo $vars['internalname']; ?>" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?>><?php echo $vars['value']; ?></textarea> \ No newline at end of file
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-longtext {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-longtext";
+}
+
+$defaults = array(
+ 'value' => '',
+ 'rows' => '10',
+ 'cols' => '50',
+ 'id' => 'elgg-input-' . rand(), //@todo make this more robust
+);
+
+$vars = array_merge($defaults, $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 6fbd7254b..45f2b20a6 100644
--- a/views/default/input/password.php
+++ b/views/default/input/password.php
@@ -1,24 +1,28 @@
-<?php
-
- /**
- * Elgg password input
- * Displays a password input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
- */
+<?php
+/**
+ * Elgg password input
+ * Displays a password input field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] The current value, if any
+ * @uses $vars['name'] The name of the input field
+ * @uses $vars['class'] Additional CSS class
+ */
- $class = $vars['class'];
- if (!$class) $class = "input-password";
-?>
-
-<input type="password" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" value="<?php echo $vars['value']; ?>" class="<?php echo $class; ?>" /> \ No newline at end of file
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-password {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-password";
+}
+
+$defaults = array(
+ 'disabled' => false,
+ 'value' => '',
+);
+
+$attrs = array_merge($defaults, $vars);
+?>
+
+<input type="password" <?php echo elgg_format_attributes($attrs); ?> />
diff --git a/views/default/input/plaintext.php b/views/default/input/plaintext.php
new file mode 100644
index 000000000..e92c61ced
--- /dev/null
+++ b/views/default/input/plaintext.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Elgg long text input (plaintext)
+ * Displays a long text input field that should not be overridden by wysiwyg editors.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @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(
+ 'value' => '',
+ 'rows' => '10',
+ 'cols' => '50',
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
+
+$value = $vars['value'];
+unset($vars['value']);
+
+?>
+
+<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 96b4d19aa..fc0595300 100644
--- a/views/default/input/pulldown.php
+++ b/views/default/input/pulldown.php
@@ -1,52 +1,9 @@
-<?php
-
- /**
- * Elgg pulldown input
- * Displays a pulldown input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['options'] An array of strings representing the options for the pulldown 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.
- */
+<?php
+/**
+ * Deprecated pulldown input view - use 'input/dropdown' instead.
+ *
+ * @deprecated 1.8
+ */
-
- $class = $vars['class'];
- if (!$class) $class = "input-pulldown";
-
-?>
-
-
-<select name="<?php echo $vars['internalname']; ?>" <?php echo $vars['js']; ?> <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>">
-<?php
- if ($vars['options_values'])
- {
- foreach($vars['options_values'] as $value => $option) {
- if ($value != $vars['value']) {
- echo "<option value=\"$value\">{$option}</option>";
- } else {
- echo "<option value=\"$value\" selected=\"selected\">{$option}</option>";
- }
- }
- }
- else
- {
- foreach($vars['options'] as $option) {
- if ($option != $vars['value']) {
- echo "<option>{$option}</option>";
- } else {
- echo "<option selected=\"selected\">{$option}</option>";
- }
- }
- }
-?>
-</select> \ No newline at end of file
+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 8e5b456e9..ef860a773 100644
--- a/views/default/input/radio.php
+++ b/views/default/input/radio.php
@@ -1,39 +1,76 @@
-<?php
-
- /**
- * Elgg radio input
- * Displays a radio input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['options'] An array of strings representing the options for the radio field as "label" => option
- *
- */
-
- $class = $vars['class'];
- if (!$class) $class = "input-radio";
-
- foreach($vars['options'] as $label => $option) {
- if ($option != $vars['value']) {
- $selected = "";
- } else {
- $selected = "checked = \"checked\"";
- }
- $labelint = (int) $label;
- if ("{$label}" == "{$labelint}") {
- $label = $option;
- }
-
- if ($vars['disabled']) $disabled = ' disabled="yes" ';
- echo "<label><input type=\"radio\" $disabled {$vars['js']} name=\"{$vars['internalname']}\" value=\"".htmlentities($option, null, 'UTF-8')."\" {$selected} class=\"$class\" />{$label}</label><br />";
- }
-
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg radio input
+ * Displays a radio input field
+ *
+ * @warning Passing integers as labels does not currently work due to a
+ * deprecated hack that will be removed in Elgg 1.9. To use integer labels,
+ * the labels must be character codes: 1 would be &#0049;
+ *
+ * @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'
+ */
+
+$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 (is_array($vars['value'])) {
+ $vars['value'] = array_map('elgg_strtolower', $vars['value']);
+} else {
+ $vars['value'] = array(elgg_strtolower($vars['value']));
+}
+
+$options = $vars['options'];
+unset($vars['options']);
+
+$value = $vars['value'];
+unset($vars['value']);
+
+if ($options && count($options) > 0) {
+ echo "<ul class=\"$class\" $id>";
+ foreach ($options as $label => $option) {
+
+ $vars['checked'] = in_array(elgg_strtolower($option), $value);
+ $vars['value'] = $option;
+
+ $attributes = elgg_format_attributes($vars);
+
+ // handle indexed array where label is not specified
+ // @deprecated 1.8 Remove in 1.9
+ if (is_integer($label)) {
+ elgg_deprecated_notice('$vars[\'options\'] must be an associative array in input/radio', 1.8);
+ $label = $option;
+ }
+
+ echo "<li><label><input type=\"radio\" $attributes />$label</label></li>";
+ }
+ echo '</ul>';
+}
diff --git a/views/default/input/reset.php b/views/default/input/reset.php
index 6aa9d1c82..082da8669 100644
--- a/views/default/input/reset.php
+++ b/views/default/input/reset.php
@@ -1,27 +1,14 @@
<?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
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['type'] Submit or reset, defaults to submit.
- *
- */
+/**
+ * Create a reset input button
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['class'] CSS class that replaces elgg-button-cancel
+ */
- $vars['type'] = 'reset';
- $class = $vars['class'];
- if (!$class) $class = "submit_button";
- $vars['class'] = $class;
-
- echo elgg_view('input/button', $vars);
-?> \ No newline at end of file
+$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/securitytoken.php b/views/default/input/securitytoken.php
new file mode 100644
index 000000000..75410848a
--- /dev/null
+++ b/views/default/input/securitytoken.php
@@ -0,0 +1,15 @@
+<?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/default/input/submit.php b/views/default/input/submit.php
index 591a43998..df369b3b4 100644
--- a/views/default/input/submit.php
+++ b/views/default/input/submit.php
@@ -1,27 +1,14 @@
<?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
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['type'] Submit or reset, defaults to submit.
- *
- */
+/**
+ * Create a submit input button
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['class'] CSS class that replaces elgg-button-submit
+ */
- $vars['type'] = 'submit';
- $class = $vars['class'];
- if (!$class) $class = "submit_button";
- $vars['class'] = $class;
-
- echo elgg_view('input/button', $vars);
-?> \ No newline at end of file
+$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 e4c7d645d..261cf9f97 100644
--- a/views/default/input/tags.php
+++ b/views/default/input/tags.php
@@ -1,45 +1,45 @@
-<?php
-
- /**
- * Elgg tag input
- * Displays a tag input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['value'] An array of tags
- * @uses $vars['class'] Class override
- */
-
- $class = $vars['class'];
- if (!$class) $class = "input-tags";
-
- $tags = "";
- if (!empty($vars['value'])) {
- if (is_array($vars['value'])) {
- foreach($vars['value'] as $tag) {
-
- if (!empty($tags)) {
- $tags .= ", ";
- }
- if (is_string($tag)) {
- $tags .= $tag;
- } else {
- $tags .= $tag->value;
- }
-
- }
- } else {
- $tags = $vars['value'];
- }
- }
-
-?>
-<input type="text" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?><?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" value="<?php echo htmlentities($tags, null, 'UTF-8'); ?>" class="<?php echo $class; ?>"/> \ No newline at end of file
+<?php
+/**
+ * Elgg tag input
+ * Displays a tag input field
+ *
+ * @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(
+ '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'])) {
+ $tags = array();
+
+ foreach ($vars['value'] as $tag) {
+ if (is_string($tag)) {
+ $tags[] = $tag;
+ } else {
+ $tags[] = $tag->value;
+ }
+ }
+
+ $vars['value'] = implode(", ", $tags);
+}
+
+?>
+<input type="text" <?php echo elgg_format_attributes($vars); ?> /> \ No newline at end of file
diff --git a/views/default/input/text.php b/views/default/input/text.php
index a6045cf4c..07ce5c710 100644
--- a/views/default/input/text.php
+++ b/views/default/input/text.php
@@ -1,27 +1,26 @@
-<?php
-
- /**
- * Elgg text input
- * Displays a text input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['disabled'] If true then control is read-only
- * @uses $vars['class'] Class override
- */
+<?php
+/**
+ * Elgg text input
+ * Displays a text input field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['class'] Additional CSS class
+ */
-
- $class = $vars['class'];
- if (!$class) $class = "input-text";
-
-?>
-
-<input type="text" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" value="<?php echo htmlentities($vars['value'], null, 'UTF-8'); ?>" class="<?php echo $class ?>"/> \ No newline at end of file
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-text {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-text";
+}
+
+$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/url.php b/views/default/input/url.php
index 24e4f6a1d..e97a316d8 100644
--- a/views/default/input/url.php
+++ b/views/default/input/url.php
@@ -1,24 +1,27 @@
-<?php
-
- /**
- * Elgg URL input
- * Displays a URL input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['class'] Class override
- */
+<?php
+/**
+ * Elgg URL input
+ * Displays a URL input field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['class'] Additional CSS class
+ */
- $class = $vars['class'];
- if (!$class) $class = "input-url";
-?>
-
-<input type="text" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" value="<?php echo htmlentities($vars['value'], null, 'UTF-8'); ?>" class="<?php echo $class; ?>"/> \ No newline at end of file
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-url {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-url";
+}
+
+$defaults = array(
+ 'value' => '',
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
+
+?>
+
+<input type="text" <?php echo elgg_format_attributes($vars); ?> />
diff --git a/views/default/input/urlshortener.php b/views/default/input/urlshortener.php
new file mode 100644
index 000000000..ecfb02efa
--- /dev/null
+++ b/views/default/input/urlshortener.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * This view provides a hook for third parties to provide a URL shortener.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+?> \ No newline at end of file
diff --git a/views/default/input/userpicker.php b/views/default/input/userpicker.php
new file mode 100644
index 000000000..8b64d7df5
--- /dev/null
+++ b/views/default/input/userpicker.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * User Picker. Sends an array of user guids.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] Array of user guids for already selected users or null
+ *
+ * The name of the hidden fields is members[]
+ *
+ * @warning Only a single input/userpicker is supported per web page.
+ *
+ * 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_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;
+ }
+
+ $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;
+}
+
+// loop over all values and prepare them so that "in" will work in javascript
+$values = array();
+if (!is_array($vars['value'])) {
+ $vars['value'] = array($vars['value']);
+}
+foreach ($vars['value'] as $value) {
+ $values[$value] = TRUE;
+}
+
+// convert the values to a json-encoded list
+$json_values = json_encode($values);
+
+// create an HTML list of users
+$user_list = '';
+foreach ($vars['value'] as $user_id) {
+ $user_list .= user_picker_add_user($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-list"><?php echo $user_list; ?></ul>
+</div>
+<script type="text/javascript">
+ // @todo grab the values in the init function rather than using inline JS
+ elgg.userpicker.userList = <?php echo $json_values ?>;
+</script>
diff --git a/views/default/js/admin.php b/views/default/js/admin.php
new file mode 100644
index 000000000..e8aa0d2ed
--- /dev/null
+++ b/views/default/js/admin.php
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Admin-area specific javascript functions.
+ *
+ * @since 1.8
+ */
+
+if (0) { ?><script><?php }
+?>
+elgg.provide('elgg.admin');
+
+elgg.admin.init = function () {
+
+ // 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 > ul').sortable({
+ items: 'li:has(> .elgg-state-draggable)',
+ handle: '.elgg-head',
+ forcePlaceholderSize: true,
+ placeholder: 'elgg-widget-placeholder',
+ opacity: 0.8,
+ revert: 500,
+ stop: elgg.admin.movePlugin
+ });
+
+ // in-line editing for custom profile fields.
+ // @note this requires jquery.jeditable plugin
+ $(".elgg-state-editable").editable(elgg.admin.editProfileField, {
+ type: 'text',
+ onblur: 'submit',
+ width: '300px',
+ height: 'none',
+ style: 'display:inline;'
+ });
+
+ // draggable profile field reordering.
+ $('#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.
+ *
+ * @param {Object} e Event object.
+ * @param {Object} ui jQueryUI object
+ * @return void
+ */
+elgg.admin.movePlugin = function(e, ui) {
+ // 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: {
+ plugin_guid: pluginGuid,
+ // we start at priority 1
+ priority: ui.item.index() + 1
+ }
+ });
+};
+
+/**
+ * In-line editing for custom profile fields
+ *
+ * @param string value The new value
+ * @param {Object} settings The settings used for editable
+ * @return void
+ */
+elgg.admin.editProfileField = function(value, settings) {
+ var id = $(this).attr('id');
+ id = id.replace('elgg-profile-field-', '');
+
+ var data = {
+ id: id,
+ label: value
+ };
+
+ elgg.action('profile/fields/edit', data);
+ return value;
+};
+
+/**
+ * Save the plugin profile order after a move event.
+ *
+ * @param {Object} e Event object.
+ * @param {Object} ui jQueryUI object
+ * @return void
+ */
+elgg.admin.moveProfileField = function(e, ui) {
+ 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_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
new file mode 100644
index 000000000..c3b56e398
--- /dev/null
+++ b/views/default/js/elgg.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Core Elgg javascript loader
+ */
+global $CONFIG;
+
+$prereq_files = array(
+ "vendors/sprintf.js",
+ "js/lib/elgglib.js",
+);
+
+foreach ($prereq_files as $file) {
+ include("{$CONFIG->path}$file");
+}
+
+//No such thing as autoloading classes in javascript
+$model_files = array(
+ 'ElggEntity',
+ 'ElggUser',
+ 'ElggPriorityList',
+);
+
+foreach ($model_files as $file) {
+ include("{$CONFIG->path}js/classes/$file.js");
+}
+
+//Include library files
+$libs = array(
+ //libraries
+ 'prototypes',
+ 'hooks',
+ 'security',
+ 'languages',
+ 'ajax',
+ 'session',
+ 'pageowner',
+ 'configuration',
+
+ //ui
+ 'ui',
+ 'ui.widgets',
+);
+
+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(); ?>';
+<?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.config.domReady = true;
+ elgg.initWhenReady();
+});
+
+<?php
+
+$previous_content = elgg_view('js/initialise_elgg');
+if ($previous_content) {
+ elgg_deprecated_notice("The view 'js/initialise_elgg' has been deprecated for js/elgg", 1.8);
+ echo $previous_content;
+}
diff --git a/views/default/js/friendsPickerv1.php b/views/default/js/friendsPickerv1.php
deleted file mode 100644
index 73e98af15..000000000
--- a/views/default/js/friendsPickerv1.php
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- elgg friendsPicker plugin
-
- adapted from Niall Doherty's excellent Coda-Slider - http://www.ndoherty.com/coda-slider
-*/
-
-
-jQuery.fn.friendsPicker = function(iterator) {
-
- var settings;
- settings = $.extend({ easeFunc: "easeOutExpo", easeTime: 1000, toolTip: false }, settings);
-
- return this.each(function() {
-
- var container = $(this);
- container.addClass("friendsPicker");
- // set panelwidth manually as it's hidden initially
- var panelWidth = 685;
-
- // count the panels in the container
- var panelCount = container.find("div.panel").size();
- // calculate the width of all the panels lined up end-to-end
- var friendsPicker_containerWidth = panelWidth*panelCount;
- // specify width for the friendsPicker_container
- container.find("div.friendsPicker_container").css("width" , friendsPicker_containerWidth);
-
- // global variables for container.each function below
- var friendsPickerNavigationWidth = 0;
- var currentPanel = 1;
-
- // generate appropriate nav for each container
- container.each(function(i) {
- // generate Left and Right arrows
- $(this).before("<div class='friendsPickerNavigationL' id='friendsPickerNavigationL" + iterator + "'><a href='#'>Left</a><\/div>");
- $(this).after("<div class='friendsPickerNavigationR' id='friendsPickerNavigationR" + iterator + "'><a href='#'>Right</a><\/div>");
-
- // generate a-z tabs
- $(this).before("<div class='friendsPickerNavigation' id='friendsPickerNavigation" + iterator + "'><ul><\/ul><\/div>");
- $(this).find("div.panel").each(function(individualTabItemNumber) {
- $("div#friendsPickerNavigation" + iterator + " ul").append("<li class='tab" + (individualTabItemNumber+1) + "'><a href='#" + (individualTabItemNumber+1) + "'>" + $(this).attr("title") + "<\/a><\/li>");
- });
-
- // tabs navigation
- $("div#friendsPickerNavigation" + iterator + " a").each(function(individualTabItemNumber) {
- // calc friendsPickerNavigationWidth by summing width of each li
- friendsPickerNavigationWidth += $(this).parent().width();
- // set-up individual tab clicks
- $(this).bind("click", function() {
- $(this).addClass("current").parent().parent().find("a").not($(this)).removeClass("current");
- var distanceToMoveFriendsPicker_container = - (panelWidth*individualTabItemNumber);
- currentPanel = individualTabItemNumber + 1;
- $(this).parent().parent().parent().next().find("div.friendsPicker_container").animate({ left: distanceToMoveFriendsPicker_container}, settings.easeTime, settings.easeFunc);
- });
- });
-
- // Right arow click function
- $("div#friendsPickerNavigationR" + iterator + " a").click(function() {
- if (currentPanel == panelCount) {
- var distanceToMoveFriendsPicker_container = 0;
- currentPanel = 1;
- $(this).parent().parent().find("div.friendsPickerNavigation a.current").removeClass("current").parent().parent().find("a:eq(0)").addClass("current");
- } else {
- var distanceToMoveFriendsPicker_container = - (panelWidth*currentPanel);
- currentPanel += 1;
- $(this).parent().parent().find("div.friendsPickerNavigation a.current").removeClass("current").parent().next().find("a").addClass("current");
- };
- $(this).parent().parent().find("div.friendsPicker_container").animate({ left: distanceToMoveFriendsPicker_container}, settings.easeTime, settings.easeFunc);
- return false;
- });
-
- // Left arrow click function
- $("div#friendsPickerNavigationL" + iterator + " a").click(function() {
- if (currentPanel == 1) {
- var distanceToMoveFriendsPicker_container = - (panelWidth*(panelCount - 1));
- currentPanel = panelCount;
- $(this).parent().parent().find("div.friendsPickerNavigation a.current").removeClass("current").parent().parent().find("li:last a").addClass("current");
- } else {
- currentPanel -= 1;
- var distanceToMoveFriendsPicker_container = - (panelWidth*(currentPanel - 1));
- $(this).parent().parent().find("div.friendsPickerNavigation a.current").removeClass("current").parent().prev().find("a").addClass("current");
- };
- $(this).parent().parent().find("div.friendsPicker_container").animate({ left: distanceToMoveFriendsPicker_container}, settings.easeTime, settings.easeFunc);
- return false;
- });
-
- // apply 'current' class to currently selected tab link
- $("div#friendsPickerNavigation" + iterator + " a:eq(0)").addClass("current");
- });
-
- $("div#friendsPickerNavigation" + iterator).append("<br />");
- });
-};
-
-
diff --git a/views/default/js/initialise_elgg.php b/views/default/js/initialise_elgg.php
index 3eb62b05b..3d617953a 100644
--- a/views/default/js/initialise_elgg.php
+++ b/views/default/js/initialise_elgg.php
@@ -1,243 +1,4 @@
-$(document).ready(function () {
-
- // toggle widget box contents
- $('a.toggle_box_contents').bind('click', toggleContent);
-
- // toggle widget box edit panel
- $('a.toggle_box_edit_panel').click(function () {
- $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").slideToggle("fast");
- return false;
- });
-
-
- // toggle customise edit panel
- $('a.toggle_customise_edit_panel').click(function () {
- $('div#customise_editpanel').slideToggle("fast");
- return false;
- });
-
- // toggle plugin's more info on admin tools admin
- $('a.manifest_details').click(function () {
- $(this.parentNode.parentNode).children("[class=manifest_file]").slideToggle("fast");
- return false;
- });
-
- //////////////////
- // WIDGET GALLERY
- // sortable widgets
- var els = ['#leftcolumn_widgets', '#middlecolumn_widgets', '#rightcolumn_widgets', '#widget_picker_gallery' ];
- var $els = $(els.toString());
-
- $els.sortable({
- items: '.draggable_widget',
- handle: '.drag_handle',
- cursor: 'move',
- revert: true,
- opacity: 1.0,
- appendTo: 'body',
- placeholder: 'placeholder',
- connectWith: els,
- start:function(e,ui) {
- // prevent droppable drop function from running when re-sorting main lists
- //$('#middlecolumn_widgets').droppable("disable");
- //$('#leftcolumn_widgets').droppable("disable");
- },
- stop: function(e,ui) {
- // refresh list before updating hidden fields with new widget order
- $(this).sortable( "refresh" );
-
- var widgetNamesLeft = outputWidgetList('#leftcolumn_widgets');
- var widgetNamesMiddle = outputWidgetList('#middlecolumn_widgets');
- var widgetNamesRight = outputWidgetList('#rightcolumn_widgets');
-
- document.getElementById('debugField1').value = widgetNamesLeft;
- document.getElementById('debugField2').value = widgetNamesMiddle;
- document.getElementById('debugField3').value = widgetNamesRight;
-
- }
- });
-
- // bind more info buttons
- // it's wrapped in a function so it can be called when new widgets are created
- widget_moreinfo();
-
- // setup hover class for dragged widgets
- $("#rightcolumn_widgets").droppable({
- accept: ".draggable_widget",
- hoverClass: 'droppable-hover'
- });
- $("#middlecolumn_widgets").droppable({
- accept: ".draggable_widget",
- hoverClass: 'droppable-hover'
- });
- $("#leftcolumn_widgets").droppable({
- accept: ".draggable_widget",
- hoverClass: 'droppable-hover'
- });
-
-
-
-
-
-}); /* end document ready function */
-
-
-
-
-
-
-
-
-
-
-
-
-jQuery.fn.makeDelimitedList = function(elementAttribute) {
-
- var delimitedListArray = new Array();
-
- var listDelimiter = "::";
-
- // Loop over each element in the stack and add the elementAttribute to the array
- this.each(function(e) {
- var listElement = $(this);
-
- // Add the attribute value to our values array
- delimitedListArray[delimitedListArray.length] = listElement.attr(elementAttribute);
- }
- );
-
- // Return value list by joining the array
- return(delimitedListArray.join(listDelimiter));
-}
-
-
-
-
-function outputWidgetList(forElement) {
- return( $("input[@name='handler'], input[@name='guid']", forElement ).makeDelimitedList("value") );
-}
-
-
-// widget panel collapsed/expanded state
-function widget_state(forWidget) {
-
- var thisWidgetState = $.cookie(forWidget);
-
- if (thisWidgetState == 'collapsed') {
-
- forWidget = "#" + forWidget;
-
- $(forWidget).find("div.collapsable_box_content").hide();
- $(forWidget).find("a.toggle_box_contents").html('+');
- $(forWidget).find("a.toggle_box_edit_panel").fadeOut('medium');
- };
-}
-
-
-// toggle widget box contents
-var toggleContent = function(e) {
- var targetContent = $('div.collapsable_box_content', this.parentNode.parentNode);
- if (targetContent.css('display') == 'none') {
- targetContent.slideDown(400);
- $(this).html('-');
- $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeIn('medium');
-
- // set cookie for widget panel open-state
- var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id');
- $.cookie(thisWidgetName, 'expanded', { expires: 365 });
-
-
- } else {
- targetContent.slideUp(400);
- $(this).html('+');
- $(this.parentNode).children("[class=toggle_box_edit_panel]").fadeOut('medium');
- // make sure edit pane is closed
- $(this.parentNode.parentNode).children("[class=collapsable_box_editpanel]").hide();
-
- // set cookie for widget panel closed-state
- var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id');
- $.cookie(thisWidgetName, 'collapsed', { expires: 365 });
- }
- return false;
-};
-
-
-
-
-function widget_moreinfo() {
-
- $("img.more_info").hover(function(e) {
-
- var widgetdescription = $("input[@name='description']", this.parentNode.parentNode.parentNode ).attr('value');
-
- $("body").append("<p id='widget_moreinfo'><b>"+ widgetdescription +" </b></p>");
-
- if (e.pageX < 900) {
- $("#widget_moreinfo")
- .css("top",(e.pageY + 10) + "px")
- .css("left",(e.pageX + 10) + "px")
- .fadeIn("medium");
- }
- else {
- $("#widget_moreinfo")
- .css("top",(e.pageY + 10) + "px")
- .css("left",(e.pageX - 210) + "px")
- .fadeIn("medium");
- }
-
- },
- function() {
- $("#widget_moreinfo").remove();
- });
-
- $("img.more_info").mousemove(function(e) {
- //$("#widget_moreinfo")
- // .css("top",(e.pageY + 10) + "px")
- // .css("left",(e.pageX + 10) + "px");
- });
-
-};
-
-
-jQuery.cookie = function(name, value, options) {
- if (typeof value != 'undefined') { // name and value given, set cookie
- options = options || {};
- if (value === null) {
- value = '';
- options.expires = -1;
- }
- var expires = '';
- if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
- var date;
- if (typeof options.expires == 'number') {
- date = new Date();
- date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
- } else {
- date = options.expires;
- }
- expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
- }
- // CAUTION: Needed to parenthesize options.path and options.domain
- // in the following expressions, otherwise they evaluate to undefined
- // in the packed version for some reason...
- var path = options.path ? '; path=' + (options.path) : '';
- var domain = options.domain ? '; domain=' + (options.domain) : '';
- var secure = options.secure ? '; secure' : '';
- document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
- } else { // only name given, get cookie
- var cookieValue = null;
- if (document.cookie && document.cookie != '') {
- var cookies = document.cookie.split(';');
- for (var i = 0; i < cookies.length; i++) {
- var cookie = jQuery.trim(cookies[i]);
- // Does this cookie string begin with the name we want?
- if (cookie.substring(0, name.length + 1) == (name + '=')) {
- cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
- break;
- }
- }
- }
- return cookieValue;
- }
-};
+<?php
+/**
+ * This has been deprecated in 1.8 - see elgg.php in this directory.
+ */ \ No newline at end of file
diff --git a/views/default/js/initialize_elgg.php b/views/default/js/initialize_elgg.php
new file mode 100644
index 000000000..b45c33463
--- /dev/null
+++ b/views/default/js/initialize_elgg.php
@@ -0,0 +1,52 @@
+<?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) {
+ $page_owner_json = array();
+ foreach ($page_owner->getExportableValues() as $v) {
+ $page_owner_json[$v] = $page_owner->$v;
+ }
+
+ $page_owner_json['subtype'] = $page_owner->getSubtype();
+ $page_owner_json['url'] = $page_owner->getURL();
+
+ echo 'elgg.page_owner = ' . json_encode($page_owner_json) . ';';
+}
+
+$user = elgg_get_logged_in_user_entity();
+
+if ($user instanceof ElggUser) {
+ $user_json = array();
+ foreach ($user->getExportableValues() as $v) {
+ $user_json[$v] = $user->$v;
+ }
+
+ $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) . ');';
+}
+?>
+
+//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
new file mode 100644
index 000000000..fcf903d4b
--- /dev/null
+++ b/views/default/js/languages.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * @uses $vars['language']
+ * @uses $vars['lc'] if present, client will be sent long expires headers
+ */
+
+$language = $vars['language'];
+$lastcache = elgg_extract('lc', $vars, 0);
+
+// @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/languages/en.php b/views/default/js/languages/en.php
new file mode 100644
index 000000000..8a604cc12
--- /dev/null
+++ b/views/default/js/languages/en.php
@@ -0,0 +1,2 @@
+<?php
+echo elgg_view('js/languages', array('language' => 'en')); \ 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/messages/errors/error.php b/views/default/messages/errors/error.php
deleted file mode 100644
index ddcd0009c..000000000
--- a/views/default/messages/errors/error.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
- /**
- * Elgg error message
- * Displays a single error message
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] An error message (string)
- */
-?>
-
- <p>
- <?php echo autop($vars['object']); ?>
- </p> \ No newline at end of file
diff --git a/views/default/messages/errors/list.php b/views/default/messages/errors/list.php
deleted file mode 100644
index f6bf5cef2..000000000
--- a/views/default/messages/errors/list.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
- /**
- * Elgg list errors
- * Lists error messages
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] An array of error messages
- */
-
- if (!empty($vars['object']) && is_array($vars['object'])) {
-
-?>
-<!-- used to fade out the system messages after 3 seconds -->
-<script>
-$(document).ready(function () {
- $('.messages_error').animate({top:"30px", opacity: 1.0}, 1000);
- $('.messages_error').animate({opacity: 1.0}, 6000);
- $('.messages_error').fadeOut('slow');
-
- $('span.closeMessages a').click(function () {
- $(".messages_error").stop();
- $('.messages_error').fadeOut('slow');
- return false;
- });
-
- $('div.messages_error').click(function () {
- $(".messages_error").stop();
- $('.messages_error').fadeOut('slow');
- return false;
- });
-
-});
-</script>
-
- <div class="messages_error">
- <span class="closeMessages"><a href="#"><?php echo elgg_echo('systemmessages:dismiss'); ?></a></span>
-
-<?php
- foreach($vars['object'] as $error) {
- echo elgg_view('messages/errors/error',array('object' => $error));
- }
-?>
-
- </div>
-<?php
- }
-
-
-
-?> \ No newline at end of file
diff --git a/views/default/messages/exceptions/exception.php b/views/default/messages/exceptions/exception.php
deleted file mode 100644
index a484c6bee..000000000
--- a/views/default/messages/exceptions/exception.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
- /**
- * Elgg exception
- * Displays a single exception
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] An exception
- */
-
- global $CONFIG;
-
- $class = get_class($vars['object']);
- $message = autop($vars['object']->getMessage());
-
- $body = <<< END
- <p class="messages-exception">
- <span title="$class">
- $message
- </span>
- </p>
-END;
-
- if ($CONFIG->debug)
- {
- $details = autop(htmlentities(print_r($vars['object'], true), null, 'UTF-8'));
- $body .= <<< END
- <hr />
- <p class="messages-exception-detail">
- $details
- </p>
-END;
- }
-
- $title = $message;
-
- page_draw($title, elgg_view_layout("one_column", elgg_view_title($title) . $body));
-?> \ No newline at end of file
diff --git a/views/default/messages/list.php b/views/default/messages/list.php
deleted file mode 100644
index 10fda8f90..000000000
--- a/views/default/messages/list.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
- /**
- * Elgg global system message list
- * Lists all system messages
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] The array of message registers
- */
-
- if (!empty($vars['object']) && is_array($vars['object']) && sizeof($vars['object']) > 0) {
-
- foreach($vars['object'] as $register => $list ) {
- echo elgg_view("messages/{$register}/list", array('object' => $list));
- }
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/messages/messages/list.php b/views/default/messages/messages/list.php
deleted file mode 100644
index 2febb193b..000000000
--- a/views/default/messages/messages/list.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
- /**
- * Elgg list system messages
- * Lists system messages
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] An array of system messages
- */
-
- if (!empty($vars['object']) && is_array($vars['object'])) {
-
-?>
-<!-- used to fade out the system messages after 3 seconds -->
-<script>
-$(document).ready(function () {
- $('.messages').animate({top:"30px", opacity: 1.0}, 1000);
- $('.messages').animate({opacity: 1.0}, 6000);
- $('.messages').fadeOut('slow');
-
- $('span.closeMessages a').click(function () {
- $(".messages").stop();
- $('.messages').fadeOut('slow');
- return false;
- });
-
- $('div.messages').click(function () {
- $(".messages").stop();
- $('.messages').fadeOut('slow');
- return false;
- });
-});
-</script>
-
- <div class="messages">
- <span class="closeMessages"><a href="#"><?php echo elgg_echo('systemmessages:dismiss'); ?></a></span>
-<?php
-
-
- foreach($vars['object'] as $message) {
- echo elgg_view('messages/messages/message',array('object' => $message));
- }
-
-?>
-
- </div>
-
-<?php
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/messages/messages/message.php b/views/default/messages/messages/message.php
deleted file mode 100644
index 355afeb15..000000000
--- a/views/default/messages/messages/message.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
- /**
- * Elgg standard message
- * Displays a single Elgg system message
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['object'] A system message (string)
- */
-?>
-
- <p>
- <?php echo autop($vars['object']); ?>
- </p> \ No newline at end of file
diff --git a/views/default/navigation/breadcrumbs.php b/views/default/navigation/breadcrumbs.php
new file mode 100644
index 000000000..88577a8ff
--- /dev/null
+++ b/views/default/navigation/breadcrumbs.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Displays breadcrumbs.
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['breadcrumbs'] (Optional) Array of arrays with keys 'title' and 'link'
+ * @uses $vars['class']
+ *
+ * @see elgg_push_breadcrumb
+ */
+
+if (isset($vars['breadcrumbs'])) {
+ $breadcrumbs = $vars['breadcrumbs'];
+} else {
+ $breadcrumbs = elgg_get_breadcrumbs();
+}
+
+$class = 'elgg-menu elgg-breadcrumbs';
+$additional_class = elgg_extract('class', $vars, '');
+if ($additional_class) {
+ $class = "$class $additional_class";
+}
+
+if (is_array($breadcrumbs) && count($breadcrumbs) > 0) {
+ echo "<ul class=\"$class\">";
+ foreach ($breadcrumbs as $breadcrumb) {
+ if (!empty($breadcrumb['link'])) {
+ $crumb = elgg_view('output/url', array(
+ 'href' => $breadcrumb['link'],
+ 'text' => $breadcrumb['title'],
+ 'is_trusted' => true,
+ ));
+ } else {
+ $crumb = $breadcrumb['title'];
+ }
+ echo "<li>$crumb</li>";
+ }
+ echo '</ul>';
+}
diff --git a/views/default/navigation/menu/default.php b/views/default/navigation/menu/default.php
new file mode 100644
index 000000000..006deb3ea
--- /dev/null
+++ b/views/default/navigation/menu/default.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Default menu
+ *
+ * @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?
+ */
+
+// 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 .= " {$vars['class']}";
+}
+
+foreach ($vars['menu'] as $section => $menu_items) {
+ 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/item.php b/views/default/navigation/menu/elements/item.php
new file mode 100644
index 000000000..fd9738826
--- /dev/null
+++ b/views/default/navigation/menu/elements/item.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * A single element of a menu.
+ *
+ * @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()) {
+ // @todo switch to addItemClass when that is implemented
+ //$item->setItemClass('elgg-state-selected');
+ $link_class = 'elgg-menu-opened';
+}
+
+$children = $item->getChildren();
+if ($children) {
+ $item->addLinkClass($link_class);
+ $item->addLinkClass('elgg-menu-parent');
+}
+
+$item_class = $item->getItemClass();
+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=\"$item_class\">";
+echo $item->getContent();
+if ($children) {
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'items' => $children,
+ 'class' => 'elgg-menu elgg-child-menu',
+ ));
+}
+echo '</li>';
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
new file mode 100644
index 000000000..56a288234
--- /dev/null
+++ b/views/default/navigation/menu/page.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Page menu
+ *
+ * @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']}";
+}
+
+if (isset($vars['selected_item'])) {
+ $parent = $vars['selected_item']->getParent();
+
+ while ($parent) {
+ $parent->setSelected();
+ $parent = $parent->getParent();
+ }
+}
+
+foreach ($vars['menu'] as $section => $menu_items) {
+ echo elgg_view('navigation/menu/elements/section', array(
+ 'items' => $menu_items,
+ 'class' => "$class elgg-menu-page-$section",
+ 'section' => $section,
+ 'name' => $vars['name'],
+ 'show_section_headers' => $headers
+ ));
+}
diff --git a/views/default/navigation/menu/site.php b/views/default/navigation/menu/site.php
new file mode 100644
index 000000000..24c21dd57
--- /dev/null
+++ b/views/default/navigation/menu/site.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Site navigation menu
+ *
+ * @uses $vars['menu']['default']
+ * @uses $vars['menu']['more']
+ */
+
+$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 ($more_items) {
+ echo '<li class="elgg-more">';
+
+ $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
new file mode 100644
index 000000000..5c89e585c
--- /dev/null
+++ b/views/default/navigation/menu/user_hover.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * User hover menu
+ *
+ * Register for the 'register', 'menu:user_hover' plugin hook to add to the user
+ * hover menu. There are three sections: action, default, and admin.
+ *
+ * @uses $vars['menu'] Menu array provided by elgg_view_menu()
+ */
+
+$user = $vars['entity'];
+$actions = elgg_extract('action', $vars['menu'], null);
+$main = elgg_extract('default', $vars['menu'], null);
+$admin = elgg_extract('admin', $vars['menu'], null);
+
+echo '<ul class="elgg-menu elgg-menu-hover">';
+
+// name and username
+$name_link = elgg_view('output/url', array(
+ 'href' => $user->getURL(),
+ 'text' => "<span class=\"elgg-heading-basic\">$user->name</span>&#64;$user->username",
+ 'is_trusted' => true,
+));
+echo "<li>$name_link</li>";
+
+// actions
+if (elgg_is_logged_in() && $actions) {
+ 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>';
+
+ 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>';
+
+ 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 54fa3bdec..04044c51c 100644
--- a/views/default/navigation/pagination.php
+++ b/views/default/navigation/pagination.php
@@ -1,144 +1,132 @@
<?php
+/**
+ * Elgg pagination
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @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['base_url'] Base URL to use in links
+ * @uses string $vars['offset_key'] The string to use for offet in the URL
+ */
- /**
- * Elgg pagination
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-
- if (!isset($vars['offset'])) {
- $offset = 0;
- } else {
- $offset = $vars['offset'];
- }
- if (!isset($vars['limit'])) {
- $limit = 10;
- } else {
- $limit = $vars['limit'];
- }
- if (!isset($vars['count'])) {
- $count = 0;
- } else {
- $count = $vars['count'];
- }
- if (!isset($vars['word'])) {
- $word = "offset";
- } else {
- $word = $vars['word'];
+if (elgg_in_context('widget')) {
+ // widgets do not show pagination
+ return true;
+}
+
+$offset = abs((int) elgg_extract('offset', $vars, 0));
+// because you can say $vars['limit'] = 0
+if (!$limit = (int) elgg_extract('limit', $vars, 10)) {
+ $limit = 10;
+}
+
+$count = (int) elgg_extract('count', $vars, 0);
+$offset_key = elgg_extract('offset_key', $vars, 'offset');
+// 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);
+
+if ($count <= $limit && $offset == 0) {
+ // no need for pagination
+ return true;
+}
+
+$total_pages = ceil($count / $limit);
+$current_page = ceil($offset / $limit) + 1;
+
+$pages = new stdClass();
+$pages->prev = array(
+ 'text' => '&laquo; ' . elgg_echo('previous'),
+ 'href' => '',
+ 'is_trusted' => true,
+);
+$pages->next = array(
+ 'text' => elgg_echo('next') . ' &raquo;',
+ 'href' => '',
+ 'is_trusted' => true,
+);
+$pages->items = array();
+
+// Add pages before the current page
+if ($current_page > 1) {
+ $prev_offset = $offset - $limit;
+ if ($prev_offset < 0) {
+ $prev_offset = 0;
}
- if (isset($vars['nonefound'])) {
- $nonefound = $vars['nonefound'];
- } else {
- $nonefound = true;
+
+ $pages->prev['href'] = elgg_http_add_url_query_elements($base_url, array($offset_key => $prev_offset));
+
+ $first_page = $current_page - $delta;
+ if ($first_page < 1) {
+ $first_page = 1;
}
-
- $totalpages = ceil($count / $limit);
- $currentpage = ceil($offset / $limit) + 1;
- $baseurl = preg_replace('/[\&\?]'.$word.'\=[0-9]*/',"",$vars['baseurl']);
-
- //only display if there is content to paginate through or if we already have an offset
- if (($count > $limit || $offset > 0) && get_context() != 'widget') {
+ $pages->items = range($first_page, $current_page - 1);
+}
-?>
-<div class="pagination">
-<?php
+$pages->items[] = $current_page;
- if ($offset > 0) {
-
- $prevoffset = $offset - $limit;
- if ($prevoffset < 0) $prevoffset = 0;
-
- $prevurl = $baseurl;
- if (substr_count($baseurl,'?')) {
- $prevurl .= "&{$word}=" . $prevoffset;
- } else {
- $prevurl .= "?{$word}=" . $prevoffset;
- }
-
- echo "<a href=\"{$prevurl}\" class=\"pagination_previous\">&laquo; ". elgg_echo("previous") ."</a> ";
-
+
+// add pages after the current one
+if ($current_page < $total_pages) {
+ $next_offset = $offset + $limit;
+ if ($next_offset >= $count) {
+ $next_offset--;
}
- if ($offset > 0 || $offset < ($count - $limit)) {
-
- $currentpage = round($offset / $limit) + 1;
- $allpages = ceil($count / $limit);
-
- $i = 1;
- $pagesarray = array();
- while ($i <= $allpages && $i <= 4) {
- $pagesarray[] = $i;
- $i++;
- }
- $i = $currentpage - 2;
- while ($i <= $allpages && $i <= ($currentpage + 2)) {
- if ($i > 0 && !in_array($i,$pagesarray))
- $pagesarray[] = $i;
- $i++;
- }
- $i = $allpages - 3;
- while ($i <= $allpages) {
- if ($i > 0 && !in_array($i,$pagesarray))
- $pagesarray[] = $i;
- $i++;
- }
-
- sort($pagesarray);
-
- $prev = 0;
- foreach($pagesarray as $i) {
-
- if (($i - $prev) > 1) {
-
- echo "<span class=\"pagination_more\">...</span>";
-
- }
-
- $counturl = $baseurl;
- $curoffset = (($i - 1) * $limit);
- if (substr_count($baseurl,'?')) {
- $counturl .= "&{$word}=" . $curoffset;
- } else {
- $counturl .= "?{$word}=" . $curoffset;
- }
- if ($curoffset != $offset) {
- echo " <a href=\"{$counturl}\" class=\"pagination_number\">{$i}</a> ";
- } else {
- echo "<span class=\"pagination_currentpage\"> {$i} </span>";
- }
- $prev = $i;
-
- }
+ $pages->next['href'] = elgg_http_add_url_query_elements($base_url, array($offset_key => $next_offset));
+ $last_page = $current_page + $delta;
+ if ($last_page > $total_pages) {
+ $last_page = $total_pages;
}
-
- if ($offset < ($count - $limit)) {
-
- $nextoffset = $offset + $limit;
- if ($nextoffset >= $count) $nextoffset--;
-
- $nexturl = $baseurl;
- if (substr_count($baseurl,'?')) {
- $nexturl .= "&{$word}=" . $nextoffset;
- } else {
- $nexturl .= "?{$word}=" . $nextoffset;
- }
-
- echo " <a href=\"{$nexturl}\" class=\"pagination_next\">" . elgg_echo("next") . " &raquo;</a>";
-
+
+ $pages->items = array_merge($pages->items, range($current_page + 1, $last_page));
+}
+
+
+echo '<ul class="elgg-pagination">';
+
+if ($pages->prev['href']) {
+ $link = elgg_view('output/url', $pages->prev);
+ echo "<li>$link</li>";
+} else {
+ echo "<li class=\"elgg-state-disabled\"><span>{$pages->prev['text']}</span></li>";
+}
+
+foreach ($pages->items as $page) {
+ if ($page == $current_page) {
+ echo "<li class=\"elgg-state-selected\"><span>$page</span></li>";
+ } else {
+ $page_offset = (($page - 1) * $limit);
+ $url = elgg_http_add_url_query_elements($base_url, array($offset_key => $page_offset));
+ $link = elgg_view('output/url', array(
+ 'href' => $url,
+ 'text' => $page,
+ 'is_trusted' => true,
+ ));
+ echo "<li>$link</li>";
}
+}
-?>
-<br class="clearfloat" />
-</div>
-<?php
- } // end of pagination check if statement
-?> \ No newline at end of file
+if ($pages->next['href']) {
+ $link = elgg_view('output/url', $pages->next);
+ echo "<li>$link</li>";
+} else {
+ echo "<li class=\"elgg-state-disabled\"><span>{$pages->next['text']}</span></li>";
+}
+
+echo '</ul>';
diff --git a/views/default/navigation/tabs.php b/views/default/navigation/tabs.php
new file mode 100644
index 000000000..95e3f2669
--- /dev/null
+++ b/views/default/navigation/tabs.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * Tab navigation
+ *
+ * @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(
+ * '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 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') {
+ $options['class'] = "elgg-tabs elgg-htabs";
+} else {
+ $options['class'] = "elgg-tabs elgg-vtabs";
+}
+if (isset($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 <?php echo $attributes; ?>>
+ <?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';
+ }
+
+ $class_str = ($class) ? "class=\"$class\"" : '';
+ $id_str = ($id) ? "id=\"$id\"" : '';
+
+ $options = $info;
+ unset($options['class']);
+ unset($options['id']);
+ unset($options['selected']);
+
+ 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']);
+ }
+
+ if (isset($info['link_id'])) {
+ $options['id'] = $options['link_id'];
+ unset($options['link_id']);
+ }
+
+ $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 03e7317c8..307f03fc6 100644
--- a/views/default/navigation/topbar_tools.php
+++ b/views/default/navigation/topbar_tools.php
@@ -1,51 +1,9 @@
<?php
-
- /**
- * Elgg standard tools drop down
- * This will be populated depending on the plugins active - only plugin navigation will appear here
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-
- $menu = get_register('menu');
-
- //var_export($menu);
-
- if (is_array($menu) && sizeof($menu) > 0) {
- $alphamenu = array();
- foreach($menu as $item) {
- $alphamenu[$item->name] = $item;
- }
- ksort($alphamenu);
-
-?>
-
-<ul id="topbardropdownmenu">
- <li class="drop"><a href="#"><?php echo(elgg_echo('tools')); ?><!--[if IE 7]></a><![endif]-->
- <!--[if lte IE 6]><table><tr><td><![endif]-->
- <ul>
- <?php
-
- foreach($alphamenu as $item) {
-
- echo "<li><a href=\"{$item->value}\">" . $item->name . "</a></li>";
-
- }
-
- ?>
- </ul>
- <!--[if lte IE 6]></td></tr></table></a><![endif]-->
- </li>
-</ul>
-
-<?php
-
- }
-
-?>
+/**
+ * Empty view for backward compatibility.
+ *
+ * @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 103e9c450..6dfa4ebc7 100644
--- a/views/default/navigation/viewtype.php
+++ b/views/default/navigation/viewtype.php
@@ -1,34 +1,11 @@
-<?php
-
- /**
- * Elgg list view switcher
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-
- $baseurl = preg_replace('/[\&\?]search\_viewtype\=[A-Za-z0-9]*/',"",$vars['baseurl']);
-
- if ($vars['viewtype'] == "list") {
- $viewtype = "gallery";
- } else {
- $viewtype = "list";
- }
-
- if (substr_count($baseurl,'?')) {
- $baseurl .= "&search_viewtype=" . $viewtype;
- } else {
- $baseurl .= "?search_viewtype=" . $viewtype;
- }
-
-?>
-
- <p>
- <?php echo elgg_echo("viewtype:change") ?>:
- <a href="<?php echo $baseurl; ?>"><?php echo elgg_echo("viewtype:{$viewtype}"); ?></a>
- </p> \ No newline at end of file
+<?php
+/**
+ * Elgg list view switcher
+ *
+ * @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', 1.8);
diff --git a/views/default/notifications/settings/usersettings.php b/views/default/notifications/settings/usersettings.php
deleted file mode 100644
index fd609847f..000000000
--- a/views/default/notifications/settings/usersettings.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
- /**
- * User settings for notifications.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $NOTIFICATION_HANDLERS;
- $notification_settings = get_user_notification_settings(page_owner());
-
-?>
- <h3><?php echo elgg_echo('notifications:usersettings'); ?></h3>
-
- <p><?php echo elgg_echo('notifications:methods'); ?>
-
- <table>
-<?php
- // Loop through options
- foreach ($NOTIFICATION_HANDLERS as $k => $v)
- {
-?>
- <tr>
- <td><?php echo elgg_echo($k); ?>: </td>
-
- <td>
-<?php
-
- if ($notification_settings->$k) {
- $val = "yes";
- } else {
- $val = "no";
- }
- echo elgg_view('input/radio',array('internalname' => "method[{$k}]", 'options' => array(elgg_echo('option:yes') => 'yes',elgg_echo('option:no') => 'no'), 'value' => $val));
-
-?>
- </td>
- </tr>
-<?php
- }
-?>
- </table> \ No newline at end of file
diff --git a/views/default/object/admin_notice.php b/views/default/object/admin_notice.php
new file mode 100644
index 000000000..11524567e
--- /dev/null
+++ b/views/default/object/admin_notice.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * A persistent admin notice to be displayed on all admin pages until cleared.
+ */
+
+if (isset($vars['entity']) && elgg_instanceof($vars['entity'], 'object', 'admin_notice')) {
+ $notice = $vars['entity'];
+ $message = $notice->description;
+
+ $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 61c488db9..70e098742 100644
--- a/views/default/object/default.php
+++ b/views/default/object/default.php
@@ -1,59 +1,48 @@
<?php
- /**
- * ElggEntity default view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- if ($vars['full']) {
- echo elgg_view('export/entity', $vars);
- } else {
-
- $icon = elgg_view(
- 'graphics/icon', array(
- 'entity' => $vars['entity'],
- 'size' => 'small',
- )
- );
-
-
- $title = $vars['entity']->title;
- if (!$title) $title = $vars['entity']->name;
- if (!$title) $title = get_class($vars['entity']);
-
- $controls = "";
- if ($vars['entity']->canEdit())
- {
- $controls .= " (<a href=\"{$vars['url']}actions/entities/delete?guid={$vars['entity']->guid}\">" . elgg_echo('delete') . "</a>)";
- }
-
- $info = "<div><p><b><a href=\"" . $vars['entity']->getUrl() . "\">" . $title . "</a></b> $controls </p></div>";
-
- if (get_input('search_viewtype') == "gallery") {
-
- $icon = "";
-
- }
-
- $owner = $vars['entity']->getOwnerEntity();
- $ownertxt = elgg_echo('unknown');
- if ($owner)
- $ownertxt = "<a href=\"" . $owner->getURL() . "\">" . $owner->name ."</a>";
-
- $info .= "<div>".sprintf(elgg_echo("entity:default:strapline"),
- friendly_time($vars['entity']->time_created),
- $ownertxt
- );
-
- $info .= "</div>";
-
- $info = "<span title=\"" . elgg_echo('entity:default:missingsupport:popup') . "\">$info</span>";
- $icon = "<span title=\"" . elgg_echo('entity:default:missingsupport:popup') . "\">$icon</span>";
-
- echo elgg_view_listing($icon, $info);
- }
+/**
+ * ElggObject default view.
+ *
+ * @warning This view may be used for other ElggEntity objects
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
+
+$icon = elgg_view_entity_icon($vars['entity'], 'small');
+
+$title = $vars['entity']->title;
+if (!$title) {
+ $title = $vars['entity']->name;
+}
+if (!$title) {
+ $title = get_class($vars['entity']);
+}
+
+if (elgg_instanceof($vars['entity'], 'object')) {
+ $metadata = elgg_view('navigation/menu/metadata', $vars);
+}
+
+$owner_link = '';
+$owner = $vars['entity']->getOwnerEntity();
+if ($owner) {
+ $owner_link = elgg_view('output/url', array(
+ 'href' => $owner->getURL(),
+ 'text' => $owner->name,
+ 'is_trusted' => true,
+ ));
+}
+
+$date = elgg_view_friendly_time($vars['entity']->time_created);
+
+$subtitle = "$owner_link $date";
+
+$params = array(
+ 'entity' => $vars['entity'],
+ 'title' => $title,
+ 'metadata' => $metadata,
+ 'subtitle' => $subtitle,
+);
+$params = $params + $vars;
+$body = elgg_view('object/elements/summary', $params);
+
+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/object/elements/summary.php b/views/default/object/elements/summary.php
new file mode 100644
index 000000000..63ab8f816
--- /dev/null
+++ b/views/default/object/elements/summary.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Object summary
+ *
+ * Sample output
+ * <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-content">Excerpt text</div>
+ *
+ * @uses $vars['entity'] ElggEntity
+ * @uses $vars['title'] Title link (optional) false = no title, '' = default
+ * @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 (default is tags on entity, pass false for no tags)
+ * @uses $vars['content'] HTML for the entity content (optional)
+ */
+
+$entity = $vars['entity'];
+
+$title_link = elgg_extract('title', $vars, '');
+if ($title_link === '') {
+ if (isset($entity->title)) {
+ $text = $entity->title;
+ } else {
+ $text = $entity->name;
+ }
+ $params = array(
+ 'text' => elgg_get_excerpt($text, 100),
+ 'href' => $entity->getURL(),
+ 'is_trusted' => true,
+ );
+ $title_link = elgg_view('output/url', $params);
+}
+
+$metadata = elgg_extract('metadata', $vars, '');
+$subtitle = elgg_extract('subtitle', $vars, '');
+$content = elgg_extract('content', $vars, '');
+
+$tags = elgg_extract('tags', $vars, '');
+if ($tags === '') {
+ $tags = elgg_view('output/tags', array('tags' => $entity->tags));
+}
+
+if ($metadata) {
+ echo $metadata;
+}
+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-content\">$content</div>";
+}
diff --git a/views/default/object/object.php b/views/default/object/object.php
deleted file mode 100644
index 90fd9c89b..000000000
--- a/views/default/object/object.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
- /**
- * Elgg default object view.
- * This is a placeholder.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $entity = $vars['entity'];
-
-?>
-<div>
- <p><?php echo $entity->title; ?></p>
- <p><?php echo $entity->description; ?></p>
-</div> \ No newline at end of file
diff --git a/views/default/object/plugin.php b/views/default/object/plugin.php
index 2c70476df..5c7138e96 100644
--- a/views/default/object/plugin.php
+++ b/views/default/object/plugin.php
@@ -1,24 +1,20 @@
<?php
- /**
- * Elgg plugin
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
+/**
+ * Used to show plugin user settings.
+ *
+ * @package Elgg.Core
+ * @subpackage Plugins
+ *
+ */
- $entity = $vars['entity'];
- $plugin = $vars['plugin'];
- $prefix = $vars['prefix']; // Do we want to show admin settings (default) or user settings
-
- $form_body = elgg_view("{$prefix}settings/{$plugin}/edit", $vars);
- $form_body .= "<p>" . elgg_view('input/hidden', array('internalname' => 'plugin', 'value' => $plugin)) . elgg_view('input/submit', array('value' => elgg_echo('save'))) . "</p>";
-
+if (!elgg_in_context('admin')) {
+ forward('/', 403);
+}
-?>
-<div>
- <?php echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$vars['url']}action/plugins/{$prefix}settings/save")); ?>
-</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/object/plugin/elements/dependencies.php b/views/default/object/plugin/elements/dependencies.php
new file mode 100644
index 000000000..d8daedd33
--- /dev/null
+++ b/views/default/object/plugin/elements/dependencies.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Shows a table of plugin dependecies for ElggPlugin in $vars['plugin'].
+ *
+ * This uses a table because it's a table of data.
+ *
+ * @package Elgg.Core
+ * @subpackage Admin.Plugins
+ */
+
+$plugin = elgg_extract('plugin', $vars, false);
+$deps = $plugin->getPackage()->checkDependencies(true);
+
+$columns = array('type', 'name', 'expected_value', 'local_value', 'comment');
+
+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>';
+
+$row = 'odd';
+foreach ($deps as $dep) {
+ $fields = elgg_get_plugin_dependency_strings($dep);
+ $type = $dep['type'];
+
+ if ($dep['status']) {
+ $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 elgg-dependency-$type";
+ }
+
+ echo "<tr class=\"$row\">";
+
+ foreach ($columns as $column) {
+ echo "<td class=\"pas $class\">{$fields[$column]}</td>";
+ }
+
+ echo '</tr>';
+
+ $row = ($row == 'odd') ? 'even' : 'odd';
+}
+
+echo '</table>'; \ No newline at end of file
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 f30c825f8..0c7994f2b 100644
--- a/views/default/object/widget.php
+++ b/views/default/object/widget.php
@@ -1,16 +1,75 @@
-<?php
-
- /**
- * Elgg default widget view
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- echo elgg_view('widgets/wrapper',$vars);
-
-?> \ No newline at end of file
+<?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('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
new file mode 100644
index 000000000..5c8d62c4d
--- /dev/null
+++ b/views/default/output/access.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Displays HTML for entity access levels.
+ * Requires an entity because some special logic for containers is used.
+ *
+ * @uses int $vars['entity'] - The entity whose access ID to display.
+ */
+
+//sort out the access level for display
+if (isset($vars['entity']) && elgg_instanceof($vars['entity'])) {
+ $access_id = $vars['entity']->access_id;
+ $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.
+ $container = $vars['entity']->getContainerEntity();
+
+ if ($container && $container instanceof ElggGroup) {
+ // 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 = $container->membership;
+
+ if ($membership == ACCESS_PUBLIC) {
+ $access_class .= ' elgg-access-group-open';
+ } else {
+ $access_class .= ' elgg-access-group-closed';
+ }
+
+ // @todo this is plugin specific code in core. Should be removed.
+ } elseif ($container && $container->getSubtype() == 'shared_access') {
+ $access_class .= ' shared_collection';
+ } elseif ($access_id == ACCESS_PRIVATE) {
+ $access_class .= ' elgg-access-private';
+ }
+
+ $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 0c94086bb..fa0bd0c04 100644
--- a/views/default/output/calendar.php
+++ b/views/default/output/calendar.php
@@ -1,24 +1,13 @@
<?php
-
- /**
- * Elgg calendar output
- * Displays a calendar output field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The current value, if any
- *
- */
-
- if (is_int($vars['value'])) {
- echo date("F j, Y", $vars['value']);
- } else {
- echo $vars['value'];
- }
-
-?> \ No newline at end of file
+/**
+ * Elgg calendar output
+ * Displays a calendar output field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] The current value, if any
+ *
+ */
+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/checkboxes.php b/views/default/output/checkboxes.php
index c10018b14..56d2588ac 100644
--- a/views/default/output/checkboxes.php
+++ b/views/default/output/checkboxes.php
@@ -1,19 +1,13 @@
-<?php
-
- /**
- * Elgg text output
- * Displays some text that was input using a standard text field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['text'] The text to display
- *
- */
-
- echo elgg_view('output/tags',$vars);
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg text output
+ * Displays some text that was input using a standard text field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['text'] The text to display
+ *
+ */
+
+echo elgg_view('output/tags',$vars); \ No newline at end of file
diff --git a/views/default/output/confirmlink.php b/views/default/output/confirmlink.php
index db52a4f3e..532790a38 100644
--- a/views/default/output/confirmlink.php
+++ b/views/default/output/confirmlink.php
@@ -1,21 +1,47 @@
-<?php
-
- /**
- * Elgg confirmation link
- * A link that displays a confirmation dialog before it executes
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['text'] The text of the link
- * @uses $vars['href'] The address
- * @uses $vars['confirm'] The dialog text
- *
- */
-
-?>
-<a href="<?php echo $vars['href']; ?>" onclick="return confirm('<?php echo addslashes($vars['confirm']); ?>');"><?php echo $vars['text']; ?></a> \ No newline at end of file
+<?php
+/**
+ * Elgg confirmation link
+ * A link that displays a confirmation dialog before it executes
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @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)
+ */
+
+$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);
+
+$text = elgg_extract('text', $vars, '');
+if ($encode) {
+ $text = htmlspecialchars($text, ENT_QUOTES, 'UTF-8', false);
+}
+
+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']);
+ }
+ $vars['class'][] = 'elgg-requires-confirmation';
+} else {
+ $vars['class'] = 'elgg-requires-confirmation';
+}
+
+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 cbb6b8786..1644a3480 100644
--- a/views/default/output/date.php
+++ b/views/default/output/date.php
@@ -1,21 +1,17 @@
-<?php
-
- /**
- * Date
- * Displays a properly formatted date
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] A UNIX epoch timestamp
- *
- */
-
- if ($vars['value'] > 86400) {
- echo date("F j, Y",$vars['value']);
- }
-?> \ No newline at end of file
+<?php
+/**
+ * Date
+ * Displays a properly formatted date
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] Date as text or a Unix timestamp in seconds
+ */
+
+// 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/dropdown.php b/views/default/output/dropdown.php
new file mode 100644
index 000000000..8d68508ca
--- /dev/null
+++ b/views/default/output/dropdown.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Elgg dropdown display
+ * Displays a value that was entered into the system via a dropdown
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['text'] The text to display
+ *
+ */
+
+echo htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8', false);
diff --git a/views/default/output/email.php b/views/default/output/email.php
index 0a4abe658..f5a8bc4b8 100644
--- a/views/default/output/email.php
+++ b/views/default/output/email.php
@@ -1,21 +1,17 @@
-<?php
-
- /**
- * Elgg email output
- * Displays an email address that was entered using an email input field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The email address to display
- *
- */
-
- if (!empty($vars['value'])) {
- echo "<a href=\"mailto:" . $vars['value'] . "\">". $vars['value'] ."</a>";
- }
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg email output
+ * Displays an email address that was entered using an email input field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] The email address to display
+ *
+ */
+
+$encoded_value = htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8');
+
+if (!empty($vars['value'])) {
+ echo "<a href=\"mailto:$encoded_value\">$encoded_value</a>";
+} \ No newline at end of file
diff --git a/views/default/output/friendlytime.php b/views/default/output/friendlytime.php
new file mode 100644
index 000000000..22f60d517
--- /dev/null
+++ b/views/default/output/friendlytime.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Friendly time
+ * Translates an epoch time into a human-readable time.
+ *
+ * @uses string $vars['time'] Unix-style epoch timestamp
+ */
+
+$friendly_time = elgg_get_friendly_time($vars['time']);
+$timestamp = htmlspecialchars(date(elgg_echo('friendlytime:date_format'), $vars['time']));
+
+echo "<acronym title=\"$timestamp\">$friendly_time</acronym>";
diff --git a/views/default/output/friendlytitle.php b/views/default/output/friendlytitle.php
new file mode 100644
index 000000000..fbc4f39de
--- /dev/null
+++ b/views/default/output/friendlytitle.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Friendly title
+ * Makes a URL-friendly title.
+ *
+ * @uses string $vars['title'] Title to create from.
+ */
+
+
+$title = $vars['title'];
+
+//$title = iconv('UTF-8', 'ASCII//TRANSLIT', $title);
+$title = preg_replace("/[^\w ]/","",$title);
+$title = str_replace(" ","-",$title);
+$title = str_replace("--","-",$title);
+$title = trim($title);
+$title = strtolower($title);
+
+echo $title;
diff --git a/views/default/output/iframe.php b/views/default/output/iframe.php
index 77eac40c7..7df9332f1 100644
--- a/views/default/output/iframe.php
+++ b/views/default/output/iframe.php
@@ -1,17 +1,13 @@
<?php
- /**
- * Display a page in an embedded window
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] Source of the page
- *
- */
+/**
+ * Display a page in an embedded window
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] Source of the page
+ *
+ */
?>
<iframe src="<?php echo $vars['value']; ?>">
</iframe> \ 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 85ab99fd4..589100c4f 100644
--- a/views/default/output/longtext.php
+++ b/views/default/output/longtext.php
@@ -1,19 +1,38 @@
-<?php
-
- /**
- * Elgg display long text
- * Displays a large amount of text, with new lines converted to line breaks
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['text'] The text to display
- *
- */
-
- echo autop($vars['value']);
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg display long text
+ * Displays a large amount of text, with new lines converted to line breaks
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['value'] The text to display
+ * @uses $vars['parse_urls'] Whether to turn urls into links. Default is true.
+ * @uses $vars['class']
+ */
+
+$class = 'elgg-output';
+$additional_class = elgg_extract('class', $vars, '');
+if ($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'];
+unset($vars['value']);
+
+if ($parse_urls) {
+ $text = parse_urls($text);
+}
+
+$text = filter_tags($text);
+
+$text = elgg_autop($text);
+
+$attributes = elgg_format_attributes($vars);
+
+echo "<div $attributes>$text</div>";
diff --git a/views/default/output/pulldown.php b/views/default/output/pulldown.php
index 10c9d055d..7097a9a8d 100644
--- a/views/default/output/pulldown.php
+++ b/views/default/output/pulldown.php
@@ -1,19 +1,14 @@
-<?php
-
- /**
- * Elgg pulldown display
- * Displays a value that was entered into the system via a pulldown
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['text'] The text to display
- *
- */
-
- echo $vars['value'];
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg pulldown display
+ * Displays a value that was entered into the system via a pulldown
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['text'] The text to display
+ *
+ * @deprecated 1.8 Use output/dropdown
+ */
+
+echo elgg_view('output/dropdown', $vars); \ No newline at end of file
diff --git a/views/default/output/radio.php b/views/default/output/radio.php
index 5c508e906..0fae9977b 100644
--- a/views/default/output/radio.php
+++ b/views/default/output/radio.php
@@ -1,19 +1,13 @@
-<?php
-
- /**
- * Elgg text output
- * Displays some text that was input using a standard text field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['text'] The text to display
- *
- */
-
- echo elgg_view('output/text',$vars);
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg text output
+ * Displays some text that was input using a standard text field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['text'] The text to display
+ *
+ */
+
+echo elgg_view('output/text', $vars); \ No newline at end of file
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 fa9275c73..2fbf1cd0a 100644
--- a/views/default/output/tagcloud.php
+++ b/views/default/output/tagcloud.php
@@ -1,52 +1,66 @@
-<?php
-
- /**
- * Elgg tagcloud
- * Displays a tagcloud
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['tagcloud'] An array of stdClass objects with two elements: 'tag' (the text of the tag) and 'total' (the number of elements with this tag)
- *
- */
-
- if (!empty($vars['subtype'])) {
- $subtype = "&subtype=" . urlencode($vars['subtype']);
- } else {
- $subtype = "";
- }
- if (!empty($vars['object'])) {
- $object = "&object=" . urlencode($vars['object']);
- } else {
- $object = "";
- }
-
- if (empty($vars['tagcloud']) && !empty($vars['value']))
- $vars['tagcloud'] = $vars['value'];
-
- if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) {
-
- $counter = 0;
- $cloud = "";
- $max = 0;
- foreach($vars['tagcloud'] as $tag) {
- if ($tag->total > $max) {
- $max = $tag->total;
- }
- }
- foreach($vars['tagcloud'] as $tag) {
- if (!empty($cloud)) $cloud .= ", ";
- $size = round((log($tag->total) / log($max)) * 100) + 30;
- if ($size < 60) $size = 60;
- $cloud .= "<a href=\"" . $vars['url'] . "search/?tag=". urlencode($tag->tag) . $object . $subtype . "\" style=\"font-size: {$size}%\" title=\"".addslashes($tag->tag)." ({$tag->total})\" style=\"text-decoration:none;\">" .$tag->tag . "</a>";
- }
- echo $cloud;
-
- }
-
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg tagcloud
+ * Displays a tagcloud
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['tagcloud'] An array of stdClass objects with two elements: 'tag' (the text of the tag) and 'total' (the number of elements with this tag)
+ * @uses $vars['value'] Sames as tagcloud
+ * @uses $vars['type'] Entity type
+ * @uses $vars['subtype'] Entity subtype
+ */
+
+if (!empty($vars['subtype'])) {
+ $subtype = "&entity_subtype=" . urlencode($vars['subtype']);
+} else {
+ $subtype = "";
+}
+if (!empty($vars['type'])) {
+ $type = "&entity_type=" . urlencode($vars['type']);
+} else {
+ $type = "";
+}
+
+if (empty($vars['tagcloud']) && !empty($vars['value'])) {
+ $vars['tagcloud'] = $vars['value'];
+}
+
+if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) {
+ $counter = 0;
+ $max = 0;
+
+ foreach ($vars['tagcloud'] as $tag) {
+ if ($tag->total > $max) {
+ $max = $tag->total;
+ }
+ }
+
+ $cloud = '';
+ foreach ($vars['tagcloud'] as $tag) {
+ $tag->tag = htmlspecialchars($tag->tag, ENT_QUOTES, 'UTF-8', false);
+
+ if ($cloud != '') {
+ $cloud .= ', ';
+ }
+ // protecting against division by zero warnings
+ $size = round((log($tag->total) / log($max + .0001)) * 100) + 30;
+ if ($size < 100) {
+ $size = 100;
+ }
+ $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');
+
+ echo "<div class=\"elgg-tagcloud\">$cloud</div>";
+}
diff --git a/views/default/output/tags.php b/views/default/output/tags.php
index ce479d2b1..db096a3be 100644
--- a/views/default/output/tags.php
+++ b/views/default/output/tags.php
@@ -1,55 +1,82 @@
-<?php
-
- /**
- * Elgg tags
- * Displays a list of tags, separated by commas
- *
- * Tags can be a single string (for one tag) or an array of strings
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['tags'] The tags to display
- * @uses $vars['tagtype'] The tagtype, optionally
- */
-
- if (!empty($vars['subtype'])) {
- $subtype = "&subtype=" . urlencode($vars['subtype']);
- } else {
- $subtype = "";
- }
- if (!empty($vars['object'])) {
- $object = "&object=" . urlencode($vars['object']);
- } else {
- $object = "";
- }
-
- if (empty($vars['tags']) && !empty($vars['value']))
- $vars['tags'] = $vars['value'];
- if (!empty($vars['tags'])) {
-
- $tagstr = "";
- if (!is_array($vars['tags']))
- $vars['tags'] = array($vars['tags']);
-
- foreach($vars['tags'] as $tag) {
- if (!empty($tagstr)) {
- $tagstr .= ", ";
- }
- if (!empty($vars['type'])) {
- $type = "&type={$vars['type']}";
- } else {
- $type = "";
- }
- if (is_string($tag)) {
- $tagstr .= "<a href=\"{$vars['url']}search/?tag=".urlencode($tag) . "{$type}{$subtype}{$object}\">{$tag}</a>";
- }
- }
- echo $tagstr;
-
- }
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg tags
+ * Tags can be a single string (for one tag) or an array of strings
+ *
+ * @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=" . rawurlencode($vars['subtype']);
+} else {
+ $subtype = "";
+}
+if (!empty($vars['object'])) {
+ $object = "&object=" . rawurlencode($vars['object']);
+} else {
+ $object = "";
+}
+
+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']);
+ }
+
+ $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) {
+ $url = elgg_get_site_url() . 'search?q=' . rawurlencode($tag) . "&search_type=tags{$type}{$subtype}{$object}";
+ if (is_string($tag)) {
+ $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>';
+ }
+ }
+
+ $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 01cbdc35d..5cbfc35b0 100644
--- a/views/default/output/text.php
+++ b/views/default/output/text.php
@@ -1,19 +1,12 @@
-<?php
-
- /**
- * Elgg text output
- * Displays some text that was input using a standard text field
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['text'] The text to display
- *
- */
-
- echo $vars['value'];
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg text output
+ * Displays some text that was input using a standard text field
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @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 cdcca6646..81b02087d 100644
--- a/views/default/output/url.php
+++ b/views/default/output/url.php
@@ -1,26 +1,56 @@
-<?php
-
- /**
- * Elgg URL display
- * Displays a URL as a link
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['value'] The URL to display
- *
- */
-
- $val = trim($vars['value']);
- if (!empty($val)) {
- if ((substr_count($val, "http://") == 0) && (substr_count($val, "https://") == 0)) {
- $val = "http://" . $val;
- }
- echo "<a href=\"{$val}\" target=\"_blank\">{$val}</a>";
- }
-
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg URL display
+ * Displays a URL as a link
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @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() (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);
+if (!$url and isset($vars['value'])) {
+ $url = trim($vars['value']);
+ unset($vars['value']);
+}
+
+if (isset($vars['text'])) {
+ if (elgg_extract('encode_text', $vars, false)) {
+ $text = htmlspecialchars($vars['text'], ENT_QUOTES, 'UTF-8', false);
+ } else {
+ $text = $vars['text'];
+ }
+ unset($vars['text']);
+} else {
+ $text = htmlspecialchars($url, ENT_QUOTES, 'UTF-8', false);
+}
+
+unset($vars['encode_text']);
+
+if ($url) {
+ $url = elgg_normalize_url($url);
+
+ if (elgg_extract('is_action', $vars, false)) {
+ $url = elgg_add_action_tokens_to_url($url, false);
+ }
+
+ 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>";
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
new file mode 100644
index 000000000..e8b3f477e
--- /dev/null
+++ b/views/default/page/components/gallery.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Gallery view
+ *
+ * Implemented as an unorder list
+ *
+ * @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) {
+ return true;
+}
+
+elgg_push_context('gallery');
+
+$offset = $vars['offset'];
+$limit = $vars['limit'];
+$count = $vars['count'];
+$pagination = elgg_extract('pagination', $vars, true);
+$offset_key = elgg_extract('offset_key', $vars, 'offset');
+$position = elgg_extract('position', $vars, 'after');
+
+$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,
+ 'count' => $count,
+ 'limit' => $limit,
+ 'offset_key' => $offset_key,
+ ));
+}
+
+if ($position == 'before' || $position == 'both') {
+ echo $nav;
+}
+
+?>
+<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') {
+ echo $nav;
+}
+
+elgg_pop_context();
diff --git a/views/default/page/components/image_block.php b/views/default/page/components/image_block.php
new file mode 100644
index 000000000..a7f480aef
--- /dev/null
+++ b/views/default/page/components/image_block.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Elgg image block pattern
+ *
+ * Common pattern where there is an image, icon, media object to the left
+ * and a descriptive block of text to the right.
+ *
+ * ---------------------------------------------------------------
+ * | | | alt |
+ * | image | body | image |
+ * | block | block | block |
+ * | | | (optional)|
+ * ---------------------------------------------------------------
+ *
+ * @uses $vars['body'] HTML content of the body block
+ * @uses $vars['image'] HTML content of the image block
+ * @uses $vars['image_alt'] HTML content of the alternate image block
+ * @uses $vars['class'] Optional additional class for media element
+ * @uses $vars['id'] Optional id for the media element
+ */
+
+$body = elgg_extract('body', $vars, '');
+$image = elgg_extract('image', $vars, '');
+$alt_image = elgg_extract('image_alt', $vars, '');
+
+$class = 'elgg-image-block';
+$additional_class = elgg_extract('class', $vars, '');
+if ($additional_class) {
+ $class = "$class $additional_class";
+}
+
+$id = '';
+if (isset($vars['id'])) {
+ $id = "id=\"{$vars['id']}\"";
+}
+
+
+$body = "<div class=\"elgg-body\">$body</div>";
+
+if ($image) {
+ $image = "<div class=\"elgg-image\">$image</div>";
+}
+
+if ($alt_image) {
+ $alt_image = "<div class=\"elgg-image-alt\">$alt_image</div>";
+}
+
+echo <<<HTML
+<div class="$class clearfix" $id>
+ $image$alt_image$body
+</div>
+HTML;
diff --git a/views/default/page/components/list.php b/views/default/page/components/list.php
new file mode 100644
index 000000000..28ed58ddf
--- /dev/null
+++ b/views/default/page/components/list.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * View a list of items
+ *
+ * @package Elgg
+ *
+ * @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. 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)
+ * @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['list_class'] Additional CSS class for the <ul> element
+ * @uses $vars['item_class'] Additional CSS class for the <li> elements
+ */
+
+$items = $vars['items'];
+$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);
+$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 = "$list_class {$vars['list_class']}";
+}
+
+$item_class = 'elgg-item';
+if (isset($vars['item_class'])) {
+ $item_class = "$item_class {$vars['item_class']}";
+}
+
+$html = "";
+$nav = "";
+
+if ($pagination && $count) {
+ $nav .= elgg_view('navigation/pagination', array(
+ 'base_url' => $base_url,
+ 'offset' => $offset,
+ 'count' => $count,
+ 'limit' => $limit,
+ 'offset_key' => $offset_key,
+ ));
+}
+
+if (is_array($items) && count($items) > 0) {
+ $html .= "<ul class=\"$list_class\">";
+ foreach ($items as $item) {
+ $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 .= '</ul>';
+}
+
+if ($position == 'before' || $position == 'both') {
+ $html = $nav . $html;
+}
+
+if ($position == 'after' || $position == 'both') {
+ $html .= $nav;
+}
+
+echo $html;
diff --git a/views/default/page/components/module.php b/views/default/page/components/module.php
new file mode 100644
index 000000000..7e1eaff20
--- /dev/null
+++ b/views/default/page/components/module.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Elgg module element
+ *
+ * @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'] 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)
+ */
+
+$title = elgg_extract('title', $vars, '');
+$header = elgg_extract('header', $vars, '');
+$body = elgg_extract('body', $vars, '');
+$footer = elgg_extract('footer', $vars, '');
+$show_inner = elgg_extract('show_inner', $vars, false);
+
+$class = 'elgg-module';
+$additional_class = elgg_extract('class', $vars, '');
+if ($additional_class) {
+ $class = "$class $additional_class";
+}
+
+$id = '';
+if (isset($vars['id'])) {
+ $id = "id=\"{$vars['id']}\"";
+}
+
+if (isset($vars['header'])) {
+ $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 ($footer) {
+ $footer = "<div class=\"elgg-foot\">$footer</div>";
+}
+
+$contents = $header . $body . $footer;
+if ($show_inner) {
+ $contents = "<div class=\"elgg-inner\">$contents</div>";
+}
+
+echo "<div class=\"$class\" $id>$contents</div>";
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/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/body.php b/views/default/page/elements/body.php
new file mode 100644
index 000000000..14c3978d3
--- /dev/null
+++ b/views/default/page/elements/body.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Elgg page body wrapper
+ *
+ * @uses $vars['body'] The HTML of the page body
+ */
+
+echo elgg_extract('body', $vars, ''); \ No newline at end of file
diff --git a/views/default/page/elements/comments.php b/views/default/page/elements/comments.php
new file mode 100644
index 000000000..97cb9574e
--- /dev/null
+++ b/views/default/page/elements/comments.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * List comments with optional add form
+ *
+ * @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']}\"";
+}
+
+$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'
+);
+$html = elgg_list_annotations($options);
+if ($html) {
+ echo '<h3>' . elgg_echo('comments') . '</h3>';
+ echo $html;
+}
+
+if ($show_add_form) {
+ 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/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
new file mode 100644
index 000000000..ded2cea9a
--- /dev/null
+++ b/views/default/page/elements/footer.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Elgg footer
+ * The standard HTML footer that displays across the site
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ */
+
+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";
+
+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
new file mode 100644
index 000000000..d4a95b4d0
--- /dev/null
+++ b/views/default/page/elements/head.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * The standard HTML head
+ *
+ * @uses $vars['title'] The page title
+ */
+
+// Set title
+if (empty($vars['title'])) {
+ $title = elgg_get_config('sitename');
+} else {
+ $title = elgg_get_config('sitename') . ": " . $vars['title'];
+}
+
+global $autofeed;
+if (isset($autofeed) && $autofeed == true) {
+ $url = current_page_url();
+ if (substr_count($url,'?')) {
+ $url .= "&view=rss";
+ } else {
+ $url .= "?view=rss";
+ }
+ $url = elgg_format_url($url);
+ $feedref = <<<END
+
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="{$url}" />
+
+END;
+} else {
+ $feedref = "";
+}
+
+$js = elgg_get_loaded_js('head');
+$css = elgg_get_loaded_css();
+
+$version = get_version();
+$release = get_version(true);
+?>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="ElggRelease" content="<?php echo $release; ?>" />
+ <meta name="ElggVersion" content="<?php echo $version; ?>" />
+ <title><?php echo $title; ?></title>
+ <?php echo elgg_view('page/elements/shortcut_icon', $vars); ?>
+
+<?php foreach ($css as $link) { ?>
+ <link rel="stylesheet" href="<?php echo $link; ?>" type="text/css" />
+<?php } ?>
+
+<?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 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]-->
+
+<?php foreach ($js as $script) { ?>
+ <script type="text/javascript" src="<?php echo $script; ?>"></script>
+<?php } ?>
+
+<script type="text/javascript">
+// <![CDATA[
+ <?php echo elgg_view('js/initialize_elgg'); ?>
+// ]]>
+</script>
+
+<?php
+echo $feedref;
+
+$metatags = elgg_view('metatags', $vars);
+if ($metatags) {
+ elgg_deprecated_notice("The metatags view has been deprecated. Extend page/elements/head instead", 1.8);
+ echo $metatags;
+}
diff --git a/views/default/page/elements/header.php b/views/default/page/elements/header.php
new file mode 100644
index 000000000..1a1f5d211
--- /dev/null
+++ b/views/default/page/elements/header.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * 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);
+
+// drop-down login
+echo elgg_view('core/account/login_dropdown');
+
+// insert site-wide navigation
+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
new file mode 100644
index 000000000..7fe721c40
--- /dev/null
+++ b/views/default/page/elements/header_logo.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Elgg header logo
+ */
+
+$site = elgg_get_site_entity();
+$site_name = $site->name;
+$site_url = elgg_get_site_url();
+?>
+
+<h1>
+ <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
new file mode 100644
index 000000000..edd40d71e
--- /dev/null
+++ b/views/default/page/elements/messages.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Elgg global system message list
+ * Lists all system messages
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['object'] The array of message registers
+ */
+
+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_autop($message);
+ echo '</li>';
+ }
+ }
+}
+
+echo '</ul>';
diff --git a/views/default/page/elements/owner_block.php b/views/default/page/elements/owner_block.php
new file mode 100644
index 000000000..fc7f0f6d2
--- /dev/null
+++ b/views/default/page/elements/owner_block.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Elgg owner block
+ * Displays page ownership information
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ */
+
+elgg_push_context('owner_block');
+
+// groups and other users get owner block
+$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, array('full_view' => false));
+
+ $body = elgg_view_menu('owner_block', array('entity' => $owner));
+
+ $body .= elgg_view('page/elements/owner_block/extend', $vars);
+
+ echo elgg_view('page/components/module', array(
+ 'header' => $header,
+ 'body' => $body,
+ 'class' => 'elgg-owner-block',
+ ));
+}
+
+elgg_pop_context(); \ No newline at end of file
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
new file mode 100644
index 000000000..fe6bb450e
--- /dev/null
+++ b/views/default/page/elements/sidebar.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Elgg sidebar contents
+ *
+ * @uses $vars['sidebar'] Optional content that is displayed at the bottom of sidebar
+ */
+
+echo elgg_view_menu('extras', array(
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+));
+
+echo elgg_view('page/elements/owner_block', $vars);
+
+echo elgg_view_menu('page', array('sort_by' => 'name'));
+
+// optional 'sidebar' parameter
+if (isset($vars['sidebar'])) {
+ echo $vars['sidebar'];
+}
+
+// @todo deprecated so remove in Elgg 2.0
+// optional second parameter of elgg_view_layout
+if (isset($vars['area2'])) {
+ echo $vars['area2'];
+}
+
+// @todo deprecated so remove in Elgg 2.0
+// optional third parameter of elgg_view_layout
+if (isset($vars['area3'])) {
+ echo $vars['area3'];
+} \ No newline at end of file
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/title.php b/views/default/page/elements/title.php
new file mode 100644
index 000000000..19f47f4e6
--- /dev/null
+++ b/views/default/page/elements/title.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Elgg title element
+ *
+ * @uses $vars['title'] The page title
+ * @uses $vars['class'] Optional class for heading
+ */
+
+$class= '';
+if (isset($vars['class'])) {
+ $class = " class=\"{$vars['class']}\"";
+}
+
+echo "<h2{$class}>{$vars['title']}</h2>";
diff --git a/views/default/page/elements/topbar.php b/views/default/page/elements/topbar.php
new file mode 100644
index 000000000..e4c6c86bb
--- /dev/null
+++ b/views/default/page/elements/topbar.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Elgg topbar
+ * The standard elgg top toolbar
+ */
+
+// Elgg logo
+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.
+$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
new file mode 100644
index 000000000..8dbdc27e6
--- /dev/null
+++ b/views/default/page/layouts/admin.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Elgg Admin Area Canvas
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['content'] Content string
+ * @uses $vars['sidebar'] Optional sidebar content
+ * @uses $vars['title'] Title string
+ */
+
+?>
+
+<div class="elgg-layout elgg-layout-one-sidebar">
+ <div class="elgg-sidebar clearfix">
+ <?php
+ 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']);
+ }
+ ?>
+ </div>
+ <?php
+ if (isset($vars['content'])) {
+ echo $vars['content'];
+ }
+ ?>
+ </div>
+</div> \ No newline at end of file
diff --git a/views/default/page/layouts/content.php b/views/default/page/layouts/content.php
new file mode 100644
index 000000000..c406c9faf
--- /dev/null
+++ b/views/default/page/layouts/content.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Main content area layout
+ *
+ * @uses $vars['content'] HTML of main content area
+ * @uses $vars['sidebar'] HTML of the sidebar
+ * @uses $vars['header'] HTML of the content area header (override)
+ * @uses $vars['nav'] HTML of the content area nav (override)
+ * @uses $vars['footer'] HTML of the content area footer
+ * @uses $vars['filter'] HTML of the content area filter (override)
+ * @uses $vars['title'] Title text (override)
+ * @uses $vars['context'] Page context (override)
+ * @uses $vars['filter_context'] Filter context: everyone, friends, mine
+ * @uses $vars['class'] Additional class to apply to layout
+ */
+
+// give plugins an opportunity to add to content sidebars
+$sidebar_content = elgg_extract('sidebar', $vars, '');
+$params = $vars;
+$params['content'] = $sidebar_content;
+$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('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('page/layouts/content/filter', $vars);
+
+// the all important content
+$content = elgg_extract('content', $vars, '');
+
+// optional footer for main content area
+$footer_content = elgg_extract('footer', $vars, '');
+$params = $vars;
+$params['content'] = $footer_content;
+$footer = elgg_view('page/layouts/content/footer', $params);
+
+$body = $header . $filter . $content . $footer;
+
+$params = array(
+ 'content' => $body,
+ 'sidebar' => $sidebar,
+);
+if (isset($vars['class'])) {
+ $params['class'] = $vars['class'];
+}
+echo elgg_view_layout('one_sidebar', $params);
diff --git a/views/default/page/layouts/content/filter.php b/views/default/page/layouts/content/filter.php
new file mode 100644
index 000000000..701c6418a
--- /dev/null
+++ b/views/default/page/layouts/content/filter.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Main content filter
+ *
+ * Select between user, friends, and all content
+ *
+ * @uses $vars['filter_context'] Filter context: all, friends, mine
+ * @uses $vars['filter_override'] HTML for overriding the default filter (override)
+ * @uses $vars['context'] Page context (override)
+ */
+
+if (isset($vars['filter_override'])) {
+ echo $vars['filter_override'];
+ return true;
+}
+
+$context = elgg_extract('context', $vars, elgg_get_context());
+
+if (elgg_is_logged_in() && $context) {
+ $username = elgg_get_logged_in_user_entity()->username;
+ $filter_context = elgg_extract('filter_context', $vars, 'all');
+
+ // generate a list of default tabs
+ $tabs = array(
+ 'all' => array(
+ 'text' => elgg_echo('all'),
+ 'href' => (isset($vars['all_link'])) ? $vars['all_link'] : "$context/all",
+ 'selected' => ($filter_context == 'all'),
+ 'priority' => 200,
+ ),
+ 'mine' => array(
+ 'text' => elgg_echo('mine'),
+ 'href' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "$context/owner/$username",
+ 'selected' => ($filter_context == 'mine'),
+ 'priority' => 300,
+ ),
+ 'friend' => array(
+ '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_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz'));
+}
diff --git a/views/default/page/layouts/content/footer.php b/views/default/page/layouts/content/footer.php
new file mode 100644
index 000000000..66f5d3ff8
--- /dev/null
+++ b/views/default/page/layouts/content/footer.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Main content footer
+ *
+ * @uses $vars['content'] The content for the footer
+ */
+
+echo $vars['content'];
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/page/layouts/content/sidebar.php b/views/default/page/layouts/content/sidebar.php
new file mode 100644
index 000000000..86ca8435f
--- /dev/null
+++ b/views/default/page/layouts/content/sidebar.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Main content sidebar
+ *
+ * @uses $vars['content] The content for the sidebar
+ */
+
+echo $vars['content'];
diff --git a/views/default/page/layouts/default.php b/views/default/page/layouts/default.php
new file mode 100644
index 000000000..60dc90b0d
--- /dev/null
+++ b/views/default/page/layouts/default.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Elgg default layout
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['content'] Content string
+ */
+
+// @todo deprecated so remove in Elgg 2.0
+if (isset($vars['area1'])) {
+ echo $vars['area1'];
+}
+
+if (isset($vars['content'])) {
+ echo $vars['content'];
+}
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
new file mode 100644
index 000000000..491d5b459
--- /dev/null
+++ b/views/default/page/layouts/one_column.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Elgg one-column layout
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['content'] Content string
+ * @uses $vars['class'] Additional class to apply to layout
+ */
+
+$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; ?>">
+ <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
+ 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
new file mode 100644
index 000000000..d74dad53d
--- /dev/null
+++ b/views/default/page/layouts/one_sidebar.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Layout for main column with one sidebar
+ *
+ * @package Elgg
+ * @subpackage Core
+ *
+ * @uses $vars['content'] Content HTML for the main column
+ * @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-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; ?>">
+ <div class="elgg-sidebar">
+ <?php
+ echo elgg_view('page/elements/sidebar', $vars);
+ ?>
+ </div>
+
+ <div class="elgg-main elgg-body">
+ <?php
+ echo $nav;
+
+ if (isset($vars['title'])) {
+ echo elgg_view_title($vars['title']);
+ }
+ // @todo deprecated so remove in Elgg 2.0
+ if (isset($vars['area1'])) {
+ echo $vars['area1'];
+ }
+ if (isset($vars['content'])) {
+ echo $vars['content'];
+ }
+ ?>
+ </div>
+</div>
diff --git a/views/default/page/layouts/two_column_left_sidebar.php b/views/default/page/layouts/two_column_left_sidebar.php
new file mode 100644
index 000000000..e395a5053
--- /dev/null
+++ b/views/default/page/layouts/two_column_left_sidebar.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Deprecated layout from 1.0-1.7
+ *
+ * Use one_sidebar instead
+ */
+
+if (!isset($vars['content'])) {
+ $vars['content'] = $vars['area2'];
+}
+if (!isset($vars['content'])) {
+ $vars['sidebar'] = $vars['area1'] . $vars['area3'];
+}
+
+unset($vars['area1']);
+unset($vars['area2']);
+unset($vars['area3']);
+
+// backward compatability support for plugins that are not using the new approach
+// of routing through 'admin'
+if (elgg_get_context() == 'admin') {
+ echo elgg_view('page/layouts/admin', $vars);
+ return true;
+}
+
+echo elgg_view('page/layouts/one_sidebar', $vars);
diff --git a/views/default/page/layouts/two_sidebar.php b/views/default/page/layouts/two_sidebar.php
new file mode 100644
index 000000000..7521dd44f
--- /dev/null
+++ b/views/default/page/layouts/two_sidebar.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Elgg 2 sidebar layout
+ *
+ * @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['sidebar_alt'] Optional content that is displayed in the alternate sidebar
+ * @uses $vars['class'] Additional class to apply to layout
+ */
+
+$class = 'elgg-layout elgg-layout-two-sidebar clearfix';
+if (isset($vars['class'])) {
+ $class = "$class {$vars['class']}";
+}
+?>
+
+<div class="<?php echo $class; ?>">
+ <div class="elgg-sidebar">
+ <?php
+ echo elgg_view('page/elements/sidebar', $vars);
+ ?>
+ </div>
+ <div class="elgg-sidebar-alt">
+ <?php
+ echo elgg_view('page/elements/sidebar_alt', $vars);
+ ?>
+ </div>
+
+ <div class="elgg-main elgg-body">
+ <?php
+ // @todo deprecated so remove in Elgg 2.0
+ if (isset($vars['area1'])) {
+ echo $vars['area1'];
+ }
+ if (isset($vars['content'])) {
+ echo $vars['content'];
+ }
+ ?>
+ </div>
+</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
new file mode 100644
index 000000000..c6b162516
--- /dev/null
+++ b/views/default/page/layouts/widgets.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Elgg widgets layout
+ *
+ * @uses $vars['content'] Optional display box at the top of layout
+ * @uses $vars['num_columns'] Number of widget columns for this layout (3)
+ * @uses $vars['show_add_widgets'] Display the add widgets button and panel (true)
+ * @uses $vars['exact_match'] Widgets must match the current context (false)
+ * @uses $vars['show_access'] Show the access control (true)
+ */
+
+$num_columns = elgg_extract('num_columns', $vars, 3);
+$show_add_widgets = elgg_extract('show_add_widgets', $vars, true);
+$exact_match = elgg_extract('exact_match', $vars, false);
+$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');
+
+$widgets = elgg_get_widgets($owner->guid, $context);
+
+if (elgg_can_edit_widget_layout($context)) {
+ if ($show_add_widgets) {
+ 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('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++) {
+ 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 (sizeof($column_widgets) > 0) {
+ foreach ($column_widgets as $widget) {
+ if (array_key_exists($widget->handler, $widget_types)) {
+ echo elgg_view_entity($widget, array('show_access' => $show_access));
+ }
+ }
+ }
+ echo '</div>';
+}
+
+elgg_pop_context();
+
+echo elgg_view('graphics/ajax_loader', array('id' => 'elgg-widget-loader'));
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/page/layouts/widgets/add_panel.php b/views/default/page/layouts/widgets/add_panel.php
new file mode 100644
index 000000000..d9b11342a
--- /dev/null
+++ b/views/default/page/layouts/widgets/add_panel.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Widget add panel
+ *
+ * @uses $vars['widgets'] Array of current widgets
+ * @uses $vars['context'] The context for this widget layout
+ * @uses $vars['exact_match'] Only use widgets that match the context
+ */
+
+$widgets = $vars['widgets'];
+$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) {
+ foreach ($column_widgets as $widget) {
+ $current_handlers[] = $widget->handler;
+ }
+}
+
+?>
+<div class="elgg-widgets-add-panel hidden clearfix" id="widgets-add-panel">
+ <p>
+ <?php echo elgg_echo('widgets:add:description'); ?>
+ </p>
+ <ul>
+<?php
+ foreach ($widget_types as $handler => $widget_type) {
+ $id = "elgg-widget-type-$handler";
+ // check if widget added and only one instance allowed
+ if ($widget_type->multiple == false && in_array($handler, $current_handlers)) {
+ $class = 'elgg-state-unavailable';
+ $tooltip = elgg_echo('widget:unavailable');
+ } else {
+ $class = 'elgg-state-available';
+ $tooltip = $widget_type->description;
+ }
+
+ if ($widget_type->multiple) {
+ $class .= ' elgg-widget-multiple';
+ } else {
+ $class .= ' elgg-widget-single';
+ }
+
+ echo "<li title=\"$tooltip\" id=\"$id\" class=\"$class\">$widget_type->name</li>";
+ }
+?>
+ </ul>
+<?php
+ echo elgg_view('input/hidden', array(
+ 'name' => 'widget_context',
+ 'value' => $context
+ ));
+ echo elgg_view('input/hidden', array(
+ 'name' => 'show_access',
+ 'value' => (int)$vars['show_access']
+ ));
+?>
+</div>
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/page_elements/elgg_topbar.php b/views/default/page_elements/elgg_topbar.php
deleted file mode 100644
index 3620b7b0c..000000000
--- a/views/default/page_elements/elgg_topbar.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-
- /**
- * Elgg top toolbar
- * The standard elgg top toolbar
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-?>
-
-<?php
- if (isloggedin()) {
-?>
-
-<div id="elgg_topbar">
-
-<div id="elgg_topbar_container_left">
- <div class="toolbarimages">
- <a href="http://www.elgg.org" target="_blank"><img src="<?php echo $vars['url']; ?>_graphics/elgg_toolbar_logo.gif" /></a>
-
- <a href="<?php echo $_SESSION['user']->getURL(); ?>"><img class="user_mini_avatar" src="<?php echo $_SESSION['user']->getIcon('topbar'); ?>"></a>
-
- </div>
- <div class="toolbarlinks">
- <a href="<?php echo $vars['url']; ?>pg/dashboard/" class="pagelinks"><?php echo elgg_echo('dashboard'); ?></a>
- </div>
- <?php
-
- echo elgg_view("navigation/topbar_tools");
-
- ?>
-
-
- <div class="toolbarlinks2">
- <?php
- //allow people to extend this top menu
- echo elgg_view('elgg_topbar/extend', $vars);
- ?>
-
- <a href="<?php echo $vars['url']; ?>pg/settings/" class="usersettings"><?php echo elgg_echo('settings'); ?></a>
-
- <?php
-
- // The administration link is for admin or site admin users only
- if ($vars['user']->admin || $vars['user']->siteadmin) {
-
- ?>
-
- <a href="<?php echo $vars['url']; ?>pg/admin/" class="usersettings"><?php echo elgg_echo("admin"); ?></a>
-
- <?php
-
- }
-
- ?>
- </div>
-
-
-</div>
-
-
-<div id="elgg_topbar_container_right">
- <a href="<?php echo $vars['url']; ?>action/logout"><small><?php echo elgg_echo('logout'); ?></small></a>
-</div>
-
-<div id="elgg_topbar_container_search">
-<form id="searchform" action="<?php echo $vars['url']; ?>search/" method="get">
- <input type="text" size="21" name="tag" value="Search" onclick="if (this.value=='Search') { this.value='' }" class="search_input" />
- <input type="submit" value="Go" class="search_submit_button" />
-</form>
-</div>
-
-</div><!-- /#elgg_topbar -->
-
-<div style="clear:both;"></div>
-
-<?php
- }
-?> \ No newline at end of file
diff --git a/views/default/page_elements/footer.php b/views/default/page_elements/footer.php
deleted file mode 100644
index c1f47c179..000000000
--- a/views/default/page_elements/footer.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
- /**
- * Elgg footer
- * The standard HTML footer that displays across the site
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-
- // get the tools menu
- $menu = get_register('menu');
-
-?>
-
-<div class="clearfloat"></div>
-
-<div id="layout_footer">
-<table width="958" height="79" border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td width="210" height="50">
-
- </td>
-
- <td width="748" height="50" align="right">
- <p class="footer_toolbar_links">
- <?php
- foreach($menu as $item) {
-
- echo " | <a href=\"{$item->value}\">" . $item->name . "</a>";
-
- }
- ?>
- |
- </p>
- </td>
- </tr>
-
- <tr>
- <td width="210" height="28">
- <a href="http://www.elgg.org" target="_blank">
- <img src="<?php echo $vars['url']; ?>_graphics/powered_by_elgg_badge_drk_bckgnd.gif" border="0" />
- </a>
- </td>
-
- <td width="748" height="28" align="right">
- <p class="footer_legal_links"><small>
- Powered by Elgg, the leading open source social networking platform
- </small>
- </p>
- </td>
- </tr>
-</table>
-</div><!-- /#layout_footer -->
-
-<div class="clearfloat"></div>
-
-</div><!-- /#page_wrapper -->
-</div><!-- /#page_container -->
-
-</body>
-</html> \ No newline at end of file
diff --git a/views/default/page_elements/header.php b/views/default/page_elements/header.php
deleted file mode 100644
index 27e1cd083..000000000
--- a/views/default/page_elements/header.php
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-
- /**
- * Elgg pageshell when logged out
- * The standard HTML header that displays across the site
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['config'] The site configuration settings, imported
- * @uses $vars['title'] The page title
- * @uses $vars['body'] The main content of the page
- * @uses $vars['messages'] A 2d array of various message registers, passed from system_messages()
- */
-
- // Set title
- if (empty($vars['title'])) {
- $title = $vars['config']->sitename;
- } else if (empty($vars['config']->sitename)) {
- $title = $vars['title'];
- } else {
- $title = $vars['config']->sitename . ": " . $vars['title'];
- }
-
- global $autofeed;
- if (isset($autofeed) && $autofeed == true) {
- $url = $url2 = full_url();
- if (substr_count($url,'?')) {
- $url .= "&view=rss";
- } else {
- $url .= "?view=rss";
- }
- if (substr_count($url2,'?')) {
- $url2 .= "&view=odd";
- } else {
- $url2 .= "?view=opendd";
- }
- $feedref = <<<END
-
- <link rel="alternate" type="application/rss+xml" title="RSS" href="{$url}" />
- <link rel="alternate" type="application/odd+xml" title="OpenDD" href="{$url2}" />
-
-END;
- } else {
- $feedref = "";
- }
-
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title><?php echo $title; ?></title>
-
- <script type="text/javascript" src="<?php echo $vars['url']; ?>vendors/jquery/jquery-1.2.6.pack.js"></script>
- <script type="text/javascript" src="<?php echo $vars['url']; ?>vendors/jquery/jquery-ui-personalized-1.5.packed.js"></script>
- <script type="text/javascript" src="<?php echo $vars['url']; ?>pg/js/initialise_elgg.js"></script>
-
-<?php
-
- global $pickerinuse;
- if (isset($pickerinuse) && $pickerinuse == true) {
-
-?>
-
- <!-- only needed on pages where we have friends collections and/or the friends picker-->
- <script type="text/javascript" src="<?php echo $vars['url']; ?>vendors/jquery/jquery-easing.1.2.pack.js"></script>
- <script type="text/javascript" src="<?php echo $vars['url']; ?>vendors/jquery/jquery-easing-compatibility.1.2.pack.js"></script>
- <script type="text/javascript" src="<?php echo $vars['url']; ?>pg/js/friendsPickerv1.js"></script>
-
-<?php
-
- }
-
-?>
-
- <!-- include the default css file -->
- <link rel="stylesheet" href="<?php echo $vars['url']; ?>_css/css.css" type="text/css" />
- <?php
-
- echo $feedref;
- echo elgg_view('metatags',$vars);
-
- ?>
-</head>
-
-<body>
-
-<?php echo elgg_view('page_elements/elgg_topbar', $vars); ?>
-
-<div id="page_container">
-<div id="page_wrapper">
-
-<div id="layout_header">
-<div id="wrapper_header">
- <!-- display the page title -->
- <h1><a href="<?php echo $vars['url']; ?>"><?php echo $vars['config']->sitename; ?></a></h1>
-</div><!-- /#wrapper_header -->
-</div><!-- /#layout_header -->
diff --git a/views/default/page_elements/owner_block.php b/views/default/page_elements/owner_block.php
deleted file mode 100644
index d12c02641..000000000
--- a/views/default/page_elements/owner_block.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-
- /**
- * Elgg owner block
- * Displays page ownership information
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-
- $contents = "";
-
- // Is there a page owner?
- $owner = page_owner_entity();
- if (!$owner && isloggedin()) $owner = $_SESSION['user'];
- if ($owner) {
- $icon = elgg_view("profile/icon",array('entity' => $owner, 'size' => 'tiny'));
- if ($owner instanceof ElggUser || $owner instanceof ElggGroup) {
- $info = $owner->name;
- }
- $display = "<div id=\"owner_block_icon\">" . $icon . "</div>";
- $display .= "<div id=\"owner_block_content\">" . $info . "</div><div class=\"clearfloat ownerblockline\"></div>";
-
- if ($owner->briefdescription) {
- $desc = $owner->briefdescription;
- $display .= "<div id=\"owner_block_desc\">" . $desc . "</div>";
- }
-
- $contents .= $display;
- }
-
- // Are there feeds to display?
- global $autofeed;
-
- if (isset($autofeed) && $autofeed == true) {
- $url = $url2 = full_url();
- if (substr_count($url,'?')) {
- $url .= "&view=rss";
- } else {
- $url .= "?view=rss";
- }
- if (substr_count($url2,'?')) {
- $url2 .= "&view=odd";
- } else {
- $url2 .= "?view=opendd";
- }
- $label = elgg_echo('feed:rss');
- $label2 = elgg_echo('feed:odd');
- $contents .= <<<END
-
- <div id="owner_block_rss_feed"><a href="{$url}">{$label}</a></div>
- <div id="owner_block_odd_feed"><a href="{$url2}">{$label2}</a></div>
-
-END;
- }
-
- //the follow are for logged in users only
- if(isloggedin()){
-
- //is the bookmark plugin installed?
- if(is_plugin_enabled('bookmarks')){
-
- $label3 = elgg_echo('bookmarks:this');
- $contents .= "<div id=\"owner_block_bookmark_this\"><a href=\"javascript:location.href='". $CONFIG->wwwroot . "mod/bookmarks/add.php?address='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)\">{$label3}</a></div>";
-
- }
-
- //report this button
- if (is_plugin_enabled('reportedcontent'))
- {
- $label4 = elgg_echo('reportedcontent:report');
- $contents .= "<div id=\"owner_block_report_this\"><a href=\"javascript:location.href='". $CONFIG->wwwroot . "mod/reportedcontent/add.php?address='+encodeURIComponent(location.href)+'&title='+encodeURIComponent(document.title)\">{$label4}</a></div>";
- }
-
- }
-
-
- $contents .= elgg_view('owner_block/extend');
-
- // Have we been asked to inject any content? If so, display it
- if (isset($vars['content']))
- $contents .= $vars['content'];
-
- // Initialise the submenu
- $submenu = get_submenu(); // elgg_view('canvas_header/submenu');
- if (!empty($submenu))
- $contents .= "<div id=\"owner_block_submenu\">" . $submenu . "</div>"; // plugins can extend this to add menu options
-
- if (!empty($contents)) {
- echo "<div id=\"owner_block\">";
- echo $contents;
- echo "</div><div id=\"owner_block_bottom\"></div>";
- }
-
-?> \ No newline at end of file
diff --git a/views/default/page_elements/spotlight.php b/views/default/page_elements/spotlight.php
deleted file mode 100644
index 446d5902c..000000000
--- a/views/default/page_elements/spotlight.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
- /**
- * Elgg spotlight
- * The spotlight area that displays across the site
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-?>
-
-<div id="layout_spotlight">
-<div id="wrapper_spotlight">
-
-<div class="collapsable_box no_space_after">
- <div class="collapsable_box_header">
-<?php
-
- $closed = false;
- if ($_SESSION['user'] instanceof ElggUser) {
- if ($_SESSION['user']->spotlightclosed) {
-
- $closed = true;
-
- }
- }
- if ($closed) {
-?>
- <a href="javascript:void(0);" class="toggle_box_contents" onClick="$.post('<?php echo $vars['url']; ?>action/user/spotlight?closed=false')">+</a>
-<?php
- } else {
-?>
- <a href="javascript:void(0);" class="toggle_box_contents" onClick="$.post('<?php echo $vars['url']; ?>action/user/spotlight?closed=true')">-</a>
-<?php
-
- }
-
-?>
- <h1><?php echo elgg_echo("spotlight"); ?></h1>
- </div>
- <div class="collapsable_box_content" <?php if ($closed) echo "style=\"display:none\"" ?>>
-<?php
-
- $context = get_context();
- if (!empty($context) && elgg_view_exists("spotlight/{$context}")) {
- echo elgg_view("spotlight/{$context}");
- } else {
- echo elgg_view("spotlight/default");
- }
-
-
-
-
-?>
- </div><!-- /.collapsable_box_content -->
-</div><!-- /.collapsable_box -->
-
-</div><!-- /#wrapper_spotlight -->
-</div><!-- /#layout_spotlight --> \ No newline at end of file
diff --git a/views/default/page_elements/title.php b/views/default/page_elements/title.php
deleted file mode 100644
index ed9dc8bda..000000000
--- a/views/default/page_elements/title.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
- /**
- * Elgg title element
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['title'] The page title
- */
-
- $page_owner = page_owner();
- $page_owner_user = get_entity($page_owner);
-
- $submenu = get_submenu(); // elgg_view('canvas_header/submenu');
- if (!empty($submenu)) $submenu = "<ul>" . $submenu . "</ul>";
-
- if (($_SESSION['guid']) && ($page_owner && $page_owner_user->guid != $_SESSION['user']->getGUID())) {
- $info = "<h2>" . $vars['title'] . "</h2>";
- if($page_owner_user instanceOf ElggGroup) {
- $display = "<div id=\"content_area_group_title\">" . $info . "</div>";
- } else {
- $display = "<div id=\"content_area_user_title\">" . $info . "</div>";
- }
- if (!empty($submenu) && $vars['submenu'] == true)
- $display .= "<div id=\"owner_block_submenu\">" . $submenu . "</div>"; // plugins can extend this to add menu options
- } else {
- $info = "<h2>" . $vars['title'] . "</h2>";
- if($page_owner_user instanceOf ElggGroup) {
- $display = "<div id=\"content_area_group_title\">" . $info . "</div>";
- } else {
- $display = "<div id=\"content_area_user_title\">" . $info . "</div>";
- }
- if (!empty($submenu) && $vars['submenu'] == true)
- $display .= "<div id=\"owner_block_submenu\">" . $submenu . "</div>"; // plugins can extend this to add menu options
- }
-
-
- //print to screen
- echo $display;
-
-
-
-?> \ No newline at end of file
diff --git a/views/default/pageshells/pageshell.php b/views/default/pageshells/pageshell.php
deleted file mode 100644
index 7ba7cc22b..000000000
--- a/views/default/pageshells/pageshell.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
- /**
- * Elgg pageshell
- * The standard HTML page shell that everything else fits into
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['config'] The site configuration settings, imported
- * @uses $vars['title'] The page title
- * @uses $vars['body'] The main content of the page
- * @uses $vars['messages'] A 2d array of various message registers, passed from system_messages()
- */
-
- // Set the content type
- header("Content-type: text/html; charset=UTF-8");
-
- // Set title
- if (empty($vars['title'])) {
- $title = $vars['config']->sitename;
- } else if (empty($vars['config']->sitename)) {
- $title = $vars['title'];
- } else {
- $title = $vars['config']->sitename . ": " . $vars['title'];
- }
-
-?>
-
-<?php echo elgg_view('page_elements/header', $vars); ?>
-
-<!-- main contents -->
-
-<!-- display any system messages -->
-<?php echo elgg_view('messages/list', array('object' => $vars['sysmessages'])); ?>
-
-
-<!-- canvas -->
-<div id="layout_canvas">
-
-<?php echo $vars['body']; ?>
-
-<div class="clearfloat"></div>
-</div><!-- /#layout_canvas -->
-
-<?php
- if(isloggedin()){
-?>
- <!-- spotlight -->
- <?php echo elgg_view('page_elements/spotlight', $vars); ?>
-<?php
- }
-?>
-
-<!-- footer -->
-<?php echo elgg_view('page_elements/footer', $vars); ?>
diff --git a/views/default/profile/icon.php b/views/default/profile/icon.php
new file mode 100644
index 000000000..5f06cfd54
--- /dev/null
+++ b/views/default/profile/icon.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Elgg profile icon
+ *
+ * @deprecated 1.8 use elgg_view_entity_icon()
+ *
+ * @uses $vars['entity'] The user entity. If none specified, the current user is assumed.
+ * @uses $vars['size'] The size - small, medium or large. If none specified, medium is assumed.
+ * @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['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
new file mode 100644
index 000000000..7d586450d
--- /dev/null
+++ b/views/default/river/annotation/generic_comment/create.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Post comment river view
+ */
+$object = $vars['item']->getObjectEntity();
+$comment = $vars['item']->getAnnotation();
+
+echo elgg_view('river/elements/layout', array(
+ 'item' => $vars['item'],
+ 'message' => elgg_get_excerpt($comment->value),
+));
diff --git a/views/default/river/dashboard.php b/views/default/river/dashboard.php
deleted file mode 100644
index 5970fe7fc..000000000
--- a/views/default/river/dashboard.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
- /**
- * Elgg river for dashboard.
- *
- * @package Elgg
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.com/
- */
-
- /// Extract the river
- $river = $vars['river'];
-?>
-<div id="river">
- <?php
- if (($river) && (count($river)>0))
- {
- foreach ($river as $r) echo $r;
- //echo "<div>$r</div>";
- }
- else
- echo elgg_echo('river:widget:noactivity');
- ?>
-</div> \ No newline at end of file
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/river/elements/image.php b/views/default/river/elements/image.php
new file mode 100644
index 000000000..6f6aeae65
--- /dev/null
+++ b/views/default/river/elements/image.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Elgg river image
+ *
+ * Displayed next to the body of each river item
+ *
+ * @uses $vars['item']
+ */
+
+$subject = $vars['item']->getSubjectEntity();
+
+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/river/elements/responses.php b/views/default/river/elements/responses.php
new file mode 100644
index 000000000..f6c32e142
--- /dev/null
+++ b/views/default/river/elements/responses.php
@@ -0,0 +1,63 @@
+<?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();
+
+// annotations do not have comments
+if ($item->annotation_id != 0 || !$object) {
+ return true;
+}
+
+$comment_count = $object->countComments();
+
+$options = array(
+ 'guid' => $object->getGUID(),
+ 'annotation_name' => 'generic_comment',
+ 'limit' => 3,
+ 'order_by' => 'n_table.time_created desc'
+);
+$comments = elgg_get_annotations($options);
+
+if ($comments) {
+ // why is this reversing it? because we're asking for the 3 latest
+ // comments by sorting desc and limiting by 3, but we want to display
+ // these comments with the latest at the bottom.
+ $comments = array_reverse($comments);
+
+?>
+ <span class="elgg-river-comments-tab"><?php echo elgg_echo('comments'); ?></span>
+
+<?php
+
+ echo elgg_view_annotation_list($comments, array('list_class' => 'elgg-river-comments'));
+
+ if ($comment_count > count($comments)) {
+ $num_more_comments = $comment_count - count($comments);
+ $url = $object->getURL();
+ $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>";
+ }
+}
+
+// inline comment form
+$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
new file mode 100644
index 000000000..75767e08d
--- /dev/null
+++ b/views/default/river/item.php
@@ -0,0 +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'];
+
+echo elgg_view($item->getView(), $vars);
+
+
+$_elgg_special_river_catch = false;
diff --git a/views/default/river/relationship/friend/create.php b/views/default/river/relationship/friend/create.php
index edbaf4213..0408d79e1 100644
--- a/views/default/river/relationship/friend/create.php
+++ b/views/default/river/relationship/friend/create.php
@@ -1,47 +1,14 @@
<?php
- /**
- * Elgg relationship create event.
- * Display something in the river when a relationship is created.
- *
- * @package Elgg
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.com/
- */
+/**
+ * Create friend river view
+ */
+$subject = $vars['item']->getSubjectEntity();
+$object = $vars['item']->getObjectEntity();
- $statement = $vars['statement'];
-
- $performed_by = $statement->getSubject();
- $event = $statement->getEvent();
- $object = $statement->getObject();
-
- if (is_array($object))
- {
- switch ($object['relationship'])
- {
- // Friending
- case 'friend' :
- case 'friends' : // 'friends' shouldn't be used, but just incase :)
-
- // Get second object
- $userb = $object['object'];
-
- // Only users can be friends
- if (($performed_by instanceof ElggUser) && ($userb instanceof ElggUser))
- {
- // User A
- echo "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a> ";
-
- // Verb
- echo elgg_echo('river:relationship:friend');
-
- // user B
- echo " <a href=\"{$userb->getURL()}\">{$userb->name}</a>";
- }
-
- break;
- }
- }
-
-?> \ No newline at end of file
+$subject_icon = elgg_view_entity_icon($subject, 'tiny');
+$object_icon = elgg_view_entity_icon($object, 'tiny');
+
+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/river/wrapper.php b/views/default/river/wrapper.php
deleted file mode 100644
index fe5c961d5..000000000
--- a/views/default/river/wrapper.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
- /**
- * Elgg river item wrapper.
- * Wraps all river items.
- *
- * @package Elgg
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider
- * @copyright Curverider Ltd 2008
- * @link http://elgg.com/
- */
-
- $statement = $vars['statement'];
- $time = $vars['time'];
- $event = $vars['event'];
- $entry = $vars['entry'];
-
- if ($statement->getObject() instanceof ElggEntity) {
-
- $obj = $statement->getObject();
- $subtype = $obj->getSubtype();
- if (empty($subtype)) $subtype = $obj->type;
- if (empty($subtype)) $subtype = "general";
- } else if (is_array($statement->getObject())) {
- $obj = $statement->getObject();
- $subtype = "relationship_" . $obj['relationship'];
- }
-?>
-<div class="river_item">
-
- <div class="river_<?php echo $subtype; ?>">
- <div class="river_<?php echo $event; ?>">
- <p class="river_<?php echo $subtype; ?>_<?php echo $event; ?>">
- <?php
-
- echo $vars['entry'];
-
- ?>
- <span class="river_item_time">
- (<?php
-
- echo friendly_time($time);
-
- ?>)
- </span>
- </p>
- </div>
- </div>
-
-</div>
diff --git a/views/default/search/entity_list.php b/views/default/search/entity_list.php
deleted file mode 100644
index a298983a2..000000000
--- a/views/default/search/entity_list.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-
- $context = $vars['context'];
- $offset = $vars['offset'];
- $entities = $vars['entities'];
- $limit = $vars['limit'];
- $count = $vars['count'];
- $baseurl = $vars['baseurl'];
- $context = $vars['context'];
- $viewtype = $vars['viewtype'];
- $pagination = $vars['pagination'];
-
- $html = "";
- $nav = "";
-
- if (isset($vars['viewtypetoggle'])) {
- $viewtypetoggle = $vars['viewtypetoggle'];
- } else {
- $viewtypetoggle = true;
- }
-
- if ($context == "search" && $count > 0 && $viewtypetoggle) {
- $nav .= elgg_view("navigation/viewtype",array(
-
- 'baseurl' => $baseurl,
- 'offset' => $offset,
- 'count' => $count,
- 'viewtype' => $viewtype,
-
- ));
- }
-
- if ($pagination)
- $nav .= elgg_view('navigation/pagination',array(
-
- 'baseurl' => $baseurl,
- 'offset' => $offset,
- 'count' => $count,
- 'limit' => $limit,
-
- ));
-
- $html .= $nav;
-
- if ($viewtype == "list") {
- if (is_array($entities) && sizeof($entities) > 0) {
- foreach($entities as $entity) {
- $html .= elgg_view_entity($entity, $fullview);
- }
- }
- } else {
- if (is_array($entities) && sizeof($entities) > 0)
- $html .= elgg_view("search/gallery",array('entities' => $entities));
- }
-
- if ($count)
- $html .= $nav;
-
- echo $html;
-
-?> \ No newline at end of file
diff --git a/views/default/search/gallery.php b/views/default/search/gallery.php
deleted file mode 100644
index 9f3a34014..000000000
--- a/views/default/search/gallery.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
- /**
- * Elgg gallery view
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $entities = $vars['entities'];
- if (is_array($entities) && sizeof($entities) > 0) {
-
-?>
-
- <table class="search_gallery">
-
-<?php
-
- $col = 0;
- foreach($entities as $entity) {
- if ($col == 0) {
-
- echo "<tr>";
-
- }
- echo "<td class=\"search_gallery_item\">";
- echo elgg_view_entity($entity);
- echo "</td>";
- $col++;
- if ($col > 3) {
- echo "</tr>";
- $col = 0;
- }
- }
- if ($col > 0) echo "</tr>";
-
-?>
-
- </table>
-
-<?php
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/search/gallery_listing.php b/views/default/search/gallery_listing.php
deleted file mode 100644
index 3ebda7940..000000000
--- a/views/default/search/gallery_listing.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
- /**
- * Elgg search listing: gallery view
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?>
-
- <div class="search_listing">
-
- <div class="search_listing_header">
-
- <?php
-
- echo $vars['icon'];
-
- ?>
-
- </div>
- <div class="search_listing_info">
- <?php
-
- echo $vars['info'];
-
- ?>
- </div>
-
- </div> \ No newline at end of file
diff --git a/views/default/search/listing.php b/views/default/search/listing.php
deleted file mode 100644
index 4dcb3be34..000000000
--- a/views/default/search/listing.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-
- /**
- * Elgg search listing
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- if (isset($vars['search_viewtype']) && $vars['search_viewtype'] == "gallery") {
-
- echo elgg_view("search/gallery_listing",$vars);
-
- } else {
-
-?>
-
- <div class="search_listing">
-
- <div class="search_listing_icon">
- <?php
-
- echo $vars['icon'];
-
- ?>
- </div>
- <div class="search_listing_info">
- <?php
-
- echo $vars['info'];
-
- ?>
- </div>
-
- </div>
-
-<?php
-
- }
-
-?> \ No newline at end of file
diff --git a/views/default/search/startblurb.php b/views/default/search/startblurb.php
deleted file mode 100644
index 8aa1ea371..000000000
--- a/views/default/search/startblurb.php
+++ /dev/null
@@ -1,8 +0,0 @@
-
-<p>
- <?php
-
- echo sprintf(elgg_echo("tag:search:startblurb"),$vars['tag']);
-
- ?>
-</p> \ No newline at end of file
diff --git a/views/default/settings/install.php b/views/default/settings/install.php
deleted file mode 100644
index 17d263349..000000000
--- a/views/default/settings/install.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
- /**
- * Elgg system settings on initial installation
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-
- echo "<p>" . autop(elgg_echo("installation:settings:description")) . "</p>";
-
- echo elgg_view("settings/system",array("action" => "action/systemsettings/install"));
-
-?> \ No newline at end of file
diff --git a/views/default/settings/system.php b/views/default/settings/system.php
deleted file mode 100644
index 2ddd8ac7b..000000000
--- a/views/default/settings/system.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-
- /**
- * Elgg system settings form
- * The form to change system settings
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- * @uses $vars['action'] If set, the place to forward the form to (usually action/systemsettings/save)
- */
-
- // Set action appropriately
- if (!isset($vars['action'])) {
- $action = $vars['url'] . "action/systemsettings/save";
- } else {
- $action = $vars['action'];
- }
-
- $form_body = "";
- foreach(array('sitename','sitedescription', 'siteemail', 'wwwroot','path','dataroot', 'view') as $field) {
- $form_body .= "<p>";
- $form_body .= elgg_echo('installation:' . $field) . "<br />";
- $warning = elgg_echo('installation:warning:' . $field);
- if ($warning != 'installation:warning:' . $field) echo "<b>" . $warning . "</b><br />";
- $value = $vars['config']->$field;
- $form_body .= elgg_view("input/text",array('internalname' => $field, 'value' => $value));
- $form_body .= "</p>";
- }
-
- $languages = get_installed_translations();
- $form_body .= "<p>" . elgg_echo('installation:language') . elgg_view("input/pulldown", array('internalname' => 'language', 'value' => $vars['config']->language, 'options_values' => $languages)) . "</p>";
-
- $form_body .= "<p class=\"admin_debug\">" . elgg_echo('installation:debug') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:debug:label')), 'internalname' => 'debug', 'value' => ($vars['config']->debug ? elgg_echo('installation:debug:label') : "") )) . "</p>";
-
- $form_body .= "<p class=\"admin_debug\">" . elgg_echo('installation:disableapi') . "<br />";
- $on = elgg_echo('installation:disableapi:label');
- if ((isset($CONFIG->disable_api)) && ($CONFIG->disable_api == true))
- $on = ($vars['config']->disable_api ? "" : elgg_echo('installation:disableapi:label'));
- $form_body .= elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:disableapi:label')), 'internalname' => 'api', 'value' => $on ));
- $form_body .= "</p>";
-
- $form_body .= "<p class=\"admin_usage\">" . elgg_echo('installation:usage') . "<br />";
- $on = elgg_echo('installation:usage:label');
-
- if (isset($CONFIG->ping_home))
- $on = ($vars['config']->ping_home!='disabled' ? elgg_echo('installation:usage:label') : "");
- $form_body .= elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:usage:label')), 'internalname' => 'usage', 'value' => $on ));
- $form_body .= "</p>";
-
-
-
- $form_body .= elgg_view('input/hidden', array('internalname' => 'settings', 'value' => 'go'));
-
- $form_body .= elgg_view('input/submit', array('value' => elgg_echo("save")));
-
- echo elgg_view('input/form', array('action' => $action, 'body' => $form_body));
-
-?>
diff --git a/views/default/settings/upgrading.php b/views/default/settings/upgrading.php
deleted file mode 100644
index 82905af8a..000000000
--- a/views/default/settings/upgrading.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-?>
-
-<html>
- <head>
- <title><?php echo elgg_echo('upgrading'); ?></title>
- <meta http-equiv="refresh" content="1;url=<?php echo $vars['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 $vars['url']; ?>_graphics/ajax_loader.gif" />
- </td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/views/default/site/default.php b/views/default/site/default.php
index 3f2732d79..5dacb4019 100644
--- a/views/default/site/default.php
+++ b/views/default/site/default.php
@@ -1,14 +1,17 @@
<?php
- /**
- * ElggSite default view.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
+/**
+ * ElggSite default view.
+ *
+ * @package Elgg
+ * @subpackage Core
+ */
- echo elgg_view('object/default', $vars);
-?> \ No newline at end of file
+// sites information (including plugin settings) shouldn't be shown.
+// this view is required for pinging home during install.
+if (!defined('INSTALLING')) {
+ if ($site = $vars['entity']->url) {
+ forward($site);
+ } else {
+ forward();
+ }
+}
diff --git a/views/default/spotlight/default.php b/views/default/spotlight/default.php
deleted file mode 100644
index 69e0bc826..000000000
--- a/views/default/spotlight/default.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
- /**
- * Elgg default spotlight
- * The spotlight area that displays across the site
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-?>
-
-<table id="spotlight_table" width="100%"cellspacing="0">
- <tr>
- <td align="left" valign="top">
- <!-- spotlight LHS content -->
- <table id="spotlight_table_left_area" width="90%" cellspacing="0">
- <tr>
- <td colspan="3" align="left" valign="top">
- <h2>Welcome to the Elgg software</h2>
- <p>Elgg is a social networking framework. It provides the necessary functionality to allow you to run your own social networking site, whether publicly (like Facebook) or internally on a networked intranet (like Microsoft Sharepoint).</p>
- <!-- <p>Welcome to this Elgg spotlight area. This is a new feature introduced in Elgg v1.0 and we hope you will find it useful. Every plugin within Elgg can set its own content to be displayed in this space. This can include author infomation, help documents or tutorial videos.<p> -->
- </td>
- </tr>
-
- <tr><td width="100%" height="10" colspan="3" align="left" valign="top"></td> </tr>
-
- <tr>
- <td width="33%" align="left" valign="top">
- <h2>More information</h2>
-
- <ul>
- <li><a href="http://elgg.org/features.php">Features</a></li>
- <li><a href="http://elgg.org/about.php">About Elgg</a></li>
- </ul>
-
- </td>
- <td width="33%" align="left" valign="top">
- <ul>
- <li><a href="http://news.elgg.org/pg/blog/marcus/read/42/import-and-export-in-elgg-10">Import and Export</a></li>
- <li><a href="http://news.elgg.org/pg/blog/bwerdmuller/read/38/events-and-auditing-in-elgg">Events and Auditing</li>
- <li><a href="http://news.elgg.org/pg/blog/bwerdmuller/read/31/translations-and-views-in-elgg-10">Translations and Views</li>
- <li><a href="http://news.elgg.org/pg/blog/bwerdmuller/read/41/access-control-in-elgg">Access controls</a></li>
- </ul>
-
-
- </td>
- <td width="33%" align="left" valign="top">
- <ul>
- <li><a href="http://news.elgg.org">Elgg news</a></li>
- <li><a href="http://elgg.com">Elgg services</a></li>
- <li><a href="http://elgg.com">Elgg support</a></li>
- <li><a href="http://elgg.com">Elgg hosting</a></li>
- </ul>
-
- </td>
- </tr>
- </table>
- <!-- /spotlight LHS content -->
-
- </td>
-
-
- <td width="250" align="left" valign="top">
- <!-- spotlight RHS content -->
- <h2>Tutorials</h2>
-
- <ul>
- <li><a href="http://docs.elgg.org/wiki/Tutorials/Blog">Simple blog tutorial (plugin)</a></li>
- <li><a href="http://docs.elgg.org/wiki/Tutorials/Wysiwyg">Simple plugin tutorial</a></li>
- <li><a href="http://docs.elgg.org/wiki/Widgets#Simple_Example">Simple widget example</a></li>
- <li><a href="http://docs.elgg.org/wiki/Views/SystemViews">Populating this spotlight area</a></li>
- </ul>
- <!-- /spotlight RHS content -->
- <a href="http://elgg.com"><img src="http://news.elgg.org/mod/standaloneblog/graphics/elgg_com_badge.gif"></a>
- </td>
- </tr>
-</table> \ No newline at end of file
diff --git a/views/default/text/about.php b/views/default/text/about.php
deleted file mode 100644
index 466f480aa..000000000
--- a/views/default/text/about.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
- /**
- * Elgg basic about page
- * The standard HTML about page
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-?>
-
-<!-- still to do --> \ No newline at end of file
diff --git a/views/default/text/privacy_view.php b/views/default/text/privacy_view.php
deleted file mode 100644
index 59edcc92d..000000000
--- a/views/default/text/privacy_view.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
- /**
- * Elgg basic privacy page
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-?>
-
diff --git a/views/default/text/tos_view.php b/views/default/text/tos_view.php
deleted file mode 100644
index 67b1d500c..000000000
--- a/views/default/text/tos_view.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
- /**
- * Elgg basic tos page
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- *
- */
-?> \ No newline at end of file
diff --git a/views/default/user/default.php b/views/default/user/default.php
index 5684f0dfc..6c84e84ad 100644
--- a/views/default/user/default.php
+++ b/views/default/user/default.php
@@ -1,23 +1,57 @@
-<?php
-
- /**
- * Elgg user display
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- if ($vars['full']) {
- echo elgg_view("profile/userdetails",$vars);
- } else {
- if (get_input('search_viewtype') == "gallery") {
- echo elgg_view('profile/gallery',$vars);
- } else {
- echo elgg_view("profile/listing",$vars);
- }
- }
-
-?> \ No newline at end of file
+<?php
+/**
+ * Elgg user display
+ *
+ * @uses $vars['entity'] ElggUser entity
+ * @uses $vars['size'] Size of the icon
+ */
+
+$entity = $vars['entity'];
+$size = elgg_extract('size', $vars, 'tiny');
+
+$icon = elgg_view_entity_icon($entity, $size, $vars);
+
+// Simple XFN
+$rel = '';
+if (elgg_get_logged_in_user_guid() == $entity->guid) {
+ $rel = 'rel="me"';
+} elseif (check_entity_relationship(elgg_get_logged_in_user_guid(), 'friend', $entity->guid)) {
+ $rel = 'rel="friend"';
+}
+
+$title = "<a href=\"" . $entity->getUrl() . "\" $rel>" . $entity->name . "</a>";
+
+$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 (elgg_get_context() == 'gallery') {
+ echo $icon;
+} else {
+ 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);
+}
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 b7624f8ce..a3878a803 100644
--- a/views/default/user/search/finishblurb.php
+++ b/views/default/user/search/finishblurb.php
@@ -1,15 +1,18 @@
-<?php
-
- if ($vars['count'] > $vars['threshold']) {
-
-?>
-<p><a href="<?php echo $vars['url']; ?>search/users.php?tag=<?php echo urlencode($vars['tag']); ?>"><?php
-
- echo elgg_echo("user:search:finishblurb");
-
- ?></a></p>
-<?php
-
- }
-
-?> \ No newline at end of file
+<?php
+/**
+ * @package Elgg
+ * @subpackage Core
+ * @deprecated 1.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(); ?>search/users?tag=<?php echo urlencode($vars['tag']); ?>"><?php
+ echo elgg_echo("user:search:finishblurb");
+ ?></a>
+<?php
+
+}
diff --git a/views/default/user/search/startblurb.php b/views/default/user/search/startblurb.php
index c987dd8dc..806157609 100644
--- a/views/default/user/search/startblurb.php
+++ b/views/default/user/search/startblurb.php
@@ -1,8 +1,10 @@
-
-<p>
- <?php
-
- echo sprintf(elgg_echo("user:search:startblurb"),$vars['tag']);
-
- ?>
-</p> \ No newline at end of file
+<?php
+/**
+ * @package Elgg
+ * @subpackage Core
+ * @deprecated 1.7
+ */
+
+elgg_deprecated_notice('view user/search/startblurb was deprecated.', 1.7);
+
+echo elgg_echo("user:search:startblurb", array($vars['tag'])); \ No newline at end of file
diff --git a/views/default/user/settings/email.php b/views/default/user/settings/email.php
deleted file mode 100644
index 17888840b..000000000
--- a/views/default/user/settings/email.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
- /**
- * Provide a way of setting your email
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $user = page_owner_entity();
-
- if ($user) {
-?>
- <h3><?php echo elgg_echo('email:settings'); ?></h3>
- <p>
- <?php echo elgg_echo('email:address:label'); ?>:
- <?php
-
- echo elgg_view('input/email',array('internalname' => 'email', 'value' => $user->email));
-
- ?>
- </p>
-
-<?php } ?> \ No newline at end of file
diff --git a/views/default/user/settings/language.php b/views/default/user/settings/language.php
deleted file mode 100644
index 344faab55..000000000
--- a/views/default/user/settings/language.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
- /**
- * Provide a way of setting your language prefs
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $CONFIG;
- $user = page_owner_entity();
-
- if ($user) {
-?>
- <h3><?php echo elgg_echo('user:set:language'); ?></h3>
- <p>
-
- <?php echo elgg_echo('user:language:label'); ?>: <?php
-
- $value = $CONFIG->language;
- if ($user->language)
- $value = $user->language;
-
- echo elgg_view("input/pulldown", array('internalname' => 'language', 'value' => $value, 'options_values' => get_installed_translations()));
-
- ?>
-
- </p>
-
-<?php } ?> \ No newline at end of file
diff --git a/views/default/user/settings/name.php b/views/default/user/settings/name.php
deleted file mode 100644
index 3a317cf22..000000000
--- a/views/default/user/settings/name.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
- /**
- * Provide a way of setting your full name.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $user = page_owner_entity();
-
- if ($user) {
-?>
- <h3><?php echo elgg_echo('user:set:name'); ?></h3>
- <p>
- <?php echo elgg_echo('user:name:label'); ?>:
- <?php
-
- echo elgg_view('input/text',array('internalname' => 'name', 'value' => $user->name));
- echo elgg_view('input/hidden',array('internalname' => 'guid', 'value' => $user->guid));
- ?>
- </p>
-
-<?php } ?> \ No newline at end of file
diff --git a/views/default/user/settings/password.php b/views/default/user/settings/password.php
deleted file mode 100644
index d3f52fb9b..000000000
--- a/views/default/user/settings/password.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
- /**
- * Provide a way of setting your password
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $user = page_owner_entity();
-
- if ($user) {
-?>
- <h3><?php echo elgg_echo('user:set:password'); ?></h3>
- <p>
- <?php echo elgg_echo('user:password:label'); ?>:
- <?php
- echo elgg_view('input/password',array('internalname' => 'password'));
- ?></p><p>
- <?php echo elgg_echo('user:password2:label'); ?>: <?php
- echo elgg_view('input/password',array('internalname' => 'password2'));
- ?>
- </p>
-
-<?php } ?> \ No newline at end of file
diff --git a/views/default/usersettings/form.php b/views/default/usersettings/form.php
deleted file mode 100644
index 509146162..000000000
--- a/views/default/usersettings/form.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
- $form_body = "<div class=\"settings_form\">" . elgg_view("usersettings/user") . "</div>";
- $form_body .= "<p>" . elgg_view('input/submit', array('value' => elgg_echo('save'))) . "</p>";
-
- echo elgg_view('input/form', array('action' => "{$vars['url']}action/usersettings/save", 'body' => $form_body));
-?> \ No newline at end of file
diff --git a/views/default/usersettings/main.php b/views/default/usersettings/main.php
deleted file mode 100644
index d19b4d773..000000000
--- a/views/default/usersettings/main.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
- /**
- * Elgg user main settings page.
- * Functions for adding and manipulating options on the user settings panel.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // Description of what's going on
- echo "<p>" . autop(elgg_echo("usersettings:description")) . "</p>";
-?> \ No newline at end of file
diff --git a/views/default/usersettings/main_opt/plugins.php b/views/default/usersettings/main_opt/plugins.php
deleted file mode 100644
index b7993e2cb..000000000
--- a/views/default/usersettings/main_opt/plugins.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
- /**
- * Elgg plugin sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- global $CONFIG;
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('usersettings:plugins'); ?> </h2>
- <p><?php echo elgg_echo('usersettings:plugins:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/settings/plugins/"; ?>"><?php echo elgg_echo('usersettings:plugins:opt:linktext'); ?></a></p>
-</div> \ No newline at end of file
diff --git a/views/default/usersettings/main_opt/statistics.php b/views/default/usersettings/main_opt/statistics.php
deleted file mode 100644
index e652923e9..000000000
--- a/views/default/usersettings/main_opt/statistics.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
- /**
- * Elgg satistics sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('usersettings:statistics'); ?> </h2>
- <p><?php echo elgg_echo('usersettings:statistics:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/settings/statistics/"; ?>"><?php echo elgg_echo('usersettings:statistics:opt:linktext'); ?></a></p>
-</div>
diff --git a/views/default/usersettings/main_opt/user.php b/views/default/usersettings/main_opt/user.php
deleted file mode 100644
index 6480caa92..000000000
--- a/views/default/usersettings/main_opt/user.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
- /**
- * Elgg user sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-?>
-<div class="admin-menu-option">
- <h2><?php echo elgg_echo('usersettings:user'); ?> </h2>
- <p><?php echo elgg_echo('usersettings:user:opt:description'); ?><br />
- <a href="<?php echo $CONFIG->wwwroot . "pg/settings/user/"; ?>"><?php echo elgg_echo('usersettings:user:opt:linktext'); ?></a></p>
-</div> \ No newline at end of file
diff --git a/views/default/usersettings/plugins.php b/views/default/usersettings/plugins.php
deleted file mode 100644
index 321f377ce..000000000
--- a/views/default/usersettings/plugins.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
- /**
- * Elgg plugin specific user settings.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- // Description of what's going on
- echo "<p>" . autop(elgg_echo("usersettings:plugins:description")) . "</p>";
-
- $limit = get_input('limit', 10);
- $offset = get_input('offset', 0);
-
- // Get the installed plugins
- $installed_plugins = $vars['installed_plugins'];
- $count = count($installed_plugins);
-
- // Display list of plugins
- $n = 0;
- foreach ($installed_plugins as $plugin => $data)
- {
- if (is_plugin_enabled($plugin))
- echo elgg_view("usersettings/plugins_opt/plugin", array('plugin' => $plugin, 'details' => $data));
-
- }
-
-
-?> \ No newline at end of file
diff --git a/views/default/usersettings/plugins_opt/plugin.php b/views/default/usersettings/plugins_opt/plugin.php
deleted file mode 100644
index 566f2bf55..000000000
--- a/views/default/usersettings/plugins_opt/plugin.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
- /**
- * Elgg plugin manifest class
- *
- * This file renders a plugin for the admin screen, including active/deactive, manifest details & display plugin
- * settings.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-
- $plugin = $vars['plugin'];
- $details = $vars['details'];
-
- $active = $details['active'];
- $manifest = $details['manifest'];
-
- $user_guid = $details['user_guid'];
- if ($user_guid) $user_guid = $_SESSION['user']->guid;
-
- if (elgg_view("usersettings/{$plugin}/edit")) {
-?>
-<div id="user_plugin_details">
- <div><h2><?php echo $plugin; ?></h2></div>
-
- <div id="<?php echo $plugin; ?>_settings">
- <?php echo elgg_view("object/plugin", array('plugin' => $plugin, 'entity' => find_plugin_usersettings($plugin, $user_guid), 'prefix' => 'user')) ?>
- </div>
-</div>
-<?php } ?> \ No newline at end of file
diff --git a/views/default/usersettings/statistics.php b/views/default/usersettings/statistics.php
deleted file mode 100644
index 554a1bbbf..000000000
--- a/views/default/usersettings/statistics.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
- /**
- * Elgg settings specific user settings.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?> \ No newline at end of file
diff --git a/views/default/usersettings/statistics_opt/numentities.php b/views/default/usersettings/statistics_opt/numentities.php
deleted file mode 100644
index f79df4be0..000000000
--- a/views/default/usersettings/statistics_opt/numentities.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
- /**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-
- // Get entity statistics
- $entity_stats = get_entity_statistics($_SESSION['user']->guid);
-
- if ($entity_stats)
- {
-?>
-<div class="usersettings_statistics">
- <h3><?php echo elgg_echo('usersettings:statistics:label:numentities'); ?></h3>
- <table>
- <?php
- foreach ($entity_stats as $k => $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 {
- $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;
- }
- }
- ?>
- </table>
-</div>
-<?php } ?> \ No newline at end of file
diff --git a/views/default/usersettings/statistics_opt/online.php b/views/default/usersettings/statistics_opt/online.php
deleted file mode 100644
index 4e150fa81..000000000
--- a/views/default/usersettings/statistics_opt/online.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
- /**
- * Elgg statistics screen showing online users.
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $user = $_SESSION['user'];
-
- $logged_in = 0;
- $log = get_system_log($_SESSION['user']->guid, "login", "ElggUser", 1);
- if ($log)
- $logged_in=$log[0]->time_created;
-
-?>
-<div class="usersettings_statistics">
- <h3><?php echo elgg_echo('usersettings:statistics:yourdetails'); ?></h3>
-
- <table>
- <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> \ No newline at end of file
diff --git a/views/default/usersettings/user.php b/views/default/usersettings/user.php
deleted file mode 100644
index 15c5adc7f..000000000
--- a/views/default/usersettings/user.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-?> \ No newline at end of file
diff --git a/views/default/welcome.php b/views/default/welcome.php
deleted file mode 100644
index 0f234b523..000000000
--- a/views/default/welcome.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
- /**
- * Elgg sample welcome page
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- if (isloggedin()) {
- echo elgg_view("welcome/logged_in");
- } else {
- echo elgg_view("welcome/logged_out");
- }
-
-?> \ No newline at end of file
diff --git a/views/default/welcome/logged_in.php b/views/default/welcome/logged_in.php
deleted file mode 100644
index 97428a1a7..000000000
--- a/views/default/welcome/logged_in.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
- /**
- * Elgg sample welcome page (logged in)
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?>
-
- <?php
-
- //add various views to area1
- $area1 = "<h2>" . sprintf(elgg_echo("welcome"),$vars['user']->name) . "</h2>";
- $area1 .= "<p>" . elgg_echo("welcome_message") . "</p><br />";
- $url = $vars['url'] . "action/logout";
- $area1 .= "<a href=" . $url . ">" . elgg_echo('logout') . "</a>";
-
- //send area one to the appropriate canvas layout
- $body = elgg_view_layout("one_column", $area1);
-
- //draw to screen
- echo $body;
- ?> \ No newline at end of file
diff --git a/views/default/welcome/logged_out.php b/views/default/welcome/logged_out.php
deleted file mode 100644
index 3015a9d2e..000000000
--- a/views/default/welcome/logged_out.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
- /**
- * Elgg sample welcome page (logged out)
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
-?>
-
- <?php
-
- //add various views to area1
- $area1 = "<p>" . elgg_echo("welcome_message") . "</p>";
- $area1 .= elgg_view("account/forms/login");
-
- //draw to screen
- echo $body;
- ?> \ No newline at end of file
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
new file mode 100644
index 000000000..56772047d
--- /dev/null
+++ b/views/default/widgets/content_stats/content.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Content stats widget
+ */
+
+$max = $vars['entity']->num_display;
+
+$entity_stats = get_entity_statistics();
+$object_stats = $entity_stats['object'];
+arsort($object_stats);
+$object_stats = array_slice($object_stats, 0, $max);
+
+echo '<table class="elgg-table-alt">';
+echo '<tr><th>' . elgg_echo('widget:content_stats:type') . '</th>';
+echo '<th>' . elgg_echo('widget:content_stats:number') . '</th></tr>';
+foreach ($object_stats as $subtype => $num) {
+ $name = elgg_echo("item:object:$subtype");
+ echo "<tr><td>$name</td><td>$num</td></tr>";
+}
+echo '</table>';
+
+echo '<div class="mtm">';
+echo elgg_view('output/url', array(
+ 'href' => 'admin/statistics/overview',
+ 'text' => elgg_echo('more'),
+ 'is_trusted' => true,
+));
+echo '</div>';
diff --git a/views/default/widgets/content_stats/edit.php b/views/default/widgets/content_stats/edit.php
new file mode 100644
index 000000000..f1a050df8
--- /dev/null
+++ b/views/default/widgets/content_stats/edit.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Content statistics widget edit view
+ */
+
+
+// set default value
+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),
+);
+$dropdown = elgg_view('input/dropdown', $params);
+
+?>
+<p>
+ <?php echo elgg_echo('widget:numbertodisplay'); ?>:
+ <?php echo $dropdown; ?>
+</p>
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/editwrapper.php b/views/default/widgets/editwrapper.php
deleted file mode 100644
index bde4da474..000000000
--- a/views/default/widgets/editwrapper.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
- /**
- * Elgg edit widget layout
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- $guid = $vars['entity']->getGUID();
-
-
- $form_body = $vars['body'];
- $form_body .= "<p><label>" . elgg_echo('access') . ": " . elgg_view('input/access', array('internalname' => 'params[access_id]','value' => $vars['entity']->access_id)) . "</label></p>";
- $form_body .= "<p>" . elgg_view('input/hidden', array('internalname' => 'guid', 'value' => $guid)) . elgg_view('input/hidden', array('internalname' => 'noforward', 'value' => 'true')) . elgg_view('input/submit', array('internalname' => "submit$guid", 'value' => elgg_echo('save'))) . "</p>";
-
- echo elgg_view('input/form', array('internalid' => "widgetform$guid", 'body' => $form_body, 'action' => "{$vars['url']}action/widgets/save"))
-?>
-
-
-<script type="text/javascript">
-$(document).ready(function() {
-
- $("#widgetform<?php echo $guid; ?>").submit(function () {
-
- $("#submit<?php echo $guid; ?>").attr("disabled","disabled");
- $("#submit<?php echo $guid; ?>").attr("value","<?php echo elgg_echo("saving"); ?>");
- $("#widgetcontent<?php echo $guid; ?>").html('<?php echo elgg_view('ajax/loader',array('slashes' => true)); ?>');
- $("#widget<?php echo $guid; ?> .toggle_box_edit_panel").click();
-
- var variables = $("#widgetform<?php echo $guid; ?>").serialize();
- $.post($("#widgetform<?php echo $guid; ?>").attr("action"),variables,function() {
- $("#submit<?php echo $guid; ?>").attr("disabled","");
- $("#submit<?php echo $guid; ?>").attr("value","<?php echo elgg_echo("save"); ?>");
- $("#widgetcontent<?php echo $guid; ?>").load("<?php echo $vars['url']; ?>pg/view/<?php echo $guid; ?>?shell=no&username=<?php echo page_owner_entity()->username; ?>&context=<?php echo get_context(); ?>&callback=true");
- });
- return false;
-
- });
-
-});
-</script> \ No newline at end of file
diff --git a/views/default/widgets/friends/content.php b/views/default/widgets/friends/content.php
new file mode 100644
index 000000000..98814c244
--- /dev/null
+++ b/views/default/widgets/friends/content.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Friend widget display view
+ *
+ */
+
+// owner of the widget
+$owner = $vars['entity']->getOwnerEntity();
+
+// the number of friends to display
+$num = (int) $vars['entity']->num_display;
+
+// get the correct size
+$size = $vars['entity']->icon_size;
+
+if (elgg_instanceof($owner, 'user')) {
+ $html = $owner->listFriends('', $num, array(
+ 'size' => $size,
+ 'list_type' => 'gallery',
+ 'pagination' => false
+ ));
+ if ($html) {
+ echo $html;
+ }
+}
diff --git a/views/default/widgets/friends/edit.php b/views/default/widgets/friends/edit.php
new file mode 100644
index 000000000..c7e6b06ff
--- /dev/null
+++ b/views/default/widgets/friends/edit.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Friend widget options
+ *
+ */
+
+// set default value for display number
+if (!isset($vars['entity']->num_display)) {
+ $vars['entity']->num_display = 12;
+}
+
+$params = array(
+ 'name' => 'params[num_display]',
+ 'value' => $vars['entity']->num_display,
+ 'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30, 50, 100),
+);
+$display_dropdown = elgg_view('input/dropdown', $params);
+
+
+// handle upgrade to 1.7.2 from previous versions
+if ($vars['entity']->icon_size == 1) {
+ $vars['entity']->icon_size = 'small';
+} elseif ($vars['entity']->icon_size == 2) {
+ $vars['entity']->icon_size = 'tiny';
+}
+
+// set default value for icon size
+if (!isset($vars['entity']->icon_size)) {
+ $vars['entity']->icon_size = 'small';
+}
+
+$params = array(
+ 'name' => 'params[icon_size]',
+ 'value' => $vars['entity']->icon_size,
+ 'options_values' => array(
+ 'small' => elgg_echo('friends:small'),
+ 'tiny' => elgg_echo('friends:tiny'),
+ ),
+);
+$size_dropdown = elgg_view('input/dropdown', $params);
+
+
+?>
+<p>
+ <?php echo elgg_echo('friends:num_display'); ?>:
+ <?php echo $display_dropdown; ?>
+</p>
+
+<p>
+ <?php echo elgg_echo('friends:icon_size'); ?>:
+ <?php echo $size_dropdown; ?>
+</p>
diff --git a/views/default/widgets/new_users/content.php b/views/default/widgets/new_users/content.php
new file mode 100644
index 000000000..ba85e7421
--- /dev/null
+++ b/views/default/widgets/new_users/content.php
@@ -0,0 +1,11 @@
+<?php
+/**
+ * New users admin widget
+ */
+
+echo elgg_list_entities(array(
+ 'type' => 'user',
+ 'subtype'=> null,
+ 'full_view' => false,
+ 'pagination' => false,
+)); \ No newline at end of file
diff --git a/views/default/widgets/new_users/edit.php b/views/default/widgets/new_users/edit.php
new file mode 100644
index 000000000..ed07213cb
--- /dev/null
+++ b/views/default/widgets/new_users/edit.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * New users widget edit view
+ */
+
+
+// set default value
+if (!isset($vars['entity']->num_display)) {
+ $vars['entity']->num_display = 5;
+}
+
+$params = array(
+ 'name' => 'params[num_display]',
+ 'value' => $vars['entity']->num_display,
+ 'options' => array(5, 8, 10, 12, 15, 20),
+);
+$dropdown = elgg_view('input/dropdown', $params);
+
+?>
+<p>
+ <?php echo elgg_echo('widget:numbertodisplay'); ?>:
+ <?php echo $dropdown; ?>
+</p>
diff --git a/views/default/widgets/online_users/content.php b/views/default/widgets/online_users/content.php
new file mode 100644
index 000000000..6e0cc7abb
--- /dev/null
+++ b/views/default/widgets/online_users/content.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Online users widget
+ */
+
+$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/online_users/edit.php b/views/default/widgets/online_users/edit.php
new file mode 100644
index 000000000..66f03a745
--- /dev/null
+++ b/views/default/widgets/online_users/edit.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Online users widget edit view
+ */
+
+// set default value
+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),
+);
+$dropdown = elgg_view('input/dropdown', $params);
+
+?>
+<p>
+ <?php echo elgg_echo('widget:numbertodisplay'); ?>:
+ <?php echo $dropdown; ?>
+</p>
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/default/widgets/wrapper.php b/views/default/widgets/wrapper.php
deleted file mode 100644
index 7eda06ff2..000000000
--- a/views/default/widgets/wrapper.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-
- /**
- * Elgg widget wrapper
- *
- * @package Elgg
- * @subpackage Core
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008
- * @link http://elgg.org/
- */
-
- static $widgettypes;
-
- $callback = get_input('callback');
-
- if (!isset($widgettypes)) $widgettypes = get_widget_types();
-
- if ($vars['entity'] instanceof ElggObject && $vars['entity']->getSubtype() == 'widget') {
- $handler = $vars['entity']->handler;
- $title = $widgettypes[$vars['entity']->handler]->name;
- } else {
- $handler = "error";
- $title = elgg_echo("error");
- }
-
- if ($callback != "true") {
-
-?>
-
- <div id="widget<?php echo $vars['entity']->getGUID(); ?>">
- <div class="collapsable_box">
- <div class="collapsable_box_header">
- <a href="javascript:void(0);" class="toggle_box_contents">-</a><?php if ($vars['entity']->canEdit()) { ?><a href="javascript:void(0);" class="toggle_box_edit_panel"><?php echo elgg_echo('edit'); ?></a><?php } ?>
- <h1><?php echo $title; ?></h1>
- </div>
- <?php
-
- if ($vars['entity']->canEdit()) {
-
- ?>
- <div class="collapsable_box_editpanel"><?php
-
- echo elgg_view('widgets/editwrapper',
- array(
- 'body' => elgg_view("widgets/{$handler}/edit",$vars),
- 'entity' => $vars['entity']
- )
- );
-
- ?></div><!-- /collapsable_box_editpanel -->
- <?php
-
- }
-
- ?>
- <div class="collapsable_box_content">
- <?php
-
- echo "<div id=\"widgetcontent{$vars['entity']->getGUID()}\">";
-
-
- } else { // end if callback != "true"
-
- echo elgg_view("widgets/{$handler}/view",$vars);
-
-?>
-
-<script language="javascript">
- $(document).ready(function(){
- setup_avatar_menu();
- });
-
-</script>
-
-
-<?php
-
- }
-
- if ($callback != "true") {
- echo elgg_view('ajax/loader');
- echo "</div>";
-
- ?>
- </div><!-- /.collapsable_box_content -->
- </div><!-- /.collapsable_box -->
- </div>
-
-<script type="text/javascript">
-$(document).ready(function() {
-
- $("#widgetcontent<?php echo $vars['entity']->getGUID(); ?>").load("<?php echo $vars['url']; ?>pg/view/<?php echo $vars['entity']->getGUID(); ?>?shell=no&username=<?php echo page_owner_entity()->username; ?>&context=widget&callback=true");
-
- // run function to check for widgets collapsed/expanded state
- var forWidget = "widget<?php echo $vars['entity']->getGUID(); ?>";
- widget_state(forWidget);
-
-
-});
-</script>
-
-<?php
-
- }
-
-?> \ No newline at end of file