aboutsummaryrefslogtreecommitdiff
path: root/views/default
diff options
context:
space:
mode:
Diffstat (limited to 'views/default')
-rw-r--r--views/default/account/forms/forgotten_password.php24
-rw-r--r--views/default/account/forms/login.php37
-rw-r--r--views/default/account/forms/login_dropdown.php162
-rw-r--r--views/default/account/forms/login_walled_garden.php109
-rw-r--r--views/default/account/forms/register.php46
-rw-r--r--views/default/account/forms/useradd.php31
-rw-r--r--views/default/admin/appearance/default_widgets.php82
-rw-r--r--views/default/admin/appearance/menu_items.php79
-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/components/plugin.php153
-rw-r--r--views/default/admin/components/plugin_settings.php19
-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/overview.php80
-rw-r--r--views/default/admin/overview/numentities.php7
-rw-r--r--views/default/admin/overview/online.php22
-rw-r--r--views/default/admin/plugin_settings.php26
-rw-r--r--views/default/admin/plugins.php197
-rw-r--r--views/default/admin/plugins/advanced.php104
-rw-r--r--views/default/admin/plugins/simple.php94
-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/advanced.php67
-rw-r--r--views/default/admin/site/basic.php29
-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/users/add.php6
-rw-r--r--views/default/admin/users/admins.php12
-rw-r--r--views/default/admin/users/newest.php21
-rw-r--r--views/default/admin/users/online.php19
-rw-r--r--views/default/ajax/loader.php22
-rw-r--r--views/default/annotation/annotate.php31
-rw-r--r--views/default/annotation/annotatelike.php11
-rw-r--r--views/default/annotation/default.php40
-rw-r--r--views/default/annotation/generic_comment.php108
-rw-r--r--views/default/annotation/latest_comments.php36
-rw-r--r--views/default/annotation/likes.php40
-rw-r--r--views/default/canvas/default.php12
-rw-r--r--views/default/canvas/layouts/administration.php898
-rw-r--r--views/default/canvas/layouts/one_column.php13
-rw-r--r--views/default/canvas/layouts/one_column_with_sidebar.php23
-rw-r--r--views/default/canvas/layouts/widgets.php339
-rw-r--r--views/default/comments/forms/edit.php20
-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.php (renamed from views/default/friends/collections.php)19
-rw-r--r--views/default/core/friends/collectiontabs.php62
-rw-r--r--views/default/core/friends/tablelist.php (renamed from views/default/friends/tablelist.php)8
-rw-r--r--views/default/core/friends/tablelistcountupdate.php (renamed from views/default/friends/tablelistcountupdate.php)2
-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.php1564
-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/css_ie.php67
-rw-r--r--views/default/css_ie6.php16
-rw-r--r--views/default/dashboard/blurb.php22
-rw-r--r--views/default/entities/entity_list.php63
-rw-r--r--views/default/entities/entity_listing.php19
-rw-r--r--views/default/entities/gallery.php42
-rw-r--r--views/default/entities/gallery_listing.php21
-rw-r--r--views/default/errors/404.php8
-rw-r--r--views/default/errors/default.php8
-rw-r--r--views/default/export/entity.php25
-rw-r--r--views/default/export/metadata.php2
-rw-r--r--views/default/export/relationship.php2
-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.php54
-rw-r--r--views/default/friends/collectiontabs.php57
-rw-r--r--views/default/friends/forms/collectionfields.php15
-rw-r--r--views/default/friends/forms/edit.php53
-rw-r--r--views/default/friends/list.php16
-rw-r--r--views/default/friends/river/create.php20
-rw-r--r--views/default/graphics/ajax_loader.php32
-rw-r--r--views/default/graphics/icon.php44
-rw-r--r--views/default/group/default.php1
-rw-r--r--views/default/group/elements/summary.php13
-rw-r--r--views/default/group/search/finishblurb.php2
-rw-r--r--views/default/group/search/startblurb.php2
-rw-r--r--views/default/icon/default.php80
-rw-r--r--views/default/icon/user/default.php103
-rw-r--r--views/default/input/access.php65
-rw-r--r--views/default/input/autocomplete.php109
-rw-r--r--views/default/input/button.php60
-rw-r--r--views/default/input/calendar.php4
-rw-r--r--views/default/input/captcha.php2
-rw-r--r--views/default/input/checkbox.php39
-rw-r--r--views/default/input/checkboxes.php135
-rw-r--r--views/default/input/date.php56
-rw-r--r--views/default/input/datepicker.php40
-rw-r--r--views/default/input/dropdown.php71
-rw-r--r--views/default/input/email.php24
-rw-r--r--views/default/input/file.php24
-rw-r--r--views/default/input/form.php68
-rw-r--r--views/default/input/friendspicker.php (renamed from views/default/friends/picker.php)105
-rw-r--r--views/default/input/hidden.php11
-rw-r--r--views/default/input/location.php27
-rw-r--r--views/default/input/longtext.php44
-rw-r--r--views/default/input/password.php21
-rw-r--r--views/default/input/plaintext.php33
-rw-r--r--views/default/input/pulldown.php55
-rw-r--r--views/default/input/radio.php89
-rw-r--r--views/default/input/reset.php16
-rw-r--r--views/default/input/securitytoken.php4
-rw-r--r--views/default/input/submit.php15
-rw-r--r--views/default/input/tag.php25
-rw-r--r--views/default/input/tags.php63
-rw-r--r--views/default/input/text.php30
-rw-r--r--views/default/input/url.php23
-rw-r--r--views/default/input/userpicker.php178
-rw-r--r--views/default/js/admin.php126
-rw-r--r--views/default/js/elgg.php77
-rw-r--r--views/default/js/friendsPickerv1.php93
-rw-r--r--views/default/js/initialise_elgg.php308
-rw-r--r--views/default/js/initialize_elgg.php52
-rw-r--r--views/default/js/languages.php42
-rw-r--r--views/default/js/languages/en.php2
-rw-r--r--views/default/js/lightbox.php36
-rw-r--r--views/default/js/upload_js.php57
-rw-r--r--views/default/js/walled_garden.php67
-rw-r--r--views/default/likes/forms/display.php23
-rw-r--r--views/default/likes/forms/edit.php45
-rw-r--r--views/default/likes/forms/link.php17
-rw-r--r--views/default/messages/errors/error.php15
-rw-r--r--views/default/messages/errors/list.php24
-rw-r--r--views/default/messages/exceptions/exception.php37
-rw-r--r--views/default/messages/list.php16
-rw-r--r--views/default/messages/messages/list.php25
-rw-r--r--views/default/messages/messages/message.php15
-rw-r--r--views/default/navigation/breadcrumbs.php48
-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.php182
-rw-r--r--views/default/navigation/sidebar_menu.php13
-rw-r--r--views/default/navigation/site_nav.php85
-rw-r--r--views/default/navigation/submenu_group.php40
-rw-r--r--views/default/navigation/submenu_item.php46
-rw-r--r--views/default/navigation/submenu_js.php29
-rw-r--r--views/default/navigation/tabs.php100
-rw-r--r--views/default/navigation/topbar_tools.php3
-rw-r--r--views/default/navigation/viewtype.php23
-rw-r--r--views/default/notifications/settings/usersettings.php51
-rw-r--r--views/default/object/admin_notice.php11
-rw-r--r--views/default/object/default.php93
-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.php16
-rw-r--r--views/default/object/plugin.php25
-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.php74
-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.php29
-rw-r--r--views/default/output/calendar.php8
-rw-r--r--views/default/output/confirmlink.php46
-rw-r--r--views/default/output/date.php12
-rw-r--r--views/default/output/dropdown.php13
-rw-r--r--views/default/output/email.php4
-rw-r--r--views/default/output/friendlytime.php2
-rw-r--r--views/default/output/img.php12
-rw-r--r--views/default/output/location.php19
-rw-r--r--views/default/output/longtext.php23
-rw-r--r--views/default/output/pulldown.php3
-rw-r--r--views/default/output/radio.php2
-rw-r--r--views/default/output/rss_view.php7
-rw-r--r--views/default/output/tag.php35
-rw-r--r--views/default/output/tagcloud.php47
-rw-r--r--views/default/output/tags.php72
-rw-r--r--views/default/output/text.php5
-rw-r--r--views/default/output/url.php75
-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/content_header.php94
-rw-r--r--views/default/page_elements/content_header_member.php24
-rw-r--r--views/default/page_elements/elgg_content.php9
-rw-r--r--views/default/page_elements/elgg_footer.php21
-rw-r--r--views/default/page_elements/elgg_header.php24
-rw-r--r--views/default/page_elements/elgg_header_logo.php10
-rw-r--r--views/default/page_elements/elgg_sidebar.php19
-rw-r--r--views/default/page_elements/elgg_topbar.php44
-rw-r--r--views/default/page_elements/elgg_topbar_logout.php14
-rw-r--r--views/default/page_elements/html_begin.php88
-rw-r--r--views/default/page_elements/html_begin_admin.php39
-rw-r--r--views/default/page_elements/html_end.php11
-rw-r--r--views/default/page_elements/owner_block.php77
-rw-r--r--views/default/page_elements/title.php22
-rw-r--r--views/default/page_shells/admin.php29
-rw-r--r--views/default/page_shells/default.php34
-rw-r--r--views/default/page_shells/walled_garden.php280
-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/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/item/list.php52
-rw-r--r--views/default/river/item/wrapper.php61
-rw-r--r--views/default/river/relationship/friend/create.php14
-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/scripts/initialize_elgg.php45
-rw-r--r--views/default/settings/system.php58
-rw-r--r--views/default/settings/upgrading.php22
-rw-r--r--views/default/spotlight/default.php33
-rw-r--r--views/default/upload/upload_form_content.php123
-rw-r--r--views/default/user/default.php54
-rw-r--r--views/default/user/elements/summary.php13
-rw-r--r--views/default/user/search/finishblurb.php2
-rw-r--r--views/default/user/search/startblurb.php4
-rw-r--r--views/default/user/settings/default_access.php29
-rw-r--r--views/default/user/settings/email.php25
-rw-r--r--views/default/user/settings/language.php32
-rw-r--r--views/default/user/settings/name.php15
-rw-r--r--views/default/user/settings/password.php26
-rw-r--r--views/default/usersettings/form.php10
-rw-r--r--views/default/usersettings/main.php11
-rw-r--r--views/default/usersettings/main_opt/plugins.php15
-rw-r--r--views/default/usersettings/main_opt/statistics.php13
-rw-r--r--views/default/usersettings/main_opt/user.php13
-rw-r--r--views/default/usersettings/plugins.php25
-rw-r--r--views/default/usersettings/plugins_opt/plugin.php34
-rw-r--r--views/default/usersettings/statistics.php9
-rw-r--r--views/default/usersettings/statistics_opt/numentities.php47
-rw-r--r--views/default/usersettings/statistics_opt/online.php28
-rw-r--r--views/default/usersettings/user.php6
-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.php38
-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.php102
355 files changed, 12256 insertions, 8506 deletions
diff --git a/views/default/account/forms/forgotten_password.php b/views/default/account/forms/forgotten_password.php
deleted file mode 100644
index 0d88cf8f7..000000000
--- a/views/default/account/forms/forgotten_password.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * Elgg forgotten password.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$form_body = "<p>" . elgg_echo('user:password:text') . "</p>";
-$form_body .= "<p><label>". elgg_echo('username') . " "
- . elgg_view('input/text', array('internalname' => 'username')) . "</label></p>";
-$form_body .= elgg_view('input/captcha');
-$form_body .= "<p>" . elgg_view('input/submit', array('value' => elgg_echo('request'))) . "</p>";
-
-echo elgg_view('input/form', array(
- 'action' => elgg_get_site_url()."action/user/requestnewpassword",
- 'body' => $form_body,
- 'class' => "margin_top"
-));
-?>
-
-<script type="text/javascript">
- $(document).ready(function() { $('input[name=username]').focus(); });
-</script> \ 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 ceaaf66d0..000000000
--- a/views/default/account/forms/login.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Elgg login form
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$form_body = "<label>" . elgg_echo('loginusername') . "<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/hidden', array('internalname' => 'returntoreferer', 'value' => 'true'));
-$form_body .= elgg_view('input/submit', array('value' => elgg_echo('login')));
-$form_body .= "<div class='persistent_login'><label><input type='checkbox' name='persistent' value='true' />".elgg_echo('user:persistent')."</label></div>";
-
-$form_body .= elgg_view('login/extend');
-
-$form_body .= "<p class='loginbox'>";
-$form_body .= $CONFIG->allow_registration ? "<a href=\"".elgg_get_site_url()."pg/register/\">" . elgg_echo('register') . '</a> | ' : '';
-$form_body .= "<a href=\"".elgg_get_site_url()."pages/account/forgotten_password.php\">" . elgg_echo('user:password:lost') . "</a></p>";
-
-$login_url = elgg_get_site_url();
-if ((isset($CONFIG->https_login)) && ($CONFIG->https_login)) {
- $login_url = str_replace("http", "https", elgg_get_site_url());
-}
-?>
-
-<div id="login">
-<h2><?php echo elgg_echo('login'); ?></h2>
- <?php
- echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$login_url}action/login"));
- ?>
-</div>
-<script type="text/javascript">
- $(document).ready(function() { $('input[name=username]').focus(); });
-</script> \ No newline at end of file
diff --git a/views/default/account/forms/login_dropdown.php b/views/default/account/forms/login_dropdown.php
deleted file mode 100644
index 978507914..000000000
--- a/views/default/account/forms/login_dropdown.php
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/**
-* Elgg drop-down login form
-*
-*/
-
-if (!isloggedin()) {
- $form_body = "<p class='loginbox'><label>" . elgg_echo('loginusername') . "</label>" . elgg_view('input/text', array('internalname' => 'username', 'class' => 'login_textarea name'));
- $form_body .= "<label>" . elgg_echo('password') . "</label>" . elgg_view('input/password', array('internalname' => 'password', 'class' => 'login_textarea'));
- $form_body .= elgg_view('input/submit', array('value' => elgg_echo('login'))) . " <span class='remember'><label><input type=\"checkbox\" name=\"persistent\" value=\"true\" />".elgg_echo('user:persistent')."</label></span></p>";
-
- $form_body .= elgg_view('login/extend');
-
- $form_body .= "<p class='loginbox'>";
- $form_body .= $CONFIG->allow_registration ? "<a href=\"".elgg_get_site_url()."pg/register/\">" . elgg_echo('register') . '</a> | ' : '';
- $form_body .= "<a href=\"".elgg_get_site_url()."pages/account/forgotten_password.php\">" . elgg_echo('user:password:lost') . "</a></p>";
- $form_body .= "<input type='hidden' name='returntoreferer' value='true' />";
-
- $login_url = elgg_get_site_url();
- if ((isset($CONFIG->https_login)) && ($CONFIG->https_login)) {
- $login_url = str_replace("http", "https", elgg_get_site_url());
- }
-?>
-
- <div id="login_dropdown">
- <div id="signin_button" class="signin_button">
- <a href="<?php echo $CONFIG->url; ?>pg/login" class="signin"><span><?php echo elgg_echo('login') ?></span></a>
- </div>
- <fieldset id="signin_menu">
-<?php
- echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$login_url}action/login"));
-?>
- </fieldset>
- </div>
-
-<?php
-}
-?>
-
-<script type="text/javascript">
-$(document).ready(function() {
-
- $(".signin").click(function(e) {
- e.preventDefault();
- $("fieldset#signin_menu").toggle();
- $(".signin").toggleClass("menu_open");
- $('.login_textarea.name').focus();
- });
-
- $("fieldset#signin_menu").mouseup(function() {
- return false
- });
-
- $(document).mouseup(function(e) {
- if($(e.target).parent("a.signin").length==0) {
- $(".signin").removeClass("menu_open");
- $("fieldset#signin_menu").hide();
- }
- });
-
-});
-</script>
-
-<style type="text/css">
-/* DROPDOWN LOGIN BOX */
-#login_dropdown {
- float:right;
- position: absolute;
- top:10px;
- right:0;
- z-index: 9599;
-}
-#login_dropdown #signin_button {
- padding:10px 0px 12px;
- line-height:23px;
- text-align:right;
-}
-#login_dropdown #signin_button a.signin {
- padding:2px 6px 3px 6px;
- text-decoration:none;
- 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;
-}
-#login_dropdown #signin_button a.signin span {
- padding:4px 0 6px 12px;
- background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png);
- background-position:-150px -51px;
- background-repeat:no-repeat;
-}
-#login_dropdown #signin_button a.signin:hover {
- background-color:#71B9F7;
- /* color:black; */
-}
-#login_dropdown #signin_button a.signin:hover span {
- /* background-position:-150px -71px; */
-}
-#login_dropdown #signin_button a.signin.menu_open {
- background:#cccccc !important;
- color:#666666 !important;
- border:1px solid #cccccc;
- outline:none;
-}
-#login_dropdown #signin_button a.signin.menu_open span {
- background-position:-150px -71px;
- color:#333333;
-}
-#login_dropdown #signin_menu {
- -moz-border-radius-topleft:5px;
- -moz-border-radius-bottomleft:5px;
- -moz-border-radius-bottomright:5px;
- -webkit-border-top-left-radius:5px;
- -webkit-border-bottom-left-radius:5px;
- -webkit-border-bottom-right-radius:5px;
- display:none;
- background-color:white;
- position:absolute;
- width:210px;
- z-index:100;
- border:5px solid #CCCCCC;
- text-align:left;
- padding:12px;
- top: 26px;
- right: 0px;
- margin-top:5px;
- margin-right: 0px;
- color:#333333;
- -webkit-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45);
- -moz-box-shadow: 0 3px 3px rgba(0, 0, 0, 0.45);
-}
-#login_dropdown #signin_menu input[type=text],
-#login_dropdown #signin_menu input[type=password] {
- width:203px;
- margin:0 0 5px;
-}
-#login_dropdown #signin_menu p {
- margin:0;
-}
-#login_dropdown #signin_menu label {
- font-weight:normal;
- font-size: 100%;
-}
-#login_dropdown #signin_menu .submit_button {
- margin-right:15px;
-}
-
-/* ie7 fixes */
-*:first-child+html #login_dropdown #signin_button {
- line-height:10px;
-}
-*:first-child+html #login_dropdown #signin_button a.signin span {
- background-position:-150px -54px;
-}
-*:first-child+html #login_dropdown #signin_button a.signin.menu_open span {
- background-position:-150px -74px;
-}
-</style> \ No newline at end of file
diff --git a/views/default/account/forms/login_walled_garden.php b/views/default/account/forms/login_walled_garden.php
deleted file mode 100644
index 8b5d593bb..000000000
--- a/views/default/account/forms/login_walled_garden.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-/**
-* Walled Garden Login Form
-*/
-
-global $CONFIG;
-
-$form_body = "<label>" . elgg_echo('username') . "<br />" . elgg_view('input/text', array('internalname' => 'username', 'class' => 'login_textarea username')) . "</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/hidden', array('internalname' => 'returntoreferer', 'value' => 'true'));
-$form_body .= elgg_view('input/submit', array('value' => elgg_echo('login')));
-$form_body .= "<div class='remember_me'><label><input type='checkbox' name='persistent' checked value='true' />".elgg_echo('user:persistent')."</label></div>";
-
-$register = elgg_echo('register');
-$lost_password = elgg_echo('user:password:lost');
-$form_body .= '<p class="lost_password">';
-$form_body .= $CONFIG->allow_registration ? "<a class=\"registration_link\" href=\"".elgg_get_site_url()."pg/register/\">$register</a> | " : '';
-$form_body .= "<a class='forgotten_password_link' href=\"{$login_url}pages/account/forgotten_password.php\">$lost_password</a>";
-$form_body .= '</p>';
-
-$login_url = elgg_get_site_url();
-if ((isset($CONFIG->https_login)) && ($CONFIG->https_login)) {
- $login_url = str_replace("http", "https", elgg_get_site_url());
-}
-?>
-<h2><?php echo elgg_echo('login'); ?></h2>
-<?php
- echo elgg_view('input/form', array('body' => $form_body, 'action' => "{$login_url}action/login"));
- echo elgg_view('login/extend'); // view for plugins to extend
-?>
-
-<?php
-if ($CONFIG->allow_registration) {
- $title = elgg_echo('register');
- $body = elgg_view("account/forms/register", array(
- 'friend_guid' => (int) get_input('friend_guid', 0),
- 'invitecode' => get_input('invitecode'),
- ));
-
- echo <<<__HTML
-<div id="registration_form" class="hidden clearfloat">
-<div id="hiddenform_body" class="clearfloat">
- <h2>$title</h2>
- $body
-</div><div id="hiddenform_bottom"></div></div>
-__HTML;
-}
-?>
- <?php
- $lostpassword_form_body = "<p>" . elgg_echo('user:password:text') . "</p>";
- $lostpassword_form_body .= "<p class='margin_none'><label>". elgg_echo('username') . " "
- . elgg_view('input/text', array('internalname' => 'username', 'class' => 'login_textarea lostusername')) . "</label></p>";
- $lostpassword_form_body .= elgg_view('input/captcha');
- $lostpassword_form_body .= "<p>" . elgg_view('input/submit', array('value' => elgg_echo('request'))) . "<input class='action_button disabled cancel_request' type='reset' value='Cancel'></p>";
-
- ?>
-<div id="lostpassword_form" class="hidden clearfloat">
- <div id="hiddenform_body" class="clearfloat">
- <h2><?php echo elgg_echo('user:password:lost'); ?></h2>
- <?php
- echo elgg_view('input/form', array(
- 'action' => elgg_get_site_url()."action/user/requestnewpassword",
- 'body' => $lostpassword_form_body
- ));
- ?>
-</div><div id="hiddenform_bottom"></div></div>
-
-<script type="text/javascript">
-$(document).ready(function() {
- $('input.username').focus();
-
- // add cancel button to inline register form
- $('#registration_form').find('input.submit_button').after("<input class='action_button disabled cancel_request' type='reset' value='Cancel'>");
-
- function elgg_slide_hiddenform(activateLink, parentElement, toggleElement) {
- $(activateLink).closest(parentElement).find(toggleElement).animate({"width": "563px", duration: 400});
- $(activateLink).closest(parentElement).animate({"height": "256px", duration: 400}, function() {
- // ewwww dirty. Webkit has problems when showing images that were hidden.
- // forcing a reload of all the images.
- $('.visual_captcha img').each(function() { $(this).attr('src', $(this).attr('src')); });
- });
- return false;
- }
-
- $('a.registration_link').click(function(e) {
- e.preventDefault();
- elgg_slide_hiddenform(this, '.walledgardenlogin', '#registration_form');
- $('input.name').focus();
- });
-
- $('a.forgotten_password_link').click(function(e) {
- e.preventDefault();
- elgg_slide_hiddenform(this, '.walledgardenlogin', '#lostpassword_form');
- $('input.lostusername').focus();
- });
-
- $('input.cancel_request').click(function() {
- if ($('#lostpassword_form').is(':visible')) {
- $('#lostpassword_form').fadeOut(400);
- location.reload();
- } else if ($('#registration_form').is(':visible')) {
- $('#registration_form').fadeOut(400);
- location.reload();
- }
- return false;
- });
-});
-</script>
diff --git a/views/default/account/forms/register.php b/views/default/account/forms/register.php
deleted file mode 100644
index 9b777ba64..000000000
--- a/views/default/account/forms/register.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Elgg register form
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$username = get_input('u');
-$email = get_input('e');
-$name = get_input('n');
-
-$admin_option = false;
-$loggedin_user = get_loggedin_user();
-
-if ($loggedin_user && $loggedin_user->isAdmin() && isset($vars['show_admin'])) {
- $admin_option = true;
-}
-
-$form_body = "<p><label>" . elgg_echo('name') . "<br />" . elgg_view('input/text' , array('internalname' => 'name', 'class' => "input_text name", 'value' => $name)) . "</label></p>";
-$form_body .= "<p><label>" . elgg_echo('email') . "<br />" . elgg_view('input/text' , array('internalname' => 'email', 'class' => "input_text", 'value' => $email)) . "</label></p>";
-$form_body .= "<p><label>" . elgg_echo('username') . "<br />" . elgg_view('input/text' , array('internalname' => 'username', 'class' => "input_text", 'value' => $username)) . "</label></p>";
-$form_body .= "<p><label>" . elgg_echo('password') . "<br />" . elgg_view('input/password' , array('internalname' => 'password', 'class' => "input_password")) . "</label></p>";
-$form_body .= "<p><label>" . elgg_echo('passwordagain') . "<br />" . elgg_view('input/password' , array('internalname' => 'password2', 'class' => "input_password")) . "</label></p>";
-
-// view to extend to add more fields to the registration form
-$form_body .= elgg_view('register/extend');
-
-// Add captcha hook
-$form_body .= elgg_view('input/captcha');
-
-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>";
-
-echo elgg_view('input/form', array('action' => elgg_get_site_url()."action/register", 'body' => $form_body, 'class' => "margin_top"));
-?>
-
-<script type="text/javascript">
- $(document).ready(function() { $('input[name=name]').focus(); });
-</script>
diff --git a/views/default/account/forms/useradd.php b/views/default/account/forms/useradd.php
deleted file mode 100644
index bad1b11df..000000000
--- a/views/default/account/forms/useradd.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Elgg add user form.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$admin_option = false;
-if ((get_loggedin_user()->isAdmin()) && ($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('username') . "<br />" . elgg_view('input/text' , array('internalname' => 'username')) . "</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('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>";
-$form_body .= "<p>";
-
-if ($admin_option) {
- $form_body .= 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 class="admin_settings add_user">
- <h3><?php echo elgg_echo('adduser'); ?></h3>
- <?php echo elgg_view('input/form', array('action' => elgg_get_site_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
index e6a40c754..1d5c95cf9 100644
--- a/views/default/admin/appearance/menu_items.php
+++ b/views/default/admin/appearance/menu_items.php
@@ -6,82 +6,5 @@
* @subpackage Core
*/
-$menu_items = get_register('menu');
-$featured_urls = get_config('menu_items_featured_urls');
-// get an alphabetical sort of the items + urls
-foreach ($menu_items as $name => $info) {
- $menu_sorted[$info->name] = $info->value->url;
-}
-
-ksort($menu_sorted);
-
-$pulldown_values = array_flip($menu_sorted);
-$pulldown_values[''] = elgg_echo('none');
-
-echo elgg_view_title(elgg_echo('admin:menu_items'));
-echo "<div class='admin_settings menuitems'><h3>".elgg_echo('admin:menu_items:configure')."</h3>";
-echo "<p class='margin_top'>".strip_tags(elgg_view('output/longtext', array('value' => elgg_echo("admin:menu_items:description"))))."</p>";
-$form_body = '';
-
-// @todo Could probably make this number configurable
-for ($i=0; $i<6; $i++) {
- if (array_key_exists($i, $featured_urls)) {
- $current_value = $featured_urls[$i]->value->url;
- } else {
- $current_value = '';
- }
-
- $form_body .= elgg_view('input/pulldown', array(
- 'options_values' => $pulldown_values,
- 'internalname' => 'featured_urls[]',
- 'value' => $current_value
- ));
-}
-
-// add arbitrary links
-$form_body .= "<h3>".elgg_echo('admin:add_menu_item')."</h3>";
-$form_body .= elgg_view('output/longtext', array('value' => elgg_echo("admin:add_menu_item:description")));
-
-$custom_items = get_config('menu_items_custom_items');
-
-$name_str = elgg_echo('name');
-$url_str = elgg_echo('admin:plugins:label:website');
-
-$form_body .= '<ul class="custom_menuitems">';
-
-if (is_array($custom_items)) {
- foreach ($custom_items as $url => $name) {
- $name_input = elgg_view('input/text', array(
- 'internalname' => 'custom_item_names[]',
- 'value' => $name
- ));
-
- $url_input = elgg_view('input/text', array(
- 'internalname' => 'custom_item_urls[]',
- 'value' => $url
- ));
-
- $form_body .= "<li class='custom_menuitem'>$name_str: $name_input $url_str: $url_input $delete</li>";
- }
-}
-
-$new = elgg_echo('new');
-$name_input = elgg_view('input/text', array(
- 'internalname' => 'custom_item_names[]',
-));
-
-$url_input = elgg_view('input/text', array(
- 'internalname' => 'custom_item_urls[]',
-));
-
-$form_body .= "<li class='custom_menuitem'>$name_str: $name_input $url_str: $url_input</li>
-</ul>";
-
-$form_body .= elgg_view('input/submit', array('value' => elgg_echo('save')));
-
-echo elgg_view('input/form', array(
- 'body' => $form_body,
- 'action' => elgg_get_site_url()."action/admin/menu_items"
-));
-echo "</div>"; \ No newline at end of file
+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/components/plugin.php b/views/default/admin/components/plugin.php
deleted file mode 100644
index 013f0cd07..000000000
--- a/views/default/admin/components/plugin.php
+++ /dev/null
@@ -1,153 +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
- */
-
-$plugin = $vars['plugin'];
-$details = $vars['details'];
-
-$active = $details['active'];
-$manifest = $details['manifest'];
-
-$plugin_pretty_name = (isset($manifest['name'])) ? $manifest['name'] : $plugin;
-
-// Check elgg version if available
-$version_check_valid = false;
-if ($manifest['elgg_version']) {
- $version_check_valid = check_plugin_compatibility($manifest['elgg_version']);
-}
-
-$ts = time();
-$token = generate_action_token($ts);
-$active_class = ($active) ? 'active' : 'not_active';
-
-$top_url = $up_url = $down_url = $bottom_url = '';
-if ($vars['order'] > 10) {
- $top_url = elgg_get_site_url()."action/admin/plugins/reorder?plugin={$plugin}&order=1&__elgg_token=$token&__elgg_ts=$ts";
- $top_link = '<a href="' . elgg_format_url($top_url) . '">' . elgg_echo('top') . '</a>';
-
- $order = $vars['order'] - 11;
-
- $up_url = elgg_get_site_url()."action/admin/plugins/reorder?plugin={$plugin}&order=$order&__elgg_token=$token&__elgg_ts=$ts";
- $up_link = '<a href="' . elgg_format_url($up_url) . '">' . elgg_echo('up') . '</a>';
-}
-
-if ($vars['order'] < $vars['maxorder']) {
- $order = $vars['order'] + 11;
- $down_url = elgg_get_site_url()."action/admin/plugins/reorder?plugin={$plugin}&order=$order&__elgg_token=$token&__elgg_ts=$ts";
- $down_link = '<a href="' . elgg_format_url($down_url) . '">' . elgg_echo('down') . '</a>';
-
- $order = $vars['maxorder'] + 11;
- $bottom_url = elgg_get_site_url()."action/admin/plugins/reorder?plugin={$plugin}&order=$order&__elgg_token=$token&__elgg_ts=$ts";
- $bottom_link = '<a href="' . elgg_format_url($bottom_url) . '">' . elgg_echo('bottom') . '</a>';
-}
-
-if ($active) {
- $url = elgg_get_site_url()."action/admin/plugins/disable?plugin=$plugin&__elgg_token=$token&__elgg_ts=$ts";
- $enable_disable = '<a class="cancel_button" href="' . elgg_format_url($url) . '">' . elgg_echo('disable') . '</a>';
-} else {
- $url = elgg_get_site_url()."action/admin/plugins/enable?plugin=$plugin&__elgg_token=$token&__elgg_ts=$ts";
- $enable_disable = '<a class="submit_button" href="' . elgg_format_url($url) . '">' . elgg_echo('enable') . '</a>';
-}
-
-
-$categories_list = '';
-if ($manifest['category']) {
- $categories_arr = array();
- $base_url = elgg_get_site_url()."pg/admin/plugins?category=";
-
- foreach($manifest['category'] as $category) {
- $url = $base_url . urlencode($category);
- $categories_arr[] = "<a href=\"$url\">" . htmlspecialchars($category) . '</a>';
- }
-
- $categories_list = implode(', ', $categories_arr);
-}
-
-$screenshots = '';
-if ($manifest['screenshot']) {
- $base_url = elgg_get_site_url()."mod/";
-
- $limit = 4;
- foreach ($manifest['screenshot'] as $screenshot) {
- if ($limit <= 0) {
- break;
- }
-
- $screenshot_src = $base_url . $plugin . "/$screenshot";
- $screenshots .= "<li class=\"plugin_screenshot\"><a href=\"$screenshot_src\"><img src=\"$screenshot_src\"></a></li>";
-
- $limit--;
- }
-}
-
-?>
-
-<div class="plugin_details <?php echo $active_class ?>">
- <div class="admin_plugin_reorder">
- <?php echo "$top_link $up_link $down_link $bottom_link"; ?>
- </div><div class="clearfloat"></div>
-
- <div class="admin_plugin_enable_disable"><?php echo $enable_disable; ?></div>
-
- <?php
- if (elgg_view_exists("settings/{$plugin}/edit")) {
- $link = elgg_get_site_url()."pg/admin/plugin_settings/$plugin";
- $settings_link = "<a class='plugin_settings small link' href='$link'>[". elgg_echo('settings') ."]</a>";
- }
- ?>
- <h3><?php echo "$plugin_pretty_name $settings_link"; ?></h3>
- <?php
- echo $settings_panel;
-
- if ($manifest) {
- ?>
- <div class="plugin_description"><?php echo elgg_view('output/longtext',array('value' => $manifest['description'])); ?></div>
- <p class="plugin_author"><span><?php echo elgg_echo('admin:plugins:label:author') . "</span>: ". htmlspecialchars($manifest['author']) ?></p>
- <p class="plugin_version"><span><?php echo elgg_echo('admin:plugins:label:version') . "</span>: ". htmlspecialchars($manifest['version']) ?></p>
-
- <p><a class="manifest_details small link"><?php echo elgg_echo("admin:plugins:label:moreinfo"); ?></a></p>
-
- <div class="manifest_file hidden">
-
- <?php
- if ((!$version_check_valid) || (!isset($manifest['elgg_version']))) {
- ?>
- <div id="version_check">
- <?php
- if (!isset($manifest['elgg_version'])) {
- echo elgg_echo('admin:plugins:warning:elggversionunknown');
- } else {
- echo elgg_echo('admin:plugins:warning:elggtoolow');
- }
- ?>
- </div>
- <?php
- }
-
- ?>
- <div><?php echo elgg_echo('admin:plugins:label:directory') . ": ". htmlspecialchars($plugin) ?></div>
- <?php
- if ($categories_list) {
- ?>
- <div><?php echo elgg_echo('admin:plugins:label:categories') . ": ". $categories_list ?></div>
- <?php
- }
- if ($screenshots) {
- ?>
- <div><ul><?php echo $screenshots; ?></ul></div>
- <?php
- }
- ?>
- <div><?php echo elgg_echo('admin:plugins:label:copyright') . ": ". htmlspecialchars($manifest['copyright']) ?></div>
- <div><?php echo elgg_echo('admin:plugins:label:licence') . ": ". htmlspecialchars($manifest['licence'] . $manifest['license']) ?></div>
- <div><?php echo elgg_echo('admin:plugins:label:website') . ": "; ?><a href="<?php echo $manifest['website']; ?>"><?php echo $manifest['website']; ?></a></div>
- <?php } ?>
- </div>
-</div> \ No newline at end of file
diff --git a/views/default/admin/components/plugin_settings.php b/views/default/admin/components/plugin_settings.php
deleted file mode 100644
index 13e962634..000000000
--- a/views/default/admin/components/plugin_settings.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Elgg plugin settings
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$plugin = $vars['plugin'];
-$plugin_info = load_plugin_manifest($plugin);
-
-$form_body = elgg_view("settings/{$plugin}/edit", $vars);
-$form_body .= elgg_view('input/hidden', array('internalname' => 'plugin', 'value' => $plugin));
-$form_body .= "<div class='divider'></div>" . elgg_view('input/submit', array('value' => elgg_echo('save')));
-$form_body .= elgg_view('input/reset', array('value' => elgg_echo('reset'), 'class' => 'action_button disabled'));
-
-echo elgg_view_title($plugin_info['name']);
-
-echo elgg_view('input/form', array('body' => $form_body, 'internalid' => 'plugin_settings', 'action' => elgg_get_site_url()."action/plugins/settings/save")); \ 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/overview.php b/views/default/admin/overview.php
deleted file mode 100644
index 804f4cc5e..000000000
--- a/views/default/admin/overview.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-/**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- */
-
-// 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);
-
-echo elgg_view_title(elgg_echo('admin:overview'));
-?>
-<div class="admin_settings site_stats">
- <?php echo elgg_view('overview/extend'); ?>
- <h3><?php echo elgg_echo('admin:statistics:label:basic'); ?></h3>
- <table class="styled">
- <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>
-
-<?php
-
-
-// Get entity statistics
-$entity_stats = get_entity_statistics();
-$even_odd = "";
-?>
-<div class="admin_settings site_entities">
- <h3><?php echo elgg_echo('admin:statistics:label:numentities'); ?></h3>
- <table class="styled">
- <?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/overview/numentities.php b/views/default/admin/overview/numentities.php
deleted file mode 100644
index 6ecd388dd..000000000
--- a/views/default/admin/overview/numentities.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-/**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- */
diff --git a/views/default/admin/overview/online.php b/views/default/admin/overview/online.php
deleted file mode 100644
index 19e65a764..000000000
--- a/views/default/admin/overview/online.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- */
-
-// users online
-if( (is_plugin_enabled('search')) && (is_plugin_enabled('profile')) ) {
- get_context('search');
- $users_online = get_online_users();
- get_context('admin');
- ?>
-
- <div class="admin_settings members_list users_online">
- <h3><?php echo elgg_echo('admin:statistics:label:onlineusers'); ?></h3>
- <?php echo $users_online; ?>
- </div>
-<?php
-}
-?> \ 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
new file mode 100644
index 000000000..42f153d0f
--- /dev/null
+++ b/views/default/admin/plugins.php
@@ -0,0 +1,197 @@
+<?php
+/**
+ * Elgg administration plugin screen
+ *
+ * Shows a list of plugins that can be sorted and filtered.
+ *
+ * @package Elgg.Core
+ * @subpackage Admin.Plugins
+ */
+
+elgg_load_js('lightbox');
+elgg_load_css('lightbox');
+
+elgg_generate_plugin_entities();
+$installed_plugins = elgg_get_plugins('any');
+$show_category = get_input('category', 'all');
+$sort = get_input('sort', 'priority');
+
+// Get a list of the all categories
+// and trim down the plugin list if we're not viewing all categories.
+// @todo this could be cached somewhere after have the manifest loaded
+$categories = array();
+
+foreach ($installed_plugins as $id => $plugin) {
+ if (!$plugin->isValid()) {
+ if ($plugin->isActive()) {
+ // force disable and warn
+ elgg_add_admin_notice('invalid_and_deactivated_' . $plugin->getID(),
+ elgg_echo('ElggPlugin:InvalidAndDeactivated', array($plugin->getId())));
+ $plugin->deactivate();
+ }
+ continue;
+ }
+
+ $plugin_categories = $plugin->getManifest()->getCategories();
+
+ // handle plugins that don't declare categories
+ // unset them here because this is the list we foreach
+ switch ($show_category) {
+ case 'all':
+ break;
+ case 'active':
+ if (!$plugin->isActive()) {
+ unset($installed_plugins[$id]);
+ }
+ break;
+ case 'inactive':
+ if ($plugin->isActive()) {
+ unset($installed_plugins[$id]);
+ }
+ break;
+ case 'nonbundled':
+ if (in_array('bundled', $plugin_categories)) {
+ unset($installed_plugins[$id]);
+ }
+ break;
+ default:
+ if (!in_array($show_category, $plugin_categories)) {
+ unset($installed_plugins[$id]);
+ }
+ break;
+ }
+
+ if (isset($plugin_categories)) {
+ foreach ($plugin_categories as $category) {
+ if (!array_key_exists($category, $categories)) {
+ $categories[$category] = ElggPluginManifest::getFriendlyCategory($category);
+ }
+ }
+ }
+}
+
+$guids = array();
+foreach ($installed_plugins as $plugin) {
+ $guids[] = $plugin->getGUID();
+}
+
+// sort plugins
+switch ($sort) {
+ case 'date':
+ $plugin_list = array();
+ foreach ($installed_plugins as $plugin) {
+ $create_date = $plugin->getTimeCreated();
+ while (isset($plugin_list[$create_date])) {
+ $create_date++;
+ }
+ $plugin_list[$create_date] = $plugin;
+ }
+ krsort($plugin_list);
+ break;
+ case 'alpha':
+ $plugin_list = array();
+ foreach ($installed_plugins as $plugin) {
+ $plugin_list[$plugin->getFriendlyName()] = $plugin;
+ }
+ ksort($plugin_list);
+ break;
+ case 'priority':
+ default:
+ $plugin_list = $installed_plugins;
+ break;
+}
+
+
+
+asort($categories);
+
+// we want bundled/nonbundled pulled to be at the top of the list
+unset($categories['bundled']);
+unset($categories['nonbundled']);
+
+$common_categories = array(
+ 'all' => elgg_echo('admin:plugins:category:all'),
+ 'active' => elgg_echo('admin:plugins:category:active'),
+ 'inactive' => elgg_echo('admin:plugins:category:inactive'),
+ 'bundled' => elgg_echo('admin:plugins:category:bundled'),
+ 'nonbundled' => elgg_echo('admin:plugins:category:nonbundled'),
+);
+
+$categories = array_merge($common_categories, $categories);
+// security - only want a defined option
+if (!array_key_exists($show_category, $categories)) {
+ $show_category = reset($categories);
+}
+
+$category_form = elgg_view_form('admin/plugins/filter', array(
+ 'action' => 'admin/plugins',
+ 'method' => 'get',
+ 'disable_security' => true,
+), array(
+ 'category' => $show_category,
+ 'category_options' => $categories,
+ 'sort' => $sort,
+));
+
+
+$sort_options = array(
+ 'priority' => elgg_echo('admin:plugins:sort:priority'),
+ 'alpha' => elgg_echo('admin:plugins:sort:alpha'),
+ 'date' => elgg_echo('admin:plugins:sort:date'),
+);
+// security - only want a defined option
+if (!array_key_exists($sort, $sort_options)) {
+ $sort = reset($sort_options);
+}
+
+$sort_form = elgg_view_form('admin/plugins/sort', array(
+ 'action' => 'admin/plugins',
+ 'method' => 'get',
+ 'disable_security' => true,
+), array(
+ 'sort' => $sort,
+ 'sort_options' => $sort_options,
+ 'category' => $show_category,
+));
+
+$buttons = "<div class=\"clearfix mbm\">";
+$buttons .= elgg_view_form('admin/plugins/change_state', array(
+ 'action' => 'action/admin/plugins/activate_all',
+ 'class' => 'float',
+), array(
+ 'guids' => $guids,
+ 'action' => 'activate',
+));
+$buttons .= elgg_view_form('admin/plugins/change_state', array(
+ 'action' => 'action/admin/plugins/deactivate_all',
+ 'class' => 'float',
+), array(
+ 'guids' => $guids,
+ 'action' => 'deactivate',
+));
+$buttons .= "</div>";
+
+$buttons .= $category_form . $sort_form;
+
+// construct page header
+?>
+<div id="content_header" class="mbm clearfix">
+ <div class="content-header-options"><?php echo $buttons ?></div>
+</div>
+
+<div id="elgg-plugin-list">
+<?php
+
+$options = array(
+ 'limit' => 0,
+ 'full_view' => true,
+ 'list_type_toggle' => false,
+ 'pagination' => false,
+);
+if ($show_category == 'all' && $sort == 'priority') {
+ $options['display_reordering'] = true;
+}
+echo elgg_view_entity_list($plugin_list, $options);
+
+?>
+</div> \ No newline at end of file
diff --git a/views/default/admin/plugins/advanced.php b/views/default/admin/plugins/advanced.php
deleted file mode 100644
index 9aae4a05b..000000000
--- a/views/default/admin/plugins/advanced.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-/**
- * Elgg administration advanced plugin screen
- *
- * Shows a list of all plugins sorted by load order.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-regenerate_plugin_list();
-$installed_plugins = get_installed_plugins();
-$plugin_list = array();
-$show_category = get_input('category', NULL);
-
-// Get a list of the all categories
-// and trim down the plugin list if we're not viewing all categories.
-// @todo this could be cached somewhere after have the manifest loaded
-$categories = array();
-
-foreach ($installed_plugins as $id => $plugin) {
- $plugin_categories = $plugin['manifest']['category'];
-
- // handle plugins that don't declare categories
- if ((!$plugin_categories && $show_category) || ($show_category && !in_array($show_category, $plugin_categories))) {
- unset($installed_plugins[$id]);
- }
-
- foreach ($plugin_categories as $category) {
- if (!array_key_exists($category, $categories)) {
- $categories[$category] = elgg_echo("admin:plugins:label:moreinfo:categories:$category");
- }
- }
-}
-
-$ts = time();
-$token = generate_action_token($ts);
-$categories = array_merge(array('' => elgg_echo('admin:plugins:categories:all')), $categories);
-
-$category_pulldown = elgg_view('input/pulldown', array(
- 'internalname' => 'category',
- 'options_values' => $categories,
- 'value' => $show_category
-));
-
-$category_button = elgg_view('input/button', array(
- 'value' => elgg_echo('filter'),
- 'class' => 'action_button'
-));
-
-$category_form = elgg_view('input/form', array(
- 'body' => $category_pulldown . $category_button
-));
-
-// Page Header elements
-$title = elgg_view_title(elgg_echo('admin:plugins'));
-
-// @todo Until "en/disable all" means "All plugins on this page" hide when not looking at all.
-if (!isset($show_category) || empty($show_category)) {
- $buttons = "<a class='action_button' href=\"{$CONFIG->url}action/admin/plugins/enableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('enableall')."</a> <a class='action_button disabled' href=\"{$CONFIG->url}action/admin/plugins/disableall?__elgg_token=$token&amp;__elgg_ts=$ts\">".elgg_echo('disableall')."</a> ";
- $buttons .= "<br /><br />";
-} else {
- $buttons = '';
-}
-
-$buttons .= $category_form;
-
-// construct page header
-?>
-<div id="content_header" class="clearfloat">
- <div class="content_header_title"><?php echo $title ?></div>
- <div class="content_header_options"><?php echo $buttons ?></div>
-</div>
-<br />
-<?php
-
-$limit = get_input('limit', 10);
-$offset = get_input('offset', 0);
-
-$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) {
- echo elgg_view('admin/components/plugin', array(
- 'plugin' => $plugin,
- 'details' => $data,
- 'maxorder' => $max,
- 'order' => array_search($plugin, $plugin_list)
- ));
- $n++;
-}
-?>
-<script type="text/javascript">
- $(document).ready(function() {
- $('a.manifest_details.link').click(function() {
- elgg_slide_toggle($(this), '.plugin_details', '.manifest_file');
- });
- });
-</script> \ No newline at end of file
diff --git a/views/default/admin/plugins/simple.php b/views/default/admin/plugins/simple.php
deleted file mode 100644
index 3baa00caf..000000000
--- a/views/default/admin/plugins/simple.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Elgg administration simple plugin screen
- *
- * Shows an alphabetical list of "simple" plugins.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-regenerate_plugin_list();
-$installed_plugins = get_installed_plugins();
-$plugin_list = array();
-$title = elgg_view_title(elgg_echo('admin:plugins'));
-
-foreach ($installed_plugins as $installed_name => $plugin) {
- if (!isset($plugin['manifest']['admin_interface']) || $plugin['manifest']['admin_interface'] == 'advanced') {
- continue;
- }
-
- $plugin['installed_name'] = $installed_name;
-
- $plugin_list[$plugin['manifest']['name']] = $plugin;
-}
-
-ksort($plugin_list);
-$form_body .= <<<___END
- <div id="content_header" class="clearfloat">
- <div class="content_header_title">$title</div>
- </div>
- <ul class="admin_plugins margin_top">
-___END;
-
-foreach ($plugin_list as $name => $info) {
- $manifest = $info['manifest'];
- $version_valid = (isset($manifest['elgg_version'])) ? check_plugin_compatibility($manifest['elgg_version']) : FALSE;
- if ($info['active']) {
- $active_class = 'active';
- $checked = 'checked="checked"';
- } else {
- $active_class = 'not_active';
- $checked = '';
- }
-
- $author = $link = $version = $settings = '';
-
- if (isset($manifest['author'])) {
- $author = sprintf(elgg_echo('admin:plugins:author'), $manifest['author']);
- }
-
- if (isset($manifest['version'])) {
- $version = ' | ' . sprintf(elgg_echo('admin:plugins:version'), $manifest['version']);
- }
-
- if (isset($manifest['website'])) {
- $link = " | <a href=\"{$manifest['website']}\">" . elgg_echo('admin:plugins:plugin_website') . '</a>';
- }
-
- if (elgg_view_exists("settings/{$info['installed_name']}/edit")) {
- $settings_href = elgg_get_site_url()."pg/admin/plugin_settings/{$info['installed_name']}";
- $settings = " | <a class='plugin_settings link' href='$settings_href'>". elgg_echo('settings') ."</a>";
- }
-
- $form_body .= <<<___END
- <li class="plugin_details $active_class">
- <span class="plugin_controls">
- <input type="checkbox" id="{$info['installed_name']}" class="plugin_enabled" $checked name="enabled_plugins[]" value="{$info['installed_name']}"/>
- <label for="{$info['installed_name']}">$name</label>
- </span>
-
- <span class="plugin_info">
- <span class="plugin_description">
- {$manifest['description']}
- </span>
- <span class="plugin_metadata small">
- $author
- $version
- $link
- $settings
- </span>
- </span>
- </li>
-___END;
-}
-
-$form_body .= '</ul>';
-$form_body .= elgg_view('input/submit', array('value' => elgg_echo('save')));
-$form_body .= elgg_view('input/reset', array('value' => elgg_echo('reset'), 'class' => 'action_button disabled'));
-
-echo elgg_view('input/form', array(
- 'action' => elgg_get_site_url()."action/admin/plugins/simple_update_states",
- 'body' => $form_body,
- 'class' => 'admin_plugins_simpleview'
-)); \ 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/advanced.php b/views/default/admin/site/advanced.php
deleted file mode 100644
index 00e63e95d..000000000
--- a/views/default/admin/site/advanced.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-/**
- * Elgg administration site advanced settings
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$action = elgg_get_site_url() . "action/admin/site/update_advanced";
-
-$form_body = "";
-
-foreach(array('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>";
-}
-
-$form_body .= "<p>" . elgg_echo('admin:site:access:warning') . "<br />";
-$form_body .= elgg_echo('installation:sitepermissions') . elgg_view('input/access', array('internalname' => 'default_access','value' => $vars['config']->default_access)) . "</p>";
-$form_body .= "<p>" . elgg_echo('installation:allow_user_default_access:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:allow_user_default_access:label')), 'internalname' => 'allow_user_default_access', 'value' => ($vars['config']->allow_user_default_access ? elgg_echo('installation:allow_user_default_access:label') : "") )) . "</p>";
-$form_body .= "<p>" . elgg_echo('installation:simplecache:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:simplecache:label')), 'internalname' => 'simplecache_enabled', 'value' => ($vars['config']->simplecache_enabled ? elgg_echo('installation:simplecache:label') : "") )) . "</p>";
-$form_body .= "<p>" . elgg_echo('installation:viewpathcache:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:viewpathcache:label')), 'internalname' => 'viewpath_cache_enabled', 'value' => (($vars['config']->viewpath_cache_enabled) ? elgg_echo('installation:viewpathcache:label') : "") )) . "</p>";
-
-$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 .= "<p>" . elgg_echo('installation:debug');
-$form_body .= elgg_view('input/pulldown', array('options_values' => $debug_options, 'internalname' => 'debug', 'value' => $vars['config']->debug));
-$form_body .= '</p>';
-
-// control new user registration
-$options = array(
- 'options' => array(elgg_echo('installation:registration:label')),
- 'internalname' => 'allow_registration',
- 'value' => $vars['config']->allow_registration ? elgg_echo('installation:registration:label') : '',
-);
-$form_body .= '<p>' . elgg_echo('installation:registration:description');
-$form_body .= '<br />' .elgg_view('input/checkboxes', $options) . '</p>';
-
-// control walled garden
-$options = array(
- 'options' => array(elgg_echo('installation:walled_garden:label')),
- 'internalname' => 'walled_garden',
- 'value' => $vars['config']->walled_garden ? elgg_echo('installation:walled_garden:label') : '',
-);
-$form_body .= '<p>' . elgg_echo('installation:walled_garden:description');
-$form_body .= '<br />' . elgg_view('input/checkboxes', $options) . '</p>';
-
-$form_body .= "<p>" . elgg_echo('installation:httpslogin') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:httpslogin:label')), 'internalname' => 'https_login', 'value' => ($vars['config']->https_login ? elgg_echo('installation:httpslogin:label') : "") )) . "</p>";
-
-$form_body .= "<p>" . 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 .= elgg_view('input/hidden', array('internalname' => 'settings', 'value' => 'go'));
-
-$form_body .= "<div class='divider'></div>".elgg_view('input/submit', array('value' => elgg_echo("save")));
-$form_body = "<div class='admin_settings site_admin margin_top'>".$form_body."</div>";
-echo elgg_view_title(elgg_echo('admin:site:advanced') . " " . elgg_echo('admin:site'));
-echo elgg_view('input/form', array('action' => $action, 'body' => $form_body));
diff --git a/views/default/admin/site/basic.php b/views/default/admin/site/basic.php
deleted file mode 100644
index f6b2d03e0..000000000
--- a/views/default/admin/site/basic.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Elgg administration site basic settings
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$action = elgg_get_site_url() . "action/admin/site/update_basic";
-
-$form_body = "";
-
-foreach(array('sitename','sitedescription', 'siteemail') 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 .= "<div class='divider'></div>".elgg_view('input/submit', array('value' => elgg_echo("save")));
-$form_body = "<div class='admin_settings site_admin margin_top'>".$form_body."</div>";
-echo elgg_view_title(elgg_echo('admin:site'));
-echo elgg_view('input/form', array('action' => $action, 'body' => $form_body));
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/users/add.php b/views/default/admin/users/add.php
index cc2da61db..6d22b9c29 100644
--- a/views/default/admin/users/add.php
+++ b/views/default/admin/users/add.php
@@ -3,5 +3,7 @@
* Display an add user form.
*/
-echo elgg_view_title(elgg_echo('admin:users'));
-echo elgg_view('account/forms/useradd', array('show_admin'=>true)); \ No newline at end of file
+$title = elgg_echo('adduser');
+$body = elgg_view_form('useradd', array(), array('show_admin' => true));
+
+echo elgg_view_module('inline', $title, $body); \ No newline at end of file
diff --git a/views/default/admin/users/admins.php b/views/default/admin/users/admins.php
new file mode 100644
index 000000000..9b175d437
--- /dev/null
+++ b/views/default/admin/users/admins.php
@@ -0,0 +1,12 @@
+<?php
+$admins = elgg_list_entities(array(), 'elgg_get_admins');
+
+?>
+<div class="elgg-module elgg-module-inline">
+ <div class="elgg-head">
+ <h3><?php echo elgg_echo('admin:statistics:label:admins'); ?></h3>
+ </div>
+ <div class="elgg-body">
+ <?php echo $admins; ?>
+ </div>
+</div>
diff --git a/views/default/admin/users/newest.php b/views/default/admin/users/newest.php
index 79de121e5..91a6fa338 100644
--- a/views/default/admin/users/newest.php
+++ b/views/default/admin/users/newest.php
@@ -1,17 +1,18 @@
<?php
// newest users
-if (is_plugin_enabled('profile')) {
- $users = elgg_list_entities(array(
- 'type' => 'user', 'subtype'=>null,
- 'full_view' => FALSE
- ));
+$users = elgg_list_entities(array(
+ 'type' => 'user',
+ 'subtype'=> null,
+ 'full_view' => FALSE
+));
- echo elgg_view_title(elgg_echo('admin:users'));
- ?>
+?>
- <div class="admin_settings members_list users_online">
+<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>
-<?php
-} \ No newline at end of file
+</div>
diff --git a/views/default/admin/users/online.php b/views/default/admin/users/online.php
index b172b994f..dbda06066 100644
--- a/views/default/admin/users/online.php
+++ b/views/default/admin/users/online.php
@@ -1,16 +1,13 @@
<?php
-// users online
-if ((is_plugin_enabled('search')) && (is_plugin_enabled('profile'))) {
- get_context('search');
- $users_online = get_online_users();
- get_context('admin');
-
- echo elgg_view_title(elgg_echo('admin:users'));
- ?>
- <div class="admin_settings members_list users_online">
+$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>
-<?php
-} \ No newline at end of file
+</div>
diff --git a/views/default/ajax/loader.php b/views/default/ajax/loader.php
deleted file mode 100644
index 627c93198..000000000
--- a/views/default/ajax/loader.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Elgg AJAX loader
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$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/annotate.php b/views/default/annotation/annotate.php
deleted file mode 100644
index 0ee972e77..000000000
--- a/views/default/annotation/annotate.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-$performed_by = get_entity($vars['item']->subject_guid);
-$object = get_entity($vars['item']->object_guid);
-$url = $object->getURL();
-$title = $object->title;
-if (!$title) {
- $title = elgg_echo('file:untitled');
-}
-
-$subtype = get_subtype_from_id($object->subtype);
-//grab the annotation, if one exists
-$comment = '';
-if ($vars['item']->annotation_id != 0) {
- $comment = get_annotation($vars['item']->annotation_id)->value;
-}
-
-$url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>";
-$string = sprintf(elgg_echo("river:posted:generic"), $url) . " ";
-$string .= elgg_echo("{$subtype}:river:annotate") . " <a href=\"{$object->getURL()}\">" . $title . "</a> <span class='entity_subtext'>" . elgg_view_friendly_time($object->time_created) . "<a class='river_comment_form_button link'>Comment</a>";
-$string .= elgg_view('likes/forms/link', array('entity' => $object));
-$string .= "</span>";
-if (get_context() != 'riverdashboard') {
- $comment = elgg_get_excerpt($comment, 200);
- if ($comment) {
- $string .= "<div class='river_content_display'>";
- $string .= $comment;
- $string .= "</div>";
- }
-}
-echo $string; \ No newline at end of file
diff --git a/views/default/annotation/annotatelike.php b/views/default/annotation/annotatelike.php
deleted file mode 100644
index 43655ba6e..000000000
--- a/views/default/annotation/annotatelike.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-$performed_by = get_entity($vars['item']->subject_guid);
-$object = get_entity($vars['item']->object_guid);
-$url = $object->getURL();
-$title = $object->title;
-
-$string = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a> ";
-$string .= elgg_echo("likes:river:annotate") . " <a href=\"{$object->getURL()}\">" . $title . "</a> <span class='entity_subtext'>" . elgg_view_friendly_time($object->time_created)."</span>";
-
-echo $string; \ 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 464ffb8c5..22a8d9211 100644
--- a/views/default/annotation/generic_comment.php
+++ b/views/default/annotation/generic_comment.php
@@ -1,47 +1,69 @@
<?php
/**
- * Elgg generic comment
+ * Elgg generic comment view
+ *
+ * @uses $vars['annotation'] ElggAnnotation object
+ * @uses $vars['full_view'] Display fill view or brief view
*/
-$owner = get_user($vars['annotation']->owner_guid);
-
-?>
-<a class="anchor_link" name="comment_<?php echo $vars['annotation']->id; ?>"></a>
-<div class="generic_comment clearfloat">
- <div class="generic_comment_icon">
- <?php
- echo elgg_view("profile/icon", array(
- 'entity' => $owner,
- 'size' => 'tiny'
- ));
- ?>
- </div>
-
- <div class="generic_comment_details">
- <?php
- // if the user looking at the comment can edit, show the delete link
- if ($vars['annotation']->canEdit()) {
- ?>
- <span class="delete_button">
- <?php echo elgg_view("output/confirmlink",array(
- 'href' => elgg_get_site_url() . "action/comments/delete?annotation_id=" . $vars['annotation']->id,
- 'text' => elgg_echo('delete'),
- 'confirm' => elgg_echo('deleteconfirm')
- ));
- ?>
- </span>
- <?php
- } //end of can edit if statement
- ?>
- <p class="generic_comment_owner">
- <a href="<?php echo $owner->getURL(); ?>"><?php echo $owner->name; ?></a>
- <span class="entity_subtext">
- <?php echo elgg_view_friendly_time($vars['annotation']->time_created); ?>
- </span>
- </p>
- <!-- output the actual comment -->
- <div class="generic_comment_body">
- <?php echo elgg_view("output/longtext",array("value" => $vars['annotation']->value)); ?>
- </div>
- </div>
-</div> \ No newline at end of file
+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/annotation/latest_comments.php b/views/default/annotation/latest_comments.php
deleted file mode 100644
index 43f44f43b..000000000
--- a/views/default/annotation/latest_comments.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-/**
- * Display latest comments on objects
- **/
-
-if($vars['comments']){
- global $CONFIG;
- echo "<h3>" . elgg_echo('generic_comments:latest') . "</h3>";
- foreach($vars['comments'] as $comment){
- //grab the entity the comment is on
- $entity = get_entity($comment->entity_guid);
- //comment owner
- $comment_owner = get_user($comment->owner_guid);
- $friendlytime = elgg_view_friendly_time($comment->time_created); // get timestamp for comment
-
- //set the title
- if($entity->title){
- $objecttitle = $entity->title;
- }else{
- $objecttitle = elgg_echo('untitled');
- }
-
- //if the entity has been deleted, don't link to it
- if($entity){
- $url = $entity->getURL(); // get url to file for comment link
- $url_display = "<a href=\"{$url}\">{$objecttitle}</a>";
- }else{
- $url_display = $objecttitle;
- }
-
- echo "<div class='generic_comment latest clearfloat'><span class='generic_comment_icon'>" . elgg_view("profile/icon",array('entity' => $comment_owner, 'size' => 'tiny')) . "</span>";
- echo "<div class='generic_comment_details'><span class='entity_subtext'><a href=\"".elgg_get_site_url()."pg/profile/{$comment_owner->username}\">{$comment_owner->name}</a> " . elgg_echo('on') . " <span class='entity_title'>{$url_display}</span> ({$friendlytime})</span></div>";
- echo "</div>";
-
- }
-} \ No newline at end of file
diff --git a/views/default/annotation/likes.php b/views/default/annotation/likes.php
deleted file mode 100644
index ecd109978..000000000
--- a/views/default/annotation/likes.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**
- * Elgg show the user who liked the object
- */
-
-$owner = get_user($vars['annotation']->owner_guid);
-
-?>
-<div class="elgg_likes_user clearfloat">
- <div class="entity_listing_icon">
- <?php
- echo elgg_view("profile/icon", array(
- 'entity' => $owner,
- 'size' => 'tiny'
- ));
- ?>
- </div>
-
- <div class="entity_listing_info">
- <?php
- // if the user looking at the like listing can edit, show the delete link
- if ($vars['annotation']->canEdit()) {
- ?>
- <div class="entity_metadata"><span class="delete_button">
- <?php echo elgg_view("output/confirmlink",array(
- 'href' => elgg_get_site_url() . "action/likes/delete?annotation_id=" . $vars['annotation']->id,
- 'text' => elgg_echo('remove'),
- 'confirm' => elgg_echo('deleteconfirm')
- ));
- ?>
- </span></div>
- <?php
- } //end of can edit if statement
- ?>
- <p class="elgg_likes_owner">
- <a href="<?php echo $owner->getURL(); ?>"><?php echo $owner->name; ?></a> <?php echo elgg_echo('likes:this') .
- " <span class=\"entity_subtext\">" . elgg_view_friendly_time($vars['annotation']->time_created) . "</span>"; ?>
- </p>
- </div>
-</div> \ 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 cfcee9484..000000000
--- a/views/default/canvas/default.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-/**
- * Elgg default layout
- *
- * @package Elgg
- * @subpackage Core
- */
-
-if (isset($vars['area1'])) {
- echo $vars['area1'];
-}
-
diff --git a/views/default/canvas/layouts/administration.php b/views/default/canvas/layouts/administration.php
deleted file mode 100644
index 335fb55e5..000000000
--- a/views/default/canvas/layouts/administration.php
+++ /dev/null
@@ -1,898 +0,0 @@
-<?php
-/**
- * Elgg Admin Area Canvas
- *
- * @package Elgg
- * @subpackage Core
- */
-?>
-<style type="text/css">
-/**
- * ELGG DEFAULT ADMIN AREA CSS
-*/
-
-/* ***************************************
- 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;
-}
-img {
- border-width:0;
- border-color:transparent;
-}
-:focus {
- outline:0 none;
- -moz-outline-style: none;
-}
-ol, ul {
- /* list-style:none outside none; */
- margin: 0 0 10px 0;
- padding-left: 20px;
-}
-em, i {
- font-style:italic;
-}
-ins {
- text-decoration:none;
-}
-del {
- text-decoration:line-through;
-}
-strong {
- 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 {
- text-align:left;
- margin:0 auto;
- padding:0;
- background-color: #444444;
- font-size: 80%;
- line-height: 1.4em;
- font-family: "Lucida Grande",Arial,Tahoma,Verdana,sans-serif;
-}
-a {
- color:#0054A7;
- text-decoration: none;
- -moz-outline-style: none;
- outline: none;
-}
-a:hover,
-a.selected {
- color: black;
- text-decoration: underline;
-}
-p {
- margin-bottom:15px;
-}
-p:last-child {
- margin-bottom:0;
-}
-small {
- font-size: 90%;
-}
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
- line-height: auto;
- color:#0054A7;
-}
-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; }
-dt {
- font-weight: bold;
-}
-dd {
- margin: 0 0 1em 1em;
-}
-pre, code {
- font-family:Monaco,"Courier New",Courier,monospace;
- font-size:12px;
- background:#EBF5FF;
- overflow:auto;
-
- overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */
- white-space: pre-wrap; /* css-3 */
- white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- word-wrap: break-word; /* Internet Explorer 5.5+ */
-}
-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:#EBF5FF;
- border:none;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-
-
-/* ***************************************
- GENERIC SELECTORS
-*************************************** */
-h2 {
- border-bottom:1px solid #CCCCCC;
- padding-bottom:5px;
-}
-.clearfloat:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-.link {
- cursor:pointer;
-}
-.small {
- font-size: 90%;
-}
-.divider {
- border-top:1px solid #cccccc;
-}
-.hidden {
- display:none;
-}
-.radius8 {
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
-}
-.margin_none {
- margin:0;
-}
-.margin_top {
- margin-top:10px;
-}
-.entity_title a { color:#0054A7; }
-.elgg_horizontal_tabbed_nav a:hover { color:#0054A7; }
-table.mceLayout {
- width:100% !important;
-}
-
-
-
-
-
-
-
-#admin_header {
- background-color:#333333;
- border-bottom:1px solid #555555;
-}
-#admin_footer {
- background:#333333;
- border-top:1px solid #222222;
- clear:both;
- height:30px;
- width:100%;
-}
-#admin_header .network_title h2 {
- height:45px;
- line-height:45px;
- margin:0;
- padding:0 0 0 20px;
- border:0;
-}
-#admin_header .network_title h2 a {
- color:white;
-}
-#admin_header .network_title h2 a:hover {
- color:white;
- text-decoration: underline;
-}
-#admin_header .network_title h2 a.return_to_network {
- font-size:12px;
- font-weight: normal;
- color:#666666;
- float:right;
- margin-right:40px;
-}
-#elgg_content.admin_area {
- margin:20px;
- min-height:400px;
- position:relative;
- width:auto;
- background-image: none;
- background-color: transparent;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-#elgg_content.admin_area #elgg_page_contents {
- float:left;
- margin:0;
- padding:14px;
- width:75%;
- background-color: white;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
-}
-#elgg_content.admin_area #elgg_sidebar {
- float:left;
- margin:0;
- min-height:400px;
- padding:0 0 0 3%;
- position:relative;
- width:17%;
-}
-
-.admin_area h1,
-.admin_area h2,
-.admin_area h3,
-.admin_area h4,
-.admin_area h5,
-.admin_area h6 {
- color:#666666;
-}
-.admin_area #elgg_sidebar .submenu {
- margin:0;
- padding:0;
- list-style: none;
- background-color: transparent;
- background-image: none;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
-}
-.admin_area .submenu li.selected a,
-.admin_area .submenu li.selected li.selected a,
-.admin_area .submenu li.selected li.selected li.selected a {
- background-color: black;
- color:white;
-}
-.admin_area .submenu li a {
- display:block;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- background-color:white;
- margin:0 0 3px 0;
- padding:2px 4px 2px 8px;
- color:#333333;
-}
-.admin_area .submenu li a:hover {
- background-color:black;
- color:white;
- text-decoration:none;
-}
-.admin_area #elgg_sidebar .submenu ul.child {
- margin-bottom:10px;
-}
-.admin_area .submenu .child li a {
- margin-left:15px;
- background-color:#dedede;
- color:#333333;
-}
-.admin_area .submenu .child li a:hover {
- background-color:black;
- color:white;
-}
-
-.admin_settings h3 {
- background:#999999;
- color:white;
- padding:5px;
- margin-top:10px;
- margin-bottom:10px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
-}
-.admin_settings label {
- color:#333333;
- font-size:100%;
- font-weight:normal;
-}
-.admin_area .input_textarea {
- width:98%;
-}
-.admin_area form#plugin_settings {
- margin-top: 10px;
-}
-.admin_area form#plugin_settings .action_button.disabled {
- margin-top:10px;
- float:right;
-}
-
-
-/* ***************************************
- GENERAL FORM ELEMENTS
-*************************************** */
-/* default elgg core input field classes */
-.admin_area .input_text,
-.admin_area .input_tags,
-.admin_area .input_url,
-.admin_area .input_textarea {
- width:98%;
-}
-.admin_area .input_access {
- margin:5px 0 0 0;
-}
-.admin_area .input_password {
- width:200px;
-}
-.admin_area .input_textarea {
- height: 200px;
- width:718px;
-}
-.admin_area input[type="checkbox"],
-.admin_area input.input_radio {
- margin:0 3px 0 0;
- padding:0;
- border:none;
-}
-.admin_area label {
- font-weight: bold;
- color:#333333;
- font-size: 110%;
-}
-.admin_area input {
- font: 120% Arial, Helvetica, sans-serif;
- padding: 5px;
- border: 1px solid #cccccc;
- color:#666666;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.admin_area textarea {
- font: 120% Arial, Helvetica, sans-serif;
- border: solid 1px #cccccc;
- padding: 5px;
- color:#666666;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.admin_area textarea:focus,
-.admin_area input[type="text"]:focus {
- border: solid 1px #666666;
- background: #f5f5f5;
- color:#333333;
-}
-.admin_area .input_textarea.monospace {
- font-family:Monaco,"Courier New",Courier,monospace;
- font-size:13px;
-}
-.admin_area a.longtext_control {
- float:right;
- margin-left:14px;
-}
-.admin_area .submit_button {
- font-size: 14px;
- font-weight: bold;
- color: white;
- text-shadow:1px 1px 0px black;
- text-decoration:none;
- border: 1px solid #0054A7;
- background-color:#0054A7;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:0 10px 10px 0;
- cursor: pointer;
- -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
- -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
-}
-.admin_area .submit_button:hover {
- color: white;
- border-color: #333333;
- text-decoration:none;
- background-color:#333333;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
-}
-.admin_area input[type="password"]:focus {
- border: solid 1px #666666;
- background-color: #f5f5f5;
- color:#333333;
-}
-.admin_area input[type="submit"] {
- font-size: 14px;
- font-weight: bold;
- color: white;
- text-shadow:1px 1px 0px black;
- text-decoration:none;
- border: 1px solid #0054A7;
- background-color:#0054A7;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:10px 0 10px 0;
- cursor: pointer;
- -moz-outline-style: none;
- outline: none;
- -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
- -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
-}
-.admin_area input[type="submit"]:hover {
- border-color: #333333;
- text-decoration:none;
- background-color:#333333;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
-}
-.admin_area .cancel_button {
- font-size: 14px;
- font-weight: bold;
- text-decoration:none;
- color: #333333;
- background-color:#dddddd;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- border: 1px solid #999999;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:10px 0 10px 10px;
- cursor: pointer;
-}
-.admin_area .cancel_button:hover {
- background-color: #999999;
- background-position: left 10px;
- text-decoration:none;
- color:white;
-}
-.admin_area .content_header_options .action_button {
- margin-top:0;
- margin-left:10px;
-}
-.admin_area input.action_button,
-.admin_area a.action_button {
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- background-color:#cccccc;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif);
- background-repeat: repeat-x;
- background-position: 0 0;
- border:1px solid #999999;
- color:#333333;
- padding:2px 15px 2px 15px;
- text-align:center;
- font-weight:bold;
- text-decoration:none;
- text-shadow:0 1px 0 white;
- cursor:pointer;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-.admin_area input.action_button:hover,
-.admin_area a.action_button:hover,
-.admin_area input.action_button:focus,
-.admin_area a.action_button:focus {
- background-position:0 -15px;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif);
- background-repeat: repeat-x;
- color:#111111;
- text-decoration: none;
- background-color:#cccccc;
- border:1px solid #999999;
-}
-.admin_area .action_button:active {
- background-image:none;
-}
-.admin_area .action_button.disabled {
- color:#999999;
- padding:2px 7px 2px 7px;
-}
-.admin_area .action_button.disabled:hover {
- background-position:0 -15px;
- color:#111111;
- border:1px solid #999999;
-}
-.admin_area .action_button.disabled:active {
- background-image:none;
-}
-.admin_area .action_button.download {
- padding: 5px 9px 5px 6px;
-}
-.admin_area .action_button.download:hover {
-
-}
-.admin_area .action_button.download img {
- margin-right:6px;
- position:relative;
- top:5px;
-}
-.admin_area .action_button.small {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- width: auto;
- height:8px;
- padding: 4px;
- font-size: 0.9em;
- line-height: 0.6em;
-}
-.admin_area .action_button.small:hover {
- background-color: #0054A7;
- background-image: none;
- border-color: #0054A7;
- color:white;
- text-shadow:0 -1px 0 #999999;
-}
-
-
-
-/* ***************************************
- CONTENT HEADER
-**************************************** */
-#content_header {
- border-bottom:1px solid #CCCCCC;
-}
-#content_header:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-.content_header_title {
- float:left;
-}
-.content_header_title {
- margin-right:10px;
- max-width: 530px;
-}
-.content_header_title h2 {
- border:none;
- margin-bottom:0;
- padding-bottom:5px;
-}
-.content_header_options {
- float:right;
-}
-.content_header_options .action_button {
- float:right;
- margin:0 0 5px 10px;
-}
-
-
-
-/* REPORTED CONTENT */
-.admin_settings.reported_content {
- margin:5px 0 0 0;
- padding:5px 7px 3px 9px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.admin_settings.reported_content p {
- margin:0;
-}
-.active_report {
- border:1px solid #D3322A;
- background:#F7DAD8;
-}
-.archived_report {
- border:1px solid #666666;
- background:#dedede;
-}
-.admin_settings.reported_content .controls {
- float:right;
- margin:14px 5px 0 0;
-}
-.admin_settings.reported_content a.action_button {
- display:inline;
- float:right;
- margin-left:15px;
-}
-.admin_settings.reported_content .details_link {
- cursor: pointer;
-}
-
-
-
-/* ECML */
-.ecml_admin_table {
- width:100%;
-}
-.ecml_admin_table td, th {
- border: 1px solid gray;
- text-align: center;
- padding: 5px;
-}
-.ecml_admin_table th, .ecml_keyword_desc {
- font-weight: bold;
-}
-.ecml_row_odd {
- background-color: #EEE;
-}
-.ecml_row_even {
-
-}
-.ecml_restricted {
- color: #555;
-}
-
-
-
-
-
-
-
-
-.admin_settings {
- margin-bottom:20px;
-}
-.admin_settings table.styled {
- width:100%;
-}
-.admin_settings table.styled {
- border-top:1px solid #cccccc;
-}
-.admin_settings table.styled td {
- padding:2px 4px 2px 4px;
- border-bottom:1px solid #cccccc;
-}
-.admin_settings table.styled td.column_one {
- width:200px;
-}
-.admin_settings table.styled tr:hover {
- background: #E4E4E4;
-}
-.admin_settings.users_online .profile_status {
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
- line-height:1.2em;
-}
-.admin_settings.users_online .profile_status span {
- font-size:90%;
- color:#666666;
-}
-.admin_settings.users_online p.owner_timestamp {
- padding-left:3px;
-}
-.admin_plugin_reorder {
- float:right;
- width:200px;
- text-align: right;
-}
-.admin_plugin_reorder a {
- padding-left:10px;
- font-size:80%;
- color:#999999;
-}
-.admin_area .manifest_file {
- background-color:#eeeeee;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- padding:5px 10px 5px 10px;
- margin:4px 0 4px 0;
-}
-.admin_area .admin_plugin_enable_disable {
- width:150px;
- margin:10px 0 0 0;
- float:right;
- text-align: right;
-}
-.admin_area .admin_plugin_enable_disable a {
- margin:0;
-}
-.pluginsettings {
- margin:15px 0 5px 0;
- background-color:#eeeeee;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- padding:10px;
-}
-.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;
-}
-.plugin_controls {
- padding: 3px 3px 3px 0;
- font-weight: bold;
- float: left;
- width: 150px;
-}
-form.admin_plugins_simpleview .submit_button {
- margin-right:20px;
-}
-.plugin_info {
- margin: 3px;
- padding-left: 150px;
- display: block;
-}
-.plugin_metadata {
- display:block;
- color:#999999;
-}
-.plugin_name input[type="checkbox"] {
- margin-right: 10px;
-}
-ul.admin_plugins {
- margin-bottom:0;
- padding-left:0;
- list-style: none;
-}
-.plugin_details {
- margin:0 0 5px 0;
- padding:0 7px 4px 10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.plugin_details p {
- margin:0;
- padding:0;
-}
-.plugin_details h3 {
- margin-top:-13px;
- color:black;
-}
-.plugin_settings {
- font-weight: normal;
-}
-.active {
- border:1px solid #999999;
- background:white;
-}
-.not_active {
- border:1px solid #999999;
- background:#dedede;
-}
-.configure_menuitems {
- margin-bottom:30px;
-}
-.admin_settings.menuitems .input_pulldown {
- margin-right:15px;
- margin-bottom:10px;
-}
-.admin_settings.menuitems .custom_menuitems {
- list-style: none;
- padding:0;
- margin:0;
-}
-.admin_settings.menuitems li.custom_menuitem {
- margin-bottom:20px;
-}
-.admin_notices {
- padding-bottom: 15px;
-}
-.admin_notices p {
- background-color:#BDE5F8;
- color: black;
- border: 1px solid blue;
- font-weight: bold;
- padding:3px 10px;
- -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45);
- -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.45);
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-
-/* ***************************************
- ELGG TABBED PAGE NAVIGATION
-*************************************** */
-.elgg_horizontal_tabbed_nav {
- margin-bottom:5px;
- padding: 0;
- border-bottom: 2px solid #cccccc;
- display:table;
- width:100%;
-}
-.elgg_horizontal_tabbed_nav ul {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-.elgg_horizontal_tabbed_nav li {
- float: left;
- border: 2px solid #cccccc;
- border-bottom-width: 0;
- background: #eeeeee;
- margin: 0 0 0 10px;
- -moz-border-radius-topleft:5px;
- -moz-border-radius-topright:5px;
- -webkit-border-top-left-radius:5px;
- -webkit-border-top-right-radius:5px;
-}
-.elgg_horizontal_tabbed_nav a {
- text-decoration: none;
- display: block;
- padding:3px 10px 0 10px;
- text-align: center;
- height:21px;
- color:#999999;
-}
-.elgg_horizontal_tabbed_nav a:hover {
- background: #dedede;
- color:#4690D6;
-}
-.elgg_horizontal_tabbed_nav .selected {
- border-color: #cccccc;
- background: white;
-}
-.elgg_horizontal_tabbed_nav .selected a {
- position: relative;
- top: 2px;
- background: white;
-}
-
-</style>
-
-<div id="admin_header">
- <span class="network_title"><h2>
- <a href="<?php echo elgg_get_site_url(); ?>">
- <?php echo $vars['config']->sitename; echo " ".elgg_echo('admin'); ?></a>
- <a class="return_to_network" href="<?php echo elgg_get_site_url(); ?>">&lt;&lt; Return to network</a>
- </h2></span>
-</div>
-
-<div id="elgg_content" class="clearfloat admin_area">
-
- <div id="elgg_page_contents" class="clearfloat">
- <?php
- if (isset($vars['area1'])) echo $vars['area1'];
- ?>
- </div>
- <div id="elgg_sidebar" class="clearfloat">
- <?php
- echo elgg_view('page_elements/elgg_sidebar', $vars);
- ?>
- </div>
-</div>
-<div id="admin_footer"></div> \ 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 e9c2cb113..000000000
--- a/views/default/canvas/layouts/one_column.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg one-column layout
- *
- * @package Elgg
- * @subpackage Core
- */
-?>
-<div id="elgg_content" class="clearfloat">
- <div id="elgg_page_contents" class="clearfloat one_column">
- <?php echo $vars['area1']; ?>
- </div>
-</div> \ No newline at end of file
diff --git a/views/default/canvas/layouts/one_column_with_sidebar.php b/views/default/canvas/layouts/one_column_with_sidebar.php
deleted file mode 100644
index b7efee4d0..000000000
--- a/views/default/canvas/layouts/one_column_with_sidebar.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Elgg 1 column with sidebar canvas layout
- *
- * @package Elgg
- * @subpackage Core
- */
-?>
-<div id="elgg_content" class="clearfloat sidebar">
- <div id="elgg_sidebar">
- <?php
- echo elgg_view('page_elements/elgg_sidebar', $vars);
- ?>
- </div>
-
- <div id="elgg_page_contents" class="clearfloat">
- <?php
- if (isset($vars['area1'])) {
- echo $vars['area1'];
- }
- ?>
- </div>
-</div>
diff --git a/views/default/canvas/layouts/widgets.php b/views/default/canvas/layouts/widgets.php
deleted file mode 100644
index 45eff55c6..000000000
--- a/views/default/canvas/layouts/widgets.php
+++ /dev/null
@@ -1,339 +0,0 @@
-<?php
-
- /**
- * Elgg widget layout
- */
-
- $widgettypes = get_widget_types();
-
- $owner = elgg_get_page_owner();
-
- $area1widgets = get_widgets(elgg_get_page_owner_guid(),get_context(),1);
- $area2widgets = get_widgets(elgg_get_page_owner_guid(),get_context(),2);
- $area3widgets = get_widgets(elgg_get_page_owner_guid(),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()) {
-
-
-
- if(get_loggedin_userid() == elgg_get_page_owner_guid() || ($owner instanceof ElggGroup && $owner->canEdit())){
-
- if(get_context() == "profile") {
- ?>
- <!-- add remove widget button -->
- <div class="add_widgets" style="margin:-18px 0 10px;">
- <a href="javascript:void(0);" class="action_button toggle_customise_edit_panel"><?php echo(elgg_echo('dashboard:configure')); ?></a>
- </div><div class="clearfloat"></div>
- <?php
- }
- }
- ?>
-
-<div id="customise_editpanel" class="hidden">
-
-<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 if ((isset($widget->handler)) && (isset($widgettypes[$widget->handler]->multiple))) echo $widgettypes[$widget->handler]->multiple; ?>" />
- <input type="hidden" name="side" value="<?php if ((isset($widget->handler)) && (isset($widgettypes[$widget->handler])) && (is_array($widgettypes[$widget->handler]->positions))) echo in_array('side',$widgettypes[$widget->handler]->positions); ?>" />
- <input type="hidden" name="main" value="<?php if ((isset($widget->handler)) && (isset($widgettypes[$widget->handler])) && (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 elgg_get_site_url(); ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo elgg_get_site_url(); ?>_graphics/spacer.gif" width="15" height="15" 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 elgg_view('output/longtext', array('value' => 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"){ /* on groups */
- ?>
-
- <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 elgg_get_site_url(); ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td>
- <td width="17px" align="right"><a href="#"><img src="<?php echo elgg_get_site_url(); ?>_graphics/spacer.gif" width="15" height="15" 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 elgg_get_site_url(); ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo elgg_get_site_url(); ?>_graphics/spacer.gif" width="15" height="15" 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 elgg_get_site_url(); ?>_graphics/spacer.gif" width="14" height="14" class="more_info" /></a></td>
-<td width="17px" align="right"><a href="#"><img src="<?php echo elgg_get_site_url(); ?>_graphics/spacer.gif" width="15" height="15" class="drag_handle" /></a></td>
-</tr></table>
-
-<?php
-
- }
- }
-?>
-
-</div>
-</td>
-
-
-
-
-
-
-</tr>
-</table>
-
-</div><!-- /#customise_page_view -->
-
-<form action="<?php echo elgg_get_site_url(); ?>action/widgets/reorder" method="post">
-<?php echo elgg_view('input/securitytoken'); ?>
-<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 elgg_get_page_owner_guid(); ?>" />
-<input type="submit" onfocus="blur()" value="<?php echo elgg_echo('save'); ?>" class="submit_button" onclick="$('a.Action_Button.toggle_customise_edit_panel').click();" />
-<input type="button" onfocus="blur()" value="<?php echo elgg_echo('cancel'); ?>" class="cancel_button" onclick="$('a.Action_Button.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(get_loggedin_userid() == elgg_get_page_owner_guid() || ($owner instanceof ElggGroup && $owner->canEdit())){
-
- if(get_context() != "profile") {
- ?>
- <!-- customise page button appears in different place on groups widgets -->
- <div class="add_widgets">
- <a href="javascript:void(0);" class="action_button toggle_customise_edit_panel"><?php echo(elgg_echo('dashboard:configure')); ?></a>
- </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/comments/forms/edit.php b/views/default/comments/forms/edit.php
deleted file mode 100644
index 4e2e23a6f..000000000
--- a/views/default/comments/forms/edit.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Elgg comments add form
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-
- if (isset($vars['entity']) && isloggedin()) {
-
- $form_body = "<div class='comment margin_top'><p class='longtext_inputarea'><label>".elgg_echo("generic_comments:text")."</label>" . elgg_view('input/longtext',array('internalname' => 'generic_comment')) . "</p>";
- $form_body .= elgg_view('input/hidden', array('internalname' => 'entity_guid', 'value' => $vars['entity']->getGUID()));
- $form_body .= elgg_view('input/submit', array('value' => elgg_echo("generic_comments:post"))) . "</div>";
-
- echo elgg_view('input/form', array('body' => $form_body, 'action' => elgg_get_site_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/friends/collections.php b/views/default/core/friends/collections.php
index f1e27f9b7..c6ee082c8 100644
--- a/views/default/friends/collections.php
+++ b/views/default/core/friends/collections.php
@@ -9,17 +9,16 @@
* @uses $vars['collections'] The array of friends collections
*/
-if (!isset($friendspicker)) {
- $friendspicker = 0;
-}
-
-
if (is_array($vars['collections']) && sizeof($vars['collections'])) {
echo "<ul id=\"friends_collections_accordian\">";
- foreach($vars['collections'] as $collection) {
+ $friendspicker = 0;
+ foreach ($vars['collections'] as $collection) {
$friendspicker++;
- echo elgg_view('friends/collection',array('collection' => $collection, 'friendspicker' => $friendspicker));
+ echo elgg_view('core/friends/collection', array(
+ 'collection' => $collection,
+ 'friendspicker' => $friendspicker,
+ ));
}
echo "</ul>";
@@ -29,11 +28,11 @@ if (is_array($vars['collections']) && sizeof($vars['collections'])) {
}
?>
-
+<?php //@todo JS 1.8: no ?>
<script>
-$(document).ready(function(){
+$(function(){
$('#friends_collections_accordian h2').click(function () {
- $(this.parentNode).children("[class=friends_picker]").slideToggle("fast");
+ $(this.parentNode).children("[class=friends-picker-main-wrapper]").slideToggle("fast");
//return false;
});
});
diff --git a/views/default/core/friends/collectiontabs.php b/views/default/core/friends/collectiontabs.php
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/friends/tablelist.php b/views/default/core/friends/tablelist.php
index 12a0763c9..339b9ab1b 100644
--- a/views/default/friends/tablelist.php
+++ b/views/default/core/friends/tablelist.php
@@ -13,7 +13,7 @@ if (is_array($vars['entities'])) {
?>
-<table cellspacing="0" id="collectionMembersTable">
+<table cellspacing="0" id="friendspicker-members-table">
<tr>
<?php
$column = 0;
@@ -25,11 +25,11 @@ if (is_array($vars['entities'])) {
if ($entity instanceof ElggEntity) {
?>
<td style="width:25px;">
- <div style="width: 25px; margin-bottom: 15px;">
- <?php echo elgg_view("profile/icon",array('entity' => $entity, 'size' => 'tiny')); ?>
+ <div style="width: 25px;" class="mbl">
+ <?php echo elgg_view_entity_icon($entity, 'tiny'); ?>
</div>
</td>
- <td style="width: 200px; padding: 5px;">
+ <td style="width: 200px;" class="pas">
<?php echo $entity->name; ?>
</td>
<?php
diff --git a/views/default/friends/tablelistcountupdate.php b/views/default/core/friends/tablelistcountupdate.php
index 8e2ab637d..7a0da1caa 100644
--- a/views/default/friends/tablelistcountupdate.php
+++ b/views/default/core/friends/tablelistcountupdate.php
@@ -11,7 +11,7 @@
*/
?>
-
+<?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 b4d88e7d9..e67c79c36 100644
--- a/views/default/css.php
+++ b/views/default/css.php
@@ -1,1559 +1,7 @@
+<?php
/**
- * ELGG DEFAULT CSS
- * @uses $vars['wwwroot'] The site URL
-*/
-
-/* Table of Contents:
-
- RESET CSS reduce browser inconsistencies in line height, margins, font size...
- CSS BASICS <body> <p> <a> <h1>
- PAGE LAYOUT main page content blocks: header, sidebar, footer...
- GENERIC SELECTORS reusable generic classes
- ELGG TOPBAR elgg topbar
- HEADER CONTENTS
- ELGG SITE NAVIGATION Primary site navigation in header
- FOOTER CONTENTS
- SYSTEM MESSAGES system messages overlay
- BREADCRUMBS
- SUBMENU current page/tool submenu in sidebar
- PAGINATION re-usable default page navigation
- ELGG TABBED NAVIGATION re-usable tabbed navigation
- LOGIN / REGISTER login box, register, and lost password page styles
- CONTENT HEADER
- DEFAULT COMMENTS
- ENTITY LISTINGS elgg's default entity listings
- USER SETTINGS styles for user settings
- GENERAL FORM ELEMENTS default styles for all elgg input/form elements
- FRIENDS PICKER
- LIKES
-
-
-*/
-/* Colors:
-
- #4690D6 - elgg light blue
- #0054A7 - elgg dark blue
- #e4ecf5 - elgg v light blue
-*/
-
-
-
-/* ***************************************
- 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;
-}
-img {
- border-width:0;
- border-color:transparent;
-}
-:focus {
- outline:0 none;
- -moz-outline-style: none;
-}
-ol, ul {
- /* list-style:none outside none; */
- margin: 0 0 10px 0;
- padding-left: 20px;
-}
-em, i {
- font-style:italic;
-}
-ins {
- text-decoration:none;
-}
-del {
- text-decoration:line-through;
-}
-strong {
- 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 {
- text-align:left;
- margin:0 auto;
- padding:0;
- background-color: white;
- font-size: 80%;
- line-height: 1.4em;
- font-family: "Lucida Grande",Arial,Tahoma,Verdana,sans-serif;
-}
-a {
- color: #4690D6;
- text-decoration: none;
- -moz-outline-style: none;
- outline: none;
-}
-a:hover,
-a.selected {
- color: #555555;
- text-decoration: underline;
-}
-p {
- margin-bottom:15px;
-}
-p:last-child {
- margin-bottom:0;
-}
-small {
- font-size: 90%;
-}
-h1, h2, h3, h4, h5, h6 {
- font-weight: bold;
- line-height: auto;
- color:#0054A7;
-}
-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; }
-dt {
- font-weight: bold;
-}
-dd {
- margin: 0 0 1em 1em;
-}
-pre, code {
- font-family:Monaco,"Courier New",Courier,monospace;
- font-size:12px;
- background:#EBF5FF;
- overflow:auto;
-
- overflow-x: auto; /* Use horizontal scroller if needed; for Firefox 2, not needed in Firefox 3 */
- white-space: pre-wrap; /* css-3 */
- white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
- white-space: -pre-wrap; /* Opera 4-6 */
- white-space: -o-pre-wrap; /* Opera 7 */
- word-wrap: break-word; /* Internet Explorer 5.5+ */
-}
-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:#EBF5FF;
- border:none;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-
-
-/* ***************************************
- GENERIC SELECTORS
-*************************************** */
-h2 {
- border-bottom:1px solid #CCCCCC;
- padding-bottom:5px;
-}
-.clearfloat:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-.link {
- cursor:pointer;
-}
-.small {
- font-size: 90%;
-}
-.divider {
- border-top:1px solid #cccccc;
-}
-.hidden {
- display:none;
-}
-.radius8 {
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
-}
-.margin_none {
- margin:0;
-}
-.margin_top {
- margin-top:10px;
-}
-.rss_link {
- margin-top:-10px;
- margin-bottom:10px;
-}
-.rss_link a {
- display:block;
- width:14px;
- height:14px;
- float:right;
- background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png);
- background-repeat: no-repeat;
- background-position: -250px top;
- text-indent: -1000em;
-}
-.tags {
- background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png);
- background-repeat: no-repeat;
- background-position: left -196px;
- padding:1px 0 0 14px;
- font-size: 85%;
-}
-.tagcloud {
- text-align:justify;
-}
-.ajax_loader {
- background-color: white;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif);
- background-repeat: no-repeat;
- background-position: center center;
- min-height:33px;
- min-width:33px;
-}
-.ajax_loader.left {
- background-position: left center;
-}
-#elgg_sidebar h3 {
- border-bottom:1px solid #CCCCCC;
- margin-bottom:5px;
- margin-top:20px;
- padding-bottom:5px;
-}
-
-/* ***************************************
- PAGE LAYOUT - MAIN BLOCKS POSITIONING
-*************************************** */
-#elgg_topbar {
- background:#333333 url(<?php echo elgg_get_site_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;
- z-index: 9000;
-}
-#elgg_header {
- x-overflow: hidden;
- position: relative;
- width: 100%;
- height:90px;
- background-color: #4690D6;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/header_shadow.png);
- background-repeat: repeat-x;
- background-position: bottom left;
-}
-#elgg_header_contents {
- width:990px;
- position: relative;
- margin:0 auto;
- height:90px;
-}
-#elgg_search {
- bottom:5px;
- height:23px;
- position:absolute;
- right:0;
-}
-#elgg_main_nav {
- z-index: 7000;
- position: absolute;
- height:23px;
- bottom:0;
- left:0;
- width:auto;
-}
-#elgg_content { /* wraps sidebar and page contents */
- width:990px;
- position: relative;
- overflow:hidden;
- word-wrap:break-word;
- margin:0 auto;
- min-height:400px;
-}
-#elgg_content.sidebar { /* class on #elgg_content div to give a full-height sidebar background */
- background-image:url(<?php echo elgg_get_site_url(); ?>_graphics/sidebar_background.gif);
- background-repeat:repeat-y;
- background-position: right top;
-}
-#elgg_page_contents { /* main page contents */
- float:left;
- width:730px;
- position: relative;
- min-height: 360px;
- margin:10px 20px 20px 10px;
-}
-#elgg_page_contents.one_column { /* class on #elgg_page_contents when no sidebar */
- width:970px;
- margin-right:10px;
-}
-#elgg_sidebar { /* elgg sidebar */
- float:right;
- width:210px;
- margin:20px 10px;
- position: relative;
- min-height:360px;
-}
-#elgg_footer {
- position: relative;
- z-index: 999;
-}
-#elgg_footer_contents {
- border-top:1px solid #DEDEDE;
- margin:0 auto;
- width:990px;
- padding:3px 0 10px 0;
- text-align: right;
-}
-
-
-/* ***************************************
- ELGG TOPBAR
-*************************************** */
-#elgg_topbar_contents {
- float:left;
- height:24px;
- left:0px;
- top:0px;
- position:absolute;
- text-align:left;
- width:100%;
-}
-#elgg_topbar_contents a {
- margin-right:30px;
- padding-top:2px;
- display:inline;
- float:left;
- text-align: left;
- color:#eeeeee;
-}
-#elgg_topbar_contents a:hover {
- color:#71cbff;
- text-decoration: none;
-}
-#elgg_topbar_contents a img.user_mini_avatar {
- border:1px solid #eeeeee;
- margin:1px 0 0 10px;
- display: block;
-}
-#elgg_topbar_contents a img.site_logo {
- display: block;
- margin-left:5px;
- margin-top: -1px;
-}
-#elgg_topbar_contents .log_out {
- float:right;
-}
-#elgg_topbar_contents .log_out a {
- display: inline;
- text-align: right;
- margin-right:10px;
- color:#999999;
-}
-#elgg_topbar_contents .log_out a:hover {
- color:#71cbff;
-}
-#elgg_topbar_contents a.myfriends {
- background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left -297px;
- margin-right:30px;
- text-indent: -900em;
- width:36px;
-}
-#elgg_topbar_contents a.myfriends:hover {
- background-position: left -337px;
-}
-#elgg_topbar_contents a.settings {
- background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -300px -41px;
- padding-left:20px !important;
- float:right;
- margin-right:30px;
-}
-#elgg_topbar_contents a.admin {
- background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -300px -41px;
- padding-left:20px !important;
- float:right;
- margin-right:30px;
-}
-#elgg_topbar_contents a.help {
- background:transparent url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat -300px -133px;
- padding-left:18px !important;
- float:right;
- margin-right:30px;
-}
-
-
-/* ***************************************
- HEADER CONTENTS
-*************************************** */
-#elgg_header_contents h1 a span.network_title {
- font-size: 2em;
- line-height:1.4em;
- color: white;
- font-style: italic;
- font-family: Georgia, times, serif;
- display: block;
- text-decoration: none;
- text-shadow:1px 2px 4px #333333;
-}
-#elgg_header_contents #elgg_search input.search_input {
- -webkit-border-radius: 10px;
- -moz-border-radius: 10px;
- background-color:transparent;
- border:1px solid #71b9f7;
- color:white;
- font-size:12px;
- font-weight:bold;
- margin:0;
- padding:2px 4px 2px 26px;
- width:198px;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png);
- background-position: 2px -220px;
- background-repeat: no-repeat;
-}
-#elgg_header_contents #elgg_search input.search_input:focus {
- background-color:white;
- color:#0054A7;
- border:1px solid white;
- background-position: 2px -257px;
-}
-#elgg_header_contents #elgg_search input.search_input:active {
- background-color:white;
- color:#0054A7;
- border:1px solid white;
- background-position: 2px -257px;
-}
-#elgg_header_contents #elgg_search input.search_submit_button {
- display:none;
-}
-
-
-/* ***************************************
- ELGG SITE NAVIGATION in header
-*************************************** */
-.navigation,
-.navigation ul {
- margin:0;
- padding:0;
- display:inline;
- float:left;
- list-style-type: none;
- z-index: 7000;
- position: relative;
-}
-.navigation li {
- list-style: none;
- font-weight: bold;
- position: relative;
- display:block;
- height:23px;
- float:left;
- margin:0;
- padding:0;
-}
-.navigation a {
- color:white;
- margin:0 1px 0 0px;
- text-decoration:none;
- font-weight: bold;
- font-size: 1em;
- padding:3px 13px 0px 13px;
- height:20px;
- cursor: pointer;
- display:block;
-}
-.navigation li a:hover {
- background:white;
- color:#555555;
- -moz-border-radius-topleft:4px;
- -moz-border-radius-topright:4px;
- -webkit-border-top-left-radius:4px;
- -webkit-border-top-right-radius:4px;
- -webkit-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25);
-}
-.navigation li.selected a {
- background:white;
- color:#555555;
- -moz-border-radius-topleft:4px;
- -moz-border-radius-topright:4px;
- -webkit-border-top-left-radius:4px;
- -webkit-border-top-right-radius:4px;
- margin-top:1px;
- -webkit-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25);
-}
-li.navigation_more {
- overflow:hidden;
-}
-li.navigation_more:hover {
- overflow:visible;
-}
-li.navigation_more:hover a {
- background:white;
- color:#555555;
- -moz-border-radius-topleft:4px;
- -moz-border-radius-topright:4px;
- -webkit-border-top-left-radius:4px;
- -webkit-border-top-right-radius:4px;
- -webkit-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 2px -1px 1px rgba(0, 0, 0, 0.25);
-}
-li.navigation_more a.subnav span {
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png);
- background-repeat: no-repeat;
- background-position: -150px -56px;
- padding-left: 12px;
-}
-li.navigation_more:hover a.subnav span,
-li.navigation_more a.subnav:hover span {
- background-position: -150px -76px;
-}
-li.navigation_more ul {
- z-index: 7000;
- min-width: 150px;
- margin-left:-1px;
- background-color:white;
- border-left:1px solid #999999;
- border-right:1px solid #999999;
- border-bottom:1px solid #999999;
- -moz-border-radius-bottomleft:4px;
- -moz-border-radius-bottomright:4px;
- -webkit-border-bottom-left-radius:4px;
- -webkit-border-bottom-right-radius:4px;
- -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25);
- -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.25);
-}
-li.navigation_more ul li {
- float:none;
-}
-.navigation li.navigation_more ul li a {
- background:white;
- color:#555555;
- margin:0;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-.navigation li.navigation_more ul li:last-child a,
-.navigation li.navigation_more ul li:last-child a:hover {
- -moz-border-radius-bottomleft:4px;
- -moz-border-radius-bottomright:4px;
- -webkit-border-bottom-left-radius:4px;
- -webkit-border-bottom-right-radius:4px;
-}
-.navigation li.navigation_more ul li a:hover {
- background:#4690D6;
- color:white;
- margin:0;
- -webkit-border-radius: 0;
- -moz-border-radius: 0;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-.navigation li.navigation_more ul li.selected a {
- background:#4690D6;
- color:white;
-}
-
-/* ***************************************
- FOOTER CONTENTS
-*************************************** */
-#elgg_footer_contents,
-#elgg_footer_contents a,
-#elgg_footer_contents p {
- color:#999999;
-}
-#elgg_footer_contents a:hover {
- color:#666666;
-}
-.#elgg_footer_contents p {
- margin:0;
-}
-.powered_by_elgg_badge {
- float:right;
-}
-
-
-/* ***************************************
- SYSTEM MESSAGES
-*************************************** */
-#elgg_system_message {
- background-color:black;
- color:white;
- font-weight: bold;
- display:block;
- padding:3px 10px;
- z-index: 9600;
- position:fixed;
- right:20px;
- margin-top:10px;
- width:auto;
- max-width: 500px;
- 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);
-}
-#elgg_system_message.error {
- background-color:red;
-}
-#elgg_system_message p {
- margin:0;
-}
-
-
-/* ***************************************
- BREADCRUMBS
-*************************************** */
-.breadcrumbs {
- font-size: 80%;
- line-height:1.2em;
- color:#bababa;
- position: relative;
- top:-6px;
- left:0;
-}
-.breadcrumbs a {
- color:#999999;
- font-weight:bold;
- text-decoration: none;
-}
-.breadcrumbs a:hover {
- color: #0054a7;
- text-decoration: underline;
-}
-
-
-/* ***************************************
- SUBMENU
-*************************************** */
-.submenu {
- margin:0;
- padding:0;
- list-style: none;
-}
-.submenu ul {
- margin-bottom:0;
- padding-left:0;
- list-style: none;
-}
-.submenu li.selected a,
-.submenu li.selected li.selected a,
-.submenu li.selected li.selected li.selected a {
- background: #4690D6;
- color:white;
-}
-.submenu li a {
- display:block;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- background-color:white;
- margin:0 0 3px 0;
- padding:2px 4px 2px 8px;
-}
-.submenu li a:hover {
- background:#0054A7;
- color:white;
- text-decoration:none;
-}
-.submenu .child li a {
- margin-left:15px;
- background-color:white;
- color:#4690D6;
-}
-.submenu .child li a:hover {
- background:#0054A7;
- color:white;
- text-decoration:none;
-}
-
-
-
-/* ***************************************
- PAGINATION
-*************************************** */
-.pagination {
- margin:5px 0 5px 0;
- padding:5px 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;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-.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;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-.pagination .pagination_previous,
-.pagination .pagination_next {
- display:block;
- float:left;
- border:1px solid #cccccc;
- color:#4690d6;
- text-align: center;
- font-size: 12px;
- font-weight: normal;
- margin:0 6px 0 0;
- padding:0px 4px;
- cursor: pointer;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-.pagination .pagination_previous:hover,
-.pagination .pagination_next:hover {
- background:#4690d6;
- border:1px solid #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;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-
-
-/* ***************************************
- ELGG TABBED PAGE NAVIGATION
-*************************************** */
-.elgg_horizontal_tabbed_nav {
- margin-bottom:5px;
- padding: 0;
- border-bottom: 2px solid #cccccc;
- display:table;
- width:100%;
-}
-.elgg_horizontal_tabbed_nav ul {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-.elgg_horizontal_tabbed_nav li {
- float: left;
- border: 2px solid #cccccc;
- border-bottom-width: 0;
- background: #eeeeee;
- margin: 0 0 0 10px;
- -moz-border-radius-topleft:5px;
- -moz-border-radius-topright:5px;
- -webkit-border-top-left-radius:5px;
- -webkit-border-top-right-radius:5px;
-}
-.elgg_horizontal_tabbed_nav a {
- text-decoration: none;
- display: block;
- padding:3px 10px 0 10px;
- text-align: center;
- height:21px;
- color:#999999;
-}
-.elgg_horizontal_tabbed_nav a:hover {
- background: #dedede;
- color:#4690D6;
-}
-.elgg_horizontal_tabbed_nav .selected {
- border-color: #cccccc;
- background: white;
-}
-.elgg_horizontal_tabbed_nav .selected a {
- position: relative;
- top: 2px;
- background: white;
-}
-
-
-/* ***************************************
- LOGIN / REGISTER
-*************************************** */
-/* login in sidebar */
-#elgg_sidebar #login {
- width:auto;
-}
-#elgg_sidebar #login form {
- width:auto;
-}
-#elgg_sidebar #login .login_textarea {
- width:196px;
-}
-/* default login and register forms */
-#login input[type="text"],
-#login input[type="password"],
-.register input[type="text"],
-.register input[type="password"] {
- margin:0 0 10px 0;
-}
-.register input[type="text"],
-.register input[type="password"] {
- width:380px;
-}
-#login .persistent_login {
- float:right;
- display:block;
- margin-top:-34px;
- margin-left:80px;
-}
-#login .persistent_login label {
- font-size:1.0em;
- font-weight: normal;
- cursor: pointer;
-}
-
-
-/* ***************************************
- CONTENT HEADER
-**************************************** */
-#content_header {
- border-bottom:1px solid #CCCCCC;
-}
-#content_header:after {
- content: ".";
- display: block;
- height: 0;
- clear: both;
- visibility: hidden;
-}
-.content_header_title {
- float:left;
-}
-.content_header_title {
- margin-right:10px;
- max-width: 530px;
-}
-.content_header_title h2 {
- border:none;
- margin-bottom:0;
- padding-bottom:5px;
-}
-.content_header_options {
- float:right;
-}
-.content_header_options .action_button {
- float:right;
- margin:0 0 5px 10px;
-}
-
-
-/* ***************************************
- DEFAULT COMMENTS
-**************************************** */
-.generic_comment {
- border-bottom:1px dotted #cccccc;
- clear:both;
- display:block;
- margin:0;
- padding:5px 0 7px;
- position:relative;
-}
-.generic_comment:first-child {
- border-top:1px dotted #cccccc;
-}
-.generic_comment_icon {
- float:left;
- margin-left:3px;
- margin-top:3px;
-}
-.generic_comment_icon img {
- width: auto;
-}
-.generic_comment_details {
- float:left;
- margin-left:7px;
- min-height:28px;
- width:693px;
-}
-.generic_comment_details p {
- margin:0;
-}
-.generic_comment_owner {
- line-height:1.2em;
-}
-.generic_comment_owner a {
- color:#0054A7;
-}
-.generic_comment_body {
- margin:3px 0 5px 0;
-}
-.generic_comment_body p {
- margin-bottom: 10px;
-}
-/* latest comments in sidebar */
-#elgg_sidebar .generic_comment.latest {
- padding:2px 0;
-}
-#elgg_sidebar .generic_comment.latest .generic_comment_icon {
- margin-left:1px;
- margin-top:5px;
-}
-#elgg_sidebar .generic_comment.latest .generic_comment_details {
- width:177px;
- line-height:1.1em;
- overflow:hidden;
-}
-#elgg_sidebar .generic_comment.latest .entity_title {
- font-size: inherit;
- line-height: inherit;
-}
-
-
-/* ***************************************
- DEFAULT ENTITY LISTINGS
-**************************************** */
-.entity_listing {
- border-bottom:1px dotted #cccccc;
- clear:both;
- display:block;
- margin:0;
- padding:4px 0 4px;
- position:relative;
-}
-.entity_listing:first-child {
- border-top:1px dotted #cccccc;
-}
-.entity_listing:hover {
- background-color: #eeeeee;
-}
-.entity_listing_icon {
- float:left;
- margin-left:3px;
- margin-top:3px;
-}
-.entity_listing_icon img {
- width: auto;
-}
-.entity_listing_info {
- float:left;
- margin-left:7px;
- min-height:28px;
- width:693px;
-}
-.entity_listing_info p {
- margin:0;
- /* line-height:1.2em; */
-}
-.entity_title {
- font-weight: bold;
- font-size: 1.1em;
- line-height:1.2em;
- color:#666666;
- padding-bottom:4px;
-}
-.entity_title a {
- color:#0054A7;
-}
-.entity_subtext {
- color:#666666;
- font-size: 85%;
- font-style: italic;
- line-height:1.2em;
-}
-/* entity metadata block */
-.entity_metadata {
- float:right;
- margin:0 3px 0 15px;
- color:#aaaaaa;
- font-size: 90%;
-}
-.entity_metadata span {
- margin-left:14px;
- text-align:right;
-}
-.entity_metadata .entity_edit a {
- color:#aaaaaa;
-}
-.entity_metadata .entity_edit a:hover {
- color:#555555;
-}
-.entity_metadata .delete_button {
- margin-top:3px;
-}
-/* override hover for lists of site users/members */
-.members_list .entity_listing:hover {
- background-color:white;
-}
-
-
-/* ***************************************
- USER SETTINGS
-*************************************** */
-.user_settings {
- margin-bottom:20px;
-}
-.user_settings h3 {
- background:#e4e4e4;
- color:#333333;
- padding:5px;
- margin-top:10px;
- margin-bottom:10px;
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
-}
-.user_settings label {
- color:#333333;
- font-size:100%;
- font-weight:normal;
-}
-.user_settings table.styled {
- width:100%;
-}
-.user_settings table.styled {
- border-top:1px solid #cccccc;
-}
-.user_settings table.styled td {
- padding:2px 4px 2px 4px;
- border-bottom:1px solid #cccccc;
-}
-.user_settings table.styled td.column_one {
- width:200px;
-}
-.user_settings table.styled tr:hover {
- background: #E4E4E4;
-}
-.add_user form {
- width:300px;
-}
-
-
-/* ***************************************
- GENERAL FORM ELEMENTS
-*************************************** */
-/* default elgg core input field classes */
-.input_text,
-.input_tags,
-.input_url,
-.input_textarea {
- width:98%;
-}
-.input_access {
- margin:5px 0 0 0;
-}
-.input_password {
- width:200px;
-}
-.input_textarea {
- height: 200px;
- width:718px;
-}
-input[type="checkbox"],
-input.input_radio {
- margin:0 3px 0 0;
- padding:0;
- border:none;
-}
-label {
- font-weight: bold;
- color:#333333;
- font-size: 110%;
-}
-input {
- font: 120% Arial, Helvetica, sans-serif;
- padding: 5px;
- border: 1px solid #cccccc;
- color:#666666;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-textarea {
- font: 120% Arial, Helvetica, sans-serif;
- border: solid 1px #cccccc;
- padding: 5px;
- color:#666666;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-textarea:focus,
-input[type="text"]:focus {
- border: solid 1px #4690d6;
- background: #e4ecf5;
- color:#333333;
-}
-.input_textarea.monospace {
- font-family:Monaco,"Courier New",Courier,monospace;
- font-size:13px;
-}
-a.longtext_control {
- float:right;
- margin-left:14px;
-}
-.submit_button {
- font-size: 14px;
- font-weight: bold;
- color: white;
- text-shadow:1px 1px 0px black;
- text-decoration:none;
- border: 1px solid #4690d6;
- background-color:#4690d6;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:0 10px 10px 0;
- cursor: pointer;
- -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
- -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
-}
-.submit_button:hover {
- color: white;
- border-color: #0054a7;
- text-decoration:none;
- background-color:#0054a7;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
-}
-.submit_button.disabled {
- background-color:#999999;
- border-color:#999999;
- color:#dedede;
-}
-.submit_button.disabled:hover {
- background-color:#999999;
- border-color:#999999;
- color:#dedede;
-}
-input[type="password"]:focus {
- border: solid 1px #4690d6;
- background-color: #e4ecf5;
- color:#333333;
-}
-input[type="submit"] {
- font-size: 14px;
- font-weight: bold;
- color: white;
- text-shadow:1px 1px 0px black;
- text-decoration:none;
- border: 1px solid #4690d6;
- background-color:#4690d6;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:10px 0 10px 0;
- cursor: pointer;
- -moz-outline-style: none;
- 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);
-}
-input[type="submit"]:hover {
- border-color: #0054a7;
- text-decoration:none;
- background-color:#0054a7;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
-}
-.cancel_button {
- font-size: 14px;
- font-weight: bold;
- text-decoration:none;
- color: #333333;
- background-color:#dddddd;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- border: 1px solid #999999;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:10px 0 10px 10px;
- cursor: pointer;
-}
-.cancel_button:hover {
- background-color: #999999;
- background-position: left 10px;
- text-decoration:none;
- color:white;
-}
-input.action_button,
-a.action_button {
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- background-color:#cccccc;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif);
- background-repeat: repeat-x;
- background-position: 0 0;
- border:1px solid #999999;
- color:#333333;
- padding:2px 15px 2px 15px;
- text-align:center;
- font-weight:bold;
- text-decoration:none;
- text-shadow:0 1px 0 white;
- cursor:pointer;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-input.action_button:hover,
-a.action_button:hover,
-input.action_button:focus,
-a.action_button:focus {
- background-position:0 -15px;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif);
- background-repeat: repeat-x;
- color:#111111;
- text-decoration: none;
- background-color:#cccccc;
- border:1px solid #999999;
-}
-.action_button:active {
- background-image:none;
-}
-.action_button.disabled {
- color:#999999;
- padding:2px 7px 2px 7px;
-}
-.action_button.disabled:hover {
- background-position:0 -15px;
- color:#111111;
- border:1px solid #999999;
-}
-.action_button.disabled:active {
- background-image:none;
-}
-.action_button.download {
- padding: 5px 9px 5px 6px;
-}
-.action_button.download:hover {
-
-}
-.action_button.download img {
- margin-right:6px;
- position:relative;
- top:5px;
-}
-.action_button.small {
- -webkit-border-radius: 3px;
- -moz-border-radius: 3px;
- width: auto;
- height:8px;
- padding: 4px;
- font-size: 0.9em;
- line-height: 0.6em;
-}
-.action_button.small:hover {
- background-color: #4690d6;
- background-image: none;
- border-color: #4690d6;
- color:white;
- text-shadow:0 -1px 0 black;
-}
-/* small round delete button */
-.delete_button {
- width:14px;
- height:14px;
- margin:0;
- float:right;
-}
-.delete_button a {
- display:block;
- cursor: pointer;
- width:14px;
- height:14px;
- background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat -200px top;
- text-indent: -9000px;
- text-align: left;
-}
-.delete_button a:hover {
- background-position: -200px -16px;
-}
-
-
-/* ***************************************
- FRIENDS PICKER
-*************************************** */
-.friends_picker_container h3 {
- font-size:4em !important;
- text-align: left;
- margin:10px 0 20px 0 !important;
- color:#999999 !important;
- background: none !important;
- padding:0 !important;
-}
-.friends_picker .friends_picker_container .panel ul {
- text-align: left;
- margin: 0;
- padding:0;
-}
-.friends_picker_wrapper {
- margin: 0;
- padding:0;
- position: relative;
- width: 100%;
-}
-.friends_picker {
- position: relative;
- overflow: hidden;
- margin: 0;
- padding:0;
- width: 730px;
- height: auto;
-}
-.friendspicker_savebuttons {
- background: white;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- margin:0 10px 10px 10px;
-}
-.friends_picker .friends_picker_container { /* long container used to house end-to-end panels. Width is calculated in JS */
- position: relative;
- left: 0;
- top: 0;
- width: 100%;
- list-style-type: none;
-}
-.friends_picker .friends_picker_container .panel {
- float:left;
- height: 100%;
- position: relative;
- width: 730px;
- margin: 0;
- padding:0;
-}
-.friends_picker .friends_picker_container .panel .wrapper {
- margin: 0;
- padding:4px 10px 10px 10px;
- min-height: 230px;
-}
-.friends_picker_navigation {
- margin: 0 0 10px 0;
- padding:0 0 10px 0;
- border-bottom:1px solid #cccccc;
-}
-.friends_picker_navigation ul {
- list-style: none;
- padding-left: 0;
-}
-.friends_picker_navigation ul li {
- float: left;
- margin:0;
- background:white;
-}
-.friends_picker_navigation a {
- font-weight: bold;
- text-align: center;
- background: white;
- color: #999999;
- text-decoration: none;
- display: block;
- padding: 0;
- width:20px;
- -webkit-border-radius: 4px;
- -moz-border-radius: 4px;
-}
-.tabHasContent {
- background: white;
- color:#333333 !important;
-}
-.friends_picker_navigation li a:hover {
- background: #333333;
- color:white !important;
-}
-.friends_picker_navigation li a.current {
- background: #4690D6;
- color:white !important;
-}
-.friends_picker_navigation_l, .friends_picker_navigation_r {
- position: absolute;
- top: 46px;
- text-indent: -9000em;
-}
-.friends_picker_navigation_l a, .friends_picker_navigation_r a {
- display: block;
- height: 43px;
- width: 43px;
-}
-.friends_picker_navigation_l {
- right: 48px;
- z-index:1;
-}
-.friends_picker_navigation_r {
- right: 0;
- z-index:1;
-}
-.friends_picker_navigation_l {
- background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat left top;
-}
-.friends_picker_navigation_r {
- background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat -60px top;
-}
-.friends_picker_navigation_l:hover {
- background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat left -44px;
-}
-.friends_picker_navigation_r:hover {
- background: url("<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png") no-repeat -60px -44px;
-}
-.friendspicker_savebuttons .submit_button,
-.friendspicker_savebuttons .cancel_button {
- margin:5px 20px 5px 5px;
-}
-#collectionMembersTable {
- background: #dedede;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- margin:10px 0 0 0;
- padding:10px 10px 0 10px;
-}
-
-
-/* ***************************************
- LIKES
-*************************************** */
-.likes_list_holder {
- position: relative;
- float:right;
-}
-.likes_list_holder a.user_like {
- cursor:pointer;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left -101px;
- text-indent: -9000em;
- text-align: left;
- display:block;
- width:20px;
- height:20px;
- margin:0;
- float:left;
-}
-.likes_list_holder a.user_like:hover {
- background-position: left -131px;
-}
-.likes_list_holder .likes_list_button.link {
- float:left;
- text-align: left;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/elgg_sprites.png) no-repeat left -131px;
- padding-left:21px;
- height:20px;
-}
-.likes_list_holder .likes_list_button.link.not_liked {
- background:none;
- padding-left:0;
-}
-.likes_list_holder .likes_list {
- background-color: white;
- border:1px solid #cccccc;
- width: 345px;
- height: auto;
- position: absolute;
- text-align: left;
- z-index: 9999;
- -webkit-border-radius: 6px;
- -moz-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);
-}
-.likes_list_holder .elgg_likes_user {
- border-bottom:1px solid #cccccc;
- padding:3px;
-}
-.likes_list_holder .elgg_likes_user .entity_listing_info {
- width:305px;
-}
-.entity_listing .elgg_likes_user .entity_metadata {
- min-width:20px !important;
-}
-.elgg_likes_user .entity_listing_icon {
- margin:3px 0 4px 2px;
-}
-.elgg_likes_user .entity_metadata {
- margin-top:3px;
-}
-p.elgg_likes_owner {
- padding-top:4px;
-}
-
-.user_picker .user_picker_entry {
- clear:both;
- height:25px;
- padding:5px;
- margin-top:5px;
- border-bottom:1px solid #cccccc;
-}
-.user_picker_entry .delete_button {
- margin-right:10px;
-}
+ *
+ * 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/css_ie.php b/views/default/css_ie.php
deleted file mode 100644
index 3e0c91c40..000000000
--- a/views/default/css_ie.php
+++ /dev/null
@@ -1,67 +0,0 @@
-/**
- * elgg_layout css for Internet Explorer > ie6
- * @uses $vars['wwwroot'] The site URL
-*/
-* {zoom: 1;} /* trigger hasLayout in IE */
-
-/* tools drop-down menu */
-#elgg_header {z-index:1;}
-.navigation li a:hover ul {display:block; position:absolute; top:21px; left:0;}
-.navigation li a:hover ul li a {display:block;}
-.navigation li.navigation_more ul li a {width:150px;background-color: #dedede;}
-
-.clearfloat { display: block; }
-.hidden.clearfloat { display: none; }
-#elgg_page_contents {overflow: hidden;} /* remove horizontal scroll on riverdash */
-#breadcrumbs {top:-2px; margin-bottom: 5px;}
-
-/* entity list views */
-.entity_metadata {max-width: 300px;}
-.entity_edit {float:right;}
-.access_level {float:left;}
-.entity_listing .entity_metadata {
- min-width:400px;
- text-align: right;
-}
-
-.likes_list {display:none;}
-.likes_list_holder .likes_list {top:20px !important;} /* position likes list below link in IE to prevent clipping */
-.elgg_likes_user .entity_metadata .delete_button {float:none;}
-
-/* profile */
-.elgg_horizontal_tabbed_nav.profile .profile_name {margin-left: -260px;}
-#profile_content .river_comment_form.hidden .input_text { width:510px; }
-
-/* notifications */
-.friends_picker_navigation {margin:0;padding:0;}
-.friends_picker_container h3 {margin:0;padding:0;line-height: 1em;}
-
-/* private messages */
-#elgg_topbar_contents a.privatemessages.new span {
- display:block;
- padding:1px;
- position:relative;
- text-align:center;
- float:left;
- top:-1px;
- right:auto;
-}
-#elgg_topbar_contents a.privatemessages.new {padding:0 0 0 20px;}
-#elgg_topbar_contents a.privatemessages:hover {background-position:left 2px;}
-#elgg_topbar_contents a.privatemessages.new:hover {background-position: left 2px;}
-
-/* riverdashboard mod rules */
-#riverdashboard_updates {clear:both;}
-#riverdashboard_updates a.update_link {margin:0 0 9px 0;}
-.riverdashboard_filtermenu {margin:10px 0 0 0;}
-.river_comment_form.hidden .input_text {
- width:530px;
- float:left;
-}
-.river_link_divider {
- width:10px;
- text-align: center;
-}
-
-/* shared access */
-.shared_access_collection h2.shared_access_name {margin-top:-15px;}
diff --git a/views/default/css_ie6.php b/views/default/css_ie6.php
deleted file mode 100644
index 57890e62d..000000000
--- a/views/default/css_ie6.php
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * elgg_layout css for Internet Explorer6
- * @uses $vars['wwwroot'] The site URL
-*/
-
-* {zoom: 1;} /* trigger hasLayout in IE */
-
-/* main nav drop-down */
-#elgg_header {z-index:1;}
-.navigation li a:hover ul {display:block; position:absolute; top:21px; left:0;}
-.navigation li a:hover ul li a {display:block;}
-.navigation li.navigation_more ul li a {width:150px;background-color: #dedede;}
-
-/* @todo check this one */
-.delete_button a { background-position-y: 2px; }
-.delete_button a:hover { background-position-y: -14px; } \ No newline at end of file
diff --git a/views/default/dashboard/blurb.php b/views/default/dashboard/blurb.php
deleted file mode 100644
index 40b5b70a4..000000000
--- a/views/default/dashboard/blurb.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Elgg comments add form
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-?>
-
-<div id="dashboard_info">
-<p>
-<?php
-
- echo elgg_echo("dashboard:nowidgets");
-
-?>
-</p>
-<p>
- <a href="<?php echo elgg_get_site_url(); ?>pages/dashboard/latest.php"><?php echo elgg_echo('content:latest:blurb'); ?></a>
-</p>
-</div> \ No newline at end of file
diff --git a/views/default/entities/entity_list.php b/views/default/entities/entity_list.php
deleted file mode 100644
index cf3df78b7..000000000
--- a/views/default/entities/entity_list.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * View a list of entities
- *
- * @package Elgg
- *
- */
-
-$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'];
-$fullview = $vars['fullview'];
-
-$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,
- ));
-}
-
-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('entities/gallery', array('entities' => $entities));
- }
-}
-
-if ($count) {
- $html .= $nav;
-}
-
-echo $html; \ No newline at end of file
diff --git a/views/default/entities/entity_listing.php b/views/default/entities/entity_listing.php
deleted file mode 100644
index 6e0d9c0f8..000000000
--- a/views/default/entities/entity_listing.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Generic display for a single entity in list view.
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses string $vars['icon'] Full icon HTML to display.
- * @uses string $vars['info'] Info about the entity.
- */
-?>
-<div class="entity_listing clearfloat">
- <div class="entity_listing_icon">
- <?php echo $vars['icon']; ?>
- </div>
- <div class="entity_listing_info">
- <?php echo $vars['info']; ?>
- </div>
-</div>
diff --git a/views/default/entities/gallery.php b/views/default/entities/gallery.php
deleted file mode 100644
index bfdd4d4d8..000000000
--- a/views/default/entities/gallery.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-/**
- * Elgg gallery view
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$entities = $vars['entities'];
-if (is_array($entities) && sizeof($entities) > 0) {
-
-?>
-
-<table class="entity_gallery">
-
-<?php
-
- $col = 0;
- foreach($entities as $entity) {
- if ($col == 0) {
-
- echo "<tr>";
-
- }
- echo "<td class='entity_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/entities/gallery_listing.php b/views/default/entities/gallery_listing.php
deleted file mode 100644
index 897509b0a..000000000
--- a/views/default/entities/gallery_listing.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Generic display for a single entity in gallery view.
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses string $vars['icon'] Full icon HTML to display.
- * @uses string $vars['info'] Info about the entity.
- */
-
-?>
-
-<div class="gallery_listing clearfloat">
- <div class="gallery_listing_icon">
- <?php echo $vars['icon']; ?>
- </div>
- <div class="gallery_listing_info">
- <?php echo $vars['info']; ?>
- </div>
-</div>
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 c2fd7f8b8..3064f1288 100644
--- a/views/default/export/entity.php
+++ b/views/default/export/entity.php
@@ -11,9 +11,12 @@ $entity = $vars['entity'];
if (!$entity) {
throw new InvalidParameterException(elgg_echo('InvalidParameterException:NoEntityFound'));
}
-
-$metadata = get_metadata_for_entity($entity->guid);
-$annotations = get_annotations($entity->guid);
+$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();
@@ -22,9 +25,9 @@ $exportable_values = $entity->getExportableValues();
<h2><?php echo elgg_echo('Entity'); ?></h2>
<?php
foreach ($entity as $k => $v) {
- if ((in_array($k, $exportable_values)) || (isadminloggedin())) {
+ if ((in_array($k, $exportable_values)) || (elgg_is_admin_logged_in())) {
?>
- <p class="margin_none"><b><?php echo $k; ?>: </b><?php echo strip_tags($v); ?></p>
+ <p class="margin-none"><b><?php echo $k; ?>: </b><?php echo strip_tags($v); ?></p>
<?php
}
}
@@ -32,12 +35,12 @@ $exportable_values = $entity->getExportableValues();
</div>
<?php if ($metadata) { ?>
-<div id="metadata" class="margin_top">
+<div id="metadata" class="mtm">
<h2><?php echo elgg_echo('metadata'); ?></h2>
<?php
foreach ($metadata as $m) {
?>
- <p class="margin_none"><b><?php echo $m->name; ?>: </b><?php echo $m->value; ?></p>
+ <p class="margin-none"><b><?php echo $m->name; ?>: </b><?php echo $m->value; ?></p>
<?php
}
?>
@@ -46,13 +49,13 @@ $exportable_values = $entity->getExportableValues();
<?php } ?>
<?php if ($annotations) { ?>
-<div id="annotations" class="margin_top">
+<div id="annotations" class="mtm">
<h2><?php echo elgg_echo('annotations'); ?></h2>
<?php
foreach ($annotations as $a) {
?>
<table>
- <p class="margin_none"><b><?php echo $a->name; ?>: </b><?php echo $a->value; ?></p>
+ <p class="margin-none"><b><?php echo $a->name; ?>: </b><?php echo $a->value; ?></p>
</table>
<?php
}
@@ -61,13 +64,13 @@ $exportable_values = $entity->getExportableValues();
<?php } ?>
<?php if ($relationships) { ?>
-<div id="relationship" class="margin_top">
+<div id="relationship" class="mtm">
<h2><?php echo elgg_echo('relationships'); ?></h2>
<?php
foreach ($relationships as $r) {
?>
<table>
- <p class="margin_none"><b><?php echo $r->relationship; ?>: </b><?php echo $r->guid_two; ?></p>
+ <p class="margin-none"><b><?php echo $r->relationship; ?>: </b><?php echo $r->guid_two; ?></p>
</table>
<?php
}
diff --git a/views/default/export/metadata.php b/views/default/export/metadata.php
index 477cde3c3..1dd7f2054 100644
--- a/views/default/export/metadata.php
+++ b/views/default/export/metadata.php
@@ -10,5 +10,5 @@
$m = $vars['metadata'];
$e = get_entity($m->entity_guid);
?>
-<p class="margin_none"><?php if ($e) echo "<a href=\"" . $e->getURL() . "\">GUID:{$m->entity_guid}</a>"; else echo "GUID:".$m->entity_guid;
+<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 e7c8ac121..d8cb3e4f4 100644
--- a/views/default/export/relationship.php
+++ b/views/default/export/relationship.php
@@ -12,7 +12,7 @@ $r = $vars['relationship'];
$e1 = get_entity($r->guid_one);
$e2 = get_entity($r->guid_two);
?>
-<p class="margin_none"><?php
+<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>
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 636d2ab5c..000000000
--- a/views/default/friends/collection.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Elgg friends collection
- * Lists one of a user's friends collections
- *
- * @package Elgg
- * @subpackage Core
- *
- * @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 == get_loggedin_userid()) {
- echo "<div class=\"friends_collections_controls\">";
- echo elgg_view('output/confirmlink', array(
- 'href' => elgg_get_site_url() . 'action/friends/deletecollection?collection=' . $coll->id,
- 'class' => 'delete_collection'
- ));
- 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' => get_loggedin_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 elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo get_loggedin_user()->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/friends/collectiontabs.php b/views/default/friends/collectiontabs.php
deleted file mode 100644
index f191f2c58..000000000
--- a/views/default/friends/collectiontabs.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?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();
-
-?>
-
-<div id="elgg_horizontal_tabbed_nav">
-<ul>
-<li class="selected"><a href="#" class="collectionmembers<?php echo $friendspicker; ?>"><?php echo elgg_echo('friends:collections:members'); ?></a></li>
-
-<li><a href="#" class="editmembers<?php echo $friendspicker; ?>"><?php echo elgg_echo('friends:collections:edit'); ?></a></li>
-
-</ul>
-</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 elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo get_loggedin_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 elgg_get_site_url(); ?>pages/friends/pickercallback.php?username=<?php echo get_loggedin_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>
diff --git a/views/default/friends/forms/collectionfields.php b/views/default/friends/forms/collectionfields.php
deleted file mode 100644
index 35db3a962..000000000
--- a/views/default/friends/forms/collectionfields.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg friend collections required hidden fields for js friends picker form
- *
- * @package Elgg
- * @subpackage Core
- */
-
-if (isset($vars['collection'])) {
-?>
-
- <input type="hidden" name="collection_id" value="<?php echo $vars['collection']->id; ?>" />
-
-<?php
-} \ No newline at end of file
diff --git a/views/default/friends/forms/edit.php b/views/default/friends/forms/edit.php
deleted file mode 100644
index 09a16c9ae..000000000
--- a/views/default/friends/forms/edit.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-/**
- * Elgg friend collections add/edit
- *
- * @package Elgg
- * @subpackage Core
- *
- * @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;
- $highlight = 'default';
-} else {
- $action = "friends/addcollection";
- $title = "";
- $highlight = 'all';
-}
-
-
-$form_body = "<div class='contentWrapper'><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") . "</label>".
- elgg_view('friends/picker',array('entities' => $vars['friends'], 'internalname' => 'friends_collection', 'highlight' => $highlight)) . "</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></div>";
-
-echo elgg_view('input/form', array('body' => $form_body, 'action' => elgg_get_site_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 182dc2ef5..000000000
--- a/views/default/friends/list.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Elgg friends list
- * Lists a user's friends
- *
- * @package Elgg
- * @subpackage Core
- *
- * @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/river/create.php b/views/default/friends/river/create.php
deleted file mode 100644
index b0319beb5..000000000
--- a/views/default/friends/river/create.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-/**
- * Elgg create new friend river item
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-$performed_by = get_entity($vars['item']->subject_guid);
-$performed_on = get_entity($vars['item']->object_guid);
-
-$url = "<a href=\"{$performed_by->getURL()}\">{$performed_by->name}</a>";
-$string = sprintf(elgg_echo("friends:river:add"),$url) . " ";
-$string .= "<a href=\"{$performed_on->getURL()}\">{$performed_on->name}</a>";
-$string .= "<div class=\"river_content_display\">";
-$string .= "<table><tr><td>" . elgg_view("profile/icon",array('entity' => $performed_by, 'size' => 'tiny')) . "</td>";
-$string .= "<td><div class=\"following_icon\"></div></td><td>" . elgg_view("profile/icon",array('entity' => $performed_on, 'size' => 'tiny')) . "</td></tr></table>";
-$string .= "</div>";
-
-echo $string; \ 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 226287d6e..000000000
--- a/views/default/graphics/icon.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Generic icon view.
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['entity'] The entity the icon represents - uses getIcon() method
- * @uses $vars['js'] Any JavaScript to add to img tag
- * @uses $vars['size'] topbar, tiny, small, medium (default), large, master
- * @uses $vars['link'] Optional link for the image
- * @uses $vars['align'] Align attribute of the img tag
- */
-
-$entity = $vars['entity'];
-
-$sizes = array('small','medium','large','tiny','master','topbar');
-// Get size
-if (!in_array($vars['size'], $sizes)) {
- $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 662baef92..383a25c49 100644
--- a/views/default/group/default.php
+++ b/views/default/group/default.php
@@ -7,4 +7,3 @@
*/
echo elgg_view('object/default', $vars);
-?> \ No newline at end of file
diff --git a/views/default/group/elements/summary.php b/views/default/group/elements/summary.php
new file mode 100644
index 000000000..395ed5292
--- /dev/null
+++ b/views/default/group/elements/summary.php
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Group summary
+ *
+ * @uses $vars['entity'] ElggEntity
+ * @uses $vars['title'] Title link (optional) false = no title, '' = default
+ * @uses $vars['metadata'] HTML for entity metadata and actions (optional)
+ * @uses $vars['subtitle'] HTML for the subtitle (optional)
+ * @uses $vars['tags'] HTML for the tags (optional)
+ * @uses $vars['content'] HTML for the entity content (optional)
+ */
+
+echo elgg_view('object/elements/summary', $vars);
diff --git a/views/default/group/search/finishblurb.php b/views/default/group/search/finishblurb.php
index a21f95881..ceaeb0ff0 100644
--- a/views/default/group/search/finishblurb.php
+++ b/views/default/group/search/finishblurb.php
@@ -9,7 +9,7 @@ elgg_deprecated_notice('view groups/search/finishblurb was deprecated.', 1.7);
if ($vars['count'] > $vars['threshold']) {
?>
-<div class="contentWrapper"><a href="<?php echo elgg_get_site_url(); ?>pg/search/groups/?tag=<?php echo urlencode($vars['tag']); ?>">
+<div class="contentWrapper"><a href="<?php echo elgg_get_site_url(); ?>search/groups?tag=<?php echo urlencode($vars['tag']); ?>">
<?php
echo elgg_echo("group:search:finishblurb");
?></a>
diff --git a/views/default/group/search/startblurb.php b/views/default/group/search/startblurb.php
index 3a5809193..92256d1db 100644
--- a/views/default/group/search/startblurb.php
+++ b/views/default/group/search/startblurb.php
@@ -9,6 +9,6 @@ elgg_deprecated_notice('view groups/search/startblurb was deprecated.', 1.7);
<div class="contentWrapper">
<?php
- echo sprintf(elgg_echo("group:search:startblurb"),$vars['tag']);
+ 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 b7273acb1..137eea288 100644
--- a/views/default/input/access.php
+++ b/views/default/input/access.php
@@ -1,57 +1,38 @@
<?php
/**
* Elgg access level input
- * Displays a pulldown input field
- *
- * @package Elgg
- * @subpackage Core
-
-
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
+ * 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 = "input_access";
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-input-access {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-access";
}
-$disabled = false;
-if (isset($vars['disabled'])) {
- $disabled = $vars['disabled'];
-}
+$defaults = array(
+ 'disabled' => false,
+ 'value' => get_default_access(),
+ 'options_values' => get_write_access_array(),
+);
-if (!array_key_exists('value', $vars) || $vars['value'] == ACCESS_DEFAULT) {
- $vars['value'] = get_default_access();
+if (isset($vars['entity'])) {
+ $defaults['value'] = $vars['entity']->access_id;
+ unset($vars['entity']);
}
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
+$vars = array_merge($defaults, $vars);
-if ((!isset($vars['options'])) || (!is_array($vars['options']))) {
- $vars['options'] = array();
- $vars['options'] = get_write_access_array();
+if ($vars['value'] == ACCESS_DEFAULT) {
+ $vars['value'] = get_default_access();
}
-if (is_array($vars['options']) && sizeof($vars['options']) > 0) {
- ?>
-
- <select <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['js'])) echo $vars['js']; ?> <?php if ($disabled) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>">
- <?php
-
- foreach($vars['options'] as $key => $option) {
- if ($key != $vars['value']) {
- echo "<option value=\"{$key}\">". htmlentities($option, ENT_QUOTES, 'UTF-8') ."</option>";
- } else {
- echo "<option value=\"{$key}\" selected=\"selected\">". htmlentities($option, ENT_QUOTES, 'UTF-8') ."</option>";
- }
- }
-
- ?>
- </select>
- <?php
-} \ No newline at end of file
+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
index 67d01c0c7..e58eb1ae8 100644
--- a/views/default/input/autocomplete.php
+++ b/views/default/input/autocomplete.php
@@ -7,94 +7,43 @@
*
* @todo This currently only works for ONE AUTOCOMPLETE TEXT FIELD on a page.
*
- * @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['match_on'] Array | str What to match on. all|array(group|user|friend|subtype)
+ * @uses $vars['value'] Current value for the text input
+ * @uses $vars['match_on'] Array | str What to match on. all|array(groups|users|friends)
* @uses $vars['match_owner'] Bool. Match only entities that are owned by logged in user.
- *
+ * @uses $vars['class'] Additional CSS class
*/
-global $autocomplete_js_loaded;
-
-$internalname = $vars['internalname'];
-$value = $vars['value'];
-
-if(!$value) {
- $value= '';
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-autocomplete {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-autocomplete";
}
-if($vars['internal_id']) {
- $id_autocomplete = $vars['internal_id'];
-}
+$defaults = array(
+ 'value' => '',
+ 'disabled' => false,
+);
-$ac_url_params = http_build_query(array(
- 'match_on' => $vars['match_on'],
- 'match_owner' => $vars['match_owner'],
-));
-$ac_url = elgg_get_site_url() . 'pg/autocomplete?' . $ac_url_params;
+$vars = array_merge($defaults, $vars);
-if (!isset($autocomplete_js_loaded)) {
- $autocomplete_js_loaded = false;
+$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);
-?>
-
-<!-- show the input -->
-<input type="text" class='autocomplete' name ='<?php echo $internalname; ?>_autocomplete' value='<?php echo $value?>' />
-<input type="hidden" name="<?php echo $internalname; ?>" value='<?php echo $value; ?>' />
-
-<?php
-if (!$autocomplete_js_loaded) {
- ?>
-
- <!-- include autocomplete -->
- <script language="javascript" type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery.autocomplete.min.js"></script>
- <script type="text/javascript">
- function bindAutocomplete() {
- $('input[type=text].autocomplete').autocomplete("<?php echo $ac_url; ?>", {
- minChars: 1,
- matchContains: true,
- autoFill: false,
- formatItem: function(row, i, max, term) {
- eval("var info = " + row + ";");
- var r = '';
-
- switch (info.type) {
- case 'user':
- case 'group':
- r = info.icon + info.name + ' - ' + info.desc;
- break;
-
- default:
- r = info.name + ' - ' + info.desc;
- break;
- }
- return r.replace(new RegExp("(" + term + ")", "gi"), "<b>$1</b>");
- }
- });
-
- $('input[type=text].autocomplete').result(function(event, data, formatted) {
- eval("var info = " + data + ";");
- $(this).val(info.name);
-
- var hidden = $(this).next();
- hidden.val(info.guid);
- });
- }
-
- $(document).ready(function() {
- bindAutocomplete();
- });
-
- </script>
+elgg_load_js('elgg.autocomplete');
+elgg_load_js('jquery.ui.autocomplete.html');
- <?php
+?>
- $autocomplete_js_loaded = true;
-} else {
- ?>
- <!-- rebind autocomplete -->
- <script type="text/javascript">bindAutocomplete();</script>
- <?php
-} \ No newline at end of file
+<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 63a140524..9957fdc54 100644
--- a/views/default/input/button.php
+++ b/views/default/input/button.php
@@ -5,56 +5,36 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['internalid'] The id of the input field
- * @uses $vars['type'] Submit, button, or reset, defaults to submit.
- * @uses $vars['src'] Src of an image
- *
+ * @uses $vars['src'] Src of an image
+ * @uses $vars['class'] Additional CSS class
*/
-global $CONFIG;
-
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-button {$vars['class']}";
} else {
- $class = "submit_button";
+ $vars['class'] = "elgg-button";
}
-// defaults to submit button
-if (isset($vars['type'])) {
- $type = strtolower($vars['type']);
-} else {
- $type = 'submit';
-}
+$defaults = array(
+ 'type' => 'button',
+);
-switch ($type) {
- case 'button' :
- $type='button';
- break;
- case 'reset' :
- $type='reset';
- break;
+$vars = array_merge($defaults, $vars);
+
+switch ($vars['type']) {
+ case 'button':
+ case 'reset':
case 'submit':
+ case 'image':
+ break;
default:
- $type = 'submit';
-}
-
-$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8');
-
-$name = '';
-if (isset($vars['internalname'])) {
- $name = $vars['internalname'];
+ $vars['type'] = 'button';
+ break;
}
-$src = '';
-if (isset($vars['src'])) {
- $src = "src=\"{$vars['src']}\"";
-}
-// blank src if trying to access an offsite image.
-if (strpos($src,$CONFIG->wwwroot)===false) {
- $src = "";
+// 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 name="<?php echo $name; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> type="<?php echo $type; ?>" class="<?php echo $class; ?>" <?php echo $vars['js']; ?> value="<?php echo $value; ?>" <?php echo $src; ?> /> \ No newline at end of file
+<input <?php echo elgg_format_attributes($vars); ?> />
diff --git a/views/default/input/calendar.php b/views/default/input/calendar.php
index 553a254ce..52c84ff82 100644
--- a/views/default/input/calendar.php
+++ b/views/default/input/calendar.php
@@ -1,6 +1,6 @@
<?php
-// @deprecated Use datepicker instead.
+// @deprecated Use input/date instead.
-elgg_deprecated_notice('view: input/calendar is deprecated by input/datepicker', 1.8);
+elgg_deprecated_notice('view: input/calendar is deprecated by input/date', 1.8);
echo elgg_view('input/datepicker', $vars); \ No newline at end of file
diff --git a/views/default/input/captcha.php b/views/default/input/captcha.php
index 210e0f50a..1c2e22aaa 100644
--- a/views/default/input/captcha.php
+++ b/views/default/input/captcha.php
@@ -1,6 +1,6 @@
<?php
/**
- * This view provides a hook for third parties to provide captcha behaviour.
+ * This view provides a hook for third parties to provide a CAPTCHA.
*
* @package Elgg
* @subpackage Core
diff --git a/views/default/input/checkbox.php b/views/default/input/checkbox.php
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 adfe19914..db4b06949 100644
--- a/views/default/input/checkboxes.php
+++ b/views/default/input/checkboxes.php
@@ -2,94 +2,89 @@
/**
* Elgg checkbox input
* Displays a checkbox input field
- * NB: This also includes a hidden input with the same name as the checkboxes
+ *
+ * @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=internalname])
+ * $('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['internalname'] 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['internalid'] The id for each input field. Optional (Only use this with a single value.)
- * @uses string $vars['default'] The default value to send if nothing is checked. Optional, defaults to 0.
- * @uses bool $vars['disabled'] Make all input elements disabled. Optional.
- * @uses string $vars['value'] The current value. Optional.
- * @uses string $vars['class'] The class of each input element. Optional.
- * @uses string $vars['js'] Any Javascript to enter into the input tag. Optional.
+ * @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'
*
*/
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
+$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']);
}
-$class = (isset($vars['class'])) ? $vars['class'] : 'input_checkboxes';
-$value = (isset($vars['value'])) ? $vars['value'] : NULL;
-$value_array = (is_array($value)) ? array_map('strtolower', $value) : array(strtolower($value));
-$internalname = (isset($vars['internalname'])) ? $vars['internalname'] : '';
-$options = (isset($vars['options']) && is_array($vars['options'])) ? $vars['options'] : array();
-$default = (isset($vars['default'])) ? $vars['default'] : 0;
+$id = '';
+if (isset($vars['id'])) {
+ $id = "id=\"{$vars['id']}\"";
+ unset($vars['id']);
+}
+
+if (is_array($vars['value'])) {
+ $values = array_map('elgg_strtolower', $vars['value']);
+} else {
+ $values = array(elgg_strtolower($vars['value']));
+}
-$id = (isset($vars['internalid'])) ? $vars['internalid'] : '';
-$disabled = (isset($vars['disabled'])) ? $vars['disabled'] : FALSE;
-$js = (isset($vars['js'])) ? $vars['js'] : '';
+$input_vars = $vars;
+$input_vars['default'] = false;
+if ($vars['name']) {
+ $input_vars['name'] = "{$vars['name']}[]";
+}
+unset($input_vars['align']);
+unset($input_vars['options']);
-if ($options) {
+if (count($vars['options']) > 0) {
// include a default value so if nothing is checked 0 will be passed.
- if ($internalname) {
- echo "<input type=\"hidden\" name=\"$internalname\" value=\"$default\">";
+ if ($vars['name'] && $vars['default'] !== false) {
+ echo "<input type=\"hidden\" name=\"{$vars['name']}\" value=\"{$vars['default']}\" />";
}
- foreach($options as $label => $option) {
- // @hack - This sorta checks if options is not an assoc array and then
- // ignores the label (because it's just the index) and sets the value ($option)
- // as the label.
- // Wow.
- // @todo deprecate in Elgg 1.8
+ echo "<ul class=\"$class\" $id>";
+ foreach ($vars['options'] as $label => $value) {
+ // @deprecated 1.8 Remove in 1.9
if (is_integer($label)) {
- $label = $option;
- }
-
- if (!in_array(strtolower($option), $value_array)) {
- $selected = FALSE;
- } else {
- $selected = TRUE;
+ elgg_deprecated_notice('$vars[\'options\'] must be an associative array in input/checkboxes', 1.8);
+ $label = $value;
}
- $attr = array(
- 'type="checkbox"',
- 'value="' . htmlentities($option, ENT_QUOTES, 'UTF-8') . '"'
- );
+ $input_vars['checked'] = in_array(elgg_strtolower($value), $values);
+ $input_vars['value'] = $value;
+
+ $input = elgg_view('input/checkbox', $input_vars);
- if ($id) {
- $attr[] = "id=\"$id\"";
- }
-
- if ($class) {
- $attr[] = "class=\"$class\"";
- }
-
- if ($disabled) {
- $attr[] = 'disabled="yes"';
- }
-
- if ($selected) {
- $attr[] = 'checked = "checked"';
- }
-
- if ($js) {
- $attr[] = $js;
- }
-
- if ($internalname) {
- // @todo this really, really should only add the []s if there are > 1 element in options.
- $attr[] = "name=\"{$internalname}[]\"";
- }
-
- $attr_str = implode(' ', $attr);
-
- echo "<label><input $attr_str />$label</label><br />";
+ echo "<li><label>$input$label</label></li>";
}
-} \ No newline at end of file
+ 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
index fceb8b30c..8955e6e53 100644
--- a/views/default/input/datepicker.php
+++ b/views/default/input/datepicker.php
@@ -1,40 +1,6 @@
<?php
/**
- * Elgg datepicker input
- * Displays a text field with a popup date picker.
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
+ * @deprecated use input/date instead
*/
-
-$cal_name = sanitise_string($vars['internalname']);
-
-if (isset($vars['class'])) {
- $class = "{$vars['class']} popup_calendar";
-} else {
- $class = 'popup_calendar';
-}
-
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
-
-if ($vars['value'] > 86400) {
- //$val = date("F j, Y", $vars['value']);
- $val = date('n/d/Y', $vars['value']);
-} else {
- $val = $vars['value'];
-}
-
-?>
-<input type="text" name="<?php echo $vars['internalname']; ?>" value="<?php echo $val; ?>" />
-<script language="JavaScript">
- $(document).ready(function() {
- $('input[type=text][name=<?php echo $cal_name; ?>]').datepicker();
- });
-</script>
+elgg_deprecated_notice('input/datepicker was deprecated in favor of input/date', 1.8);
+echo elgg_view('input/date', $vars); \ No newline at end of file
diff --git a/views/default/input/dropdown.php b/views/default/input/dropdown.php
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 efe2c5848..190fb88c6 100644
--- a/views/default/input/email.php
+++ b/views/default/input/email.php
@@ -5,24 +5,22 @@
*
* @package Elgg
* @subpackage Core
-
-
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
*
+ * @uses $vars['class'] Additional CSS class
*/
-$class = $vars['class'];
-if (!$class) {
- $class = "input_text";
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-email {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-email";
}
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
+$defaults = array(
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
?>
-<input type="text" <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?>value="<?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?>" class="<?php echo $class; ?>"/> \ No newline at end of file
+<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 bf9101991..452fe72b9 100644
--- a/views/default/input/file.php
+++ b/views/default/input/file.php
@@ -6,28 +6,26 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['internalid'] The id of the input field
- * @uses $vars['class'] CSS class
- * @uses $vars['disabled'] Is the input field disabled?
* @uses $vars['value'] The current value if any
- *
+ * @uses $vars['class'] Additional CSS class
*/
if (!empty($vars['value'])) {
echo elgg_echo('fileexists') . "<br />";
}
-$class = "input_file";
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-input-file {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-file";
}
-$disabled = false;
-if (isset($vars['disabled'])) {
- $disabled = $vars['disabled'];
-}
+$defaults = array(
+ 'disabled' => false,
+ 'size' => 30,
+);
+
+$attrs = array_merge($defaults, $vars);
?>
-<input type="file" size="30" <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> <?php if ($disabled) echo ' disabled="yes" '; ?> class="<?php echo $class; ?>" /> \ No newline at end of file
+<input type="file" <?php echo elgg_format_attributes($attrs); ?> />
diff --git a/views/default/input/form.php b/views/default/input/form.php
index f40d8ad8c..df30133b3 100644
--- a/views/default/input/form.php
+++ b/views/default/input/form.php
@@ -1,62 +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.
+ * 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['method'] Method (default POST)
- * @uses $vars['enctype'] How the form is encoded, default blank
- * @uses $vars['action'] URL of the action being called
- * @uses $vars['js'] Any Javascript to enter into the form
- * @uses $vars['internalid'] id for the form for CSS/Javascript
- * @uses $vars['internalname'] name for the form for Javascript
+ * @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
*/
-if (isset($vars['internalid'])) {
- $id = $vars['internalid'];
-} else {
- $id = '';
-}
+$defaults = array(
+ 'method' => "post",
+ 'disable_security' => FALSE,
+);
+
+$vars = array_merge($defaults, $vars);
-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';
-}
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-form {$vars['class']}";
} else {
- $class = '';
+ $vars['class'] = 'elgg-form';
}
-$method = strtolower($method);
+$vars['action'] = elgg_normalize_url($vars['action']);
+$vars['method'] = strtolower($vars['method']);
+
+$body = $vars['body'];
+unset($vars['body']);
// Generate a security header
-$security_header = "";
-if (!isset($vars['disable_security']) || $vars['disable_security'] != true) {
- $security_header = elgg_view('input/securitytoken');
+if (!$vars['disable_security']) {
+ $body = elgg_view('input/securitytoken') . $body;
}
-?>
-<form <?php if ($id) { ?>id="<?php echo $id; ?>" <?php } ?> <?php if ($name) { ?>name="<?php echo $name; ?>" <?php } ?> <?php echo $vars['js']; ?> action="<?php echo $action; ?>" method="<?php echo $method; ?>" <?php if ($enctype!="") echo "enctype=\"$enctype\""; ?> class="<?php echo $class; ?>">
-<fieldset>
-<?php echo $security_header; ?>
-<?php echo $body; ?>
-</fieldset>
-</form> \ No newline at end of file
+unset($vars['disable_security']);
+
+$attributes = elgg_format_attributes($vars);
+
+echo "<form $attributes><fieldset>$body</fieldset></form>";
diff --git a/views/default/friends/picker.php b/views/default/input/friendspicker.php
index 34a02d086..40708c890 100644
--- a/views/default/friends/picker.php
+++ b/views/default/input/friendspicker.php
@@ -3,27 +3,38 @@
* 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']
*/
-// Let the system know that the friends picker is in use
-global $pickerinuse;
-$pickerinuse = true;
+elgg_load_js('elgg.friendspicker');
+elgg_load_js('jquery.easing');
+
+
$chararray = elgg_echo('friendspicker:chararray');
-// Initialise internalname
-if (!isset($vars['internalname'])) {
- $internalname = "friend";
+// Initialise name
+if (!isset($vars['name'])) {
+ $name = "friend";
} else {
- $internalname = $vars['internalname'];
+ $name = $vars['name'];
}
// Are we highlighting default or all?
-if (empty($vars['highlight'])) $vars['highlight'] = 'default';
-if ($vars['highlight'] != 'all') $vars['highlight'] = 'default';
+if (empty($vars['highlight'])) {
+ $vars['highlight'] = 'default';
+}
+if ($vars['highlight'] != 'all') {
+ $vars['highlight'] = 'default';
+}
// Initialise values
if (!isset($vars['value'])) {
@@ -45,7 +56,9 @@ if (isset($vars['callback'])) {
// We need to count the number of friends pickers on the page.
if (!isset($vars['friendspicker'])) {
global $friendspicker;
- if (!isset($friendspicker)) $friendspicker = 0;
+ if (!isset($friendspicker)) {
+ $friendspicker = 0;
+ }
$friendspicker++;
} else {
$friendspicker = $vars['friendspicker'];
@@ -65,13 +78,9 @@ if (isset($vars['formtarget'])) {
// Sort users by letter
if (is_array($vars['entities']) && sizeof($vars['entities'])) {
foreach($vars['entities'] as $user) {
- if (is_callable('mb_substr')) {
- $letter = strtoupper(mb_substr($user->name,0,1));
- } else {
- $letter = strtoupper(substr($user->name,0,1));
- }
+ $letter = elgg_strtoupper(elgg_substr($user->name, 0, 1));
- if (!substr_count($chararray,$letter)) {
+ if (!elgg_substr_count($chararray, $letter)) {
$letter = "*";
}
if (!isset($users[$letter])) {
@@ -92,7 +101,7 @@ foreach ($users as $letter => $letter_users) {
if (!$callback) {
?>
- <div class="friends_picker">
+ <div class="friends-picker-main-wrapper">
<?php
@@ -101,7 +110,7 @@ if (!$callback) {
}
?>
- <div id="friends_picker_placeholder<?php echo $friendspicker; ?>">
+ <div id="friends-picker_placeholder<?php echo $friendspicker; ?>">
<?php
}
@@ -109,9 +118,9 @@ if (!$callback) {
if (!isset($vars['replacement'])) {
if ($formtarget) {
?>
-
+<?php //@todo JS 1.8: no ?>
<script language="text/javascript">
- $(function() { // onload...do
+ $(function() { // onload...do
$('#collectionMembersForm<?php echo $friendspicker; ?>').submit(function() {
var inputs = [];
$(':input', this).each(function() {
@@ -138,21 +147,22 @@ if (!isset($vars['replacement'])) {
<form id="collectionMembersForm<?php echo $friendspicker; ?>" action="<?php echo $formtarget; ?>" method="post"> <!-- action="" method=""> -->
<?php
+ echo elgg_view('input/securitytoken');
+ echo elgg_view('input/hidden', array(
+ 'name' => 'collection_id',
+ 'value' => $vars['collection_id'],
+ ));
}
?>
-<div class="friends_picker_wrapper">
-<div id="friends_picker<?php echo $friendspicker; ?>">
- <div class="friends_picker_container">
+<div class="friends-picker-wrapper">
+<div id="friends-picker<?php echo $friendspicker; ?>">
+ <div class="friends-picker-container">
<?php
// Initialise letters
$chararray .= "*";
- if (is_callable('mb_substr')) {
- $letter = mb_substr($chararray,0,1);
- } else {
- $letter = substr($chararray,0,1);
- }
+ $letter = elgg_substr($chararray, 0, 1);
$letpos = 0;
while (1 == 1) {
?>
@@ -173,12 +183,10 @@ if (!isset($vars['replacement'])) {
}
//echo "<p>" . $user->name . "</p>";
- $label = elgg_view("profile/icon",array('entity' => $friend, 'size' => 'tiny', 'override' => true));
+ $label = elgg_view_entity_icon($friend, 'tiny', array('use_hover' => false));
$options[$label] = $friend->getGUID();
- if ($vars['highlight'] == 'all'
- && !in_array($letter,$activeletters)) {
-
+ if ($vars['highlight'] == 'all' && !in_array($letter,$activeletters)) {
$activeletters[] = $letter;
}
@@ -195,7 +203,7 @@ if (!isset($vars['replacement'])) {
<td>
- <input type="checkbox" <?php echo $checked; ?> name="<?php echo $internalname; ?>[]" value="<?php echo $options[$label]; ?>" />
+ <input type="checkbox" <?php echo $checked; ?> name="<?php echo $name; ?>[]" value="<?php echo $options[$label]; ?>" />
</td>
@@ -229,23 +237,14 @@ if (!isset($vars['replacement'])) {
</div>
</div>
<?php
- //if ($letter == 'Z') break;
- if (is_callable('mb_substr')) {
- $substr = mb_substr($chararray,strlen($chararray) - 1,1);
- } else {
- $substr = substr($chararray,strlen($chararray) - 1,1);
- }
+ $substr = elgg_substr($chararray, elgg_strlen($chararray) - 1, 1);
if ($letter == $substr) {
break;
}
//$letter++;
$letpos++;
- if (is_callable('mb_substr')) {
- $letter = mb_substr($chararray,$letpos,1);
- } else {
- $letter = substr($chararray,$letpos,1);
- }
+ $letter = elgg_substr($chararray, $letpos, 1);
}
?>
@@ -259,10 +258,10 @@ if ($formtarget) {
echo $vars['formcontents'];
?>
- <div class="clearfloat"></div>
- <div class="friendspicker_savebuttons">
- <input type="submit" class="submit_button" value="<?php echo elgg_echo('save'); ?>" />
- <input type="button" class="cancel_button" value="<?php echo elgg_echo('cancel'); ?>" onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();" />
+ <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>
@@ -293,21 +292,21 @@ if (!$callback) {
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; ?>);
+ $("div#friends-picker<?php echo $friendspicker; ?>").friendsPicker(<?php echo $friendspicker; ?>);
</script>
-<script>
+<script type="text/javascript">
$(document).ready(function () {
// manually add class to corresponding tab for panels that have content
<?php
if (sizeof($activeletters) > 0)
//$chararray = elgg_echo('friendspicker:chararray');
foreach($activeletters as $letter) {
- $tab = strpos($chararray, $letter) + 1;
+ $tab = elgg_strpos($chararray, $letter) + 1;
?>
-$("div#friends_picker_navigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent");
+$("div#friends-picker-navigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent");
<?php
}
diff --git a/views/default/input/hidden.php b/views/default/input/hidden.php
index a5fb01e73..9c2fc6c08 100644
--- a/views/default/input/hidden.php
+++ b/views/default/input/hidden.php
@@ -1,21 +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
*
* @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
- *
*/
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
-
?>
-<input type="hidden" <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> value="<?php echo htmlentities($vars['value'], ENT_QUOTES, '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 6fe2c9e8e..61dc7ca19 100644
--- a/views/default/input/longtext.php
+++ b/views/default/input/longtext.php
@@ -1,38 +1,42 @@
<?php
/**
* Elgg long text input
- * Displays a long text input field
+ * Displays a long text input field that can use WYSIWYG editor
*
* @package Elgg
* @subpackage Core
*
- * @uses $vars['value'] The current value, if any - will be html encoded
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['internalid'] The id of the input field
- * @uses $vars['class'] CSS class
+ * @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 = "input_textarea";
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-input-longtext {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-longtext";
}
-$disabled = false;
-if (isset($vars['disabled'])) {
- $disabled = $vars['disabled'];
-}
+$defaults = array(
+ 'value' => '',
+ 'rows' => '10',
+ 'cols' => '50',
+ 'id' => 'elgg-input-' . rand(), //@todo make this more robust
+);
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
+$vars = array_merge($defaults, $vars);
-$value = '';
-if (isset($vars['value'])) {
- $value = $vars['value'];
-}
+$value = $vars['value'];
+unset($vars['value']);
+
+echo elgg_view_menu('longtext', array(
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+ 'id' => $vars['id'],
+));
?>
-<textarea class="<?php echo $class; ?>" name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> <?php if ($disabled) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?>><?php echo htmlentities($value, ENT_QUOTES, 'UTF-8'); ?></textarea> \ No newline at end of file
+<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 90864a4a7..45f2b20a6 100644
--- a/views/default/input/password.php
+++ b/views/default/input/password.php
@@ -7,15 +7,22 @@
* @subpackage Core
*
* @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
+ * @uses $vars['name'] The name of the input field
+ * @uses $vars['class'] Additional CSS class
*/
-$class = $vars['class'];
-if (!$class) {
- $class = "input_password";
+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 if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> value="<?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?>" class="<?php echo $class; ?>" /> \ No newline at end of file
+<input type="password" <?php echo elgg_format_attributes($attrs); ?> />
diff --git a/views/default/input/plaintext.php b/views/default/input/plaintext.php
index cf798e4d8..e92c61ced 100644
--- a/views/default/input/plaintext.php
+++ b/views/default/input/plaintext.php
@@ -6,21 +6,32 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- *
+ * @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']
*/
-$class = $vars['class'];
-if (!$class) {
- $class = "input_textarea";
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-plaintext {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-plaintext";
}
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
+$defaults = array(
+ 'value' => '',
+ 'rows' => '10',
+ 'cols' => '50',
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
+
+$value = $vars['value'];
+unset($vars['value']);
?>
-<textarea class="<?php echo $class; ?>" name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?>><?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?></textarea> \ No newline at end of file
+<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 7eb9456b4..fc0595300 100644
--- a/views/default/input/pulldown.php
+++ b/views/default/input/pulldown.php
@@ -1,56 +1,9 @@
<?php
/**
- * Elgg pulldown input
- * Displays a pulldown input field
+ * Deprecated pulldown input view - use 'input/dropdown' instead.
*
- * NB: Default values of FALSE or NULL will match '' (empty string) and not 0.
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['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.
+ * @deprecated 1.8
*/
-$class = $vars['class'];
-if (!$class) {
- $class = "input_pulldown";
-}
-
-if (!isset($vars['value'])) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
-
-?>
-<select name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> <?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) {
-
- $encoded_value = htmlentities($value, ENT_QUOTES, 'UTF-8');
- $encoded_option = htmlentities($option, ENT_QUOTES, 'UTF-8');
-
- if ((string)$value == (string)$vars['value']) {
- echo "<option value=\"$encoded_value\" selected=\"selected\">$encoded_option</option>";
- } else {
- echo "<option value=\"$encoded_value\">$encoded_option</option>";
- }
- }
-} else {
- foreach($vars['options'] as $option) {
- $encoded_option = htmlentities($option, ENT_QUOTES, 'UTF-8');
-
- if ((string)$option == (string)$vars['value']) {
- echo "<option selected=\"selected\">$encoded_option</option>";
- } else {
- echo "<option>$encoded_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 82c49fea4..ef860a773 100644
--- a/views/default/input/radio.php
+++ b/views/default/input/radio.php
@@ -3,43 +3,74 @@
* 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['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
- *
+ * @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'
*/
-$class = $vars['class'];
-if (!$class) {
- $class = "input_radio";
+$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']);
}
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
+$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';
-foreach($vars['options'] as $label => $option) {
- if (strtolower($option) != strtolower($vars['value'])) {
- $selected = "";
- } else {
- $selected = "checked = \"checked\"";
- }
+if (is_array($vars['value'])) {
+ $vars['value'] = array_map('elgg_strtolower', $vars['value']);
+} else {
+ $vars['value'] = array(elgg_strtolower($vars['value']));
+}
- // handle indexed array where label is not specified
- // @todo deprecate in Elgg 1.8
- if (is_integer($label)) {
- $label = $option;
- }
-
- if (isset($vars['internalid'])) {
- $id = "id=\"{$vars['internalid']}\"";
- }
- if ($vars['disabled']) {
- $disabled = ' disabled="yes" ';
+$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 "<label><input type=\"radio\" $disabled {$vars['js']} name=\"{$vars['internalname']}\" $id value=\"".htmlentities($option, ENT_QUOTES, 'UTF-8')."\" {$selected} class=\"$class\" />{$label}</label><br />";
-} \ No newline at end of file
+ echo '</ul>';
+}
diff --git a/views/default/input/reset.php b/views/default/input/reset.php
index 1d5e47ccb..082da8669 100644
--- a/views/default/input/reset.php
+++ b/views/default/input/reset.php
@@ -1,24 +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
- *
- * @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['class'] CSS class that replaces elgg-button-cancel
*/
$vars['type'] = 'reset';
-$class = $vars['class'];
-if (!$class) {
- $class = "submit_button";
-}
-$vars['class'] = $class;
+$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
index 9a8cb1ebe..75410848a 100644
--- a/views/default/input/securitytoken.php
+++ b/views/default/input/securitytoken.php
@@ -11,5 +11,5 @@
$ts = time();
$token = generate_action_token($ts);
-echo elgg_view('input/hidden', array('internalname' => '__elgg_token', 'value' => $token));
-echo elgg_view('input/hidden', array('internalname' => '__elgg_ts', 'value' => $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 dd520fa8e..df369b3b4 100644
--- a/views/default/input/submit.php
+++ b/views/default/input/submit.php
@@ -1,25 +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
*
- * @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['class'] CSS class that replaces elgg-button-submit
*/
$vars['type'] = 'submit';
-if (isset($vars['class'])) {
- $class = $vars['class'];
-} else {
- $class = "submit_button";
-}
-$vars['class'] = $class;
+$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 5a7ca4ef3..261cf9f97 100644
--- a/views/default/input/tags.php
+++ b/views/default/input/tags.php
@@ -3,52 +3,43 @@
* Elgg tag input
* Displays a tag input field
*
- * @package Elgg
- * @subpackage Core
-
-
- *
- * @uses $vars['value'] The current value, if any - string or array - tags will be encoded
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['internalid'] The id of the input field
- * @uses $vars['class'] CSS class override
- * @uses $vars['disabled'] Is the input field disabled?
+ * @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)
*/
-
-$class = "input_tags";
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-input-tags {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-tags";
}
-$disabled = false;
-if (isset($vars['disabled'])) {
- $disabled = $vars['disabled'];
-}
+$defaults = array(
+ 'value' => '',
+ 'disabled' => false,
+);
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
+if (isset($vars['entity'])) {
+ $defaults['value'] = $vars['entity']->tags;
+ unset($vars['entity']);
}
-$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;
- }
+$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;
}
- } else {
- $tags = $vars['value'];
}
+
+ $vars['value'] = implode(", ", $tags);
}
?>
-<input type="text" <?php if ($disabled) echo ' disabled="yes" '; ?><?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> value="<?php echo htmlentities($tags, ENT_QUOTES, 'UTF-8'); ?>" class="<?php echo $class; ?>"/> \ No newline at end of file
+<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 ea35efe2a..07ce5c710 100644
--- a/views/default/input/text.php
+++ b/views/default/input/text.php
@@ -5,34 +5,22 @@
*
* @package Elgg
* @subpackage Core
-
-
*
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['disabled'] If true then control is read-only
- * @uses $vars['class'] Class override
+ * @uses $vars['class'] Additional CSS class
*/
-
if (isset($vars['class'])) {
- $class = $vars['class'];
+ $vars['class'] = "elgg-input-text {$vars['class']}";
} else {
- $class = "input_text";
+ $vars['class'] = "elgg-input-text";
}
-$disabled = false;
-if (isset($vars['disabled'])) {
- $disabled = $vars['disabled'];
-}
+$defaults = array(
+ 'value' => '',
+ 'disabled' => false,
+);
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
-
-$value = htmlentities($vars['value'], ENT_QUOTES, 'UTF-8');
+$vars = array_merge($defaults, $vars);
?>
-
-<input type="text" <?php if ($disabled) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> value="<?php echo $value; ?>" class="<?php echo $class ?>"/> \ No newline at end of file
+<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 1271bd3be..e97a316d8 100644
--- a/views/default/input/url.php
+++ b/views/default/input/url.php
@@ -6,21 +6,22 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['value'] The current value, if any
- * @uses $vars['js'] Any Javascript to enter into the input tag
- * @uses $vars['internalname'] The name of the input field
- * @uses $vars['class'] Class override
+ * @uses $vars['class'] Additional CSS class
*/
-$class = $vars['class'];
-if (!$class) {
- $class = "input_url";
+if (isset($vars['class'])) {
+ $vars['class'] = "elgg-input-url {$vars['class']}";
+} else {
+ $vars['class'] = "elgg-input-url";
}
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
+$defaults = array(
+ 'value' => '',
+ 'disabled' => false,
+);
+
+$vars = array_merge($defaults, $vars);
?>
-<input type="text" <?php if ($vars['disabled']) echo ' disabled="yes" '; ?> <?php echo $vars['js']; ?> name="<?php echo $vars['internalname']; ?>" <?php if (isset($vars['internalid'])) echo "id=\"{$vars['internalid']}\""; ?> value="<?php echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); ?>" class="<?php echo $class; ?>"/> \ No newline at end of file
+<input type="text" <?php echo elgg_format_attributes($vars); ?> />
diff --git a/views/default/input/userpicker.php b/views/default/input/userpicker.php
index fb98afc97..8b64d7df5 100644
--- a/views/default/input/userpicker.php
+++ b/views/default/input/userpicker.php
@@ -5,45 +5,43 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['value'] The current value, if any
- * @uses $vars['internalname'] The name of the input field
+ * @uses $vars['value'] Array of user guids for already selected users or null
*
+ * The name of the hidden fields is members[]
*
- * pops up defaulted to lazy load friends lists in paginated alphabetical order.
- * upon
+ * @warning Only a single input/userpicker is supported per web page.
*
- * As users are checked they move down to a "users" box.
- * When this happens, a hidden input is created also.
- * {$internalnal}[] with the value th GUID.
+ * Defaults to lazy load user lists in alphabetical order. User needs
+ * to type two characters before seeing the user popup list.
*
+ * As users are selected they move down to a "users" box.
+ * When this happens, a hidden input is created with the
+ * name of members[] and a value of the GUID.
*/
-global $user_picker_js_sent;
+elgg_load_js('elgg.userpicker');
+elgg_load_js('jquery.ui.autocomplete.html');
function user_picker_add_user($user_id) {
$user = get_entity($user_id);
if (!$user || !($user instanceof ElggUser)) {
- return FALSE;
+ return false;
}
- $icon = $user->getIcon('tiny');
-
- $code = '<li class="user_picker_entry">';
- $code .= "<img class=\"livesearch_icon\" src=\"$icon\" />";
- $code .= "$user->name - $user->username";
- $code .= '<div class="delete_button">';
- $code .= "<a onclick=\"userPickerRemoveUser(this, $user_id)\"><strong>X</strong></a>";
- $code .= '</div>';
+ $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;
}
-if (!isset($vars['value']) || $vars['value'] === FALSE) {
- $vars['value'] = elgg_get_sticky_value($vars['internalname']);
-}
-
// loop over all values and prepare them so that "in" will work in javascript
$values = array();
if (!is_array($vars['value'])) {
@@ -56,123 +54,6 @@ foreach ($vars['value'] as $value) {
// convert the values to a json-encoded list
$json_values = json_encode($values);
-if (!$user_picker_js_sent) {
-?>
-<!-- User picker JS -->
-<script language="javascript" type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery.autocomplete.min.js"></script>
-<script type="text/javascript">
-// set up a few required variables
-userPickerURL = '<?php echo elgg_get_site_url() ?>pg/livesearch';
-userList = <?php echo $json_values ?>;
-
-function userPickerBindEvents() {
- // binding autocomplete.
- // doing this as an each so we can past this to functions.
- $('.user_picker .search').each(function (i, e) {
- userPickerBindAutocomplete(e);
- });
-
- // changing friends vs all users.
- $('.user_picker .all_users').click(function() {
- // update the extra params for the autocomplete.
- var e = $(this).parents('.user_picker').find('.search');
- var params = userPickerGetSearchParams(e);
- e.setOptions({extraParams: params});
- e.flushCache();
- });
-
- // hitting enter on the text field
-// $('.user_picker .search').bind($.browser.opera ? "keypress" : "keydown", function(event) {
-// if(event.keyCode == 13) {
-//// console.log($(this).val());
-// userPickerAddUser(this);
-// }
-// });
-}
-
-function userPickerBindAutocomplete(e) {
- var params = userPickerGetSearchParams(e);
-
- $(e).autocomplete(userPickerURL, {
- extraParams: params,
- max: 25,
- minChars: 2,
- matchContains: false,
- autoFill: false,
- formatItem: userPickerFormatItem,
- formatResult: function (row, i, max) {
- eval("var info = " + row + ";");
- // returning the just name
- return info.name;
- }
- });
-
- // add users when a result is picked.
- $(e).result(userPickerAddUser);
-}
-
-function userPickerFormatItem(row, i, max, term) {
- eval("var info = " + row + ";");
- var r = '';
- var name = info.name.replace(new RegExp("(" + term + ")", "gi"), "<span class=\"user_picker_highlight\">$1</b>");
- var desc = info.desc.replace(new RegExp("(" + term + ")", "gi"), "<span class=\"user_picker_highlight\">$1</b>");
-
- switch (info.type) {
- case 'user':
- case 'group':
- r = info.icon + name + ' - ' + desc;
- break;
-
- default:
- r = name + ' - ' + desc;
- break;
- }
- return r;
- //return r.replace(new RegExp("(" + term + ")", "gi"), "<span class=\"user_picker_highlight\">$1</b>");
-}
-
-function userPickerAddUser(event, data, formatted) {
- eval("var info = " + data + ";");
-
- // do not allow users to be added multiple times
- if (!(info.guid in userList)) {
- userList[info.guid] = true;
-
- var picker = $(this).parent('.user_picker');
- var users = picker.find('.users');
- var internalName = picker.find('input.internalname').val();
- // not sure why formatted isn't.
- var formatted = userPickerFormatItem(data);
-
- // add guid as hidden input and to list.
- var li = formatted + ' <div class="delete_button"><a onclick="userPickerRemoveUser(this, ' + info.guid + ')"><strong>X</strong></a></div>'
- + '<input type="hidden" name="' + internalName + '[]" value="' + info.guid + '" />';
- $('<li class="user_picker_entry">').html(li).appendTo(users);
-
- $(this).val('');
- }
-}
-
-function userPickerRemoveUser(link, guid) {
- $(link).parents('.user_picker_entry').remove();
-}
-
-function userPickerGetSearchParams(e) {
- if ($(e).parent().find('.all_users').attr('checked')) {
- return {'match_on[]': 'friends'};
- } else {
- return {'match_on[]': 'users'};
- }
-}
-
-$(document).ready(function() {
- userPickerBindEvents();
-});
-</script>
-<?php
- $user_picker_js_sent = true;
-}
-
// create an HTML list of users
$user_list = '';
foreach ($vars['value'] as $user_id) {
@@ -180,14 +61,15 @@ foreach ($vars['value'] as $user_id) {
}
?>
-<div class="user_picker">
- <input class="internalname" type="hidden" name="internalname" value="<?php echo $vars['internalname']; ?>" />
- <input class="search" type="text" name="user_search" size="30"/>
- <span class="controls">
- <label><input class="all_users" type="checkbox" name="match_on" value="true" /><?php echo elgg_echo('userpicker:only_friends'); ?></label>
- </span>
- <div class="results">
- <!-- This space will be filled with users, checkboxes and magic. -->
- </div>
- <ul class="users"><?php echo $user_list; ?></ul>
+<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 2fa4e373f..000000000
--- a/views/default/js/friendsPickerv1.php
+++ /dev/null
@@ -1,93 +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("friends_picker");
- // set panelwidth manually as it's hidden initially - adjust this value for different themes/pagewidths
- var panelWidth = 730;
-
- // 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.friends_picker_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='friends_picker_navigation_l' id='friends_picker_navigation_l" + iterator + "'><a href='#'>Left</a><\/div>");
- $(this).after("<div class='friends_picker_navigation_r' id='friends_picker_navigation_r" + iterator + "'><a href='#'>Right</a><\/div>");
-
- // generate a-z tabs
- $(this).before("<div class='friends_picker_navigation' id='friends_picker_navigation" + iterator + "'><ul><\/ul><\/div>");
- $(this).find("div.panel").each(function(individualTabItemNumber) {
- $("div#friends_picker_navigation" + iterator + " ul").append("<li class='tab" + (individualTabItemNumber+1) + "'><a href='#" + (individualTabItemNumber+1) + "'>" + $(this).attr("title") + "<\/a><\/li>");
- });
-
- // tabs navigation
- $("div#friends_picker_navigation" + 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.friends_picker_container").animate({ left: distanceToMoveFriendsPicker_container}, settings.easeTime, settings.easeFunc);
- });
- });
-
- // Right arow click function
- $("div#friends_picker_navigation_r" + iterator + " a").click(function() {
- if (currentPanel == panelCount) {
- var distanceToMoveFriendsPicker_container = 0;
- currentPanel = 1;
- $(this).parent().parent().find("div.friends_picker_navigation 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.friends_picker_navigation a.current").removeClass("current").parent().next().find("a").addClass("current");
- };
- $(this).parent().parent().find("div.friends_picker_container").animate({ left: distanceToMoveFriendsPicker_container}, settings.easeTime, settings.easeFunc);
- return false;
- });
-
- // Left arrow click function
- $("div#friends_picker_navigation_l" + iterator + " a").click(function() {
- if (currentPanel == 1) {
- var distanceToMoveFriendsPicker_container = - (panelWidth*(panelCount - 1));
- currentPanel = panelCount;
- $(this).parent().parent().find("div.friends_picker_navigation 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.friends_picker_navigation a.current").removeClass("current").parent().prev().find("a").addClass("current");
- };
- $(this).parent().parent().find("div.friends_picker_container").animate({ left: distanceToMoveFriendsPicker_container}, settings.easeTime, settings.easeFunc);
- return false;
- });
-
- // apply 'current' class to currently selected tab link
- $("div#friends_picker_navigation" + iterator + " a:eq(0)").addClass("current");
- });
-
- $("div#friends_picker_navigation" + iterator).append("<br />");
- });
-};
-
-
diff --git a/views/default/js/initialise_elgg.php b/views/default/js/initialise_elgg.php
index b6c3f7ecd..3d617953a 100644
--- a/views/default/js/initialise_elgg.php
+++ b/views/default/js/initialise_elgg.php
@@ -1,306 +1,4 @@
-<?php
+<?php
/**
- * Bootstrap Elgg javascript
- */
-global $CONFIG;
-
-//Include library files
-$lib_files = array(
- //core
- 'elgglib',
-
- //libraries
- 'security',
- 'languages',
- 'ajax',
- 'session',
-
- //ui
- 'ui',
- 'ui.widgets',
-);
-
-foreach($lib_files as $file) {
- include("{$CONFIG->path}engine/js/lib/$file.js");
-}
-
-//Include classes
-$model_files = array(
- 'ElggEntity',
-
- 'ElggUser',
-);
-
-foreach($model_files as $file) {
- include("{$CONFIG->path}engine/js/classes/$file.js");
-}
-
-/**
- * Finally, set some values that are cacheable
- */
-?>
-
-elgg.version = '<?php echo get_version(); ?>';
-elgg.release = '<?php echo get_version(true); ?>';
-elgg.config.wwwroot = '<?php echo elgg_get_site_url(); ?>';
-elgg.security.interval = 5 * 60 * 1000; <?php //TODO make this configurable ?>
-
-$(document).ready(function () {
-
- // COLLAPSABLE WIDGETS (on Dashboard? & Profile pages)
- // toggle widget box contents
- $('a.toggle_box_contents').bind('click', toggleContent);
-
- // WIDGET GALLERY EDIT PANEL
- // 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',
- forcePlaceholderSize: true,
- placeholder: 'ui-state-highlight',
- cursor: 'move',
- revert: true,
- opacity: 0.9,
- appendTo: 'body',
- connectWith: els,
- start:function(e,ui) {
-
- },
- 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 - called when new widgets are created
- widget_moreinfo();
-
- // set-up 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'
- });
-
- // user likes
- $(".likes_list_button").click(function(event) {
- if ($(this).next(".likes_list").css('display') == 'none') { // show list
- // hide any other currently viewable likes lists
- $('.likes_list').fadeOut();
-
- var topPosition = - $(this).next(".likes_list").height();
- topPosition10 = topPosition + 10 + "px";
- topPosition = topPosition - 5 + "px";
- $('.likes_list').css('top',topPosition10);
- $('.likes_list').css('left', -$('.likes_list').width()+110);
- $(this).next(".likes_list").animate({opacity: "toggle", top: topPosition}, 500);
-
- // set up cancel for a click outside the likes list
- $(document).click(function(event) {
- var target = $(event.target);
- if (target.parents(".likes_list_holder").length == 0) {
- $(".likes_list").fadeOut();
- }
- });
-
- } else { // hide list
- var topPosition = - $(this).next(".likes_list").height() + 5;
- $(this).next(".likes_list").animate({opacity: "toggle", top: topPosition}, 500);
- }
- });
-
- elgg_system_message();
-
-}); /* end document ready function */
-
-
-
-// display & hide elgg system messages
-function elgg_system_message() {
- $("#elgg_system_message").animate({opacity: 0.9}, 1000);
- $("#elgg_system_message").animate({opacity: 0.9}, 5000);
- $("#elgg_system_message").fadeOut('slow');
-
- $("#elgg_system_message").click(function () {
- $("#elgg_system_message").stop();
- $("#elgg_system_message").fadeOut('slow');
- return false;
- });
-}
-
-// reusable slide in/out toggle function
-function elgg_slide_toggle(activateLink, parentElement, toggleElement) {
- $(activateLink).closest(parentElement).find(toggleElement).animate({"height": "toggle"}, { duration: 400 });
- return false;
-}
-
-// List active widgets for each page column
-function outputWidgetList(forElement) {
- return( $("input[name='handler'], input[name='guid']", forElement ).makeDelimitedList("value") );
-}
-
-// Make delimited list
-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));
-}
-
-
-// Read each widgets collapsed/expanded state from cookie and apply
-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 widgets contents and save to a cookie
-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(".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(".toggle_box_edit_panel").fadeOut('medium');
- // make sure edit pane is closed
- $(this.parentNode.parentNode).children(".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;
-};
-
-// More info tooltip in widget gallery edit panel
-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) {
- // action on mousemove
- });
-};
-
-// ELGG DROP DOWN MENU
-$.fn.elgg_dropdownmenu = function(options) {
-
-options = $.extend({speed: 350}, options || {});
-
-this.each(function() {
-
- var root = this, zIndex = 5000;
-
- function getSubnav(ele) {
- if (ele.nodeName.toLowerCase() == 'li') {
- var subnav = $('> ul', ele);
- return subnav.length ? subnav[0] : null;
- } else {
-
- return ele;
- }
- }
-
- function getActuator(ele) {
- if (ele.nodeName.toLowerCase() == 'ul') {
- return $(ele).parents('li')[0];
- } else {
- return ele;
- }
- }
-
- function hide() {
- var subnav = getSubnav(this);
- if (!subnav) return;
- $.data(subnav, 'cancelHide', false);
- setTimeout(function() {
- if (!$.data(subnav, 'cancelHide')) {
- $(subnav).slideUp(100);
- }
- }, 250);
- }
-
- function show() {
- var subnav = getSubnav(this);
- if (!subnav) return;
- $.data(subnav, 'cancelHide', true);
- $(subnav).css({zIndex: zIndex++}).slideDown(options.speed);
- if (this.nodeName.toLowerCase() == 'ul') {
- var li = getActuator(this);
- $(li).addClass('hover');
- $('> a', li).addClass('hover');
- }
- }
-
- $('ul, li', this).hover(show, hide);
- $('li', this).hover(
- function() { $(this).addClass('hover'); $('> a', this).addClass('hover'); },
- function() { $(this).removeClass('hover'); $('> a', this).removeClass('hover'); }
- );
-
-});
-
-};
+ * 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
index 34367aaf1..fcf903d4b 100644
--- a/views/default/js/languages.php
+++ b/views/default/js/languages.php
@@ -1,9 +1,33 @@
-<?php
-/**
- * @uses $vars['language']
- */
-global $CONFIG;
-
-$language = $vars['language'];
-
-echo json_encode($CONFIG->translations[$language]); \ No newline at end of file
+<?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
index afcf4bb7f..8a604cc12 100644
--- a/views/default/js/languages/en.php
+++ b/views/default/js/languages/en.php
@@ -1,2 +1,2 @@
-<?php
+<?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/upload_js.php b/views/default/js/upload_js.php
deleted file mode 100644
index 83530d67a..000000000
--- a/views/default/js/upload_js.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<script>
-/*
-Part of multi file uploader
-*/
-
-var number_of_files = 1;
-
-// wait for the DOM to be loaded
-$(document).ready(function() {
- // bind 'file_form' and provide a simple callback function
- $('#file_form').submit(function() {
- $('#form_container').hide();
- $('#form_message').html('<div class="contentWrapper"><?php echo $vars['submit_message']; ?></div>');
- $('#form_message').show();
- $(this).ajaxSubmit(function(response_message) {
- $('#form_message').html('<div class="contentWrapper">'+response_message+'</div>');
- });
-
- return false;
- });
-});
-
-function file_generate_bit(bit_label,prefix,classname,field_type,field_size) {
- bit = document.createElement('p');
- label = document.createElement('label');
- textnode = document.createTextNode(bit_label);
- label.appendChild(textnode);
- el = document.createElement('br');
- label.appendChild(el);
- el = document.createElement('input');
- el.type = field_type;
- el.className = classname;
- if (field_size > 0) {
- el.size = field_size;
- }
- el.name = prefix+number_of_files;
- el.value = "";
- label.appendChild(el);
- bit.appendChild(label);
-
- return bit;
-}
-
-function file_addtoform() {
- var o,el;
- o = document.getElementById('option_container');
- title_label = "<?php echo elgg_echo("title"); ?>";
- bit = file_generate_bit(title_label,'title_','input_text','text',0);
- o.appendChild(bit);
- file_label = "<?php echo elgg_echo("file:file"); ?>";
- bit = file_generate_bit(file_label,'upload_','input-file','file',30);
- o.appendChild(bit);
-
- number_of_files++;
- document.file_form.number_of_files.value = number_of_files;
-}
-</script> \ No newline at end of file
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/likes/forms/display.php b/views/default/likes/forms/display.php
deleted file mode 100644
index 36e2cddc2..000000000
--- a/views/default/likes/forms/display.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-/**
- * Elgg likes - display users liked link/text
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-
-if (isset($vars['entity']) && isloggedin()) {
-
- //display the number of likes
- $numoflikes = elgg_count_likes($vars['entity']);
- if ($numoflikes != 0) {
- if ($numoflikes == 1) {
- $user_string = elgg_echo('likes:userlikedthis');
- } else {
- $user_string = elgg_echo('likes:userslikedthis');
- }
-
- echo "<a class='river_more_comments off likes_user_list_button link'>" . elgg_count_likes($vars['entity']) . " " . $user_string . "</a>";
- }
-} \ No newline at end of file
diff --git a/views/default/likes/forms/edit.php b/views/default/likes/forms/edit.php
deleted file mode 100644
index d438ff3be..000000000
--- a/views/default/likes/forms/edit.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- * Elgg likes add form
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-
-if (isset($vars['entity']) && isloggedin()) {
- $guid = $vars['entity']->getGuid();
- $url = elgg_add_action_tokens_to_url(elgg_get_site_url() . "action/likes/add?guid={$guid}");
-
- echo "<span class='likes_list_holder'>";
- //check to see if the user has already liked
- if (!elgg_annotation_exists($guid, 'likes') ) {
- echo "<a class='user_like link' title='".elgg_echo('likes:likethis')."' href=\"{$url}\">" . elgg_echo('likes:likethis') . "</a>";
- $likes_classname = "not_liked";
- $likes_titletag = "";
- } else {
- $likes_titletag = "title='".elgg_echo('likes:remove')."'";
- }
- //display the number of likes
- $numoflikes = elgg_count_likes($vars['entity']);
- if ($numoflikes != 0) {
- if ($numoflikes == 1) {
- $user_string = elgg_echo('likes:userlikedthis');
- } else {
- $user_string = elgg_echo('likes:userslikedthis');
- }
-
- echo "<a class='likes_list_button link {$likes_classname}' {$likes_titletag}>" . elgg_count_likes($vars['entity']) . " " . $user_string . "</a>";
-
- //show the users who liked the object
- echo "<div class='likes_list hidden clearfloat'>";
- echo list_annotations($vars['entity']->getGUID(), 'likes', 99);
- echo "</div>";
- }
- echo "</span>";
-}
-
-
-
-
-
diff --git a/views/default/likes/forms/link.php b/views/default/likes/forms/link.php
deleted file mode 100644
index 4e52224e2..000000000
--- a/views/default/likes/forms/link.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-/**
- * Elgg likes link form - used on riverdashboard where we want the likes link separate from the list of users that liked the object
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-
-if (isset($vars['entity']) && isloggedin()) {
- $guid = $vars['entity']->getGuid();
- $url = elgg_add_action_tokens_to_url(elgg_get_site_url() . "action/likes/add?guid={$guid}");
- //check to see if the user has already liked
- if (!elgg_annotation_exists($guid, 'likes') ) {
- echo "<span class='river_link_divider'> | </span><a class='river_user_like_button link' href=\"{$url}\">" . elgg_echo('likes:likethis') . "</a>";
- }
-} \ 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 a8690010e..000000000
--- a/views/default/messages/errors/error.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg error message
- * Displays a single error message
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['object'] An error message (string)
- */
-
-echo elgg_view('output/longtext', array(
- 'value' => $vars['object'],
- 'parse_urls' => FALSE)
-);
diff --git a/views/default/messages/errors/list.php b/views/default/messages/errors/list.php
deleted file mode 100644
index 922f23787..000000000
--- a/views/default/messages/errors/list.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * Elgg list errors
- * Lists error messages
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['object'] An array of error messages
- */
-
-if (!empty($vars['object']) && is_array($vars['object'])) {
-
-?>
-<div id="elgg_system_message" class="hidden radius8 error">
-<script type="text/javascript">$(document).ready(function(){ elgg_system_message() });</script>
-<?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 6e66445a3..000000000
--- a/views/default/messages/exceptions/exception.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Elgg exception
- * Displays a single exception
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['object'] An exception
- */
-
-global $CONFIG;
-
-$class = get_class($vars['object']);
-$message = elgg_view('output/longtext', array('value' => $vars['object']->getMessage()));
-
-$body = <<< END
-<p class="messages-exception">
- <span title="$class">
- <b>$message</b>
- </span>
-</p>
-END;
-
-if (isset($CONFIG->debug)) {
- $details = elgg_view('output/longtext', array('value' => htmlentities(print_r($vars['object'], true), ENT_QUOTES, 'UTF-8')));
- $body .= <<< END
- <hr />
- <p class="messages-exception-detail">
- $details
- </p>
-END;
-}
-
-$title = $class;
-
-echo 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 3084f09f8..000000000
--- a/views/default/messages/list.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Elgg global system message list
- * Lists all system messages
- *
- * @package Elgg
- * @subpackage Core
- *
- * @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));
- }
-}
diff --git a/views/default/messages/messages/list.php b/views/default/messages/messages/list.php
deleted file mode 100644
index 07fae11e7..000000000
--- a/views/default/messages/messages/list.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * Elgg list system messages
- * Lists system messages
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['object'] An array of system messages
- */
-
-if (!empty($vars['object']) && is_array($vars['object'])) {
-
-?>
-<div id="elgg_system_message" class="hidden radius8">
-<script type="text/javascript">$(document).ready(function(){ elgg_system_message() });</script>
-<?php
- foreach($vars['object'] as $message) {
- echo elgg_view('messages/messages/message',array('object' => $message));
- }
-?>
-</div>
-<?php
-
-}
diff --git a/views/default/messages/messages/message.php b/views/default/messages/messages/message.php
deleted file mode 100644
index 611ffbaf5..000000000
--- a/views/default/messages/messages/message.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg standard message
- * Displays a single Elgg system message
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['object'] A system message (string)
- */
-
-echo elgg_view('output/longtext', array(
- 'value' => $vars['object'],
- 'parse_urls' => FALSE)
-);
diff --git a/views/default/navigation/breadcrumbs.php b/views/default/navigation/breadcrumbs.php
index 7bb709be9..88577a8ff 100644
--- a/views/default/navigation/breadcrumbs.php
+++ b/views/default/navigation/breadcrumbs.php
@@ -1,11 +1,13 @@
<?php
/**
- * Displays registered breadcrumbs.
+ * Displays breadcrumbs.
*
* @package Elgg
* @subpackage Core
*
- * @uses optional $vars['breadcrumbs'] = array('title' => 'The title', 'link' => 'url')
+ * @uses $vars['breadcrumbs'] (Optional) Array of arrays with keys 'title' and 'link'
+ * @uses $vars['class']
+ *
* @see elgg_push_breadcrumb
*/
@@ -15,29 +17,25 @@ if (isset($vars['breadcrumbs'])) {
$breadcrumbs = elgg_get_breadcrumbs();
}
-$formatted_breadcrumbs = array();
-
-foreach ($breadcrumbs as $breadcrumb) {
- $link = $breadcrumb['link'];
- $title = $breadcrumb['title'];
+$class = 'elgg-menu elgg-breadcrumbs';
+$additional_class = elgg_extract('class', $vars, '');
+if ($additional_class) {
+ $class = "$class $additional_class";
+}
- if (!empty($link)) {
- $formatted_breadcrumbs[] = elgg_view('output/url', array(
- 'href' => $link,
- 'text' => $title
- ));
- } else {
- $formatted_breadcrumbs[] = $title;
+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>';
}
-
-$breadcrumbs_html = implode(' &gt; ', $formatted_breadcrumbs);
-
-echo <<<___END
-
-<div class="breadcrumbs">
- $breadcrumbs_html
-</div>
-
-___END;
-?> \ No newline at end of file
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 d193bd433..04044c51c 100644
--- a/views/default/navigation/pagination.php
+++ b/views/default/navigation/pagination.php
@@ -5,106 +5,128 @@
* @package Elgg
* @subpackage Core
*
- * @uses int $vars['offset']
- * @uses int $vars['limit']
- * @uses int $vars['count'] Number of entities.
- * @uses string $vars['word'] Word to use in GET params for the offset
- * @uses string $vars['baseurl'] Base URL to use in links
+ * @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
*/
-$offset = (int) elgg_get_array_value('offset', $vars, 0);
+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_get_array_value('limit', $vars, 10)) {
+if (!$limit = (int) elgg_extract('limit', $vars, 10)) {
$limit = 10;
}
-$count = (int) elgg_get_array_value('count', $vars, 0);
-$word = elgg_get_array_value('word', $vars, 'offset');
-$baseurl = elgg_get_array_value('baseurl', $vars, current_page_url());
-$totalpages = ceil($count / $limit);
-$currentpage = ceil($offset / $limit) + 1;
+$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;
+ }
-//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->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;
+ }
- <div class="pagination clearfloat">
- <?php
+ $pages->items = range($first_page, $current_page - 1);
+}
- if ($offset > 0) {
- $prevoffset = $offset - $limit;
- if ($prevoffset < 0) {
- $prevoffset = 0;
- }
+$pages->items[] = $current_page;
- $prevurl = elgg_http_add_url_query_elements($baseurl, array($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>";
- }
-
- $curoffset = (($i - 1) * $limit);
- $counturl = elgg_http_add_url_query_elements($baseurl, array($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)) {
+ $pages->items = array_merge($pages->items, range($current_page + 1, $last_page));
+}
- $nextoffset = $offset + $limit;
- if ($nextoffset >= $count) {
- $nextoffset--;
- }
- $nexturl = elgg_http_add_url_query_elements($baseurl, array($word => $nextoffset));
+echo '<ul class="elgg-pagination">';
- echo " <a href=\"{$nexturl}\" class='pagination_next'>" . elgg_echo("next") . " &raquo;</a>";
+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>";
}
+}
+
+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>";
+}
- ?>
- </div>
- <?php
-} // end of pagination check if statement
+echo '</ul>';
diff --git a/views/default/navigation/sidebar_menu.php b/views/default/navigation/sidebar_menu.php
deleted file mode 100644
index 75fe7c743..000000000
--- a/views/default/navigation/sidebar_menu.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg sidebar menu
- *
- * @package Elgg
- * @subpackage Core
- *
- */
-
-// Plugins can add to the sidebar menu by calling elgg_add_submenu_item()
-$submenu = elgg_get_submenu();
-
-echo $submenu;
diff --git a/views/default/navigation/site_nav.php b/views/default/navigation/site_nav.php
deleted file mode 100644
index 0cb867c5f..000000000
--- a/views/default/navigation/site_nav.php
+++ /dev/null
@@ -1,85 +0,0 @@
-<?php
-/**
- * Main site-wide navigation
- *
- **/
-
-$nav_items = elgg_get_nav_items();
-$featured = $nav_items['featured'];
-$more = $nav_items['more'];
-
-$nav_html = '';
-$more_nav_html = '';
-$context = get_context();
-
-// sort more links alphabetically
-$more_sorted = array();
-foreach ($more as $info) {
- $more_sorted[] = $info->name;
-}
-
-// required because array multisort is case sensitive
-$more_sorted_lower = array_map('elgg_strtolower', $more_sorted);
-array_multisort($more_sorted_lower, $more);
-
-$item_count = 0;
-
-// if there are no featured items, display the standard tools in alphabetical order
-if ($featured) {
- foreach ($featured as $info) {
- $selected = ($info->value->context == $context) ? 'class="selected"' : '';
- $title = htmlentities($info->name, ENT_QUOTES, 'UTF-8');
- $url = htmlentities($info->value->url, ENT_QUOTES, 'UTF-8');
-
- $nav_html .= "<li $selected><a href=\"$url\" title=\"$title\"><span>$title</span></a></li>";
- }
-} elseif ($more) {
- for ($i=0; $i<6; $i++) {
- if (!array_key_exists($i, $more)) {
- break;
- }
- $info = $more[$i];
-
- $selected = ($info->value->context == $context) ? 'class="selected"' : '';
- $title = htmlentities($info->name, ENT_QUOTES, 'UTF-8');
- $url = htmlentities($info->value->url, ENT_QUOTES, 'UTF-8');
-
- $nav_html .= "<li $selected><a href=\"$url\" title=\"$title\"><span>$title</span></a></li>";
- $more[$i]->used = TRUE;
- $item_count++;
- }
-}
-
-// display the rest.
-foreach ($more as $info) {
- if ($info->used) {
- continue;
- }
- $selected = ($info->value->context == $context) ? 'class="selected"' : '';
- $title = htmlentities($info->name, ENT_QUOTES, 'UTF-8');
- $url = htmlentities($info->value->url, ENT_QUOTES, 'UTF-8');
-
- $more_nav_html .= "<li $selected><a href=\"$url\" title=\"$title\"><span>$title</span></a></li>\n";
- $item_count++;
-}
-
-if ($more_nav_html) {
- $more = elgg_echo('more');
- $nav_html .= "<li class='navigation_more'><a class='subnav' title=\"$more\"><span>$more</span></a>
- <ul>
- $more_nav_html
- </ul>
- </li>";
-}
-
-// only display, if there are nav items to display
-if ($nav_html) {
- echo <<<___END
- <div id="elgg_main_nav" class="clearfloat">
- <ul class="navigation">
- $nav_html
- </ul>
- </div>
-___END;
-}
-?>
diff --git a/views/default/navigation/submenu_group.php b/views/default/navigation/submenu_group.php
deleted file mode 100644
index df750aff7..000000000
--- a/views/default/navigation/submenu_group.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/**
- * Elgg submenu group. Writes the <ul> for a submenu and passes items one by one
- * to navigation/submenu_item
- *
- * @uses $vars['group_name']
- * @uses $vars['items']
- * @package Elgg
- * @subpackage Core
- */
-
-$group = (isset($vars['group'])) ? $vars['group'] : 'default';
-$items = (isset($vars['items'])) ? $vars['items'] : array();
-$hidden = (isset($vars['hidden']) && $vars['hidden']) ? 'hidden' : '';
-$child = (isset($vars['child']) && $vars['child']) ? 'child' : '';
-
-echo "<ul class='submenu $group $hidden $child'>\n";
-
-foreach ($items as $item) {
- $item_vars = array('item' => $item, 'group' => $group);
- if (isset($item->vars) && is_array($item->vars)) {
- $item_vars = array_merge($item->vars, $item_vars);
- }
-
- if (isset($item->children)) {
- $child_vars = array(
- 'group' => $group,
- 'items' => $item->children,
- // if this menu item is selected, make sure to display the full tree
- // ie, don't hide it.
- 'hidden' => !$item->selected,
- 'child' => TRUE
- );
- $item_vars['children_html'] = elgg_view('navigation/submenu_group', $child_vars);
- }
-
- echo elgg_view('navigation/submenu_item', $item_vars);
-}
-
-echo "</ul>\n"; \ No newline at end of file
diff --git a/views/default/navigation/submenu_item.php b/views/default/navigation/submenu_item.php
deleted file mode 100644
index 09aa24a8e..000000000
--- a/views/default/navigation/submenu_item.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Elgg submenu item. Displays the <li> part of a submenu.
- *
- * @uses $vars['group']
- * @uses $vars['item']
- * @uses $vars['children_html']
- * @package Elgg
- * @subpackage Core
- */
-
-$group = (isset($vars['group'])) ? $vars['group'] : 'default';
-$item = (isset($vars['item'])) ? $vars['item'] : FALSE;
-$children_html = (isset($vars['children_html'])) ? $vars['children_html'] : '';
-
-if ($item) {
- $has_children = (isset($item->children) && $item->children) ? TRUE : FALSE;
- $selected = (isset($item->selected) && $item->selected == TRUE) ? 'class="selected"' : '';
- $js = (isset($vars['js'])) ? $vars['js'] : '';
-
- $child_indicator = '';
- if ($has_children) {
- if ($selected) {
- $child_indicator = '<span class="close_child">-</span>';
- $child_indicator .= '<span class="hidden open_child">+</span>';
- } else {
- $child_indicator = '<span class="hidden close_child">-</span>';
- $child_indicator .= '<span class="open_child">+</span>';
- }
-
- $child_indicator = "<span class=\"child_indicator\">$child_indicator </span>";
- }
-
- $url = htmlentities($item->href);
- $text = $child_indicator . htmlentities($item->text);
-
- $link_vars = array_merge($vars, array(
- 'href' => $item->href,
- 'text' => $text,
- 'encode_text' => FALSE
- ));
-
- $link = elgg_view('output/url', $link_vars);
-}
-
-echo "<li $selected>$link$children_html</li>";
diff --git a/views/default/navigation/submenu_js.php b/views/default/navigation/submenu_js.php
deleted file mode 100644
index 1ed710b2b..000000000
--- a/views/default/navigation/submenu_js.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Javascript to expand submenu items.
- *
- * @package Elgg
- * @subpackage Core
- */
-?>
-
-<script type="text/javascript">
-$(document).ready(function() {
- $('.submenu span.child_indicator').click(function() {
- var submenu = $(this).parent().parent().find('ul.submenu.child:first');
- var closeChild = $($(this).find('.close_child'));
- var openChild = $($(this).find('.open_child'));
-
- if (submenu.is(':visible')) {
- closeChild.addClass('hidden');
- openChild.removeClass('hidden');
- } else {
- closeChild.removeClass('hidden');
- openChild.addClass('hidden');
- }
-
- submenu.slideToggle();
- return false;
- });
-});
-</script> \ No newline at end of file
diff --git a/views/default/navigation/tabs.php b/views/default/navigation/tabs.php
index fd6d8b8fe..95e3f2669 100644
--- a/views/default/navigation/tabs.php
+++ b/views/default/navigation/tabs.php
@@ -2,60 +2,80 @@
/**
* Tab navigation
*
- * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal (vertical TBI)
+ * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal
+ * @uses string $vars['class'] Additional class to add to ul
* @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array(
- * 'title' => string, // Title of link
- * 'url' => string, // URL for the link
- * 'url_js' => string, // JS to pass to the link
- * 'url_class' => string, // Class to pass to the link
- * 'class' => string // Class of the li element.
- * 'selected' => bool // if this link is currently selected
+ * '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');
-$type = (isset($vars['type'])) ? $vars['type'] : 'horizontal';
if ($type == 'horizontal') {
- $type_class = "elgg_horizontal_tabbed_nav margin_top";
+ $options['class'] = "elgg-tabs elgg-htabs";
} else {
- $type_class = "elgg_vertical_tabbed_nav";
+ $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'])) {
?>
- <div class="<?php echo $type_class; ?>">
- <ul>
- <?php
- foreach ($vars['tabs'] as $info) {
- $class = (isset($info['class'])) ? $info['class'] : '';
+ <ul <?php echo $attributes; ?>>
+ <?php
+ foreach ($vars['tabs'] as $info) {
+ $class = elgg_extract('class', $info, '');
+ $id = elgg_extract('id', $info, '');
- if (isset($info['selected']) && $info['selected'] == TRUE) {
- $class .= ' selected';
- }
+ $selected = elgg_extract('selected', $info, FALSE);
+ if ($selected) {
+ $class .= ' elgg-state-selected';
+ }
- $class_str = ($class) ? "class=\"$class\"" : '';
- $title = htmlentities($info['title'], ENT_QUOTES, 'UTF-8');
- $url = htmlentities($info['url'], ENT_QUOTES, 'UTF-8');
+ $class_str = ($class) ? "class=\"$class\"" : '';
+ $id_str = ($id) ? "id=\"$id\"" : '';
- $options = array(
- 'href' => $url,
- 'title' => $title,
- 'text' => $title
- );
+ $options = $info;
+ unset($options['class']);
+ unset($options['id']);
+ unset($options['selected']);
- if (isset($info['url_js'])) {
- $options['js'] = $info['url_js'];
- }
+ 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['url_class'])) {
- $options['class'] = $info['url_class'];
- }
+ if (isset($info['link_id'])) {
+ $options['id'] = $options['link_id'];
+ unset($options['link_id']);
+ }
- $link = elgg_view('output/url', $options);
+ $link = elgg_view('output/url', $options);
- echo "<li $class_str $js>$link</li>";
- }
- ?>
- </ul>
- </div>
+ echo "<li $id_str $class_str>$link</li>";
+ }
+ ?>
+ </ul>
<?php
-} \ No newline at end of file
+}
diff --git a/views/default/navigation/topbar_tools.php b/views/default/navigation/topbar_tools.php
index 44cf4a63d..307f03fc6 100644
--- a/views/default/navigation/topbar_tools.php
+++ b/views/default/navigation/topbar_tools.php
@@ -4,5 +4,6 @@
*
* @package Elgg
* @subpackage Core
- *
+ *
+ * @deprecated 1.8 Extend the topbar menus or the page/elements/topbar view directly
*/
diff --git a/views/default/navigation/viewtype.php b/views/default/navigation/viewtype.php
index 8b2a64978..6dfa4ebc7 100644
--- a/views/default/navigation/viewtype.php
+++ b/views/default/navigation/viewtype.php
@@ -4,25 +4,8 @@
*
* @package Elgg
* @subpackage Core
+ *
+ * @deprecated 1.8 See how file plugin adds a toggle in function file_register_toggle()
*/
-$baseurl = elgg_http_remove_url_query_element($vars['baseurl'], 'search_viewtype');
-
-if ($vars['viewtype'] == "list") {
- $viewtype = "gallery";
-} else {
- $viewtype = "list";
-}
-
-if (substr_count($baseurl,'?')) {
- $baseurl .= "&search_viewtype=" . $viewtype;
-} else {
- $baseurl .= "?search_viewtype=" . $viewtype;
-}
-
-?>
-
-<p class="margin_top">
- <?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
+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 c7a27a16f..000000000
--- a/views/default/notifications/settings/usersettings.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-/**
- * User settings for notifications.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-global $NOTIFICATION_HANDLERS;
-$notification_settings = get_user_notification_settings(elgg_get_page_owner_guid());
-
-?>
-<div class="user_settings notifications">
-<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]",
- 'value' => $val,
- 'options' => array(
- elgg_echo('option:yes') => 'yes',
- elgg_echo('option:no') => 'no'
- ),
- ));
-
-?>
- </td>
- </tr>
-<?php
- }
-?>
-</table>
-</div> \ No newline at end of file
diff --git a/views/default/object/admin_notice.php b/views/default/object/admin_notice.php
index 1a162ce4d..11524567e 100644
--- a/views/default/object/admin_notice.php
+++ b/views/default/object/admin_notice.php
@@ -6,6 +6,15 @@
if (isset($vars['entity']) && elgg_instanceof($vars['entity'], 'object', 'admin_notice')) {
$notice = $vars['entity'];
$message = $notice->description;
- echo "<p>$message</p>";
+
+ $delete = elgg_view('output/url', array(
+ 'href' => "action/admin/delete_admin_notice?guid=$notice->guid",
+ 'text' => '<span class="elgg-icon elgg-icon-delete"></span>',
+ 'is_action' => true,
+ 'class' => 'elgg-admin-notice',
+ 'is_trusted' => true,
+ ));
+
+ echo "<p>$delete$message</p>";
}
diff --git a/views/default/object/default.php b/views/default/object/default.php
index 6975804c3..70e098742 100644
--- a/views/default/object/default.php
+++ b/views/default/object/default.php
@@ -1,61 +1,48 @@
<?php
/**
- * ElggEntity default view.
+ * ElggObject default view.
+ *
+ * @warning This view may be used for other ElggEntity objects
*
* @package Elgg
* @subpackage Core
*/
-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()) {
- $delete = elgg_view('output/confirm_link', array(
- 'href' => elgg_get_site_url()."action/entities/delete?guid={$vars['entity']->guid}",
- 'text' => elgg_echo('delete')
- ));
- $controls .= " ($delete)";
- }
-
- $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"),
- elgg_view_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);
+$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 9e1441a9f..000000000
--- a/views/default/object/object.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Elgg default object view.
- * This is a placeholder.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$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 bef709d7d..5c7138e96 100644
--- a/views/default/object/plugin.php
+++ b/views/default/object/plugin.php
@@ -1,19 +1,20 @@
<?php
/**
- * Elgg plugin
+ * Used to show plugin user settings.
+ *
+ * @package Elgg.Core
+ * @subpackage Plugins
*
- * @package Elgg
- * @subpackage Core
*/
-$entity = $vars['entity'];
-$plugin = $vars['plugin'];
-$prefix = $vars['prefix']; // Do we want to show admin settings (default) or user settings
+if (!elgg_in_context('admin')) {
+ forward('/', 403);
+}
-$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>";
+$plugin = $vars['entity'];
-?>
-<div>
- <?php echo elgg_view('input/form', array('body' => $form_body, 'action' => elgg_get_site_url()."action/plugins/{$prefix}settings/save")); ?>
-</div> \ No newline at end of file
+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 b3ef5bb8c..0c7994f2b 100644
--- a/views/default/object/widget.php
+++ b/views/default/object/widget.php
@@ -1,9 +1,75 @@
<?php
/**
- * Elgg default widget view
+ * Widget object
*
- * @package Elgg
- * @subpackage Core
+ * @uses $vars['entity'] ElggWidget
+ * @uses $vars['show_access'] Show the access control in edit area? (true)
*/
-echo elgg_view('widgets/wrapper',$vars);
+$widget = $vars['entity'];
+if (!elgg_instanceof($widget, 'object', 'widget')) {
+ return true;
+}
+
+$show_access = elgg_extract('show_access', $vars, true);
+
+// @todo catch for disabled plugins
+$widget_types = elgg_get_widget_types('all');
+
+$handler = $widget->handler;
+
+$title = $widget->getTitle();
+
+$edit_area = '';
+$can_edit = $widget->canEdit();
+if ($can_edit) {
+ $edit_area = elgg_view('object/widget/elements/settings', array(
+ 'widget' => $widget,
+ 'show_access' => $show_access,
+ ));
+}
+$controls = elgg_view('object/widget/elements/controls', array(
+ 'widget' => $widget,
+ 'show_edit' => $edit_area != '',
+));
+
+// don't show content for default widgets
+if (elgg_in_context('default_widgets')) {
+ $content = '';
+} else {
+ if (elgg_view_exists("widgets/$handler/content")) {
+ $content = elgg_view("widgets/$handler/content", $vars);
+ } else {
+ elgg_deprecated_notice("widgets use content as the display view", 1.8);
+ $content = elgg_view("widgets/$handler/view", $vars);
+ }
+}
+
+$widget_id = "elgg-widget-$widget->guid";
+$widget_instance = "elgg-widget-instance-$handler";
+$widget_class = "elgg-module elgg-module-widget";
+if ($can_edit) {
+ $widget_class .= " elgg-state-draggable $widget_instance";
+} else {
+ $widget_class .= " elgg-state-fixed $widget_instance";
+}
+
+$widget_header = <<<HEADER
+ <div class="elgg-widget-handle clearfix"><h3>$title</h3>
+ $controls
+ </div>
+HEADER;
+
+$widget_body = <<<BODY
+ $edit_area
+ <div class="elgg-widget-content" id="elgg-widget-content-$widget->guid">
+ $content
+ </div>
+BODY;
+
+echo elgg_view('page/components/module', array(
+ 'class' => $widget_class,
+ 'id' => $widget_id,
+ 'body' => $widget_body,
+ 'header' => $widget_header,
+));
diff --git a/views/default/object/widget/elements/controls.php b/views/default/object/widget/elements/controls.php
new file mode 100644
index 000000000..57a935f62
--- /dev/null
+++ b/views/default/object/widget/elements/controls.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Elgg widget controls
+ *
+ * @uses $vars['widget']
+ * @uses $vars['show_edit'] Whether to show the edit button (true)
+ */
+
+echo elgg_view_menu('widget', array(
+ 'entity' => elgg_extract('widget', $vars),
+ 'show_edit' => elgg_extract('show_edit', $vars, true),
+ 'sort_by' => 'priority',
+ 'class' => 'elgg-menu-hz',
+));
diff --git a/views/default/object/widget/elements/settings.php b/views/default/object/widget/elements/settings.php
new file mode 100644
index 000000000..25cda58c9
--- /dev/null
+++ b/views/default/object/widget/elements/settings.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Elgg widget edit settings
+ *
+ * @uses $vars['widget']
+ */
+
+$widget = elgg_extract('widget', $vars);
+
+// not using elgg_view_form() so that we can detect if the form is empty
+$form_body = elgg_view('forms/widgets/save', $vars);
+if (!$form_body) {
+ return true;
+}
+
+$form = elgg_view('input/form', array(
+ 'action' => 'action/widgets/save',
+ 'body' => $form_body,
+ 'class' => 'elgg-form-widgets-save',
+));
+?>
+
+<div class="elgg-widget-edit" id="widget-edit-<?php echo $widget->guid; ?>">
+ <?php echo $form; ?>
+</div>
diff --git a/views/default/output/access.php b/views/default/output/access.php
index 5490d3203..5c8d62c4d 100644
--- a/views/default/output/access.php
+++ b/views/default/output/access.php
@@ -9,31 +9,34 @@
//sort out the access level for display
if (isset($vars['entity']) && elgg_instanceof($vars['entity'])) {
$access_id = $vars['entity']->access_id;
- $access_class = 'access_level';
+ $access_class = 'elgg-access';
$access_id_string = get_readable_access_level($access_id);
+ $access_id_string = htmlspecialchars($access_id_string, ENT_QUOTES, 'UTF-8', false);
// if within a group or shared access collection display group name and open/closed membership status
// @todo have a better way to do this instead of checking against subtype / class.
- $container = get_entity($vars['entity']->container_guid);
+ $container = $vars['entity']->getContainerEntity();
- if ($container instanceof ElggGroup) {
+ 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 = $is_group->membership;
+ $membership = $container->membership;
if ($membership == ACCESS_PUBLIC) {
- $access_class .= ' group_open';
+ $access_class .= ' elgg-access-group-open';
} else {
- $access_class .= ' group_closed';
+ $access_class .= ' elgg-access-group-closed';
}
- } elseif ($container->getSubtype() == 'shared_access') {
- $access_level .= ' shared_collection';
+
+ // @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_level .= ' private';
- } else {
- $access_level .= ' entity_access';
+ $access_class .= ' elgg-access-private';
}
- echo "<span class=\"$access_class\">$access_id_string</span>";
-} \ No newline at end of file
+ $help_text = elgg_echo('access:help');
+
+ echo "<span title=\"$help_text\" class=\"$access_class\">$access_id_string</span>";
+}
diff --git a/views/default/output/calendar.php b/views/default/output/calendar.php
index f791d435e..fa0bd0c04 100644
--- a/views/default/output/calendar.php
+++ b/views/default/output/calendar.php
@@ -9,9 +9,5 @@
* @uses $vars['value'] The current value, if any
*
*/
-
-if (is_int($vars['value'])) {
- echo date("F j, Y", $vars['value']);
-} else {
- echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8');
-} \ No newline at end of file
+elgg_deprecated_notice('output/calendar was deprecated in favor of output/date', 1.8);
+echo elgg_view('output/date', $vars); \ No newline at end of file
diff --git a/views/default/output/confirmlink.php b/views/default/output/confirmlink.php
index d7bb5c56f..532790a38 100644
--- a/views/default/output/confirmlink.php
+++ b/views/default/output/confirmlink.php
@@ -6,24 +6,42 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['text'] The text of the link
- * @uses $vars['href'] The address
- * @uses $vars['confirm'] The dialog text
- *
+ * @uses $vars['text'] The text of the link
+ * @uses $vars['href'] The address
+ * @uses $vars['title'] The title text (defaults to confirm text)
+ * @uses $vars['confirm'] The dialog text
+ * @uses $vars['encode_text'] Run $vars['text'] through htmlspecialchars() (false)
*/
-$confirm = $vars['confirm'];
-if (!$confirm) {
- $confirm = elgg_echo('question:areyousure');
-}
+$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
-$link = elgg_add_action_tokens_to_url($vars['href']);
+$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['class']) && $vars['class']) {
- $class = 'class="' . $vars['class'] . '"';
+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 {
- $class = '';
+ $vars['class'] = 'elgg-requires-confirmation';
}
-?>
-<a href="<?php echo $link; ?>" <?php echo $class; ?> onclick="return confirm('<?php echo addslashes($confirm); ?>');"><?php echo htmlentities($vars['text'], ENT_QUOTES, 'UTF-8'); ?></a>
+
+unset($vars['encode_text']);
+unset($vars['text']);
+unset($vars['confirm']);
+unset($vars['is_trusted']);
+
+$attributes = elgg_format_attributes($vars);
+echo "<a $attributes>$text</a>";
diff --git a/views/default/output/date.php b/views/default/output/date.php
index bd8a65714..1644a3480 100644
--- a/views/default/output/date.php
+++ b/views/default/output/date.php
@@ -6,10 +6,12 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['value'] A UNIX epoch timestamp
- *
+ * @uses $vars['value'] Date as text or a Unix timestamp in seconds
*/
-if ($vars['value'] > 86400) {
- echo date("F j, Y",$vars['value']);
-} \ No newline at end of file
+// convert timestamps to text for display
+if (is_numeric($vars['value'])) {
+ $vars['value'] = gmdate('Y-m-d', $vars['value']);
+}
+
+echo $vars['value'];
diff --git a/views/default/output/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 02d2e67e0..f5a8bc4b8 100644
--- a/views/default/output/email.php
+++ b/views/default/output/email.php
@@ -10,6 +10,8 @@
*
*/
+$encoded_value = htmlspecialchars($vars['value'], ENT_QUOTES, 'UTF-8');
+
if (!empty($vars['value'])) {
- echo "<a href=\"mailto:" . $vars['value'] . "\">". htmlentities($vars['value'], ENT_QUOTES, 'UTF-8') ."</a>";
+ 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
index 710079c2a..22f60d517 100644
--- a/views/default/output/friendlytime.php
+++ b/views/default/output/friendlytime.php
@@ -7,6 +7,6 @@
*/
$friendly_time = elgg_get_friendly_time($vars['time']);
-$timestamp = htmlentities(date(elgg_echo('friendlytime:date_format'), $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/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 22a4ad46d..589100c4f 100644
--- a/views/default/output/longtext.php
+++ b/views/default/output/longtext.php
@@ -8,18 +8,31 @@
*
* @uses $vars['value'] The text to display
* @uses $vars['parse_urls'] Whether to turn urls into links. Default is true.
+ * @uses $vars['class']
*/
-$parse_urls = isset($vars['parse_urls']) ? $vars['parse_urls'] : TRUE;
+$class = 'elgg-output';
+$additional_class = elgg_extract('class', $vars, '');
+if ($additional_class) {
+ $vars['class'] = "$class $additional_class";
+} else {
+ $vars['class'] = $class;
+}
-$text = $vars['value'];
+$parse_urls = elgg_extract('parse_urls', $vars, true);
+unset($vars['parse_urls']);
-$text = filter_tags($text);
+$text = $vars['value'];
+unset($vars['value']);
if ($parse_urls) {
$text = parse_urls($text);
}
-$text = autop($text);
+$text = filter_tags($text);
+
+$text = elgg_autop($text);
+
+$attributes = elgg_format_attributes($vars);
-echo $text;
+echo "<div $attributes>$text</div>";
diff --git a/views/default/output/pulldown.php b/views/default/output/pulldown.php
index df58bebfe..7097a9a8d 100644
--- a/views/default/output/pulldown.php
+++ b/views/default/output/pulldown.php
@@ -8,6 +8,7 @@
*
* @uses $vars['text'] The text to display
*
+ * @deprecated 1.8 Use output/dropdown
*/
-echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); //$vars['value']; \ No newline at end of file
+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 dd3198b6d..0fae9977b 100644
--- a/views/default/output/radio.php
+++ b/views/default/output/radio.php
@@ -10,4 +10,4 @@
*
*/
-echo elgg_view('output/text',$vars); \ No newline at end of file
+echo elgg_view('output/text', $vars); \ No newline at end of file
diff --git a/views/default/output/rss_view.php b/views/default/output/rss_view.php
deleted file mode 100644
index 725f1619a..000000000
--- a/views/default/output/rss_view.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
- /**
- * View to display the RSS link
- * @todo check this - it doesn't appear this view is ever called
- **/
-?>
-<div class="rss_link clearfloat"><a href="" title="RSS feed for the wire">RSS feed for the wire</a></div> \ 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 7270cd5ea..2fbf1cd0a 100644
--- a/views/default/output/tagcloud.php
+++ b/views/default/output/tagcloud.php
@@ -12,8 +12,6 @@
* @uses $vars['subtype'] Entity subtype
*/
-$context = get_context();
-
if (!empty($vars['subtype'])) {
$subtype = "&entity_subtype=" . urlencode($vars['subtype']);
} else {
@@ -31,45 +29,38 @@ if (empty($vars['tagcloud']) && !empty($vars['value'])) {
if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) {
$counter = 0;
- $cloud = "<div class='tagcloud_wrapper'>";
$max = 0;
- if ($context != 'tags') {
- $title = elgg_echo('tagcloud');
- $cloud .= "<h3>$title</h3>";
- }
-
- $cloud .= '<div class="tagcloud">';
-
- foreach($vars['tagcloud'] as $tag) {
+ foreach ($vars['tagcloud'] as $tag) {
if ($tag->total > $max) {
$max = $tag->total;
}
}
- $list = '';
- foreach($vars['tagcloud'] as $tag) {
- if ($list != '') {
- $list .= ', ';
+ $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 = elgg_get_site_url()."pg/search/?q=". urlencode($tag->tag) . "&search_type=tags$type$subtype";
- $list .= "<a href=\"$url\" style=\"font-size: $size%\" title=\"".addslashes($tag->tag)." ($tag->total)\" style=\"text-decoration:none;\">" . htmlentities($tag->tag, ENT_QUOTES, 'UTF-8') . "</a>";
- }
-
- $cloud .= "$list</div>";
-
- if ($context != 'tags') {
- $cloud .= '<p class="tags">';
- $cloud .= "<a href=\"".elgg_get_site_url()."pg/tags\">All site tags</a>";
- $cloud .= '</p>';
+ $url = "search?q=". urlencode($tag->tag) . "&search_type=tags$type$subtype";
+
+ $cloud .= elgg_view('output/url', array(
+ 'text' => $tag->tag,
+ 'href' => $url,
+ 'style' => "font-size: $size%;",
+ 'title' => "$tag->tag ($tag->total)",
+ 'rel' => 'tag'
+ ));
}
$cloud .= elgg_view('tagcloud/extend');
- $cloud .= '</div>';
- echo $cloud;
-} \ No newline at end of file
+
+ echo "<div class=\"elgg-tagcloud\">$cloud</div>";
+}
diff --git a/views/default/output/tags.php b/views/default/output/tags.php
index 6c8115d54..db096a3be 100644
--- a/views/default/output/tags.php
+++ b/views/default/output/tags.php
@@ -1,24 +1,34 @@
<?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
- *
- * @uses $vars['tags'] The tags to display
- * @uses $vars['tagtype'] The tagtype, optionally
+ * @uses $vars['value'] Array of tags or a string
+ * @uses $vars['type'] The entity type, optional
+ * @uses $vars['subtype'] The entity subtype, optional
+ * @uses $vars['entity'] Optional. Entity whose tags are being displayed (metadata ->tags)
+ * @uses $vars['list_class'] Optional. Additional classes to be passed to <ul> element
+ * @uses $vars['item_class'] Optional. Additional classes to be passed to <li> elements
+ * @uses $vars['icon_class'] Optional. Additional classes to be passed to tags icon image
*/
+if (isset($vars['entity'])) {
+ $vars['tags'] = $vars['entity']->tags;
+ unset($vars['entity']);
+}
+
+if (!empty($vars['type'])) {
+ $type = "&type=" . rawurlencode($vars['type']);
+} else {
+ $type = "";
+}
if (!empty($vars['subtype'])) {
- $subtype = "&subtype=" . urlencode($vars['subtype']);
+ $subtype = "&subtype=" . rawurlencode($vars['subtype']);
} else {
$subtype = "";
}
if (!empty($vars['object'])) {
- $object = "&object=" . urlencode($vars['object']);
+ $object = "&object=" . rawurlencode($vars['object']);
} else {
$object = "";
}
@@ -27,24 +37,46 @@ if (empty($vars['tags']) && !empty($vars['value'])) {
$vars['tags'] = $vars['value'];
}
+if (empty($vars['tags']) && isset($vars['entity'])) {
+ $vars['tags'] = $vars['entity']->tags;
+}
+
if (!empty($vars['tags'])) {
- $tagstr = "";
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) {
- if (!empty($tagstr)) {
- $tagstr .= ", ";
- }
- if (!empty($vars['type'])) {
- $type = "&type={$vars['type']}";
- } else {
- $type = "";
- }
+ $url = elgg_get_site_url() . 'search?q=' . rawurlencode($tag) . "&search_type=tags{$type}{$subtype}{$object}";
if (is_string($tag)) {
- $tagstr .= "<a rel=\"tag\" href=\"".elgg_get_site_url()."pg/search/?q=".urlencode($tag) . "&search_type=tags{$type}{$subtype}{$object}\">" . htmlentities($tag, ENT_QUOTES, 'UTF-8') . "</a>";
+ $tag = htmlspecialchars($tag, ENT_QUOTES, 'UTF-8', false);
+ $list_items .= "<li class=\"$item_class\">";
+ $list_items .= elgg_view('output/url', array('href' => $url, 'text' => $tag, 'rel' => 'tag'));
+ $list_items .= '</li>';
}
}
- echo $tagstr;
+
+ $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 e0194099b..5cbfc35b0 100644
--- a/views/default/output/text.php
+++ b/views/default/output/text.php
@@ -6,8 +6,7 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['text'] The text to display
- *
+ * @uses $vars['value'] The text to display
*/
-echo htmlentities($vars['value'], ENT_QUOTES, 'UTF-8'); // $vars['value']; \ No newline at end of file
+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 9dd0bf3f5..81b02087d 100644
--- a/views/default/output/url.php
+++ b/views/default/output/url.php
@@ -6,64 +6,51 @@
* @package Elgg
* @subpackage Core
*
- * @uses string $vars['href'] The URL.
- * @uses string $vars['text'] The string between the <a></a> tags.
- * @uses string $vars['target'] Set the target="" attribute.
- * @uses bool $vars['encode_text'] Run $vars['text'] through htmlentities()?
- * @uses string $vars['class'] what to add in class=""
- * @uses string $vars['js'] Javascript to insert in <a> tag
- * @uses string $vars['title'] Title attribute to <a> tag
- * @uses bool $vars['is_action'] Is this a link to an action?
- *
+ * @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 = trim($vars['href']);
+$url = elgg_extract('href', $vars, null);
if (!$url and isset($vars['value'])) {
$url = trim($vars['value']);
+ unset($vars['value']);
}
-if (!empty($url)) {
- if (isset($vars['target'])) {
- $target = "target = \"{$vars['target']}\"";
+if (isset($vars['text'])) {
+ if (elgg_extract('encode_text', $vars, false)) {
+ $text = htmlspecialchars($vars['text'], ENT_QUOTES, 'UTF-8', false);
} else {
- $target = '';
+ $text = $vars['text'];
}
+ unset($vars['text']);
+} else {
+ $text = htmlspecialchars($url, ENT_QUOTES, 'UTF-8', false);
+}
- if (isset($vars['class'])) {
- $class = "class = \"{$vars['class']}\"";
- } else {
- $class = '';
- }
+unset($vars['encode_text']);
- if (isset($vars['js'])) {
- $js = "{$vars['js']}";
- } else {
- $js = '';
- }
+if ($url) {
+ $url = elgg_normalize_url($url);
- if (isset($vars['text'])) {
- if (isset($vars['encode_text']) && $vars['encode_text']) {
- $text = htmlentities($vars['text'], ENT_QUOTES, 'UTF-8');
- } else {
- $text = $vars['text'];
- }
- } else {
- $text = htmlentities($url, ENT_QUOTES, 'UTF-8');
+ if (elgg_extract('is_action', $vars, false)) {
+ $url = elgg_add_action_tokens_to_url($url, false);
}
- if ((substr_count($url, "http://") == 0) && (substr_count($url, "https://") == 0)) {
- $url = "http://" . $url;
+ if (!elgg_extract('is_trusted', $vars, false)) {
+ if (!isset($vars['rel'])) {
+ $vars['rel'] = 'nofollow';
+ $url = strip_tags($url);
+ }
}
- if (isset($vars['is_action'])) {
- $url = elgg_add_action_tokens_to_url($url);
- }
+ $vars['href'] = $url;
+}
- if (isset($vars['title'])) {
- $title = 'title="' . htmlentities($vars['title']) . '"';
- } else {
- $title = '';
- }
+unset($vars['is_action']);
+unset($vars['is_trusted']);
- echo "<a href=\"{$url}\" $target $class $js $title>$text</a>";
-} \ No newline at end of file
+$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/content_header.php b/views/default/page_elements/content_header.php
deleted file mode 100644
index 3704e9a49..000000000
--- a/views/default/page_elements/content_header.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-/**
- * Displays the Add New button, and the All, Mine, My Friends tabs for plugins
- * If a user is not logged in, this only displays the All tab.
- * If this is in a group context, it doesn't display any tabs
- *
- * @uses string $vars['type'] The section type. Should be the same as the page handler. Used for generating URLs.
- * @uses string $vars['context'] Which filter we're looking at: all, mine, friends, or action. Nothing to do with get_context().
- *
- * @uses string $vars['all_link'] Optional. The URL to use for the "All" tab link. Defaults to mod/$type/all.php
- * @uses string $vars['mine_link'] Optional. The URL to use for the "Mine" tab link. Defaults to pg/$type/$username
- * @uses string $vars['friends_link'] Optional. The URL to use for the "Friends" tab link. Defaults to pg/$type/$username/friends
- * @uses string $vars['new_link'] Optional. The URL to use for the "New" button. Defaults to pg/$type/$username/new
- * @uses array $vars['tabs'] Optional. Override all tab generation. See view:navgiation/tabs for formatting
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$page_owner = elgg_get_page_owner();
-$logged_in_user = get_loggedin_user();
-$username = $logged_in_user->username;
-
-if (!$page_owner) {
- $page_owner = $logged_in_user;
-}
-
-// so we know if the user is looking at their own, everyone's or all friends
-$filter_context = $vars['context'];
-
-// get the object type
-$type = $vars['type'];
-
-// create an empty string to start with
-$new_button = '';
-
-// generate a list of default tabs
-$default_tabs = array(
- 'all' => array(
- 'title' => elgg_echo('all'),
- 'url' => (isset($vars['all_link'])) ? $vars['all_link'] : elgg_get_site_url()."mod/$type/all.php",
- 'selected' => ($filter_context == 'everyone'),
- ),
- 'mine' => array(
- 'title' => elgg_echo('mine'),
- 'url' => (isset($vars['mine_link'])) ? $vars['mine_link'] : elgg_get_site_url()."pg/$type/$username",
- 'selected' => ($filter_context == 'mine'),
- ),
- 'friend' => array(
- 'title' => elgg_echo('friends'),
- 'url' => (isset($vars['friend_link'])) ? $vars['friend_link'] : elgg_get_site_url()."pg/$type/$username/friends",
- 'selected' => ($filter_context == 'friends'),
- ),
-);
-
-// determine if using default or overwritten tabs
-$tabs = (isset($vars['tabs'])) ? $vars['tabs'] : $default_tabs;
-$tab_list = elgg_view('navigation/tabs', array('tabs' => $tabs));
-
-$title = elgg_echo($type);
-$title = '<div class="content_header_title">' . elgg_view_title($title) . '</div>';
-
-// must be logged in to see any action buttons
-if (isloggedin()) {
- // only show the new button when not on the add form.
- // hide the tabs when on the add form.
- if ($filter_context == 'action') {
- $tab_list = '';
- } else {
- // @todo remove the hard coded reference to the videolist plugin
- if (get_context() == "videolist"){
- $video_link = elgg_get_site_url() . "pg/videolist/browse/$username/";
- $new_button = "<a href=\"{$video_link}\" class='action_button'>" . elgg_echo('videolist:browsemenu') . '</a>';
- } else {
- $new_link = (isset($vars['new_link'])) ? $vars['new_link'] : elgg_get_site_url()."pg/$type/$username/new";
- $new_button = "<a href=\"{$new_link}\" class='action_button'>" . elgg_echo($type . ':new') . '</a>';
- }
- $new_button = "<div class='content_header_options'>$new_button</div>";
- }
-
- // also hide the tabs if in a group context (ie, listing groups) or
- // when viewing tools belonging to a group
- if (get_context() == 'groups' || $page_owner instanceof ElggGroup) {
- $tab_list = '';
- }
-}
-
-echo <<<HTML
-<div id="content_header" class="clearfloat">
- $title $new_button
-</div>
-HTML;
-
-echo $tab_list;
diff --git a/views/default/page_elements/content_header_member.php b/views/default/page_elements/content_header_member.php
deleted file mode 100644
index 82909e1b5..000000000
--- a/views/default/page_elements/content_header_member.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * When looking at a users blog, bookmarks, video etc only show
- * the users name and the tool you are viewing
- *
- * @package Elgg
- * @subpackage Core
- *
- */
-
-$page_owner = elgg_get_page_owner();
-$name = elgg_get_page_owner()->name;
-
-// get the object type
-$type = $vars['type'];
-
-$title = elgg_echo($type);
-$title = $name . "'s " . $type;
-?>
-
-<div id="content_header" class="clearfloat">
- <?php echo '<div class="content_header_title">' . elgg_view_title($title) . '</div>'; ?>
-</div>
-
diff --git a/views/default/page_elements/elgg_content.php b/views/default/page_elements/elgg_content.php
deleted file mode 100644
index 35e67232c..000000000
--- a/views/default/page_elements/elgg_content.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * Elgg content wrapper
- * This file holds the main content
- **/
-
-$content = isset($vars['body']) ? $vars['body'] : '';
-
-echo $content;
diff --git a/views/default/page_elements/elgg_footer.php b/views/default/page_elements/elgg_footer.php
deleted file mode 100644
index 6d6fd8965..000000000
--- a/views/default/page_elements/elgg_footer.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- * Elgg footer
- * The standard HTML footer that displays across the site
- *
- * @package Elgg
- * @subpackage Core
- *
- */
-
-?>
-<div id="elgg_footer">
- <div id="elgg_footer_contents" class="clearfloat">
- <?php echo elgg_view('footer/links'); ?>
- <a href="http://www.elgg.org" class="powered_by_elgg_badge">
- <img src="<?php echo elgg_get_site_url(); ?>_graphics/powered_by_elgg_badge_drk_bckgnd.gif" alt="Powered by Elgg" />
- </a>
- </div>
-</div>
-
-<?php echo elgg_view('footer/analytics'); ?>
diff --git a/views/default/page_elements/elgg_header.php b/views/default/page_elements/elgg_header.php
deleted file mode 100644
index 7cd52a32b..000000000
--- a/views/default/page_elements/elgg_header.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-/**
- * Elgg header contents
- * This file holds the header output that a user will see
- **/
-
-?>
-<div id="elgg_header">
- <div id="elgg_header_contents">
- <?php
- // link back to main site.
- echo elgg_view('page_elements/elgg_header_logo', $vars);
-
- // drop-down login
- echo elgg_view('account/forms/login_dropdown');
-
- // insert site-wide navigation
- echo elgg_view('navigation/site_nav');
-
- // insert a view which can be extended
- echo elgg_view('header/extend');
- ?>
- </div>
-</div>
diff --git a/views/default/page_elements/elgg_header_logo.php b/views/default/page_elements/elgg_header_logo.php
deleted file mode 100644
index 1e5e5269d..000000000
--- a/views/default/page_elements/elgg_header_logo.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * Elgg header logo
- * The logo to display in elgg_header.
- **/
-?>
-
-<h1><a href="<?php echo elgg_get_site_url(); ?>">
-<span class='network_title'><?php echo $vars['config']->sitename; ?></span>
-</a></h1>
diff --git a/views/default/page_elements/elgg_sidebar.php b/views/default/page_elements/elgg_sidebar.php
deleted file mode 100644
index 2706a23c5..000000000
--- a/views/default/page_elements/elgg_sidebar.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-/**
- * Elgg sidebar contents
- *
- **/
-
-echo elgg_view('page_elements/owner_block');
-
-echo elgg_view('navigation/sidebar_menu');
-
-// optional second parameter of elgg_view_layout
-if (isset($vars['area2'])) {
- echo $vars['area2'];
-}
-
-// 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/elgg_topbar.php b/views/default/page_elements/elgg_topbar.php
deleted file mode 100644
index 4908625e4..000000000
--- a/views/default/page_elements/elgg_topbar.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/**
- * Elgg top toolbar
- * The standard elgg top toolbar
- */
-
-$user = get_loggedin_user();
-if (($user instanceof ElggUser) && ($user->guid > 0)) {
- echo '<div id="elgg_topbar" class="clearfloat">';
- echo '<div id="elgg_topbar_contents">';
-
- // Elgg logo
- echo '<a href="http://www.elgg.org">';
- echo "<img class=\"site_logo\" src=\"".elgg_get_site_url()."_graphics/elgg_toolbar_logo.gif\" alt=\"Elgg logo\" />";
- echo '</a>';
-
- // avatar
- $user_link = $user->getURL();
- $user_image = $user->getIcon('topbar');
- echo "<a href=\"$user_link\"><img class=\"user_mini_avatar\" src=\"$user_image\" alt=\"User avatar\" /></a>";
-
- // logout link
- echo elgg_view('page_elements/elgg_topbar_logout', $vars);
-
- // elgg tools menu
- // need to echo this empty view for backward compatibility.
- echo elgg_view("navigation/topbar_tools");
-
- // enable elgg topbar extending
- echo elgg_view('elgg_topbar/extend', $vars);
-
- // user settings
- $settings = elgg_echo('settings');
- echo "<a href=\"".elgg_get_site_url()."pg/settings\" class=\"settings\">$settings</a>";
-
- // The administration link is for admin or site admin users only
- if ($user->isAdmin()) {
- $admin = elgg_echo("admin");
- echo "<a href=\"".elgg_get_site_url()."pg/admin\" class=\"admin\">$admin</a>";
- }
-
- echo '</div>';
- echo '</div>';
-}
diff --git a/views/default/page_elements/elgg_topbar_logout.php b/views/default/page_elements/elgg_topbar_logout.php
deleted file mode 100644
index ca3d16707..000000000
--- a/views/default/page_elements/elgg_topbar_logout.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-/**
- * A standard logout link
- *
- * Called within the Elgg topbar view.
- */
-
-echo '<div class="log_out">';
-echo elgg_view('output/url', array(
- 'href' => elgg_get_site_url()."action/logout",
- 'text' => elgg_echo('logout'),
- 'is_action' => TRUE
-));
-echo '</div>';
diff --git a/views/default/page_elements/html_begin.php b/views/default/page_elements/html_begin.php
deleted file mode 100644
index 9b4e79268..000000000
--- a/views/default/page_elements/html_begin.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-/**
- * Start html output.
- * The standard HTML header that displays across the site
- *
- * @uses $vars['config'] The site configuration settings, imported
- * @uses $vars['title'] The page title
- * @uses $vars['body'] The main content of the page
- */
-
-// 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 = full_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 = "";
-}
-
-// we won't trust server configuration but specify utf-8
-header('Content-type: text/html; charset=utf-8');
-
-$version = get_version();
-$release = get_version(true);
-?>
-<!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>
- <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>
- <link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" />
-
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery-1.4.2.min.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery-ui-1.7.2.min.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery.form.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>_css/js.php?lastcache=<?php echo $vars['config']->lastcache; ?>&amp;js=initialise_elgg&amp;viewtype=<?php echo $vars['view']; ?>"></script>
-
- <?php
- echo elgg_view('scripts/initialize_elgg');
- echo $feedref;
- ?>
-
-<?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 elgg_get_site_url(); ?>vendors/jquery/jquery.easing.1.3.packed.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>_css/js.php?lastcache=<?php echo $vars['config']->lastcache; ?>&amp;js=friendsPickerv1&amp;viewtype=<?php echo $vars['view']; ?>"></script>
-<?php
- }
-?>
- <!-- include the default css file -->
- <link rel="stylesheet" href="<?php echo elgg_get_site_url(); ?>_css/css.css?lastcache=<?php echo $vars['config']->lastcache; ?>&amp;viewtype=<?php echo $vars['view']; ?>" type="text/css" />
-
- <!--[if IE 6]>
- <link rel="stylesheet" type="text/css" href="<?php echo elgg_get_site_url(); ?>views/default/css_ie6.php" />
- <![endif]-->
-
- <!--[if gt IE 6]>
- <link rel="stylesheet" type="text/css" href="<?php echo elgg_get_site_url(); ?>views/default/css_ie.php" />
- <![endif]-->
-<?php
- echo elgg_view('metatags', $vars);
-?>
-</head>
-
-<body>
diff --git a/views/default/page_elements/html_begin_admin.php b/views/default/page_elements/html_begin_admin.php
deleted file mode 100644
index fcb61c25c..000000000
--- a/views/default/page_elements/html_begin_admin.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/**
-* Start html output.
-* The standard HTML header for admin pages
-*/
-
-// we won't trust server configuration but specify utf-8
-header('Content-type: text/html; charset=utf-8');
-
-$version = get_version();
-$release = get_version(true);
-?>
-<!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>
- <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 $vars['config']->sitename; echo " ".elgg_echo('admin'); ?></title>
- <link rel="shortcut icon" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" />
-
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery-1.4.2.min.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery-ui-1.7.2.min.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>vendors/jquery/jquery.form.js"></script>
- <script type="text/javascript" src="<?php echo elgg_get_site_url(); ?>_css/js.php?lastcache=<?php echo $vars['config']->lastcache; ?>&amp;js=initialise_elgg&amp;viewtype=<?php echo $vars['view']; ?>"></script>
-
- <?php
- echo elgg_view('scripts/initialize_elgg');
- echo $feedref;
-
- if (elgg_view_exists('metatags')) {
- echo elgg_view('metatags', $vars);
- }
-?>
- <!-- include the admin css file
- <link rel="stylesheet" href="<?php echo elgg_get_site_url(); ?>views/default/css_admin.php" type="text/css" />-->
-</head>
-
-<body>
diff --git a/views/default/page_elements/html_end.php b/views/default/page_elements/html_end.php
deleted file mode 100644
index 0862934cf..000000000
--- a/views/default/page_elements/html_end.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * Start html output.
- * The standard HTML header that displays across the site
- * @uses $vars['config'] The site configuration settings, imported
- * @uses $vars['title'] The page title
- * @uses $vars['body'] The main content of the page
- */
-?>
-</body>
-</html>
diff --git a/views/default/page_elements/owner_block.php b/views/default/page_elements/owner_block.php
deleted file mode 100644
index 45e4f70af..000000000
--- a/views/default/page_elements/owner_block.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * Elgg owner block
- * Displays page ownership information
- *
- * @package Elgg
- * @subpackage Core
- *
- */
-
-$contents = "";
-
-// Are there feeds to display?
-global $autofeed;
-if (isset($autofeed) && $autofeed == true) {
- $url = full_url();
- if (substr_count($url,'?')) {
- $url .= "&view=rss";
- } else {
- $url .= "?view=rss";
- }
- $url = elgg_format_url($url);
- $label = elgg_echo('feed:rss');
- $contents .= <<<END
- <div class="rss_link clearfloat"><a href="{$url}" rel="nofollow" title="{$label}">{$label}</a></div>
-END;
-}
-
-if(is_plugin_enabled('profile')) {
- // Is there a page owner?
- $owner = elgg_get_page_owner();
- if ($owner instanceof ElggGroup ||
- ($owner instanceof ElggUser && $owner->getGUID() != get_loggedin_userid())
- ) {
- $icon = elgg_view('profile/icon', array('entity' => $owner, 'size' => 'tiny'));
- $owner_url = $owner->getURL();
- $display = "<div class='owner_block_icon'>$icon</div>";
- $display .= '<div class="owner_block_contents clearfloat">';
- $display .= "<h3><a href=\"$owner_url\">{$owner->name}</a></h3>";
-
- if ($owner->briefdescription) {
- $display .= "<p class=\"profile_info briefdescription\">{$owner->briefdescription}</p>";
- }
-
- $location = elgg_view('output/tags', array('value' => $owner->location));
- $display .= "<p class=\"profile_info location\">$location</p>";
-
- $display .= '</div>';
-
- // Trigger owner block menu
- $params = array('owner' => $owner);
- $links = trigger_plugin_hook('profile_menu', 'profile', $params, array());
- if (is_array($links) && !empty($links)) {
- // sort the links by name
- usort($links, create_function(
- '$a, $b',
- 'return strnatcasecmp($a[\'text\'], $b[\'text\']);'
- ));
-
- $display .= '<div class="owners_content_links"><ul>';
- foreach ($links as $link) {
- $display .= "<li><a href=\"{$link['href']}\">{$link['text']}</a></li>";
- }
- $display .= '</ul></div>';
- }
-
- // Allow plugins to extend the owner block contents
- $display .= elgg_view('owner_block/profile_extend');
-
- $contents .= "<div id='owner_block' class='clearfloat'>$display</div>";
- }
-}
-
-$contents .= elgg_view('owner_block/extend');
-
-
-echo $contents;
diff --git a/views/default/page_elements/title.php b/views/default/page_elements/title.php
deleted file mode 100644
index c5eeb9e0e..000000000
--- a/views/default/page_elements/title.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * Elgg title element
- * @uses $vars['title'] The page title
- */
-
-$page_owner = elgg_get_page_owner_guid();
-$page_owner_entity = get_entity($page_owner);
-
-$display = "<h2>" . $vars['title'] . "</h2>";
-
-$submenu = elgg_get_submenu();
-if (!empty($submenu)) {
- $submenu = "<ul class='submenu extended'>" . $submenu . "</ul>";
-}
-
-if (!empty($submenu) && $vars['submenu'] == true) {
- // plugins can extend this to add menu options
- $display .= $submenu;
-}
-
-echo $display; \ No newline at end of file
diff --git a/views/default/page_shells/admin.php b/views/default/page_shells/admin.php
deleted file mode 100644
index 9ca10f606..000000000
--- a/views/default/page_shells/admin.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Elgg pageshell for the admin area
- *
- * @package Elgg
- * @subpackage Core
- *
- * @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'];
-}
-
-echo elgg_view('page_elements/html_begin_admin', $vars);
-echo elgg_view('messages/list', array('object' => $vars['sysmessages']));
-echo elgg_view('page_elements/elgg_content', $vars);
-echo elgg_view('page_elements/html_end', $vars); \ No newline at end of file
diff --git a/views/default/page_shells/default.php b/views/default/page_shells/default.php
deleted file mode 100644
index 86171b24f..000000000
--- a/views/default/page_shells/default.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-/**
- * Elgg pageshell
- * The standard HTML page shell that everything else fits into
- *
- * @package Elgg
- * @subpackage Core
- *
- * @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'];
-}
-
-echo elgg_view('page_elements/html_begin', $vars);
-echo elgg_view('page_elements/elgg_topbar', $vars);
-// @todo this probably should be somewhere else
-echo elgg_view('messages/list', array('object' => $vars['sysmessages']));
-echo elgg_view('page_elements/elgg_header', $vars);
-echo elgg_view('page_elements/elgg_content', $vars);
-echo elgg_view('page_elements/elgg_footer', $vars);
-echo elgg_view('page_elements/html_end', $vars);
diff --git a/views/default/page_shells/walled_garden.php b/views/default/page_shells/walled_garden.php
deleted file mode 100644
index 4f88501d9..000000000
--- a/views/default/page_shells/walled_garden.php
+++ /dev/null
@@ -1,280 +0,0 @@
-<?php
-/**
- *
- */
-
-// Set the content type
-header("Content-type: text/html; charset=UTF-8");
-
-// Set title
-if (empty($vars['title'])) {
- $title = $vars['config']->sitename;
-} elseif (empty($vars['config']->sitename)) {
- $title = $vars['title'];
-} else {
- $title = $vars['config']->sitename . ": " . $vars['title'];
-}
-
-echo elgg_view('page_elements/html_begin', $vars);
-// @todo - move the css below into it's own style-sheet
-// that is called when running as a private network
-?>
-<style type="text/css">
-body {background: white;}
-/* ***************************************
- WalledGarden
-*************************************** */
-#walledgarden_container {
- margin:100px auto 0 auto;
- position:relative;
- padding:0;
- width:563px;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/walled_garden_background_extend.gif) repeat-y left top;
- text-align: left;
- word-wrap:break-word;
-}
-#walledgarden {
- position: relative;
- padding:0;
- width:563px;
- min-height:230px;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/walled_garden_background_top.gif) no-repeat left top;
-}
-#walledgarden_bottom {
- margin:0 auto;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/walled_garden_background_bottom.gif) no-repeat left bottom;
- width:563px;
- height:54px;
- /* position: relative; */
-}
-.walledgardenintro {
- float:left;
- min-height:200px;
- width:223px;
- padding:15px;
- margin:19px 0 0 23px;
-}
-.walledgardenlogin {
- float:left;
- min-height:200px;
- width:223px;
- padding:15px 15px 0 15px;
- margin:19px 0 0 11px;
-}
-.walledgardenintro h1 {
- color:#666666;
- margin-top:80px;
- line-height: 1.1em;
-}
-.walledgardenlogin h2 {
- color:#666666;
- border-bottom:1px solid #CCCCCC;
- margin-bottom:5px;
- padding-bottom:5px;
-}
-.walledgardenlogin form input.login_textarea {
- margin:0 0 10px 0;
- width:210px;
-}
-.walledgardenlogin form label {
- color:#666666;
-}
-.walledgardenlogin .remember_me label {
- font-size:1em;
- font-weight:normal;
-}
-.walledgardenlogin .remember_me {
- display:block;
- float:right;
- margin-left:0;
- margin-top:-34px;
- text-align:right;
- width:100%;
-}
-.walledgardenlogin .lost_password {
- margin-bottom: 10px;
- color:#999999;
-}
-.walledgardenlogin a.forgotten_password_link,
-.walledgardenlogin a.registration_link {
- color:#999999;
-}
-
-/* override default form styles (for when a theme is running) */
-.walledgardenlogin input {
- font: 120% Arial, Helvetica, sans-serif;
- padding: 5px;
- border: 1px solid #cccccc;
- color:#666666;
- background-color: white;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.walledgardenlogin textarea {
- font: 120% Arial, Helvetica, sans-serif;
- border: solid 1px #cccccc;
- padding: 5px;
- color:#666666;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
-}
-.walledgardenlogin textarea:focus,
-.walledgardenlogin input[type="text"]:focus {
- border: solid 1px #4690d6;
- background: #e4ecf5;
- color:#333333;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-.walledgardenlogin .input_password {
- width:200px;
-}
-.walledgardenlogin input.input_password:focus {
- border: solid 1px #4690d6;
- background-color: #e4ecf5;
- color:#333333;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-.walledgardenlogin input[type="password"]:focus {
- border: solid 1px #4690d6;
- background-color: #e4ecf5;
- color:#333333;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-.walledgardenlogin .submit_button {
- font-size: 14px;
- font-weight: bold;
- color: white;
- text-shadow:1px 1px 0px black;
- text-decoration:none;
- border: 1px solid #4690d6;
- background-color:#4690d6;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- width: auto;
- padding: 2px 4px;
- margin:0 10px 10px 0;
- cursor: pointer;
- -webkit-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
- -moz-box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.40);
-}
-.walledgardenlogin .submit_button:hover {
- color: white;
- border-color: #0054a7;
- text-decoration:none;
- background-color:#0054a7;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_graduation.png);
- background-repeat: repeat-x;
- background-position: left 10px;
-}
-.walledgardenlogin input.action_button {
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- background-color:#cccccc;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif);
- background-repeat: repeat-x;
- background-position: 0 0;
- border:1px solid #999999;
- color:#333333;
- padding:2px 15px 2px 15px;
- text-align:center;
- font-weight:bold;
- text-decoration:none;
- text-shadow:0 1px 0 white;
- cursor:pointer;
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
-}
-.walledgardenlogin input.action_button:hover,
-.walledgardenlogin input.action_button:focus {
- background-position:0 -15px;
- background-image: url(<?php echo elgg_get_site_url(); ?>_graphics/button_background.gif);
- background-repeat: repeat-x;
- color:#111111;
- text-decoration: none;
- background-color:#cccccc;
- border:1px solid #999999;
-}
-.walledgardenlogin .action_button.disabled {
- color:#999999;
- padding:2px 7px;
-}
-
-/* override some elgg system message styles */
-#walledgarden_sysmessages {
- position: absolute;
- width:100%;
- text-align: center;
- margin:0 auto;
- top:0;
- z-index:9600;
-}
-#walledgarden_sysmessages #elgg_system_message {
- width: 515px;
- max-width: 515px;
- right:auto;
- margin:30px auto 0 auto;
- position: relative;
-}
-
-
-#lostpassword_form,
-#registration_form {
- right:0;
- position:absolute;
- top:0;
- width:260px;
- background-color: white;
- padding:0;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/walled_garden_backgroundfull_top.gif) no-repeat left top;
- height:auto;
-}
-#hiddenform_body {
- padding:30px 40px 0 40px;
- height:auto;
-}
-#hiddenform_bottom {
- margin:0 auto;
- background: url(<?php echo elgg_get_site_url(); ?>_graphics/walled_garden_backgroundfull_bottom.gif) no-repeat left bottom;
- width:563px;
- height:54px;
- position: relative;
-}
-
-#hiddenform_body .cancel_request {
- margin-left:15px;
-}
-
-/* override some visual_captcha styles */
-.walledgardenlogin .visual_captcha_choices {
- margin:10px 0 0 0;
- padding:0;
- height:60px;
-}
-.walledgardenlogin ul.visual_captcha_choices li img {
- width:50px;
- height:auto;
-}
-
-</style>
-
-<?php
-$view = elgg_view('messages/list', array('object' => $vars['sysmessages']));
-
-echo "<div id='walledgarden_sysmessages' class='clearfloat'>$view</div>";
-echo '<div id="walledgarden_container"><div id="walledgarden" class="clearfloat">';
-echo "<div class=\"walledgardenintro clearfloat\"><h1>Welcome to:<br />$title</h1></div>";
-echo "<div class=\"walledgardenlogin clearfloat\">{$vars['body']}</div>";
-echo '</div>';
-echo '<div id="walledgarden_bottom"></div>';
-echo '</div>';
-
-echo elgg_view('page_elements/html_end', $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/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/item/list.php b/views/default/river/item/list.php
deleted file mode 100644
index d791c74e8..000000000
--- a/views/default/river/item/list.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-/**
- *
- * @package Elgg
- * @subpackage Core
- *
- */
-?>
-<div class="river_item_list">
-<?php
- if (isset($vars['items']) && is_array($vars['items'])) {
-
- $i = 0;
- if (!empty($vars['items'])) {
- foreach($vars['items'] as $item) {
- echo elgg_view_river_item($item);
- $i++;
- if ($i >= $vars['limit']) {
- break;
- }
- }
- }
- }
-
- if ($vars['pagination'] !== false) {
- $baseurl = $_SERVER['REQUEST_URI'];
-
- $nav = '';
-
- if (sizeof($vars['items']) > $vars['limit']) {
- $newoffset = $vars['offset'] + $vars['limit'];
- $nexturl = elgg_http_add_url_query_elements($baseurl, array('offset' => $newoffset));
-
- $nav .= '<a class="back" href="'.$nexturl.'">&laquo; ' . elgg_echo('previous') . '</a> ';
- }
-
- if ($vars['offset'] > 0) {
- $newoffset = $vars['offset'] - $vars['limit'];
- if ($newoffset < 0) {
- $newoffset = 0;
- }
- $prevurl = elgg_http_add_url_query_elements($baseurl, array('offset' => $newoffset));
-
- $nav .= '<a class="forward" href="'.$prevurl.'">' . elgg_echo('next') . ' &raquo;</a> ';
- }
-
- if (!empty($nav)) {
- echo '<div class="river_pagination"><p>'.$nav.'</p></div>';
- }
- }
-?>
-</div> \ No newline at end of file
diff --git a/views/default/river/item/wrapper.php b/views/default/river/item/wrapper.php
deleted file mode 100644
index cad70f92b..000000000
--- a/views/default/river/item/wrapper.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * Elgg river item wrapper.
- * Wraps all river items.
- *
- * @package Elgg
- */
-
-//get the site admins choice avatars or action icons
-$avatar_icon = get_plugin_setting("avatar_icon","riverdashboard");
-if(!$avatar_icon) {
- $avatar_icon = "icon";
-}
-
-if($avatar_icon == "icon"){
-
- ?>
- <div class="river_item">
- <div class="river_<?php echo $vars['item']->type; ?>">
- <div class="river_<?php echo $vars['item']->subtype; ?>">
- <div class="river_<?php echo $vars['item']->action_type; ?>">
- <div class="river_<?php echo $vars['item']->type; ?>_<?php if($vars['item']->subtype) echo $vars['item']->subtype . "_"; ?><?php echo $vars['item']->action_type; ?>">
- <p>
- <?php
- echo $vars['body'];
- ?>
- <span class="entity_subtext">
- (<?php
- echo elgg_view_friendly_time($vars['item']->posted);
- ?>)
- </span>
- </p>
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <?php
-} else {
- ?>
- <div class="river_item">
- <span class="river_item_useravatar">
- <?php
- echo elgg_view("profile/icon",array('entity' => get_entity($vars['item']->subject_guid), 'size' => 'tiny'));
- ?>
- </span>
- <p class="river_item_body">
- <?php
- echo $vars['body'];
- ?>
- <span class="entity_subtext">
- (<?php
- echo elgg_view_friendly_time($vars['item']->posted);
- ?>)
- </span>
- </p>
- </div>
- <?php
-}
-?> \ No newline at end of file
diff --git a/views/default/river/relationship/friend/create.php b/views/default/river/relationship/friend/create.php
new file mode 100644
index 000000000..0408d79e1
--- /dev/null
+++ b/views/default/river/relationship/friend/create.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Create friend river view
+ */
+$subject = $vars['item']->getSubjectEntity();
+$object = $vars['item']->getObjectEntity();
+
+$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/scripts/initialize_elgg.php b/views/default/scripts/initialize_elgg.php
deleted file mode 100644
index 03d5adc5a..000000000
--- a/views/default/scripts/initialize_elgg.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-/**
- *
- */
-
-?>
-<script type="text/javascript">
-/**
- * Don't want to cache these -- they could change for every request
- */
-elgg.config.lastcache = <?php echo (int)($vars['config']->lastcache); ?>;
-
-elgg.security.token.__elgg_ts = <?php echo $ts = time(); ?>;
-elgg.security.token.__elgg_token = '<?php echo generate_action_token($ts); ?>';
-
-<?php
-$page_owner = elgg_get_page_owner();
-
-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 = get_loggedin_user();
-
-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();
-
- echo 'elgg.session.user = new elgg.ElggUser('.json_encode($user_json).');';
-}
-?>;
-</script> \ 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 7371ac71f..000000000
--- a/views/default/settings/system.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-/**
- * Elgg system settings form
- * The form to change system settings
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['action'] If set, the place to forward the form to (usually action/systemsettings/save)
- */
-
-// Set action appropriately
-if (!isset($vars['action'])) {
- $action = elgg_get_site_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>" . elgg_echo('admin:site:access:warning') . "<br />";
-$form_body .= elgg_echo('installation:sitepermissions') . elgg_view('input/access', array('internalname' => 'default_access','value' => $vars['config']->default_access)) . "</p>";
-$form_body .= "<p>" . elgg_echo('installation:allow_user_default_access:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:allow_user_default_access:label')), 'internalname' => 'allow_user_default_access', 'value' => ($vars['config']->allow_user_default_access ? elgg_echo('installation:allow_user_default_access:label') : "") )) . "</p>";
-$form_body .= "<p>" . elgg_echo('installation:simplecache:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:simplecache:label')), 'internalname' => 'simplecache_enabled', 'value' => ($vars['config']->simplecache_enabled ? elgg_echo('installation:simplecache:label') : "") )) . "</p>";
-$form_body .= "<p>" . elgg_echo('installation:viewpathcache:description') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:viewpathcache:label')), 'internalname' => 'viewpath_cache_enabled', 'value' => (($vars['config']->viewpath_cache_enabled) ? elgg_echo('installation:viewpathcache:label') : "") )) . "</p>";
-
-$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 .= "<p>" . elgg_echo('installation:debug');
-$form_body .= elgg_view('input/pulldown', array('options_values' => $debug_options, 'internalname' => 'debug', 'value' => $vars['config']->debug));
-$form_body .= '</p>';
-
-$form_body .= "<p>" . elgg_echo('installation:httpslogin') . "<br />" .elgg_view("input/checkboxes", array('options' => array(elgg_echo('installation:httpslogin:label')), 'internalname' => 'https_login', 'value' => ($vars['config']->https_login ? elgg_echo('installation:httpslogin:label') : "") )) . "</p>";
-
-$form_body .= "<p>" . 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 .= elgg_view('input/hidden', array('internalname' => 'settings', 'value' => 'go'));
-
-$form_body .= "<div class='divider'></div>".elgg_view('input/submit', array('value' => elgg_echo("save")));
-$form_body = "<div class='admin_settings site_admin margin_top'>".$form_body."</div>";
-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 19bc13879..000000000
--- a/views/default/settings/upgrading.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-/**
- * @package Elgg
- * @subpackage Core
- */
-?>
-
-<html>
- <head>
- <title><?php echo elgg_echo('upgrading'); ?></title>
- <meta http-equiv="refresh" content="1;url=<?php echo elgg_get_site_url(); ?>upgrade.php?upgrade=upgrade"/>
- </head>
- <body bgcolor="white">
- <table width="100%" height="100%" border="0" style="margin: 0px; padding: 0px">
- <tr>
- <td width="100%" height="100%" valign="middle" align="center">
- <img src="<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif" />
- </td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
diff --git a/views/default/spotlight/default.php b/views/default/spotlight/default.php
deleted file mode 100644
index 6c872985d..000000000
--- a/views/default/spotlight/default.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Elgg default spotlight
- * The spotlight area that displays across the site
- *
- * @package Elgg
- * @subpackage Core
- *
- */
-?>
-
-<div id="spotlight_table">
- <!-- spotlight RHS content -->
- <div class="spotlightRHS">
- <h2>Information</h2>
- <ul>
- <li><a href="http://docs.elgg.org/wiki/Views/SystemViews">Populating this spotlight area</a></li>
- <li><a href="http://community.elgg.org">Elgg open source community</a></li>
- <li><a href="http://elgg.com">Elgg commercial services</a></li>
- </ul>
- </div>
- <!-- spotlight LHS content -->
- <div class="spotlightLHS">
- <h2>Welcome to Elgg</h2>
- <p>
- Elgg allows you to run your own social networking site, whether publicly (like
- Facebook) or privately within your company or organization.
- <a href="http://elgg.com/">Support and commercial services</a> are available,
- or you can find new tools for your Elgg site at the
- <a href="http://community.elgg.org/">Elgg community</a>.
- </p>
- </div><!-- /spotlight LHS content -->
-</div> \ No newline at end of file
diff --git a/views/default/upload/upload_form_content.php b/views/default/upload/upload_form_content.php
deleted file mode 100644
index 5b66a9bf3..000000000
--- a/views/default/upload/upload_form_content.php
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * Elgg system settings form
- * The form to change system settings
- *
- * @package Elgg
- * @subpackage Core
- *
- * @uses $vars['action'] If set, the place to forward the form to (usually action/systemsettings/save)
- */
-?>
-
-<input type="hidden" name="number_of_files" value="1">
-<?php
-
-if (isset($vars['entity'])) {
- $title = $vars['entity']->title;
- $description = $vars['entity']->description;
- $tags = $vars['entity']->tags;
- $access_id = $vars['entity']->access_id;
-} else {
- $title = "";
- $description = "";
- $tags = "";
- $access_id = get_default_access();
-}
-
-$plugin = $vars['plugin'];
-
-if (!$vars['entity']) {
-
-?>
- <div id="option_container">
- <p>
- <label><?php echo elgg_echo("title"); ?><br />
- <?php
-
- echo elgg_view("input/text", array("internalname" => "title_0"));
-
- ?>
- </label>
- </p>
- <p>
- <label><?php echo elgg_echo("$plugin:file"); ?><br />
- <?php
-
- echo elgg_view("input/file",array('internalname' => 'upload_0'));
-
- ?>
- </label>
- </p>
- </div>
- <p><input type="button" onclick="javascript:file_addtoform()" value="<?php echo elgg_echo("$plugin:add_to_form"); ?>"></p>
-<?php
- } else {
-
-?>
- <p>
- <label><?php echo elgg_echo("title"); ?><br />
- <?php
-
- echo elgg_view("input/text", array(
- "internalname" => "title",
- "value" => $title,
- ));
-
- ?>
- </label>
- </p>
-<?php
- }
-?>
- <p class="longtext_inputarea">
- <label><?php echo elgg_echo("description"); ?></label>
- <?php
-
- echo elgg_view("input/longtext",array(
- "internalname" => "description",
- "value" => $description,
- ));
- ?>
- </p>
- <p>
- <label><?php echo elgg_echo("tags"); ?><br />
- <?php
-
- echo elgg_view("input/tags", array(
- "internalname" => "tags",
- "value" => $tags,
- ));
-
- ?>
- </label></p>
-<?php
-
- $categories = elgg_view('categories',$vars);
- if (!empty($categories)) {
-?>
-
- <p>
- <?php echo $categories; ?>
- </p>
-
-<?php
- }
- //remove folders until they are ready to use
- //echo elgg_view("$plugin/folders/select",$vars);
-?>
- <p>
- <label>
- <?php echo elgg_echo('access'); ?><br />
- <?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => $access_id)); ?>
- </label>
- </p>
-
-<?php
-
- if (isset($vars['container_guid'])) {
- echo "<input type=\"hidden\" name=\"container_guid\" value=\"{$vars['container_guid']}\" />";
- }
- if (isset($vars['entity'])) {
- echo "<input type=\"hidden\" name=\"file_guid\" value=\"{$vars['entity']->getGUID()}\" />";
- } \ No newline at end of file
diff --git a/views/default/user/default.php b/views/default/user/default.php
index 8c5fdee3e..6c84e84ad 100644
--- a/views/default/user/default.php
+++ b/views/default/user/default.php
@@ -2,16 +2,56 @@
/**
* Elgg user display
*
- * @package Elgg
- * @subpackage Core
+ * @uses $vars['entity'] ElggUser entity
+ * @uses $vars['size'] Size of the icon
*/
-if ($vars['full']) {
- echo elgg_view("profile/userdetails",$vars);
+$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 (get_input('search_viewtype') == "gallery") {
- echo elgg_view('profile/gallery',$vars);
+ if ($entity->isBanned()) {
+ $banned = elgg_echo('banned');
+ $params = array(
+ 'entity' => $entity,
+ 'title' => $title,
+ 'metadata' => $metadata,
+ );
} else {
- echo elgg_view("profile/listing",$vars);
+ $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 1e48d6145..a3878a803 100644
--- a/views/default/user/search/finishblurb.php
+++ b/views/default/user/search/finishblurb.php
@@ -10,7 +10,7 @@ elgg_deprecated_notice('view user/search/finishblurb was deprecated.', 1.7);
if ($vars['count'] > $vars['threshold']) {
?>
-<a href="<?php echo elgg_get_site_url(); ?>pg/search/users/?tag=<?php echo urlencode($vars['tag']); ?>"><?php
+<a href="<?php echo elgg_get_site_url(); ?>search/users?tag=<?php echo urlencode($vars['tag']); ?>"><?php
echo elgg_echo("user:search:finishblurb");
?></a>
<?php
diff --git a/views/default/user/search/startblurb.php b/views/default/user/search/startblurb.php
index a4ee421a1..806157609 100644
--- a/views/default/user/search/startblurb.php
+++ b/views/default/user/search/startblurb.php
@@ -7,6 +7,4 @@
elgg_deprecated_notice('view user/search/startblurb was deprecated.', 1.7);
-echo sprintf(elgg_echo("user:search:startblurb"),$vars['tag']);
-
-?>
+echo elgg_echo("user:search:startblurb", array($vars['tag'])); \ No newline at end of file
diff --git a/views/default/user/settings/default_access.php b/views/default/user/settings/default_access.php
deleted file mode 100644
index c557fd09d..000000000
--- a/views/default/user/settings/default_access.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-/**
- * Provide a way of setting your default access
- *
- * @package Elgg
- * @subpackage Core
- */
-if ($vars['config']->allow_user_default_access) {
- $user = elgg_get_page_owner();
-
- if ($user) {
- if (false === ($default_access = $user->getPrivateSetting('elgg_default_access'))) {
- $default_access = $vars['config']->default_access;
- }
-?>
-<div class="user_settings access">
- <h3><?php echo elgg_echo('default_access:settings'); ?></h3>
- <p>
- <?php echo elgg_echo('default_access:label'); ?>:
- <?php
-
- echo elgg_view('input/access',array('internalname' => 'default_access', 'value' => $default_access));
-
- ?>
- </p>
-</div>
-<?php
- }
-} \ 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 0a08b1faf..000000000
--- a/views/default/user/settings/email.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * Provide a way of setting your email
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$user = elgg_get_page_owner();
-
-if ($user) {
-?>
-<div class="user_settings email">
-<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>
-</div>
-<?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 06486ae3e..000000000
--- a/views/default/user/settings/language.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
- * Provide a way of setting your language prefs
- *
- * @package Elgg
- * @subpackage Core
- */
-
-global $CONFIG;
-$user = elgg_get_page_owner();
-
-if ($user) {
-?>
-<div class="user_settings language">
-<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>
-</div>
-<?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 fad6c488f..000000000
--- a/views/default/user/settings/name.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Provide a way of setting your full name.
- *
- * @package Elgg
- * @subpackage Core
-
-
- */
-
-$user = elgg_get_page_owner();
-
-// all hidden, but necessary for properly updating user details
-echo elgg_view('input/hidden', array('internalname' => 'name', 'value' => $user->name));
-echo elgg_view('input/hidden', array('internalname' => 'guid', 'value' => $user->guid));
diff --git a/views/default/user/settings/password.php b/views/default/user/settings/password.php
deleted file mode 100644
index ea7be401d..000000000
--- a/views/default/user/settings/password.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * Provide a way of setting your password
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$user = elgg_get_page_owner();
-
-if ($user) {
-?>
-<div class="user_settings password">
-<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>
-</div>
-<?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 02ccbc795..000000000
--- a/views/default/usersettings/form.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * @package Elgg
- * @subpackage Core
- */
-
-$form_body = elgg_view("usersettings/user");
-$form_body .= "<div class='divider'></div>".elgg_view('input/submit', array('value' => elgg_echo('save'), 'class' => 'submit_button usersettings_save'));
-
-echo elgg_view('input/form', array('action' => elgg_get_site_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 d1cf85448..000000000
--- a/views/default/usersettings/main.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-/**
- * Elgg user main settings page.
- * Functions for adding and manipulating options on the user settings panel.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-// Description of what's going on
-echo elgg_view('output/longtext', array('value' => elgg_echo("usersettings:description")));
diff --git a/views/default/usersettings/main_opt/plugins.php b/views/default/usersettings/main_opt/plugins.php
deleted file mode 100644
index ab5743d36..000000000
--- a/views/default/usersettings/main_opt/plugins.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-/**
- * Elgg plugin sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-global $CONFIG;
-?>
-<div class="menu_admin_option">
- <h2><?php echo elgg_echo('usersettings:plugins'); ?> </h2>
- <p><?php echo elgg_echo('usersettings:plugins:opt:description'); ?><br />
- <a href="<?php echo elgg_get_site_url() . "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 0f3872143..000000000
--- a/views/default/usersettings/main_opt/statistics.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg satistics sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- */
-?>
-<div class="menu_admin_option">
- <h2><?php echo elgg_echo('usersettings:statistics'); ?> </h2>
- <p><?php echo elgg_echo('usersettings:statistics:opt:description'); ?><br />
- <a href="<?php echo elgg_get_site_url() . "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 d9f2b5677..000000000
--- a/views/default/usersettings/main_opt/user.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg user sub-component on the main menu.
- *
- * @package Elgg
- * @subpackage Core
- */
-?>
-<div class="menu_admin_option">
- <h2><?php echo elgg_echo('usersettings:user'); ?> </h2>
- <p><?php echo elgg_echo('usersettings:user:opt:description'); ?><br />
- <a href="<?php echo elgg_get_site_url() . "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 71be11d9f..000000000
--- a/views/default/usersettings/plugins.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-/**
- * Elgg plugin specific user settings.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-// Description of what's going on
-echo "<div class='user_settings margin_top'>".elgg_view('output/longtext', array('value' => elgg_echo("usersettings:plugins:description")))."</div>";
-
-$limit = get_input('limit', 10);
-$offset = get_input('offset', 0);
-
-// 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 9638e00af..000000000
--- a/views/default/usersettings/plugins_opt/plugin.php
+++ /dev/null
@@ -1,34 +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
- */
-
-
-$plugin = $vars['plugin'];
-$details = $vars['details'];
-
-$active = $details['active'];
-$manifest = $details['manifest'];
-
-$user_guid = $details['user_guid'];
-if ($user_guid) {
- $user_guid = get_loggedin_userid();
-}
-
-if (elgg_view("usersettings/{$plugin}/edit")) {
-?>
-<div class="user_settings">
- <h3><?php echo elgg_echo($plugin); ?></h3>
-
- <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 c90d14c6d..000000000
--- a/views/default/usersettings/statistics.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * Elgg settings specific user settings.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-?> \ 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 c80347b34..000000000
--- a/views/default/usersettings/statistics_opt/numentities.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-/**
- * Elgg statistics screen
- *
- * @package Elgg
- * @subpackage Core
- */
-
-// Get entity statistics
-$entity_stats = get_entity_statistics(get_loggedin_userid());
-
-if ($entity_stats) {
-?>
-<div class="user_settings statistics">
- <h3><?php echo elgg_echo('usersettings:statistics:label:numentities'); ?></h3>
- <table class="styled">
- <?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 bbe6203ce..000000000
--- a/views/default/usersettings/statistics_opt/online.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Elgg statistics screen showing online users.
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$user = get_loggedin_user();
-
-$logged_in = 0;
-$log = get_system_log($user->guid, "login", "", 'user', '', 1);
-
-if ($log) {
- $logged_in = $log[0]->time_created;
-}
-
-?>
-<div class="user_settings details">
- <h3><?php echo elgg_echo('usersettings:statistics:yourdetails'); ?></h3>
-
- <table class="styled">
- <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 c6a56a14e..000000000
--- a/views/default/usersettings/user.php
+++ /dev/null
@@ -1,6 +0,0 @@
-<?php
-/**
- * @package Elgg
- * @subpackage Core
- */
-?> \ 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 5be2df9d4..000000000
--- a/views/default/widgets/editwrapper.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-/**
- * Elgg edit widget layout
- *
- * @package Elgg
- * @subpackage Core
- */
-
-$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' => elgg_get_site_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 elgg_get_site_url(); ?>pg/view/<?php echo $guid; ?>?shell=no&username=<?php echo elgg_get_page_owner()->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 c89a878ca..000000000
--- a/views/default/widgets/wrapper.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * Elgg widget wrapper
- *
- * @package Elgg
- * @subpackage Core
- */
-
-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;
- if (!$title) {
- $title = $handler;
- }
-} 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"
- if (elgg_view_exists("widgets/{$handler}/view")) {
- echo elgg_view("widgets/{$handler}/view",$vars);
- } else {
- echo elgg_echo('widgets:handlernotfound');
- }
-
- ?>
-
- <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 elgg_get_site_url(); ?>pg/view/<?php echo $vars['entity']->getGUID(); ?>?shell=no&username=<?php echo elgg_get_page_owner()->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