aboutsummaryrefslogtreecommitdiff
path: root/mod/embed/views/default/embed
diff options
context:
space:
mode:
authorcash <cash.costello@gmail.com>2011-10-01 12:42:00 -0400
committercash <cash.costello@gmail.com>2011-10-01 12:42:00 -0400
commitc7b0817dabd1ea596086b03569d4480355e5f721 (patch)
tree41da241f906243771130b3df92ff4180f30ffeb8 /mod/embed/views/default/embed
parent7c52743cc264e258d55c42dccde021b1032f2358 (diff)
downloadelgg-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.php31
-rw-r--r--mod/embed/views/default/embed/layout.php33
-rw-r--r--mod/embed/views/default/embed/list.php61
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;