aboutsummaryrefslogtreecommitdiff
path: root/mod/embed
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-06-04 22:18:31 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-06-04 22:18:31 +0000
commitfe623545184ae1abde4c8a8f2ca5facdb6030e6b (patch)
tree55e4a8a29292d81293ef4e48d37cb612a5b3837f /mod/embed
parent16df5711d0bb27c57e161080e76921fcee4fe0e2 (diff)
downloadelgg-fe623545184ae1abde4c8a8f2ca5facdb6030e6b.tar.gz
elgg-fe623545184ae1abde4c8a8f2ca5facdb6030e6b.tar.bz2
Added first loosely coupled upload support to embed.
git-svn-id: http://code.elgg.org/elgg/trunk@6360 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/embed')
-rw-r--r--mod/embed/start.php5
-rw-r--r--mod/embed/views/default/embed/embed.php21
-rw-r--r--mod/embed/views/default/embed/upload/content.php47
3 files changed, 67 insertions, 6 deletions
diff --git a/mod/embed/start.php b/mod/embed/start.php
index eb6f6d4a6..a3b811371 100644
--- a/mod/embed/start.php
+++ b/mod/embed/start.php
@@ -49,12 +49,15 @@ function embed_page_handler($page) {
// @todo trigger for all right now. If we categorize these later we can trigger
// for certain categories.
$sections = trigger_plugin_hook('embed_get_sections', 'all', NULL, array());
+ $upload_sections = trigger_plugin_hook('embed_get_upload_sections', 'all', NULL, array());
asort($sections, SORT_LOCALE_STRING);
+ asort($upload_sections, SORT_LOCALE_STRING);
$active_section = get_input('active_section', NULL);
echo elgg_view('embed/embed', array(
'sections' => $sections,
- 'active_section' => $active_section
+ 'active_section' => $active_section,
+ 'upload_sections' => $upload_sections
));
break;
diff --git a/mod/embed/views/default/embed/embed.php b/mod/embed/views/default/embed/embed.php
index 4a14543d3..70241609b 100644
--- a/mod/embed/views/default/embed/embed.php
+++ b/mod/embed/views/default/embed/embed.php
@@ -9,8 +9,9 @@
* @uses string $vars['active_section'] Currently selected section_id
*/
-$sections = (isset($vars['sections'])) ? $vars['sections'] : array();
-$active_section = (isset($vars['active_section'])) ? $vars['active_section'] : array_shift(array_keys($sections));
+$sections = elgg_get_array_value('sections', $vars, array());
+$active_section = elgg_get_array_value('active_section', $vars, array_shift(array_keys($sections)));
+$upload_sections = elgg_get_array_value('upload_sections', $vars, array());
if (!$sections) {
$content = elgg_echo('embed:no_sections');
@@ -38,11 +39,21 @@ if (!$sections) {
$tabs[] = $tab;
}
+ // make sure upload is always the last tab
+ if ($upload_sections) {
+ $tabs[] = array(
+ 'title' => elgg_echo('embed:upload'),
+ 'url' => '#',
+ 'url_class' => 'embed_section',
+ 'url_js' => 'id="upload"',
+ );
+ }
+
$tabs_html = elgg_view('navigation/tabs', array('tabs' => $tabs));
$content .= $tabs_html;
// build the items and layout.
- if (array_key_exists($active_section, $sections)) {
+ if ($section != 'upload' || array_key_exists($active_section, $sections)) {
$section_info = $sections[$active_section];
$layout = isset($section_info['layout']) ? $section_info['layout'] : 'list';
@@ -51,7 +62,8 @@ if (!$sections) {
//'subtype' => $subtype,
'offset' => $offset,
'limit' => $limit,
- 'section' => $active_section
+ 'section' => $active_section,
+ 'upload_sections' => $upload_sections
);
// allow full override for this section
@@ -99,7 +111,6 @@ if (!$sections) {
} else {
$content .= elgg_echo('embed:invalid_section');
}
-
}
echo $content;
?>
diff --git a/mod/embed/views/default/embed/upload/content.php b/mod/embed/views/default/embed/upload/content.php
new file mode 100644
index 000000000..089e417c5
--- /dev/null
+++ b/mod/embed/views/default/embed/upload/content.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Special upload form for
+ */
+$upload_sections = elgg_get_array_value('upload_sections', $vars, array());
+$active_section = get_input('active_upload_section', array_shift(array_keys($upload_sections)));
+
+$options = array();
+
+if ($upload_sections) {
+ foreach ($upload_sections as $id => $info) {
+ $options[$id] = $info['name'];
+ }
+
+ $input = elgg_view('input/pulldown', array(
+ 'name' => 'download_section',
+ 'options_values' => $options,
+ 'internalid' => 'embed_upload',
+ 'value' => $active_section
+ ));
+
+ echo "<p>$input</p>";
+
+ if (!$upload_content = elgg_view($upload_sections[$active_section]['view'])) {
+ $upload_content = elgg_echo('embed:no_upload_content');
+ }
+
+ echo $upload_content;
+
+?>
+ <script type="text/javascript">
+ $(document).ready(function() {
+
+ // change for pulldown
+ $('#embed_upload').change(function() {
+ var upload_section = $(this).val();
+ var url = '<?php echo $vars['url']; ?>pg/embed/embed?active_section=upload&active_upload_section=' + upload_section;
+ $('#facebox .body .content').load(url);
+ });
+
+ });
+ </script>
+<?php
+
+} else {
+ echo elgg_echo('embed:no_upload_sections');
+}