aboutsummaryrefslogtreecommitdiff
path: root/views/default/page
diff options
context:
space:
mode:
Diffstat (limited to 'views/default/page')
-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.php73
-rw-r--r--views/default/page/elements/composer.php7
-rw-r--r--views/default/page/elements/footer.php36
-rw-r--r--views/default/page/elements/head.php68
-rw-r--r--views/default/page/elements/header.php12
-rw-r--r--views/default/page/elements/owner_block.php30
-rw-r--r--views/default/page/elements/shortcut_icon.php6
-rw-r--r--views/default/page/elements/sidebar.php31
-rw-r--r--views/default/page/elements/sidebar_alt.php12
-rw-r--r--views/default/page/elements/title.php21
-rw-r--r--views/default/page/layouts/content.php45
-rw-r--r--views/default/page/layouts/content/sidebar_alt.php0
-rw-r--r--views/default/page/layouts/two_sidebar.php46
18 files changed, 643 insertions, 0 deletions
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..5ddf82b63
--- /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) {
+ 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>';
+}
+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..1cc7a32a1
--- /dev/null
+++ b/views/default/page/default.php
@@ -0,0 +1,73 @@
+<?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') {
+ 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);
+ return true;
+}
+
+// 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
+}
+
+?>
+ </body>
+</html> \ No newline at end of file
diff --git a/views/default/page/elements/composer.php b/views/default/page/elements/composer.php
new file mode 100644
index 000000000..3c92b4e7b
--- /dev/null
+++ b/views/default/page/elements/composer.php
@@ -0,0 +1,7 @@
+<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/footer.php b/views/default/page/elements/footer.php
new file mode 100644
index 000000000..5469e0f36
--- /dev/null
+++ b/views/default/page/elements/footer.php
@@ -0,0 +1,36 @@
+<?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://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'),
+ '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..859326bbe
--- /dev/null
+++ b/views/default/page/elements/head.php
@@ -0,0 +1,68 @@
+<?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 = 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 = "";
+}
+
+$js = elgg_get_loaded_js('head');
+$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); ?>
+<?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');
+?>
+<!--[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]-->
+<?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'); ?>
+</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;
+} \ No newline at end of file
diff --git a/views/default/page/elements/header.php b/views/default/page/elements/header.php
new file mode 100644
index 000000000..45fb91da8
--- /dev/null
+++ b/views/default/page/elements/header.php
@@ -0,0 +1,12 @@
+<?php
+
+$site = elgg_get_site_entity();
+
+echo "<h1 id=\"facebook-header-logo\">";
+echo elgg_view('output/url', array(
+ 'href' => '/',
+ 'text' => $site->name,
+));
+echo "</h1>";
+
+echo elgg_view_form('login', array('id' => 'facebook-header-login')); \ No newline at end of file
diff --git a/views/default/page/elements/owner_block.php b/views/default/page/elements/owner_block.php
new file mode 100644
index 000000000..cee13ebff
--- /dev/null
+++ b/views/default/page/elements/owner_block.php
@@ -0,0 +1,30 @@
+<?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) {
+
+ $header = elgg_view_entity_icon($owner, 'large');
+
+ $body = elgg_view_menu('owner_block', array('entity' => $owner, 'sort_by' => 'priority'));
+
+ $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..74ab4f629
--- /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(); ?>mod/cool_theme/_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..3bd8abb8e
--- /dev/null
+++ b/views/default/page/elements/sidebar.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Elgg sidebar contents
+ *
+ * @uses $vars['sidebar'] Optional content that is displayed at the bottom of sidebar
+ */
+
+echo elgg_view('page/elements/owner_block', $vars);
+
+echo elgg_view_menu('page', array('sort_by' => 'priority'));
+
+// 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'];
+}
+
+echo elgg_view_menu('extras', array(
+ 'sort_by' => 'priority',
+)); \ 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..5d1f54947
--- /dev/null
+++ b/views/default/page/elements/sidebar_alt.php
@@ -0,0 +1,12 @@
+<?php
+
+
+$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
diff --git a/views/default/page/elements/title.php b/views/default/page/elements/title.php
new file mode 100644
index 000000000..77260212e
--- /dev/null
+++ b/views/default/page/elements/title.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Elgg title element
+ *
+ * @uses $vars['title'] The page title
+ * @uses $vars['class'] Optional class for heading
+ */
+
+if (isset($vars['header'])) {
+ echo $vars['header'];
+ return true;
+}
+
+$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
diff --git a/views/default/page/layouts/content.php b/views/default/page/layouts/content.php
new file mode 100644
index 000000000..ea27ab7f2
--- /dev/null
+++ b/views/default/page/layouts/content.php
@@ -0,0 +1,45 @@
+<?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['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'));
+
+// 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);
+
+$params = array(
+ 'title' => $vars['title'],
+ 'content' => $filter . $content . $footer,
+ 'sidebar' => elgg_extract('sidebar_alt', $vars, ''),
+ 'sidebar_alt' => elgg_extract('sidebar', $vars, ''),
+);
+if (isset($vars['class'])) {
+ $params['class'] = $vars['class'];
+}
+echo elgg_view_layout('two_sidebar', $params); \ No newline at end of file
diff --git a/views/default/page/layouts/content/sidebar_alt.php b/views/default/page/layouts/content/sidebar_alt.php
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/views/default/page/layouts/content/sidebar_alt.php
diff --git a/views/default/page/layouts/two_sidebar.php b/views/default/page/layouts/two_sidebar.php
new file mode 100644
index 000000000..817b02dc6
--- /dev/null
+++ b/views/default/page/layouts/two_sidebar.php
@@ -0,0 +1,46 @@
+<?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-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-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