diff options
| author | ewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-18 18:37:32 +0000 | 
|---|---|---|
| committer | ewinslow <ewinslow@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-18 18:37:32 +0000 | 
| commit | dd09373e0cefa8d33d0e9faa741593802d53c2a7 (patch) | |
| tree | ebf986bfabd17bfd5adb3b560e762b83f0a8b825 /views/default/page/components | |
| parent | 067c53f2575b96573b3c6966747bb0426669ae02 (diff) | |
| download | elgg-dd09373e0cefa8d33d0e9faa741593802d53c2a7.tar.gz elgg-dd09373e0cefa8d33d0e9faa741593802d53c2a7.tar.bz2  | |
Refs #2950: layout/objects => page/components
git-svn-id: http://code.elgg.org/elgg/trunk@8288 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'views/default/page/components')
| -rw-r--r-- | views/default/page/components/gallery.php | 75 | ||||
| -rw-r--r-- | views/default/page/components/image_block.php | 52 | ||||
| -rw-r--r-- | views/default/page/components/list.php | 75 | ||||
| -rw-r--r-- | views/default/page/components/module.php | 52 | ||||
| -rw-r--r-- | views/default/page/components/widget.php | 67 | 
5 files changed, 321 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..f57cc99ba --- /dev/null +++ b/views/default/page/components/gallery.php @@ -0,0 +1,75 @@ +<?php +/** + * Gallery view + * + * @uses $vars['items'] + * + * @todo not complete - number of columns + */ + +$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); +$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; + + +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; +} + +?> +<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> + +<?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..374922ecd --- /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 + * @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 = $vars['offset']; +$limit = $vars['limit']; +$count = $vars['count']; +$base_url = $vars['base_url']; +$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"; +} + +$item_class = 'elgg-list-item'; +if (isset($vars['item_class'])) { +	$item_class = "{$vars['item_class']} $item_class"; +} + +$html = ""; +$nav = ""; + +if ($pagination && $count) { +	$nav .= elgg_view('navigation/pagination', array( +		'baseurl' => $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 (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, $full_view, $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..f7b9da59c --- /dev/null +++ b/views/default/page/components/module.php @@ -0,0 +1,52 @@ +<?php +/** + * Elgg module element + * + * @uses $vars['title']        Title text + * @uses $vars['header']       HTML content of the header + * @uses $vars['body']         HTML content of the body + * @uses $vars['footer']       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'])) { +	if ($vars['header']) { +		$header = "<div class=\"elgg-head\">$header</div>"; +	} +} else { +	$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>"; +	} +} + +$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/widget.php b/views/default/page/components/widget.php new file mode 100644 index 000000000..d5e2c4ca2 --- /dev/null +++ b/views/default/page/components/widget.php @@ -0,0 +1,67 @@ +<?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 != '', +)); + + +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;  | 
