diff options
author | cash <cash.costello@gmail.com> | 2011-10-01 12:42:00 -0400 |
---|---|---|
committer | cash <cash.costello@gmail.com> | 2011-10-01 12:42:00 -0400 |
commit | c7b0817dabd1ea596086b03569d4480355e5f721 (patch) | |
tree | 41da241f906243771130b3df92ff4180f30ffeb8 /mod/embed/views/default/embed | |
parent | 7c52743cc264e258d55c42dccde021b1032f2358 (diff) | |
download | elgg-c7b0817dabd1ea596086b03569d4480355e5f721.tar.gz elgg-c7b0817dabd1ea596086b03569d4480355e5f721.tar.bz2 |
using the menu system for the embed tabs and adding a reusable select list view
Diffstat (limited to 'mod/embed/views/default/embed')
-rw-r--r-- | mod/embed/views/default/embed/item.php | 31 | ||||
-rw-r--r-- | mod/embed/views/default/embed/layout.php | 33 | ||||
-rw-r--r-- | mod/embed/views/default/embed/list.php | 61 |
3 files changed, 125 insertions, 0 deletions
diff --git a/mod/embed/views/default/embed/item.php b/mod/embed/views/default/embed/item.php new file mode 100644 index 000000000..a64a67d8b --- /dev/null +++ b/mod/embed/views/default/embed/item.php @@ -0,0 +1,31 @@ +<?php +/** + * Embeddable content list item view + * + * @uses $vars['entity'] + */ + +$entity = $vars['entity']; + +$image = elgg_view_entity_icon($entity, 'small'); + +$body = "<h4>" . $entity->title . "</h4>"; + +$icon = "<img src=\"{$entity->getIconURL('small')}\" />"; + +$embed_code = elgg_view('output/url', array( + 'href' => $entity->getURL(), + 'title' => $title, + 'text' => $icon, + 'encode_text' => FALSE +)); + + +echo "<div class=\"embed_data\" id=\"embed_{$entity->getGUID()}\">"; +echo elgg_view_image_block($image, $body); +echo '</div>'; + +// @todo JS 1.8: is this approach better than inline js? +echo "<script type=\"text/javascript\"> + $('#embed_{$entity->getGUID()}').data('embed_code', " . json_encode($embed_code) . "); +</script>"; diff --git a/mod/embed/views/default/embed/layout.php b/mod/embed/views/default/embed/layout.php new file mode 100644 index 000000000..73c26810d --- /dev/null +++ b/mod/embed/views/default/embed/layout.php @@ -0,0 +1,33 @@ +<?php +/** + * Layout of embed panel loaded in lightbox + */ + +$title = elgg_view_title(elgg_echo('embed:media')); + +$menu = elgg_view_menu('embed'); + +$selected = elgg_get_config('embed_tab'); +switch ($selected->getData('tab_type')) { + case 'select': + $tab = elgg_list_entities( + embed_get_list_options($selected->getData('options')), + 'elgg_get_entities', + 'embed_list_items' + ); + if (!$tab) { + $tab = elgg_echo('embed:no_section_content'); + } + break; + case 'upload': + $tab = elgg_view($selected->getData('view'), $vars); + break; +} + +echo <<<HTML +<div class="embed-wrapper"> + $title + $menu + $tab +</div> +HTML; diff --git a/mod/embed/views/default/embed/list.php b/mod/embed/views/default/embed/list.php new file mode 100644 index 000000000..e36280e88 --- /dev/null +++ b/mod/embed/views/default/embed/list.php @@ -0,0 +1,61 @@ +<?php +/** + * View a list of embeddable items + * + * @package Elgg + * + * @uses $vars['items'] Array of ElggEntity 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['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']; + +$offset_key = elgg_extract('offset_key', $vars, 'offset'); + +$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 ($count) { + $nav .= elgg_view('navigation/pagination', array( + '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) { + $id = "elgg-{$item->getType()}-{$item->getGUID()}"; + $html .= "<li id=\"$id\" class=\"$item_class\">"; + $html .= elgg_view('embed/item', array('entity' => $item)); + $html .= '</li>'; + } + $html .= '</ul>'; +} + +$html .= $nav; + +echo $html; |