aboutsummaryrefslogtreecommitdiff
path: root/views/default/page
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/page')
-rw-r--r--views/default/page/admin.php66
-rw-r--r--views/default/page/components/list.php28
-rw-r--r--views/default/page/default.php99
-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/composer.php7
-rw-r--r--views/default/page/elements/foot.php11
-rw-r--r--views/default/page/elements/footer.php18
-rw-r--r--views/default/page/elements/head.php39
-rw-r--r--views/default/page/elements/header.php18
-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.php7
-rw-r--r--views/default/page/elements/shortcut_icon.php2
-rw-r--r--views/default/page/elements/sidebar.php13
-rw-r--r--views/default/page/elements/sidebar_alt.php20
-rw-r--r--views/default/page/elements/tagcloud_block.php58
-rw-r--r--views/default/page/elements/title.php11
-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.php24
-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/content/sidebar_alt.php0
-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.php47
-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
41 files changed, 996 insertions, 168 deletions
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/list.php b/views/default/page/components/list.php
index 5ddf82b63..28ed58ddf 100644
--- a/views/default/page/components/list.php
+++ b/views/default/page/components/list.php
@@ -49,21 +49,21 @@ if ($pagination && $count) {
}
if (is_array($items) && count($items) > 0) {
- $html .= "<ul class=\"$list_class\">";
- foreach ($items as $item) {
- if($item->action_type != 'comment') {
- if (elgg_instanceof($item)) {
- $id = "elgg-{$item->getType()}-{$item->getGUID()}";
- } else {
- $id = "item-{$item->getType()}-{$item->id}";
- }
- $html .= "<li id=\"$id\" class=\"$item_class\">";
- $html .= elgg_view_list_item($item, $vars);
- $html .= '</li>';
- }
- }
- $html .= '</ul>';
+ $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;
}
diff --git a/views/default/page/default.php b/views/default/page/default.php
index 1cc7a32a1..567494d0c 100644
--- a/views/default/page/default.php
+++ b/views/default/page/default.php
@@ -6,68 +6,71 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['title'] The page title
- * @uses $vars['body'] The main content of the page
+ * @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') {
- elgg_deprecated_notice("admin plugins should route through 'admin'.", 1.8);
+ 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/shells/admin', $vars);
+ 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");
-?>
-<!DOCTYPE html>
- <html xml:lang="en" lang="en">
- <head>
- <?php echo elgg_view('page/elements/head', $vars); ?>
- </head>
- <?php flush() ?>
- <body>
- <div class="elgg-page elgg-page-default">
- <div class="elgg-page-messages">
- <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?>
- </div>
- <?php if (elgg_is_logged_in()): ?>
- <div class="elgg-page-topbar">
- <div class="elgg-inner">
- <?php echo elgg_view('page/elements/topbar', $vars); ?>
- </div>
- </div>
- <?php else: ?>
- <div class="elgg-page-header">
- <div class="elgg-inner">
- <?php echo elgg_view('page/elements/header', $vars); ?>
- </div>
- </div>
- <?php endif; ?>
- <div class="elgg-page-body">
- <div class="elgg-inner">
- <?php echo elgg_view('page/elements/body', $vars); ?>
- </div>
- </div>
- <div class="elgg-page-footer">
- <div class="elgg-inner">
- <?php echo elgg_view('page/elements/footer', $vars); ?>
- </div>
- </div>
- </div>
- <?php
-echo elgg_view('footer/analytics');
-$js = elgg_get_loaded_js('footer');
-foreach ($js as $script) { ?>
-<script type="text/javascript" src="<?php echo $script; ?>"></script>
-<?php
-}
+$lang = get_current_language();
?>
- </body>
+<!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/composer.php b/views/default/page/elements/composer.php
deleted file mode 100644
index 3c92b4e7b..000000000
--- a/views/default/page/elements/composer.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<div class="elgg-composer"><h4><?php echo elgg_echo('composer:prompt'); ?> :</h4><?php
- echo elgg_view_menu('composer', array(
- 'entity' => elgg_get_page_owner_entity(),
- 'class' => 'elgg-menu-hz',
- 'sort_by' => 'priority',
- ));
- ?></div><script>$('.elgg-composer').tabs({spinner: '',panelTemplate: '<div><div class="elgg-ajax-loader"></div></div>'});</script> \ No newline at end of file
diff --git a/views/default/page/elements/foot.php b/views/default/page/elements/foot.php
new file mode 100644
index 000000000..a56b373b4
--- /dev/null
+++ b/views/default/page/elements/foot.php
@@ -0,0 +1,11 @@
+<?php
+
+echo elgg_view('footer/analytics');
+
+$js = elgg_get_loaded_js('footer');
+foreach ($js as $script) { ?>
+ <script type="text/javascript" src="<?php echo $script; ?>"></script>
+<?php
+}
+
+?> \ No newline at end of file
diff --git a/views/default/page/elements/footer.php b/views/default/page/elements/footer.php
index 5469e0f36..ded2cea9a 100644
--- a/views/default/page/elements/footer.php
+++ b/views/default/page/elements/footer.php
@@ -14,22 +14,8 @@ $powered_url = elgg_get_site_url() . "_graphics/powered_by_elgg_badge_drk_bckgnd
echo '<div class="mts clearfloat float-alt">';
echo elgg_view('output/url', array(
- 'href' => 'http://blog.wisb.me',
- 'text' => elgg_echo('WISB:footer_wisblog'),
- 'class' => '',
- 'is_trusted' => true,
-));
-echo (' · ');
-echo elgg_view('output/url', array(
- 'href' => 'http://developers.wisb.me',
- 'text' => elgg_echo('WISB:footer_developers'),
- 'class' => '',
- 'is_trusted' => true,
-));
-echo (' · ');
-echo elgg_view('output/url', array(
- 'href' => 'http://www.wisb.me',
- 'text' => elgg_echo('WISB:footer_wisb'),
+ 'href' => 'http://elgg.org',
+ 'text' => "<img src=\"$powered_url\" alt=\"Powered by Elgg\" width=\"106\" height=\"15\" />",
'class' => '',
'is_trusted' => true,
));
diff --git a/views/default/page/elements/head.php b/views/default/page/elements/head.php
index 859326bbe..d4a95b4d0 100644
--- a/views/default/page/elements/head.php
+++ b/views/default/page/elements/head.php
@@ -9,12 +9,12 @@
if (empty($vars['title'])) {
$title = elgg_get_config('sitename');
} else {
- $title = elgg_get_config('sitename') . " · " . $vars['title'];
+ $title = elgg_get_config('sitename') . ": " . $vars['title'];
}
global $autofeed;
if (isset($autofeed) && $autofeed == true) {
- $url = full_url();
+ $url = current_page_url();
if (substr_count($url,'?')) {
$url .= "&view=rss";
} else {
@@ -36,28 +36,41 @@ $css = elgg_get_loaded_css();
$version = get_version();
$release = get_version(true);
?>
-<meta http-equiv="X-UA-Compatible" content="IE=edge" />
-<title><?php echo $title; ?></title>
-<?php echo elgg_view('page/elements/shortcut_icon', $vars); ?>
+ <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 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">
-<?php echo elgg_view('js/initialize_elgg'); ?>
+// <![CDATA[
+ <?php echo elgg_view('js/initialize_elgg'); ?>
+// ]]>
</script>
+
<?php
echo $feedref;
@@ -65,4 +78,4 @@ $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;
-} \ No newline at end of file
+}
diff --git a/views/default/page/elements/header.php b/views/default/page/elements/header.php
index 45fb91da8..1a1f5d211 100644
--- a/views/default/page/elements/header.php
+++ b/views/default/page/elements/header.php
@@ -1,12 +1,14 @@
<?php
+/**
+ * Elgg page header
+ * In the default theme, the header lives between the topbar and main content area.
+ */
-$site = elgg_get_site_entity();
+// link back to main site.
+echo elgg_view('page/elements/header_logo', $vars);
-echo "<h1 id=\"facebook-header-logo\">";
-echo elgg_view('output/url', array(
- 'href' => '/',
- 'text' => $site->name,
-));
-echo "</h1>";
+// drop-down login
+echo elgg_view('core/account/login_dropdown');
-echo elgg_view_form('login', array('id' => 'facebook-header-login')); \ No newline at end of file
+// 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
index cee13ebff..fc7f0f6d2 100644
--- a/views/default/page/elements/owner_block.php
+++ b/views/default/page/elements/owner_block.php
@@ -12,11 +12,12 @@ 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) {
+if ($owner instanceof ElggGroup ||
+ ($owner instanceof ElggUser && $owner->getGUID() != elgg_get_logged_in_user_guid())) {
- $header = elgg_view_entity_icon($owner, 'large');
+ $header = elgg_view_entity($owner, array('full_view' => false));
- $body = elgg_view_menu('owner_block', array('entity' => $owner, 'sort_by' => 'priority'));
+ $body = elgg_view_menu('owner_block', array('entity' => $owner));
$body .= elgg_view('page/elements/owner_block/extend', $vars);
diff --git a/views/default/page/elements/shortcut_icon.php b/views/default/page/elements/shortcut_icon.php
index 74ab4f629..12fe9c1f8 100644
--- a/views/default/page/elements/shortcut_icon.php
+++ b/views/default/page/elements/shortcut_icon.php
@@ -3,4 +3,4 @@
* Displays the default shortcut icon
*/
?>
-<link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>mod/cool_theme/_graphics/favicon.ico" /> \ No newline at end of file
+<link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" /> \ No newline at end of file
diff --git a/views/default/page/elements/sidebar.php b/views/default/page/elements/sidebar.php
index 3bd8abb8e..fe6bb450e 100644
--- a/views/default/page/elements/sidebar.php
+++ b/views/default/page/elements/sidebar.php
@@ -5,9 +5,14 @@
* @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' => 'priority'));
+echo elgg_view_menu('page', array('sort_by' => 'name'));
// optional 'sidebar' parameter
if (isset($vars['sidebar'])) {
@@ -24,8 +29,4 @@ if (isset($vars['area2'])) {
// optional third parameter of elgg_view_layout
if (isset($vars['area3'])) {
echo $vars['area3'];
-}
-
-echo elgg_view_menu('extras', array(
- 'sort_by' => 'priority',
-)); \ No newline at end of file
+} \ No newline at end of file
diff --git a/views/default/page/elements/sidebar_alt.php b/views/default/page/elements/sidebar_alt.php
index 5d1f54947..6d91ca58b 100644
--- a/views/default/page/elements/sidebar_alt.php
+++ b/views/default/page/elements/sidebar_alt.php
@@ -1,12 +1,12 @@
-<?php
+<?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, '');
-$homepage = "/dashboard";
-$currentpage = $_SERVER['REQUEST_URI'];
-if($homepage==$currentpage) {
-echo "<strong><a href=\"../thanks\">Thanks</a></strong><br />
-edit the sidebar for the dashboard in /mod/cool_theme/views/default/page/elements/sidebar_alt.php<br />
-and enjoy";
-}
-
-?> \ No newline at end of file
+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
index 77260212e..19f47f4e6 100644
--- a/views/default/page/elements/title.php
+++ b/views/default/page/elements/title.php
@@ -6,16 +6,9 @@
* @uses $vars['class'] Optional class for heading
*/
-if (isset($vars['header'])) {
- echo $vars['header'];
- return true;
-}
-
-$class = '';
+$class= '';
if (isset($vars['class'])) {
$class = " class=\"{$vars['class']}\"";
}
-echo elgg_view_menu('title', array('sort_by' => 'priority'));
-echo "<h1{$class}>{$vars['title']}</h1>";
-echo elgg_view('navigation/breadcrumbs'); \ No newline at end of file
+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
index ea27ab7f2..c406c9faf 100644
--- a/views/default/page/layouts/content.php
+++ b/views/default/page/layouts/content.php
@@ -10,13 +10,21 @@
* @uses $vars['filter'] HTML of the content area filter (override)
* @uses $vars['title'] Title text (override)
* @uses $vars['context'] Page context (override)
- * @uses $vars['buttons'] Content header buttons (override)
* @uses $vars['filter_context'] Filter context: everyone, friends, mine
* @uses $vars['class'] Additional class to apply to layout
*/
-// navigation defaults to breadcrumbs
-$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs'));
+// 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'])) {
@@ -33,13 +41,13 @@ $params = $vars;
$params['content'] = $footer_content;
$footer = elgg_view('page/layouts/content/footer', $params);
+$body = $header . $filter . $content . $footer;
+
$params = array(
- 'title' => $vars['title'],
- 'content' => $filter . $content . $footer,
- 'sidebar' => elgg_extract('sidebar_alt', $vars, ''),
- 'sidebar_alt' => elgg_extract('sidebar', $vars, ''),
+ 'content' => $body,
+ 'sidebar' => $sidebar,
);
if (isset($vars['class'])) {
$params['class'] = $vars['class'];
}
-echo elgg_view_layout('two_sidebar', $params); \ No newline at end of file
+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/content/sidebar_alt.php b/views/default/page/layouts/content/sidebar_alt.php
deleted file mode 100644
index e69de29bb..000000000
--- a/views/default/page/layouts/content/sidebar_alt.php
+++ /dev/null
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
index 817b02dc6..7521dd44f 100644
--- a/views/default/page/layouts/two_sidebar.php
+++ b/views/default/page/layouts/two_sidebar.php
@@ -5,10 +5,10 @@
* @package Elgg
* @subpackage Core
*
- * @uses $vars['content'] The content string for the main column
- * @uses $vars['sidebar'] Optional content that is displayed in the sidebar
+ * @uses $vars['content'] The content string for the main column
+ * @uses $vars['sidebar'] Optional content that is displayed in the sidebar
* @uses $vars['sidebar_alt'] Optional content that is displayed in the alternate sidebar
- * @uses $vars['class'] Additional class to apply to layout
+ * @uses $vars['class'] Additional class to apply to layout
*/
$class = 'elgg-layout elgg-layout-two-sidebar clearfix';
@@ -19,28 +19,25 @@ if (isset($vars['class'])) {
<div class="<?php echo $class; ?>">
<div class="elgg-sidebar">
- <?php echo elgg_view('page/elements/sidebar', $vars); ?>
+ <?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-body">
- <div class="elgg-head">
- <?php echo elgg_view('page/elements/title', $vars); ?>
- </div>
- <?php
- // allow page handlers to override the default header
+
+ <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 class="elgg-sidebar-alt">
- <?php echo elgg_view('page/elements/sidebar_alt', $vars); ?>
- </div>
- <div class="elgg-body elgg-main">
- <?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>
-</div> \ No newline at end of file
+</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