diff options
Diffstat (limited to 'views/default/page')
47 files changed, 773 insertions, 660 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/gallery.php b/views/default/page/components/gallery.php index f57cc99ba..e8b3f477e 100644 --- a/views/default/page/components/gallery.php +++ b/views/default/page/components/gallery.php @@ -2,13 +2,21 @@ /** * Gallery view * - * @uses $vars['items'] + * Implemented as an unorder list * - * @todo not complete - number of columns + * @uses $vars['items'] Array of ElggEntity or ElggAnnotation objects + * @uses $vars['offset'] Index of the first list item in complete list + * @uses $vars['limit'] Number of items per page + * @uses $vars['count'] Number of items in the complete list + * @uses $vars['pagination'] Show pagination? (default: true) + * @uses $vars['position'] Position of the pagination: before, after, or both + * @uses $vars['full_view'] Show the full view of the items (default: false) + * @uses $vars['gallery_class'] Additional CSS class for the <ul> element + * @uses $vars['item_class'] Additional CSS class for the <li> elements */ $items = $vars['items']; -if (!is_array($items) && sizeof($items) == 0) { +if (!is_array($items) || sizeof($items) == 0) { return true; } @@ -18,13 +26,20 @@ $offset = $vars['offset']; $limit = $vars['limit']; $count = $vars['count']; $pagination = elgg_extract('pagination', $vars, true); -$full_view = elgg_extract('full_view', $vars, false); $offset_key = elgg_extract('offset_key', $vars, 'offset'); $position = elgg_extract('position', $vars, 'after'); -$num_columns = 4; +$gallery_class = 'elgg-gallery'; +if (isset($vars['gallery_class'])) { + $gallery_class = "$gallery_class {$vars['gallery_class']}"; +} +$item_class = 'elgg-item'; +if (isset($vars['item_class'])) { + $item_class = "$item_class {$vars['item_class']}"; +} +$nav = ''; if ($pagination && $count) { $nav .= elgg_view('navigation/pagination', array( 'offset' => $offset, @@ -39,33 +54,20 @@ if ($position == 'before' || $position == 'both') { } ?> -<table class="elgg-gallery"> -<?php - -$col = 0; -foreach ($items as $item) { - if ($col == 0) { - echo '<tr>'; - } - $col++; - - echo '<td>'; - echo elgg_view_list_item($item, $full_view, $vars); - echo "</td>"; - - if ($col == $num_columns) { - echo '</tr>'; - $col = 0; - } -} - -if ($col > 0) { - echo '</tr>'; -} - -?> - -</table> +<ul class="<?php echo $gallery_class; ?>"> + <?php + foreach ($items as $item) { + if (elgg_instanceof($item)) { + $id = "elgg-{$item->getType()}-{$item->getGUID()}"; + } else { + $id = "item-{$item->getType()}-{$item->id}"; + } + echo "<li id=\"$id\" class=\"$item_class\">"; + echo elgg_view_list_item($item, $vars); + echo "</li>"; + } + ?> +</ul> <?php if ($position == 'after' || $position == 'both') { diff --git a/views/default/page/components/list.php b/views/default/page/components/list.php index 374922ecd..28ed58ddf 100644 --- a/views/default/page/components/list.php +++ b/views/default/page/components/list.php @@ -6,7 +6,7 @@ * * @uses $vars['items'] Array of ElggEntity or ElggAnnotation objects * @uses $vars['offset'] Index of the first list item in complete list - * @uses $vars['limit'] Number of items per page + * @uses $vars['limit'] Number of items per page. Only used as input to pagination. * @uses $vars['count'] Number of items in the complete list * @uses $vars['base_url'] Base URL of list (optional) * @uses $vars['pagination'] Show pagination? (default: true) @@ -17,23 +17,22 @@ */ $items = $vars['items']; -$offset = $vars['offset']; -$limit = $vars['limit']; -$count = $vars['count']; -$base_url = $vars['base_url']; +$offset = elgg_extract('offset', $vars); +$limit = elgg_extract('limit', $vars); +$count = elgg_extract('count', $vars); +$base_url = elgg_extract('base_url', $vars, ''); $pagination = elgg_extract('pagination', $vars, true); -$full_view = elgg_extract('full_view', $vars, false); $offset_key = elgg_extract('offset_key', $vars, 'offset'); $position = elgg_extract('position', $vars, 'after'); $list_class = 'elgg-list'; if (isset($vars['list_class'])) { - $list_class = "{$vars['list_class']} $list_class"; + $list_class = "$list_class {$vars['list_class']}"; } -$item_class = 'elgg-list-item'; +$item_class = 'elgg-item'; if (isset($vars['item_class'])) { - $item_class = "{$vars['item_class']} $item_class"; + $item_class = "$item_class {$vars['item_class']}"; } $html = ""; @@ -41,7 +40,7 @@ $nav = ""; if ($pagination && $count) { $nav .= elgg_view('navigation/pagination', array( - 'baseurl' => $base_url, + 'base_url' => $base_url, 'offset' => $offset, 'count' => $count, 'limit' => $limit, @@ -52,14 +51,15 @@ if ($pagination && $count) { if (is_array($items) && count($items) > 0) { $html .= "<ul class=\"$list_class\">"; foreach ($items as $item) { - if (elgg_instanceof($item)) { - $id = "elgg-{$item->getType()}-{$item->getGUID()}"; - } else { - $id = "item-{$item->getType()}-{$item->id}"; + $li = elgg_view_list_item($item, $vars); + if ($li) { + if (elgg_instanceof($item)) { + $id = "elgg-{$item->getType()}-{$item->getGUID()}"; + } else { + $id = "item-{$item->getType()}-{$item->id}"; + } + $html .= "<li id=\"$id\" class=\"$item_class\">$li</li>"; } - $html .= "<li id=\"$id\" class=\"$item_class\">"; - $html .= elgg_view_list_item($item, $full_view, $vars); - $html .= '</li>'; } $html .= '</ul>'; } diff --git a/views/default/page/components/module.php b/views/default/page/components/module.php index f7b9da59c..7e1eaff20 100644 --- a/views/default/page/components/module.php +++ b/views/default/page/components/module.php @@ -2,10 +2,10 @@ /** * Elgg module element * - * @uses $vars['title'] Title text - * @uses $vars['header'] HTML content of the header + * @uses $vars['title'] Optional title text (do not pass header with this option) + * @uses $vars['header'] Optional HTML content of the header * @uses $vars['body'] HTML content of the body - * @uses $vars['footer'] HTML content of the footer + * @uses $vars['footer'] Optional HTML content of the footer * @uses $vars['class'] Optional additional class for module * @uses $vars['id'] Optional id for module * @uses $vars['show_inner'] Optional flag to leave out inner div (default: false) @@ -29,19 +29,15 @@ if (isset($vars['id'])) { } if (isset($vars['header'])) { - if ($vars['header']) { - $header = "<div class=\"elgg-head\">$header</div>"; - } -} else { + $header = "<div class=\"elgg-head\">$header</div>"; +} elseif ($title) { $header = "<div class=\"elgg-head\"><h3>$title</h3></div>"; } $body = "<div class=\"elgg-body\">$body</div>"; -if (isset($vars['footer'])) { - if ($vars['footer']) { - $footer = "<div class=\"elgg-foot\">$footer</div>"; - } +if ($footer) { + $footer = "<div class=\"elgg-foot\">$footer</div>"; } $contents = $header . $body . $footer; diff --git a/views/default/page/components/summary.php b/views/default/page/components/summary.php new file mode 100644 index 000000000..ea61a6e4b --- /dev/null +++ b/views/default/page/components/summary.php @@ -0,0 +1,4 @@ +<?php + +// Deprecated in favor of type/elements/summary +echo elgg_view('object/elements/summary', $vars); diff --git a/views/default/page/components/widget.php b/views/default/page/components/widget.php deleted file mode 100644 index e7a16b318..000000000 --- a/views/default/page/components/widget.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php -/** - * Widget object - * - * @uses $vars['entity'] ElggWidget - * @uses $vars['show_access'] Show the access control in edit area? (true) - */ - -$widget = $vars['entity']; -if (!elgg_instanceof($widget, 'object', 'widget')) { - return true; -} - -$show_access = elgg_extract('show_access', $vars, true); - -// @todo catch for disabled plugins -$widget_types = elgg_get_widget_types('all'); - -$handler = $widget->handler; - -$title = $widget->getTitle(); - -$edit_area = ''; -$can_edit = $widget->canEdit(); -if ($can_edit) { - $edit_area = elgg_view('layout/objects/widget/settings', array( - 'widget' => $widget, - 'show_access' => $show_access, - )); -} -$controls = elgg_view('layout/objects/widget/controls', array( - 'widget' => $widget, - 'show_edit' => $edit_area != '', -)); - -// don't show content for default widgets -if (elgg_in_context('default_widgets')) { - $content = ''; -} else { - if (elgg_view_exists("widgets/$handler/content")) { - $content = elgg_view("widgets/$handler/content", $vars); - } else { - elgg_deprecated_notice("widgets use content as the display view", 1.8); - $content = elgg_view("widgets/$handler/view", $vars); - } -} - -$widget_id = "elgg-widget-$widget->guid"; -$widget_instance = "elgg-widget-instance-$handler"; -$widget_class = "elgg-module elgg-module-widget"; -if ($can_edit) { - $widget_class .= " elgg-state-draggable $widget_instance"; -} else { - $widget_class .= " elgg-state-fixed $widget_instance"; -} - -echo <<<HTML -<div class="$widget_class" id="$widget_id"> - <div class="elgg-head"> - <h3>$title</h3> - $controls - </div> - <div class="elgg-body"> - $edit_area - <div class="elgg-widget-content"> - $content - </div> - </div> -</div> -HTML; diff --git a/views/default/page/default.php b/views/default/page/default.php new file mode 100644 index 000000000..567494d0c --- /dev/null +++ b/views/default/page/default.php @@ -0,0 +1,76 @@ +<?php +/** + * Elgg pageshell + * The standard HTML page shell that everything else fits into + * + * @package Elgg + * @subpackage Core + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +// backward compatability support for plugins that are not using the new approach +// of routing through admin. See reportedcontent plugin for a simple example. +if (elgg_get_context() == 'admin') { + if (get_input('handler') != 'admin') { + elgg_deprecated_notice("admin plugins should route through 'admin'.", 1.8); + } + elgg_admin_add_plugin_settings_menu(); + elgg_unregister_css('elgg'); + echo elgg_view('page/admin', $vars); + return true; +} + +// render content before head so that JavaScript and CSS can be loaded. See #4032 +$topbar = elgg_view('page/elements/topbar', $vars); +$messages = elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); +$header = elgg_view('page/elements/header', $vars); +$body = elgg_view('page/elements/body', $vars); +$footer = elgg_view('page/elements/footer', $vars); + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); + +$lang = get_current_language(); + +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $lang; ?>" lang="<?php echo $lang; ?>"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> +<div class="elgg-page elgg-page-default"> + <div class="elgg-page-messages"> + <?php echo $messages; ?> + </div> + + <?php if (elgg_is_logged_in()){ ?> + <div class="elgg-page-topbar"> + <div class="elgg-inner"> + <?php echo $topbar; ?> + </div> + </div> + <?php } ?> + + <div class="elgg-page-header"> + <div class="elgg-inner"> + <?php echo $header; ?> + </div> + </div> + <div class="elgg-page-body"> + <div class="elgg-inner"> + <?php echo $body; ?> + </div> + </div> + <div class="elgg-page-footer"> + <div class="elgg-inner"> + <?php echo $footer; ?> + </div> + </div> +</div> +<?php echo elgg_view('page/elements/foot'); ?> +</body> +</html>
\ No newline at end of file diff --git a/views/default/page/elements/comments.php b/views/default/page/elements/comments.php index c27a146ab..97cb9574e 100644 --- a/views/default/page/elements/comments.php +++ b/views/default/page/elements/comments.php @@ -5,26 +5,38 @@ * @uses $vars['entity'] ElggEntity * @uses $vars['show_add_form'] Display add form or not * @uses $vars['id'] Optional id for the div + * @uses $vars['class'] Optional additional class for the div */ $show_add_form = elgg_extract('show_add_form', $vars, true); $id = ''; if (isset($vars['id'])) { - $id = "id =\"{$vars['id']}\""; + $id = "id=\"{$vars['id']}\""; } -echo "<div $id class=\"elgg-comments\">"; +$class = 'elgg-comments'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} + +// work around for deprecation code in elgg_view() +unset($vars['internalid']); + +echo "<div $id class=\"$class\">"; $options = array( 'guid' => $vars['entity']->getGUID(), 'annotation_name' => 'generic_comment' ); -echo elgg_list_annotations($options); +$html = elgg_list_annotations($options); +if ($html) { + echo '<h3>' . elgg_echo('comments') . '</h3>'; + echo $html; +} if ($show_add_form) { - $form_vars = array('name' => 'elgg_add_comment'); - echo elgg_view_form('comments/add', $form_vars, $vars); + echo elgg_view_form('comments/add', array(), $vars); } echo '</div>'; diff --git a/views/default/page/elements/comments_block.php b/views/default/page/elements/comments_block.php new file mode 100644 index 000000000..d0f8ab809 --- /dev/null +++ b/views/default/page/elements/comments_block.php @@ -0,0 +1,45 @@ +<?php +/** + * Display the latest related comments + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being commented on + * @uses $vars['limit'] The number of comments to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { + $owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { + // not supporting groups so return + return true; +} + +$options = array( + 'annotation_name' => 'generic_comment', + 'owner_guid' => $owner_guid, + 'reverse_order_by' => true, + 'limit' => elgg_extract('limit', $vars, 4), + 'type' => 'object', + 'subtypes' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), +); + +$title = elgg_echo('generic_comments:latest'); +$comments = elgg_get_annotations($options); +if ($comments) { + $body = elgg_view('page/components/list', array( + 'items' => $comments, + 'pagination' => false, + 'list_class' => 'elgg-latest-comments', + 'full_view' => false, + )); +} else { + $body = '<p>' . elgg_echo('generic_comment:none') . '</p>'; +} + +echo elgg_view_module('aside', $title, $body); diff --git a/views/default/page/elements/content_header.php b/views/default/page/elements/content_header.php deleted file mode 100644 index 10ba4b052..000000000 --- a/views/default/page/elements/content_header.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * Displays the Add New button, and the All, Mine, My Friends tabs for plugins - * If a user is not logged in, this only displays the All tab. - * If this is in a group context, it doesn't display any tabs - * - * @uses string $vars['type'] The section type. Should be the same as the page handler. Used for generating URLs. - * @uses string $vars['context'] Which filter we're looking at: all, mine, friends, or action. Nothing to do with get_context(). - * - * @uses string $vars['all_link'] Optional. The URL to use for the "All" tab link. Defaults to mod/$type/all.php - * @uses string $vars['mine_link'] Optional. The URL to use for the "Mine" tab link. Defaults to pg/$type/$username - * @uses string $vars['friends_link'] Optional. The URL to use for the "Friends" tab link. Defaults to pg/$type/$username/friends - * @uses string $vars['new_link'] Optional. The URL to use for the "New" button. Defaults to pg/$type/$username/new - * @uses array $vars['tabs'] Optional. Override all tab generation. See view:navgiation/tabs for formatting - * - * @package Elgg - * @subpackage Core - */ - -$page_owner = elgg_get_page_owner_entity(); -$logged_in_user = elgg_get_logged_in_user_entity(); -$username = $logged_in_user->username; - -if (!$page_owner) { - $page_owner = $logged_in_user; -} - -// so we know if the user is looking at their own, everyone's or all friends -$filter_context = $vars['context']; - -// get the object type -$type = $vars['type']; - -// create an empty string to start with -$new_button = ''; - -// generate a list of default tabs -$default_tabs = array( - 'all' => array( - 'title' => elgg_echo('all'), - 'url' => (isset($vars['all_link'])) ? $vars['all_link'] : "mod/$type/all.php", - 'selected' => ($filter_context == 'everyone'), - ), - 'mine' => array( - 'title' => elgg_echo('mine'), - 'url' => (isset($vars['mine_link'])) ? $vars['mine_link'] : "pg/$type/$username", - 'selected' => ($filter_context == 'mine'), - ), - 'friend' => array( - 'title' => elgg_echo('friends'), - 'url' => (isset($vars['friend_link'])) ? $vars['friend_link'] : "pg/$type/$username/friends", - 'selected' => ($filter_context == 'friends'), - ), -); - -// determine if using default or overwritten tabs -$tabs = (isset($vars['tabs'])) ? $vars['tabs'] : $default_tabs; -$tab_list = elgg_view('navigation/tabs', array('tabs' => $tabs)); - -$title = elgg_echo($type); -$title = '<div class="content-header-title">' . elgg_view_title($title) . '</div>'; - -// must be logged in to see any action buttons -if (elgg_is_logged_in()) { - // only show the new button when not on the add form. - // hide the tabs when on the add form. - if ($filter_context == 'action') { - $tab_list = ''; - } else { - // @todo remove the hard coded reference to the videolist plugin - if (elgg_get_context() == "videolist"){ - $video_link = elgg_get_site_url() . "pg/videolist/browse/$username/"; - $new_button = "<a href=\"{$video_link}\" class='elgg-button-action'>" . elgg_echo('videolist:browsemenu') . '</a>'; - } else { - $new_link = elgg_normalize_url((isset($vars['new_link'])) ? $vars['new_link'] : "pg/$type/$username/new"); - $new_button = "<a href=\"{$new_link}\" class='elgg-button-action'>" . elgg_echo($type . ':new') . '</a>'; - } - $new_button = "<div class='content-header-options'>$new_button</div>"; - } - - // also hide the tabs if in a group context (ie, listing groups) or - // when viewing tools belonging to a group - if (elgg_get_context() == 'groups' || $page_owner instanceof ElggGroup) { - $tab_list = ''; - } -} - -echo <<<HTML -<div id="content-header" class="clearfix"> - $title $new_button -</div> -HTML; - -echo $tab_list; diff --git a/views/default/page/elements/content_header_member.php b/views/default/page/elements/content_header_member.php deleted file mode 100644 index 4f21cbcce..000000000 --- a/views/default/page/elements/content_header_member.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * When looking at a users blog, bookmarks, video etc only show - * the users name and the tool you are viewing - * - * @package Elgg - * @subpackage Core - * - */ - -$page_owner = elgg_get_page_owner_entity(); -$name = elgg_get_page_owner_entity()->name; - -// get the object type -$type = $vars['type']; - -$title = elgg_echo($type); -$title = $name . "'s " . $type; -?> - -<div id="content-header" class="clearfix"> - <?php echo '<div class="content-header-title">' . elgg_view_title($title) . '</div>'; ?> -</div> - diff --git a/views/default/page/elements/foot.php b/views/default/page/elements/foot.php new file mode 100644 index 000000000..a56b373b4 --- /dev/null +++ b/views/default/page/elements/foot.php @@ -0,0 +1,11 @@ +<?php + +echo elgg_view('footer/analytics'); + +$js = elgg_get_loaded_js('footer'); +foreach ($js as $script) { ?> + <script type="text/javascript" src="<?php echo $script; ?>"></script> +<?php +} + +?>
\ No newline at end of file diff --git a/views/default/page/elements/footer.php b/views/default/page/elements/footer.php index 001d856b1..ded2cea9a 100644 --- a/views/default/page/elements/footer.php +++ b/views/default/page/elements/footer.php @@ -8,11 +8,15 @@ * */ -echo elgg_view_menu('footer', array('class' => 'elgg-menu-footer')); -echo elgg_view('footer/links'); +echo elgg_view_menu('footer', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz')); -?> +$powered_url = elgg_get_site_url() . "_graphics/powered_by_elgg_badge_drk_bckgnd.gif"; -<a href="http://www.elgg.org" class="elgg-alt"> - <img src="<?php echo elgg_get_site_url(); ?>_graphics/powered_by_elgg_badge_drk_bckgnd.gif" alt="Powered by Elgg" /> -</a> +echo '<div class="mts clearfloat float-alt">'; +echo elgg_view('output/url', array( + 'href' => 'http://elgg.org', + 'text' => "<img src=\"$powered_url\" alt=\"Powered by Elgg\" width=\"106\" height=\"15\" />", + 'class' => '', + 'is_trusted' => true, +)); +echo '</div>'; diff --git a/views/default/page/elements/head.php b/views/default/page/elements/head.php index 209eb35f4..d4a95b4d0 100644 --- a/views/default/page/elements/head.php +++ b/views/default/page/elements/head.php @@ -14,7 +14,7 @@ if (empty($vars['title'])) { global $autofeed; if (isset($autofeed) && $autofeed == true) { - $url = full_url(); + $url = current_page_url(); if (substr_count($url,'?')) { $url .= "&view=rss"; } else { @@ -30,8 +30,8 @@ END; $feedref = ""; } -$js = elgg_get_js('head'); -$css = elgg_get_css(); +$js = elgg_get_loaded_js('head'); +$css = elgg_get_loaded_css(); $version = get_version(); $release = get_version(true); @@ -40,7 +40,7 @@ $release = get_version(true); <meta name="ElggRelease" content="<?php echo $release; ?>" /> <meta name="ElggVersion" content="<?php echo $version; ?>" /> <title><?php echo $title; ?></title> - <link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" /> + <?php echo elgg_view('page/elements/shortcut_icon', $vars); ?> <?php foreach ($css as $link) { ?> <link rel="stylesheet" href="<?php echo $link; ?>" type="text/css" /> @@ -48,11 +48,15 @@ $release = get_version(true); <?php $ie_url = elgg_get_simplecache_url('css', 'ie'); + $ie7_url = elgg_get_simplecache_url('css', 'ie7'); $ie6_url = elgg_get_simplecache_url('css', 'ie6'); ?> - <!--[if gt IE 6]> + <!--[if gt IE 7]> <link rel="stylesheet" type="text/css" href="<?php echo $ie_url; ?>" /> <![endif]--> + <!--[if IE 7]> + <link rel="stylesheet" type="text/css" href="<?php echo $ie7_url; ?>" /> + <![endif]--> <!--[if IE 6]> <link rel="stylesheet" type="text/css" href="<?php echo $ie6_url; ?>" /> <![endif]--> @@ -62,7 +66,9 @@ $release = get_version(true); <?php } ?> <script type="text/javascript"> +// <![CDATA[ <?php echo elgg_view('js/initialize_elgg'); ?> +// ]]> </script> <?php @@ -70,7 +76,6 @@ echo $feedref; $metatags = elgg_view('metatags', $vars); if ($metatags) { - elgg_deprecated_notice("The metatags view has been deprecated for html_head/extend", 1.8); + elgg_deprecated_notice("The metatags view has been deprecated. Extend page/elements/head instead", 1.8); echo $metatags; } -echo elgg_view('html_head/extend', $vars); diff --git a/views/default/page/elements/header.php b/views/default/page/elements/header.php index 972c90272..1a1f5d211 100644 --- a/views/default/page/elements/header.php +++ b/views/default/page/elements/header.php @@ -1,8 +1,8 @@ <?php /** - * Elgg header contents - * This file holds the header output that a user will see - **/ + * Elgg page header + * In the default theme, the header lives between the topbar and main content area. + */ // link back to main site. echo elgg_view('page/elements/header_logo', $vars); @@ -11,7 +11,4 @@ echo elgg_view('page/elements/header_logo', $vars); echo elgg_view('core/account/login_dropdown'); // insert site-wide navigation -echo elgg_view_menu('site'); - -// insert a view which can be extended -echo elgg_view('header/extend'); +echo elgg_view_menu('site');
\ No newline at end of file diff --git a/views/default/page/elements/header_logo.php b/views/default/page/elements/header_logo.php index 4295deaa4..7fe721c40 100644 --- a/views/default/page/elements/header_logo.php +++ b/views/default/page/elements/header_logo.php @@ -1,13 +1,15 @@ <?php /** * Elgg header logo - * The logo to display in elgg-header. */ $site = elgg_get_site_entity(); $site_name = $site->name; +$site_url = elgg_get_site_url(); ?> <h1> - <a class="elgg-heading-site" href="<?php echo elgg_get_site_url(); ?>"><?php echo $site_name; ?></a> + <a class="elgg-heading-site" href="<?php echo $site_url; ?>"> + <?php echo $site_name; ?> + </a> </h1> diff --git a/views/default/page/elements/messages.php b/views/default/page/elements/messages.php index e4e6030f1..edd40d71e 100644 --- a/views/default/page/elements/messages.php +++ b/views/default/page/elements/messages.php @@ -11,14 +11,14 @@ echo '<ul class="elgg-system-messages">'; +// hidden li so we validate +echo '<li class="hidden"></li>'; + if (isset($vars['object']) && is_array($vars['object']) && sizeof($vars['object']) > 0) { foreach ($vars['object'] as $type => $list ) { foreach ($list as $message) { echo "<li class=\"elgg-message elgg-state-$type\">"; - echo elgg_view('output/longtext', array( - 'value' => $message, - 'parse_urls' => false - )); + echo elgg_autop($message); echo '</li>'; } } diff --git a/views/default/page/elements/owner_block.php b/views/default/page/elements/owner_block.php index 2f9fc8603..fc7f0f6d2 100644 --- a/views/default/page/elements/owner_block.php +++ b/views/default/page/elements/owner_block.php @@ -15,16 +15,12 @@ $owner = elgg_get_page_owner_entity(); if ($owner instanceof ElggGroup || ($owner instanceof ElggUser && $owner->getGUID() != elgg_get_logged_in_user_guid())) { - $header = elgg_view_entity($owner, false); + $header = elgg_view_entity($owner, array('full_view' => false)); - $body = elgg_view_menu('owner_block', array( - 'entity' => $owner, - 'class' => 'elgg-owner-block-menu', - )); + $body = elgg_view_menu('owner_block', array('entity' => $owner)); $body .= elgg_view('page/elements/owner_block/extend', $vars); - //@todo elgg-module-owner-block? echo elgg_view('page/components/module', array( 'header' => $header, 'body' => $body, diff --git a/views/default/page/elements/page_links.php b/views/default/page/elements/page_links.php deleted file mode 100644 index fb9acbfb7..000000000 --- a/views/default/page/elements/page_links.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -/** - * Page links: RSS link, reported content link, etc. - */ - -// Are there feeds to display? -global $autofeed; -$rss_link = ''; -if (isset($autofeed) && $autofeed == true) { - $url = full_url(); - if (substr_count($url,'?')) { - $url .= "&view=rss"; - } else { - $url .= "?view=rss"; - } - $url = elgg_format_url($url); - $label = elgg_echo('feed:rss'); - - $rss_link = elgg_view('output/url', array( - 'text' => '<span class="elgg-icon elgg-icon-rss"></span>', - 'href' => $url, - 'title' => $label, - 'rel' => 'nofollow', - 'encode_text' => false, - 'class' => 'right', - )); -} - -// view to extend by plugins -$links = elgg_view('page/links', $vars); - -if ($links || $rss_link) { - echo '<div class="elgg-page-links clearfix mbm">'; - echo $rss_link; - echo $links; - echo '</div>'; -} diff --git a/views/default/page/elements/shortcut_icon.php b/views/default/page/elements/shortcut_icon.php new file mode 100644 index 000000000..12fe9c1f8 --- /dev/null +++ b/views/default/page/elements/shortcut_icon.php @@ -0,0 +1,6 @@ +<?php +/** + * Displays the default shortcut icon + */ +?> +<link rel="SHORTCUT ICON" href="<?php echo elgg_get_site_url(); ?>_graphics/favicon.ico" />
\ No newline at end of file diff --git a/views/default/page/elements/sidebar.php b/views/default/page/elements/sidebar.php index 8950c5f3f..fe6bb450e 100644 --- a/views/default/page/elements/sidebar.php +++ b/views/default/page/elements/sidebar.php @@ -5,7 +5,10 @@ * @uses $vars['sidebar'] Optional content that is displayed at the bottom of sidebar */ -echo elgg_view('page/elements/page_links', $vars); +echo elgg_view_menu('extras', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', +)); echo elgg_view('page/elements/owner_block', $vars); diff --git a/views/default/page/elements/sidebar_alt.php b/views/default/page/elements/sidebar_alt.php new file mode 100644 index 000000000..6d91ca58b --- /dev/null +++ b/views/default/page/elements/sidebar_alt.php @@ -0,0 +1,12 @@ +<?php +/** + * Elgg secondary sidebar contents + * + * You can override, extend, or pass content to it + * + * @uses $vars['sidebar_alt] HTML content for the alternate sidebar + */ + +$sidebar = elgg_extract('sidebar_alt', $vars, ''); + +echo $sidebar; diff --git a/views/default/page/elements/tagcloud_block.php b/views/default/page/elements/tagcloud_block.php new file mode 100644 index 000000000..258951c41 --- /dev/null +++ b/views/default/page/elements/tagcloud_block.php @@ -0,0 +1,58 @@ +<?php +/** + * Display content-based tags + * + * Generally used in a sidebar. Does not work with groups currently. + * + * @uses $vars['subtypes'] Object subtype string or array of subtypes + * @uses $vars['owner_guid'] The owner of the content being tagged + * @uses $vars['limit'] The maxinum number of tags to display + */ + +$owner_guid = elgg_extract('owner_guid', $vars, ELGG_ENTITIES_ANY_VALUE); +if (!$owner_guid) { + $owner_guid = ELGG_ENTITIES_ANY_VALUE; +} + +$owner_entity = get_entity($owner_guid); +if ($owner_entity && elgg_instanceof($owner_entity, 'group')) { + // not supporting groups so return + return true; +} + +$options = array( + 'type' => 'object', + 'subtype' => elgg_extract('subtypes', $vars, ELGG_ENTITIES_ANY_VALUE), + 'owner_guid' => $owner_guid, + 'threshold' => 0, + 'limit' => elgg_extract('limit', $vars, 50), + 'tag_name' => 'tags', +); + +$title = elgg_echo('tagcloud'); +if (is_array($options['subtype']) && count($options['subtype']) > 1) { + // we cannot provide links to tagged objects with multiple types + $tag_data = elgg_get_tags($options); + $cloud = elgg_view("output/tagcloud", array( + 'value' => $tag_data, + 'type' => $type, + )); +} else { + $cloud = elgg_view_tagcloud($options); +} +if (!$cloud) { + return true; +} + +// add a link to all site tags +$cloud .= '<p class="small">'; +$cloud .= elgg_view_icon('tag'); +$cloud .= elgg_view('output/url', array( + 'href' => 'tags', + 'text' => elgg_echo('tagcloud:allsitetags'), + 'is_trusted' => true, +)); +$cloud .= '</p>'; + + +echo elgg_view_module('aside', $title, $cloud); diff --git a/views/default/page/elements/topbar.php b/views/default/page/elements/topbar.php index 987326119..e4c6c86bb 100644 --- a/views/default/page/elements/topbar.php +++ b/views/default/page/elements/topbar.php @@ -1,66 +1,16 @@ <?php /** - * Elgg top toolbar + * Elgg topbar * The standard elgg top toolbar */ -$user = elgg_get_logged_in_user_entity(); - -//@todo echo elgg_view_menu('topbar', array('class' => 'elgg-menu-topbar')); - // Elgg logo -$image = '<img src="' . elgg_get_site_url() . '_graphics/elgg_toolbar_logo.gif" alt="Elgg logo" />'; -echo elgg_view('output/url', array( - 'href' => 'http://www.elgg.org/', - 'text' => $image, -)); - -// avatar -$user_link = $user->getURL(); -$user_image = $user->getIconURL('topbar'); -$image = "<img src=\"$user_image\" alt=\"$user->name\" class=\"bab\" />"; -echo elgg_view('output/url', array( - 'href' => $user_link, - 'text' => $image, -)); - -// friends -echo elgg_view('output/url', array( - 'href' => elgg_get_site_url() . "pg/friends/{$user->username}/", - 'text' => '<span class="elgg-icon elgg-icon-friends"></span>', - 'title' => elgg_echo('friends'), -)); - -// logout link -echo elgg_view('output/url', array( - 'href' => "action/logout", - 'text' => elgg_echo('logout'), - 'is_action' => TRUE, - 'class' => 'elgg-alt', -)); +echo elgg_view_menu('topbar', array('sort_by' => 'priority', array('elgg-menu-hz'))); // elgg tools menu // need to echo this empty view for backward compatibility. -// @todo -- do we really? So much else is broken, and the new menu system is so much nicer... -echo elgg_view("navigation/topbar_tools"); - -// enable elgg topbar extending -echo elgg_view('elgg_topbar/extend', $vars); - -//@todo echo elgg_view_menu('topbar2', array('class' => 'elgg-menu-topbar elgg-alt')); - -// user settings -echo elgg_view('output/url', array( - 'href' => elgg_get_site_url() . "pg/settings/user/{$user->username}", - 'text' => '<span class="elgg-icon elgg-icon-settings"></span>' . elgg_echo('settings'), - 'class' => 'elgg-alt', -)); - -// The administration link is for admin or site admin users only -if ($user->isAdmin()) { - echo elgg_view('output/url', array( - 'href' => elgg_get_site_url() . 'pg/admin/', - 'text' => '<span class="elgg-icon elgg-icon-settings"></span>' . elgg_echo('admin'), - 'class' => 'elgg-alt', - )); +$content = elgg_view("navigation/topbar_tools"); +if ($content) { + elgg_deprecated_notice('navigation/topbar_tools was deprecated. Extend the topbar menus or the page/elements/topbar view directly', 1.8); + echo $content; } diff --git a/views/default/page/elements/wrapper.php b/views/default/page/elements/wrapper.php new file mode 100644 index 000000000..61828832d --- /dev/null +++ b/views/default/page/elements/wrapper.php @@ -0,0 +1,22 @@ +<?php +/** + * Deprecated content wrapper view from Elgg 1.5 through 1.7 + * + * @uses $vars['body'] The content to display inside content wrapper + * @uses $vars['subclass'] Additional css class + */ + +elgg_deprecated_notice("The 'page_elements/contentwrapper' has been deprecated", 1.8); +?> + +<div class="contentWrapper<?php + + if (isset($vars['subclass'])) { + echo ' ' . $vars['subclass']; + } + +?>"> +<?php + echo $vars['body']; +?> +</div> diff --git a/views/default/page/error.php b/views/default/page/error.php new file mode 100644 index 000000000..b7ba3ae9b --- /dev/null +++ b/views/default/page/error.php @@ -0,0 +1,14 @@ +<?php +/** + * Page shell for errors + * + * This is for errors that are not unhandled exceptions. Those are handled + * through the failsafe viewtype to guarantee that no further exceptions occur. + * An example error would be 404 (page not found). + * + * @uses $vars['title'] The page title + * @uses $vars['body'] The main content of the page + * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() + */ + +echo elgg_view('page/default', $vars); diff --git a/views/default/page/layouts/admin.php b/views/default/page/layouts/admin.php index 7ba4abbd1..8dbdc27e6 100644 --- a/views/default/page/layouts/admin.php +++ b/views/default/page/layouts/admin.php @@ -10,61 +10,22 @@ * @uses $vars['title'] Title string */ -$admin_title = elgg_get_site_entity()->name . ' ' . elgg_echo('admin'); - -$view_site = elgg_view('output/url', array( - 'href' => elgg_get_site_url(), - 'text' => elgg_echo('admin:view_site'), -)); -$logout = elgg_view('output/url', array( - 'href' => 'action/logout', - 'text' => elgg_echo('logout'), -)); ?> -<div class="elgg-page-header"> - <div class="elgg-inner clearfix"> - <h1 class="elgg-heading-site"> - <a href="<?php echo elgg_get_site_url(); ?>pg/admin/"> - <?php echo $admin_title; ?> - </a> - </h1> - <ul class="elgg-menu-user"> - <li><?php echo elgg_echo('admin:loggedin', array(elgg_get_logged_in_user_entity()->name)); ?></li> - <li><?php echo $view_site; ?></li> - <li><?php echo $logout; ?></li> - </ul> - </div> -</div> - -<?php -// @todo clean up system messages code -$messages = null; -if (count_messages()) { - // get messages - try for errors first - $messages = system_messages(NULL, "error"); - if (count($messages["error"]) == 0) { - // no errors so grab rest of messages - $messages = system_messages(null, ""); - } else { - // we have errors - clear out remaining messages - system_messages(null, ""); - } -} -echo elgg_view('page/elements/messages', array('object' => $messages)); -?> - -<div class="elgg-page-body"> +<div class="elgg-layout elgg-layout-one-sidebar"> <div class="elgg-sidebar clearfix"> <?php - echo elgg_view('admin/sidebar/top', $vars); - echo elgg_view('layout/shells/admin/menu', $vars); - echo elgg_view('admin/sidebar/bottom', $vars); + echo elgg_view('admin/sidebar', $vars); ?> </div> <div class="elgg-main elgg-body"> <div class="elgg-head"> <?php + echo elgg_view_menu('title', array( + 'sort_by' => 'priority', + 'class' => 'elgg-menu-hz', + )); + if (isset($vars['title'])) { echo elgg_view_title($vars['title']); } @@ -76,9 +37,4 @@ echo elgg_view('page/elements/messages', array('object' => $messages)); } ?> </div> -</div> -<div class="elgg-page-footer"> -</div> -<?php - -echo elgg_view('footer/analytics'); +</div>
\ No newline at end of file diff --git a/views/default/page/layouts/content.php b/views/default/page/layouts/content.php index 69772985a..c406c9faf 100644 --- a/views/default/page/layouts/content.php +++ b/views/default/page/layouts/content.php @@ -10,7 +10,6 @@ * @uses $vars['filter'] HTML of the content area filter (override) * @uses $vars['title'] Title text (override) * @uses $vars['context'] Page context (override) - * @uses $vars['buttons'] Content header buttons (override) * @uses $vars['filter_context'] Filter context: everyone, friends, mine * @uses $vars['class'] Additional class to apply to layout */ @@ -19,22 +18,19 @@ $sidebar_content = elgg_extract('sidebar', $vars, ''); $params = $vars; $params['content'] = $sidebar_content; -$sidebar = elgg_view('layout/shells/content/sidebar', $params); - -// navigation defaults to breadcrumbs -$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); +$sidebar = elgg_view('page/layouts/content/sidebar', $params); // allow page handlers to override the default header if (isset($vars['header'])) { $vars['header_override'] = $vars['header']; } -$header = elgg_view('layout/shells/content/header', $vars); +$header = elgg_view('page/layouts/content/header', $vars); // allow page handlers to override the default filter if (isset($vars['filter'])) { $vars['filter_override'] = $vars['filter']; } -$filter = elgg_view('layout/shells/content/filter', $vars); +$filter = elgg_view('page/layouts/content/filter', $vars); // the all important content $content = elgg_extract('content', $vars, ''); @@ -43,9 +39,9 @@ $content = elgg_extract('content', $vars, ''); $footer_content = elgg_extract('footer', $vars, ''); $params = $vars; $params['content'] = $footer_content; -$footer = elgg_view('layout/shells/content/footer', $params); +$footer = elgg_view('page/layouts/content/footer', $params); -$body = $nav . $header . $filter . $content . $footer; +$body = $header . $filter . $content . $footer; $params = array( 'content' => $body, diff --git a/views/default/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/error.php b/views/default/page/layouts/error.php new file mode 100644 index 000000000..cdce28a8e --- /dev/null +++ b/views/default/page/layouts/error.php @@ -0,0 +1,12 @@ +<?php +/** + * Error layout + */ + +$class = 'elgg-layout-error'; +if (isset($vars['class'])) { + $class = "$class {$vars['class']}"; +} +$vars['class'] = $class; + +echo elgg_view('page/layouts/one_column', $vars); diff --git a/views/default/page/layouts/one_column.php b/views/default/page/layouts/one_column.php index ab6a24878..491d5b459 100644 --- a/views/default/page/layouts/one_column.php +++ b/views/default/page/layouts/one_column.php @@ -9,17 +9,30 @@ * @uses $vars['class'] Additional class to apply to layout */ -$class = 'elgg-inner clearfix'; +$class = 'elgg-layout elgg-layout-one-column clearfix'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; } + +// navigation defaults to breadcrumbs +$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); + ?> -<div class="<?php echo $class; ?>" id="elgg-layout-one-column"> - <div class="elgg-body"> - <?php echo $vars['content']; ?> +<div class="<?php echo $class; ?>"> + <div class="elgg-body elgg-main"> <?php + echo $nav; + + if (isset($vars['title'])) { + echo elgg_view_title($vars['title']); + } + + echo $vars['content']; + // @deprecated 1.8 - echo $vars['area1']; + if (isset($vars['area1'])) { + echo $vars['area1']; + } ?> </div> </div>
\ No newline at end of file diff --git a/views/default/page/layouts/one_sidebar.php b/views/default/page/layouts/one_sidebar.php index 53f065b3e..d74dad53d 100644 --- a/views/default/page/layouts/one_sidebar.php +++ b/views/default/page/layouts/one_sidebar.php @@ -9,17 +9,21 @@ * @uses $vars['sidebar'] Optional content that is displayed in the sidebar * @uses $vars['title'] Optional title for main content area * @uses $vars['class'] Additional class to apply to layout + * @uses $vars['nav'] HTML of the page nav (override) (default: breadcrumbs) */ -$class = 'elgg-inner clearfix'; +$class = 'elgg-layout elgg-layout-one-sidebar clearfix'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; } +// navigation defaults to breadcrumbs +$nav = elgg_extract('nav', $vars, elgg_view('navigation/breadcrumbs')); + ?> -<div class="<?php echo $class; ?>" id="elgg-layout-sidebar"> - <div class="elgg-sidebar elgg-aside"> +<div class="<?php echo $class; ?>"> + <div class="elgg-sidebar"> <?php echo elgg_view('page/elements/sidebar', $vars); ?> @@ -27,6 +31,8 @@ if (isset($vars['class'])) { <div class="elgg-main elgg-body"> <?php + echo $nav; + if (isset($vars['title'])) { echo elgg_view_title($vars['title']); } diff --git a/views/default/page/layouts/two_column_left_sidebar.php b/views/default/page/layouts/two_column_left_sidebar.php index 97f4d2719..e395a5053 100644 --- a/views/default/page/layouts/two_column_left_sidebar.php +++ b/views/default/page/layouts/two_column_left_sidebar.php @@ -17,7 +17,7 @@ unset($vars['area2']); unset($vars['area3']); // backward compatability support for plugins that are not using the new approach -// of routing through pg/admin +// of routing through 'admin' if (elgg_get_context() == 'admin') { echo elgg_view('page/layouts/admin', $vars); return true; diff --git a/views/default/page/layouts/two_sidebar.php b/views/default/page/layouts/two_sidebar.php index 1e6c2aae7..7521dd44f 100644 --- a/views/default/page/layouts/two_sidebar.php +++ b/views/default/page/layouts/two_sidebar.php @@ -5,32 +5,27 @@ * @package Elgg * @subpackage Core * - * @uses $vars['content'] The content string for the main column - * @uses $vars['sidebar'] Optional content that is displayed in the sidebar + * @uses $vars['content'] The content string for the main column + * @uses $vars['sidebar'] Optional content that is displayed in the sidebar * @uses $vars['sidebar_alt'] Optional content that is displayed in the alternate sidebar - * @uses $vars['class'] Additional class to apply to layout + * @uses $vars['class'] Additional class to apply to layout */ -$class = 'elgg-inner clearfix'; +$class = 'elgg-layout elgg-layout-two-sidebar clearfix'; if (isset($vars['class'])) { $class = "$class {$vars['class']}"; } ?> -<div class="<?php echo $class; ?>" id="elgg-layout-two-sidebar"> - <div class="elgg-sidebar elgg-aside"> +<div class="<?php echo $class; ?>"> + <div class="elgg-sidebar"> <?php echo elgg_view('page/elements/sidebar', $vars); ?> </div> - <div class="elgg-sidebar elgg-alt elgg-aside"> + <div class="elgg-sidebar-alt"> <?php - //$params = $vars; - //$params['sidebar'] = $vars['sidebar_alt']; - $params = array( - 'sidebar' => elgg_view_module('test', 'Testing', 'Hello, world!'), - ); - echo elgg_view('page/elements/sidebar', $params); + echo elgg_view('page/elements/sidebar_alt', $vars); ?> </div> diff --git a/views/default/page/layouts/walled_garden.php b/views/default/page/layouts/walled_garden.php new file mode 100644 index 000000000..6ecd941ef --- /dev/null +++ b/views/default/page/layouts/walled_garden.php @@ -0,0 +1,16 @@ +<?php +/** + * Walled Garden layout + * + * @uses $vars['content'] Main content + * @uses $vars['class'] CSS classes + * @uses $vars['id'] CSS id + */ + +$class = elgg_extract('class', $vars, 'elgg-walledgarden-single'); +echo elgg_view_module('walledgarden', '', $vars['content'], array( + 'class' => $class, + 'id' => elgg_extract('id', $vars, ''), + 'header' => ' ', + 'footer' => ' ', +)); diff --git a/views/default/page/layouts/widgets.php b/views/default/page/layouts/widgets.php index eac9d43fc..c6b162516 100644 --- a/views/default/page/layouts/widgets.php +++ b/views/default/page/layouts/widgets.php @@ -16,6 +16,8 @@ $show_access = elgg_extract('show_access', $vars, true); $owner = elgg_get_page_owner_entity(); +$widget_types = elgg_get_widget_types(); + $context = elgg_get_context(); elgg_push_context('widgets'); @@ -23,26 +25,33 @@ $widgets = elgg_get_widgets($owner->guid, $context); if (elgg_can_edit_widget_layout($context)) { if ($show_add_widgets) { - echo elgg_view('layout/shells/widgets/add_button'); + echo elgg_view('page/layouts/widgets/add_button'); } $params = array( 'widgets' => $widgets, 'context' => $context, 'exact_match' => $exact_match, + 'show_access' => $show_access, ); - echo elgg_view('layout/shells/widgets/add_panel', $params); + echo elgg_view('page/layouts/widgets/add_panel', $params); } echo $vars['content']; $widget_class = "elgg-col-1of{$num_columns}"; for ($column_index = 1; $column_index <= $num_columns; $column_index++) { - $column_widgets = $widgets[$column_index]; + if (isset($widgets[$column_index])) { + $column_widgets = $widgets[$column_index]; + } else { + $column_widgets = array(); + } echo "<div class=\"$widget_class elgg-widgets\" id=\"elgg-widget-col-$column_index\">"; - if (is_array($column_widgets) && sizeof($column_widgets) > 0) { + if (sizeof($column_widgets) > 0) { foreach ($column_widgets as $widget) { - echo elgg_view_entity($widget, array('show_access' => $show_access)); + if (array_key_exists($widget->handler, $widget_types)) { + echo elgg_view_entity($widget, array('show_access' => $show_access)); + } } } echo '</div>'; diff --git a/views/default/page/layouts/widgets/add_button.php b/views/default/page/layouts/widgets/add_button.php new file mode 100644 index 000000000..c33a45f99 --- /dev/null +++ b/views/default/page/layouts/widgets/add_button.php @@ -0,0 +1,16 @@ +<?php +/** + * Button area for showing the add widgets panel + */ +?> +<div class="elgg-widget-add-control"> +<?php + echo elgg_view('output/url', array( + 'href' => '#widgets-add-panel', + 'text' => elgg_echo('widgets:add'), + 'class' => 'elgg-button elgg-button-action', + 'rel' => 'toggle', + 'is_trusted' => true, + )); +?> +</div> diff --git a/views/default/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/shells/admin.php b/views/default/page/shells/admin.php deleted file mode 100644 index 211bd4037..000000000 --- a/views/default/page/shells/admin.php +++ /dev/null @@ -1,28 +0,0 @@ -<?php -/** - * Elgg pageshell for the admin area - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['title'] The page title - * @uses $vars['body'] The main content of the page - * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() - */ - -// Set the content type -header("Content-type: text/html; charset=UTF-8"); -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<?php echo elgg_view('page/elements/head', $vars); ?> -</head> -<body> - <div class="elgg-page elgg-page-admin"> - <?php echo $vars['body']; ?> - </div> - <?php echo elgg_view('footer/analytics'); ?> -</body> - -</html>
\ No newline at end of file diff --git a/views/default/page/shells/default.php b/views/default/page/shells/default.php deleted file mode 100644 index 775eb4acc..000000000 --- a/views/default/page/shells/default.php +++ /dev/null @@ -1,65 +0,0 @@ -<?php -/** - * Elgg pageshell - * The standard HTML page shell that everything else fits into - * - * @package Elgg - * @subpackage Core - * - * @uses $vars['title'] The page title - * @uses $vars['body'] The main content of the page - * @uses $vars['sysmessages'] A 2d array of various message registers, passed from system_messages() - */ - -// backward compatability support for plugins that are not using the new approach -// of routing through pg/admin. See reportedcontent plugin for a simple example. -if (elgg_get_context() == 'admin') { - elgg_deprecated_notice("admin plugins should route through pg/admin.", 1.8); - elgg_admin_add_plugin_settings_menu(); - elgg_unregister_css('screen'); - echo elgg_view('page/shells/admin', $vars); - return true; -} - -// Set the content type -header("Content-type: text/html; charset=UTF-8"); - -?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head> -<?php echo elgg_view('page/elements/head', $vars); ?> -</head> -<body> -<div class="elgg-page elgg-page-classic"> - <div class="elgg-page-messages"> - <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> - </div> - - <?php if (elgg_is_logged_in()): ?> - <div class="elgg-page-topbar"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/topbar', $vars); ?> - </div> - </div> - <?php endif; ?> - - <div class="elgg-page-header"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/header', $vars); ?> - </div> - </div> - <div class="elgg-page-body"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/body', $vars); ?> - </div> - </div> - <div class="elgg-page-footer"> - <div class="elgg-inner"> - <?php echo elgg_view('page/elements/footer', $vars); ?> - </div> - </div> -</div> -<?php echo elgg_view('footer/analytics'); ?> -</body> -</html>
\ No newline at end of file diff --git a/views/default/page/shells/upgrade.php b/views/default/page/shells/upgrade.php deleted file mode 100644 index b598c3c6a..000000000 --- a/views/default/page/shells/upgrade.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * Page shell for upgrade script - * - * Displays an ajax loader until upgrade is complete - */ -?> -<html> - <head> - <title><?php echo elgg_echo('upgrading'); ?></title> - <meta http-equiv="refresh" content="1;url=<?php echo elgg_get_site_url(); ?>upgrade.php?upgrade=upgrade"/> - </head> - <body bgcolor="white"> - <table width="100%" height="100%" border="0" style="margin: 0px; padding: 0px"> - <tr> - <td width="100%" height="100%" valign="middle" align="center"> - <img src="<?php echo elgg_get_site_url(); ?>_graphics/ajax_loader_bw.gif" alt="upgrading" /> - </td> - </tr> - </table> - </body> -</html>
\ No newline at end of file diff --git a/views/default/page/shells/walled_garden.php b/views/default/page/shells/walled_garden.php deleted file mode 100644 index 74b4f3029..000000000 --- a/views/default/page/shells/walled_garden.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php -/** - * - */ - -// Set the content type -header("Content-type: text/html; charset=UTF-8"); - -// Set title -$site_title = elgg_get_config('sitename'); -if (empty($vars['title'])) { - $title = $site_title; -} else if (empty($site_title)) { - $title = $vars['title']; -} else { - $title = $site_title . ": " . $vars['title']; -} - -// @todo - move the css below into it's own style-sheet -// that is called when running as a private network -?> -<html> -<head> -<?php echo elgg_view('page/elements/head', $vars); ?> - <style type="text/css"> - /* *************************************** - WalledGarden - *************************************** */ - .elgg-grid-walledgarden { - margin:100px auto 0 auto; - padding:0; - width:600px; - text-align: left; - word-wrap:break-word; - background: gray; - } - - .elgg-grid-walledgarden > .elgg-col { - background: white; - } - - .elgg-heading-walledgarden { - color:#666666; - margin-top:80px; - line-height: 1.1em; - } - - .walledgardenlogin h2 { - color:#666666; - border-bottom:1px solid #CCCCCC; - margin-bottom:5px; - padding-bottom:5px; - } - - - </style> -</head> -<body> -<div class="elgg-page elgg-page-walledgarden"> - <div class="elgg-page-messages"> - <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> - </div> - <div class="elgg-page-body"> - <div class="elgg-inner"> - <div class="elgg-grid elgg-grid-walledgarden"> - <div class="elgg-col elgg-col-1of2"> - <h1 class="elgg-heading-walledgarden">Welcome to:<br /><?php echo $title; ?></h1> - </div> - <div class="elgg-col elgg-col-1of2"> - <?php echo $vars['body']; ?> - </div> - </div> - </div> - </div> -</div> -<?php echo elgg_view('footer/analytics'); ?> -</body> -</html>
\ No newline at end of file diff --git a/views/default/page/upgrade.php b/views/default/page/upgrade.php new file mode 100644 index 000000000..1a92042be --- /dev/null +++ b/views/default/page/upgrade.php @@ -0,0 +1,18 @@ +<?php +/** + * Page shell for upgrade script + * + * Displays an ajax loader until upgrade is complete + */ +?> +<html> + <head> + <?php echo elgg_view('page/elements/head', $vars); ?> + <meta http-equiv="refresh" content="1;url=<?php echo elgg_get_site_url(); ?>upgrade.php?upgrade=upgrade"/> + </head> + <body> + <div style="margin-top:200px"> + <?php echo elgg_view('graphics/ajax_loader', array('hidden' => false)); ?> + </div> + </body> +</html>
\ No newline at end of file diff --git a/views/default/page/walled_garden.php b/views/default/page/walled_garden.php new file mode 100644 index 000000000..b280cf6b2 --- /dev/null +++ b/views/default/page/walled_garden.php @@ -0,0 +1,40 @@ +<?php +/** + * Walled garden page shell + * + * Used for the walled garden index page + */ + +$is_sticky_register = elgg_is_sticky_form('register'); +$wg_body_class = 'elgg-body-walledgarden'; +if ($is_sticky_register) { + $wg_body_class .= ' hidden'; +} + +// Set the content type +header("Content-type: text/html; charset=UTF-8"); +?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<?php echo elgg_view('page/elements/head', $vars); ?> +</head> +<body> +<div class="elgg-page elgg-page-walledgarden"> + <div class="elgg-page-messages"> + <?php echo elgg_view('page/elements/messages', array('object' => $vars['sysmessages'])); ?> + </div> + <div class="<?php echo $wg_body_class; ?>"> + <?php echo $vars['body']; ?> + </div> +</div> +<?php if ($is_sticky_register): ?> +<script type="text/javascript"> +elgg.register_hook_handler('init', 'system', function() { + $('.registration_link').trigger('click'); +}); +</script> +<?php endif; ?> +<?php echo elgg_view('page/elements/foot'); ?> +</body> +</html>
\ No newline at end of file |
