aboutsummaryrefslogtreecommitdiff
path: root/mod/embed
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-03 17:53:05 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-03 17:53:05 +0000
commit4766f36a4d74924f21ff329c4318ce4e069ffa04 (patch)
tree969b84632f2a8b0db79788a8a6db8e41d63e5cb4 /mod/embed
parent57a217fd6b708844407486046a1faa23b46cac08 (diff)
downloadelgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.gz
elgg-4766f36a4d74924f21ff329c4318ce4e069ffa04.tar.bz2
Pulled in the interface changes.
git-svn-id: http://code.elgg.org/elgg/trunk@5257 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/embed')
-rw-r--r--mod/embed/README.txt10
-rw-r--r--mod/embed/embed.php38
-rw-r--r--mod/embed/images/button_spacer.gifbin0 -> 43 bytes
-rw-r--r--mod/embed/images/close_button.gifbin0 -> 561 bytes
-rw-r--r--mod/embed/images/loading.gifbin0 -> 4421 bytes
-rw-r--r--mod/embed/images/media_modal.pngbin0 -> 131886 bytes
-rw-r--r--mod/embed/languages/en.php18
-rw-r--r--mod/embed/manifest.xml10
-rw-r--r--mod/embed/start.php50
-rw-r--r--mod/embed/upload.php17
-rw-r--r--mod/embed/views/default/embed/addcontentjs.php4
-rw-r--r--mod/embed/views/default/embed/css.php222
-rw-r--r--mod/embed/views/default/embed/js.php379
-rw-r--r--mod/embed/views/default/embed/link.php1
-rw-r--r--mod/embed/views/default/embed/media.php66
-rw-r--r--mod/embed/views/default/embed/metatags.php5
-rw-r--r--mod/embed/views/default/embed/pagination.php131
-rw-r--r--mod/embed/views/default/embed/simpletype.php39
-rw-r--r--mod/embed/views/default/embed/tabs.php23
-rw-r--r--mod/embed/views/default/embed/upload.php88
-rw-r--r--mod/embed/views/default/group/default/embed.php9
-rw-r--r--mod/embed/views/default/object/default/embed.php9
-rw-r--r--mod/embed/views/default/object/file/embed.php17
-rw-r--r--mod/embed/views/default/object/file/embedlist.php20
-rw-r--r--mod/embed/views/default/site/default/embed.php9
-rw-r--r--mod/embed/views/default/user/default/embed.php9
26 files changed, 1174 insertions, 0 deletions
diff --git a/mod/embed/README.txt b/mod/embed/README.txt
new file mode 100644
index 000000000..17f867d7a
--- /dev/null
+++ b/mod/embed/README.txt
@@ -0,0 +1,10 @@
+Embed plugin
+(c) 2009 Curverider Ltd
+Released under the GNU Public License version 2
+http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+
+The embed plugin requires Elgg 1.5 (or prior to the Elgg 1.5
+release, Elgg revision 2634 or above) and the file plugin.
+
+It makes use of the jQuery form plugin, available at:
+http://malsup.com/jquery/form/ \ No newline at end of file
diff --git a/mod/embed/embed.php b/mod/embed/embed.php
new file mode 100644
index 000000000..461bbdebb
--- /dev/null
+++ b/mod/embed/embed.php
@@ -0,0 +1,38 @@
+<?php
+
+ // This page can only be run from within the Elgg framework
+ if (!is_callable('elgg_view')) exit;
+
+ // Get the name of the form field we need to inject into
+ $internalname = get_input('internalname');
+
+ if (!isloggedin()) exit;
+
+ global $SESSION;
+
+ $offset = (int) get_input('offset',0);
+ $simpletype = get_input('simpletype');
+ $entity_types = array('object' => array('file'));
+
+ if (empty($simpletype)) {
+ $count = elgg_get_entities(array('type' => 'object', 'subtype' => 'file', 'owner_guid' => $SESSION['user']->guid, 'count' => TRUE));
+ $entities = elgg_get_entities(array('type' => 'object', 'subtype' => 'file', 'owner_guid' => $SESSION['user']->guid, 'limit' => 6, 'offset' => $offset));
+ } else {
+ $count = elgg_get_entities_from_metadata(array('metadata_name' => 'simpletype', 'metadata_value' => $simpletype, 'types' => 'object', 'subtypes' => 'file', 'owner_guid' => $SESSION['user']->guid, 'limit' => 6, 'offset' => $offset, 'count' => TRUE));
+ $entities = elgg_get_entities_from_metadata(array('metadata_name' => 'simpletype', 'metadata_value' => $simpletype, 'types' => 'object', 'subtypes' => 'file', 'owner_guid' => $SESSION['user']->guid, 'limit' => 6, 'offset' => $offset));
+ }
+
+ $types = get_tags(0,10,'simpletype','object','file',$SESSION['user']->guid);
+
+ // Echo the embed view
+ echo elgg_view('embed/media', array(
+ 'entities' => $entities,
+ 'internalname' => $internalname,
+ 'offset' => $offset,
+ 'count' => $count,
+ 'simpletype' => $simpletype,
+ 'limit' => 6,
+ 'simpletypes' => $types,
+ ));
+
+?> \ No newline at end of file
diff --git a/mod/embed/images/button_spacer.gif b/mod/embed/images/button_spacer.gif
new file mode 100644
index 000000000..5bfd67a2d
--- /dev/null
+++ b/mod/embed/images/button_spacer.gif
Binary files differ
diff --git a/mod/embed/images/close_button.gif b/mod/embed/images/close_button.gif
new file mode 100644
index 000000000..822ea8527
--- /dev/null
+++ b/mod/embed/images/close_button.gif
Binary files differ
diff --git a/mod/embed/images/loading.gif b/mod/embed/images/loading.gif
new file mode 100644
index 000000000..5a9af96d2
--- /dev/null
+++ b/mod/embed/images/loading.gif
Binary files differ
diff --git a/mod/embed/images/media_modal.png b/mod/embed/images/media_modal.png
new file mode 100644
index 000000000..9d206901a
--- /dev/null
+++ b/mod/embed/images/media_modal.png
Binary files differ
diff --git a/mod/embed/languages/en.php b/mod/embed/languages/en.php
new file mode 100644
index 000000000..ca57f4a9b
--- /dev/null
+++ b/mod/embed/languages/en.php
@@ -0,0 +1,18 @@
+<?php
+
+ $english = array(
+
+ 'media:insert' => 'Embed / upload media',
+
+ 'embed:instructions' => 'Click on any file to embed it into your content.',
+
+ 'embed:media' => 'Embed media',
+ 'upload:media' => 'Upload media',
+
+ 'embed:file:required' => 'No file upload facilities were found. The system administrator may need to upload the file plugin or similar.',
+
+ );
+
+ add_translation("en",$english);
+
+?> \ No newline at end of file
diff --git a/mod/embed/manifest.xml b/mod/embed/manifest.xml
new file mode 100644
index 000000000..a14e99b4b
--- /dev/null
+++ b/mod/embed/manifest.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+ <field key="author" value="Curverider" />
+ <field key="version" value="1.7" />
+ <field key="description" value="Allows users to easily upload and embed media into text areas." />
+ <field key="website" value="http://www.elgg.org/" />
+ <field key="copyright" value="(C) Curverider 2009-2010" />
+ <field key="licence" value="GNU Public License version 2" />
+ <field key="elgg_version" value="2010030101" />
+</plugin_manifest>
diff --git a/mod/embed/start.php b/mod/embed/start.php
new file mode 100644
index 000000000..b14767381
--- /dev/null
+++ b/mod/embed/start.php
@@ -0,0 +1,50 @@
+<?php
+
+ /**
+ * Elgg media embed plugin
+ *
+ * @package ElggEmbed
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.com/
+ */
+
+ /**
+ * Init function
+ *
+ */
+ function embed_init() {
+
+ // Extend useful views with stuff we need for our embed modal
+ elgg_extend_view('css','embed/css');
+ elgg_extend_view('js/initialise_elgg','embed/js');
+ elgg_extend_view('metatags','embed/metatags');
+ elgg_extend_view('input/longtext','embed/link',10);
+
+ // Page handler for the modal media embed
+ register_page_handler('embed','embed_page_handler');
+
+ }
+
+ /**
+ * Runs the 'embed' script
+ *
+ */
+ function embed_page_handler($page) {
+
+ switch($page[0]) {
+ case 'upload': require_once(dirname(__FILE__) . '/upload.php');
+ exit;
+ break;
+ default: require_once(dirname(__FILE__) . '/embed.php');
+ exit;
+ break;
+ }
+
+ }
+
+ // Register the init action
+ register_elgg_event_handler('init','system','embed_init',10);
+
+?>
diff --git a/mod/embed/upload.php b/mod/embed/upload.php
new file mode 100644
index 000000000..21a24786d
--- /dev/null
+++ b/mod/embed/upload.php
@@ -0,0 +1,17 @@
+<?php
+
+ // This page can only be run from within the Elgg framework
+ if (!is_callable('elgg_view')) exit;
+
+ // Get the name of the form field we need to inject into
+ $internalname = get_input('internalname');
+
+ global $SESSION;
+
+ // Echo the embed view
+ echo elgg_view('embed/upload', array(
+ 'entities' => $entities,
+ 'internalname' => $internalname,
+ ));
+
+?> \ No newline at end of file
diff --git a/mod/embed/views/default/embed/addcontentjs.php b/mod/embed/views/default/embed/addcontentjs.php
new file mode 100644
index 000000000..ee3678b89
--- /dev/null
+++ b/mod/embed/views/default/embed/addcontentjs.php
@@ -0,0 +1,4 @@
+
+ var entity;
+ $('textarea[name='+entityname+']').val($('textarea[name='+entityname+']').val() + ' ' + content);
+
diff --git a/mod/embed/views/default/embed/css.php b/mod/embed/views/default/embed/css.php
new file mode 100644
index 000000000..31d474a61
--- /dev/null
+++ b/mod/embed/views/default/embed/css.php
@@ -0,0 +1,222 @@
+<?php
+
+ /**
+ * Elgg embed CSS - standard across all themes
+ *
+ * @package embed
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider <info@elgg.com>
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.org/
+ */
+
+?>
+
+#facebox {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 10000;
+ text-align: left;
+}
+#facebox .popup {
+ position: relative;
+}
+#facebox .body {
+ padding: 10px;
+ background: white;
+ width: 730px;
+ -webkit-border-radius: 12px;
+ -moz-border-radius: 12px;
+}
+#facebox .loading {
+ text-align: center;
+ padding: 100px 10px 100px 10px;
+}
+#facebox .image {
+ text-align: center;
+}
+#facebox .footer {
+ float: right;
+ width:22px;
+ height:22px;
+ margin:0;
+ padding:0;
+}
+#facebox .footer img.close_image {
+ background: url(<?php echo $vars['url']; ?>mod/embed/images/close_button.gif) no-repeat left top;
+}
+#facebox .footer img.close_image:hover {
+ background: url(<?php echo $vars['url']; ?>mod/embed/images/close_button.gif) no-repeat left -31px;
+}
+#facebox .footer a {
+ -moz-outline: none;
+ outline: none;
+}
+#facebox_overlay {
+ position: fixed;
+ top: 0px;
+ left: 0px;
+ height:100%;
+ width:100%;
+}
+.facebox_hide {
+ z-index:-100;
+}
+.facebox_overlayBG {
+ background-color: #000000;
+ z-index: 9999;
+}
+
+* html #facebox_overlay { /* ie6 hack */
+ position: absolute;
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
+}
+
+
+/* EMBED MEDIA TABS */
+#embed_media_tabs {
+ margin:10px 0 0 10px;
+ padding:0;
+}
+#embed_media_tabs ul {
+ list-style: none;
+ padding-left: 0;
+}
+#embed_media_tabs ul li {
+ float: left;
+ margin:0;
+ background:white;
+}
+#embed_media_tabs ul li a {
+ font-weight: bold;
+ font-size:1.35em;
+ text-align: center;
+ text-decoration: none;
+ color:#b6b6b6;
+ background: white;
+ display: block;
+ padding: 0 10px 0 10px;
+ margin:0 10px 0 10px;
+ height:25px;
+ width:auto;
+ border-top:2px solid #dedede;
+ border-left:2px solid #dedede;
+ border-right:2px solid #dedede;
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+}
+/* IE6 fix */
+* html #embed_media_tabs ul li a { display: inline; }
+
+#embed_media_tabs ul li a:hover {
+ background:#b6b6b6;
+ color:white;
+ border-top:2px solid #b6b6b6;
+ border-left:2px solid #b6b6b6;
+ border-right:2px solid #b6b6b6;
+}
+#embed_media_tabs ul li a.embed_tab_selected {
+ border-top:2px solid #dedede;
+ border-left:2px solid #dedede;
+ border-right:2px solid #dedede;
+ -webkit-border-top-left-radius: 8px;
+ -webkit-border-top-right-radius: 8px;
+ -moz-border-radius-topleft: 8px;
+ -moz-border-radius-topright: 8px;
+ background: #dedede;
+ color:#666666;
+ position: relative;
+ /* top: 2px; - only needed if selected tab needs to sit over a border */
+}
+
+#mediaUpload,
+#mediaEmbed {
+ margin:0 5px 10px 5px;
+ padding:10px;
+ border:2px solid #dedede;
+ -webkit-border-radius: 8px;
+ -moz-border-radius: 8px;
+ background: #dedede;
+}
+#mediaEmbed .search_listing {
+ margin:0 0 5px 0;
+ background: white;
+}
+
+h1.mediaModalTitle {
+ /* color:#0054A7; */
+ font-size:1.35em;
+ line-height:1.2em;
+ margin:0 0 0 8px;
+ padding:5px;
+}
+
+#mediaEmbed .pagination,
+#mediaUpload .pagination {
+ float:right;
+ padding:5px;
+ background:white;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+}
+#mediaUpload label {
+ font-size:120%;
+}
+#mediaEmbed p.embedInstructions {
+ margin:10px 0 5px 0;
+}
+a.embed_media {
+ margin:0;
+ float:right;
+ display:block;
+ text-align: right;
+ font-size:1.0em;
+ font-weight: normal;
+}
+label a.embed_media {
+ font-size:0.8em;
+}
+
+
+
+
+/* ***************************************
+ PAGINATION
+*************************************** */
+#mediaEmbed .pagination .pagination_number {
+ border:1px solid #999999;
+ color:#666666;
+}
+#mediaEmbed .pagination .pagination_number:hover {
+ background:#aaaaaa;
+ color:black;
+}
+
+#mediaEmbed .pagination .pagination_previous,
+#mediaEmbed .pagination .pagination_next {
+ border:1px solid #999999;
+ color:#666666;
+}
+#mediaEmbed .pagination .pagination_previous:hover,
+#mediaEmbed .pagination .pagination_next:hover {
+ background:#aaaaaa;
+ color:black;
+}
+#mediaEmbed .pagination .pagination_currentpage {
+ background:#666666;
+ border:1px solid #666666;
+ color:white;
+}
+
+
+
+
+
+
+
+
+
+
diff --git a/mod/embed/views/default/embed/js.php b/mod/embed/views/default/embed/js.php
new file mode 100644
index 000000000..fa809ce23
--- /dev/null
+++ b/mod/embed/views/default/embed/js.php
@@ -0,0 +1,379 @@
+
+ function elggUpdateContent(content, entityname) {
+ content = ' ' + content + ' ';
+ <?php
+ echo elgg_view('embed/addcontentjs');
+ ?>
+ $.facebox.close();
+ }
+
+
+/*
+ * Facebox (for jQuery)
+ * version: 1.2 (05/05/2008)
+ * @requires jQuery v1.2 or later
+ *
+ * Examples at http://famspam.com/facebox/
+ *
+ * Licensed under the MIT:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ]
+ *
+ * Usage:
+ *
+ * jQuery(document).ready(function() {
+ * jQuery('a[rel*=facebox]').facebox()
+ * })
+ *
+ * <a href="#terms" rel="facebox">Terms</a>
+ * Loads the #terms div in the box
+ *
+ * <a href="terms.html" rel="facebox">Terms</a>
+ * Loads the terms.html page in the box
+ *
+ * <a href="terms.png" rel="facebox">Terms</a>
+ * Loads the terms.png image in the box
+ *
+ *
+ * You can also use it programmatically:
+ *
+ * jQuery.facebox('some html')
+ *
+ * The above will open a facebox with "some html" as the content.
+ *
+ * jQuery.facebox(function($) {
+ * $.get('blah.html', function(data) { $.facebox(data) })
+ * })
+ *
+ * The above will show a loading screen before the passed function is called,
+ * allowing for a better ajaxy experience.
+ *
+ * The facebox function can also display an ajax page or image:
+ *
+ * jQuery.facebox({ ajax: 'remote.html' })
+ * jQuery.facebox({ image: 'dude.jpg' })
+ *
+ * Want to close the facebox? Trigger the 'close.facebox' document event:
+ *
+ * jQuery(document).trigger('close.facebox')
+ *
+ * Facebox also has a bunch of other hooks:
+ *
+ * loading.facebox
+ * beforeReveal.facebox
+ * reveal.facebox (aliased as 'afterReveal.facebox')
+ * init.facebox
+ *
+ * Simply bind a function to any of these hooks:
+ *
+ * $(document).bind('reveal.facebox', function() { ...stuff to do after the facebox and contents are revealed... })
+ *
+ */
+(function($) {
+ $.facebox = function(data, klass) {
+ $.facebox.loading()
+
+ if (data.ajax) fillFaceboxFromAjax(data.ajax)
+ else if (data.image) fillFaceboxFromImage(data.image)
+ else if (data.div) fillFaceboxFromHref(data.div)
+ else if ($.isFunction(data)) data.call($)
+ else $.facebox.reveal(data, klass)
+ }
+
+ /*
+ * Public, $.facebox methods
+ */
+
+ $.extend($.facebox, {
+ settings: {
+ opacity : 0.7,
+ overlay : true,
+ loadingImage : '<?php echo $vars['url']; ?>mod/embed/images/loading.gif',
+ closeImage : '<?php echo $vars['url']; ?>mod/embed/images/button_spacer.gif',
+ imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ],
+ faceboxHtml : '\
+ <div id="facebox" style="display:none;"> \
+ <div class="popup"> \
+ <div class="body"> \
+ <div class="footer"> \
+ <a href="#" class="close"> \
+ <img src="<?php echo $vars['url']; ?>mod/embed/images/button_spacer.gif" title="close" class="close_image" width="22" height="22" border="0" /> \
+ </a> \
+ </div> \
+ <div class="content"> \
+ </div> \
+ </div> \
+ </div> \
+ </div>'
+ },
+
+ loading: function() {
+ init()
+ if ($('#facebox .loading').length == 1) return true
+ showOverlay()
+
+ $('#facebox .content').empty()
+ $('#facebox .body').children().hide().end().
+ append('<div class="loading"><br /><br /><img src="'+$.facebox.settings.loadingImage+'"/><br /><br /></div>')
+
+ $('#facebox').css({
+ top: getPageScroll()[1] + (getPageHeight() / 10),
+ // Curverider addition (pagewidth/2 - modalwidth/2)
+ left: ((getPageWidth() / 2) - ($('#facebox').width() / 2))
+ }).show()
+
+ $(document).bind('keydown.facebox', function(e) {
+ if (e.keyCode == 27) $.facebox.close()
+ return true
+ })
+ $(document).trigger('loading.facebox')
+ },
+
+ reveal: function(data, klass) {
+ $(document).trigger('beforeReveal.facebox')
+ if (klass) $('#facebox .content').addClass(klass)
+ $('#facebox .content').append(data)
+
+ setTimeout(function() {
+ $('#facebox .loading').remove();
+ $('#facebox .body').children().fadeIn('slow');
+ $('#facebox').css('left', $(window).width() / 2 - ($('#facebox').width() / 2));
+ $(document).trigger('reveal.facebox').trigger('afterReveal.facebox');
+ }, 1000);
+
+ //$('#facebox .loading').remove()
+ //$('#facebox .body').children().fadeIn('slow')
+ //$('#facebox').css('left', $(window).width() / 2 - ($('#facebox').width() / 2))
+ //$(document).trigger('reveal.facebox').trigger('afterReveal.facebox')
+
+ },
+
+ close: function() {
+ $(document).trigger('close.facebox')
+ return false
+ }
+ })
+
+ /*
+ * Public, $.fn methods
+ */
+
+ // Curverider addition
+/*
+ $.fn.wait = function(time, type) {
+ time = time || 3000;
+ type = type || "fx";
+ return this.queue(type, function() {
+ var self = this;
+ setTimeout(function() {
+ //$(self).queue();
+ $('#facebox .loading').remove();
+ }, time);
+ });
+ };
+*/
+
+ $.fn.facebox = function(settings) {
+ init(settings)
+
+ function clickHandler() {
+ $.facebox.loading(true)
+
+ // support for rel="facebox.inline_popup" syntax, to add a class
+ // also supports deprecated "facebox[.inline_popup]" syntax
+ var klass = this.rel.match(/facebox\[?\.(\w+)\]?/)
+ if (klass) klass = klass[1]
+
+ fillFaceboxFromHref(this.href, klass)
+ return false
+ }
+
+ return this.click(clickHandler)
+ }
+
+ /*
+ * Private methods
+ */
+
+ // called one time to setup facebox on this page
+ function init(settings) {
+ if ($.facebox.settings.inited) return true
+ else $.facebox.settings.inited = true
+
+ $(document).trigger('init.facebox')
+ /* makeCompatible() */
+
+ var imageTypes = $.facebox.settings.imageTypes.join('|')
+ $.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i')
+
+ if (settings) $.extend($.facebox.settings, settings)
+ $('body').append($.facebox.settings.faceboxHtml)
+
+ var preload = [ new Image(), new Image() ]
+ preload[0].src = $.facebox.settings.closeImage
+ preload[1].src = $.facebox.settings.loadingImage
+ preload.push(new Image())
+
+/*
+ $('#facebox').find('.b:first, .bl, .br, .tl, .tr').each(function() {
+ preload.push(new Image())
+ preload.slice(-1).src = $(this).css('background-image').replace(/url\((.+)\)/, '$1')
+ })
+*/
+
+ $('#facebox .close').click($.facebox.close)
+ $('#facebox .close_image').attr('src', $.facebox.settings.closeImage)
+ }
+
+ // getPageScroll() by quirksmode.com
+ function getPageScroll() {
+ var xScroll, yScroll;
+ if (self.pageYOffset) {
+ yScroll = self.pageYOffset;
+ xScroll = self.pageXOffset;
+ } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
+ yScroll = document.documentElement.scrollTop;
+ xScroll = document.documentElement.scrollLeft;
+ } else if (document.body) {// all other Explorers
+ yScroll = document.body.scrollTop;
+ xScroll = document.body.scrollLeft;
+ }
+ return new Array(xScroll,yScroll)
+ }
+
+ // Adapted from getPageSize() by quirksmode.com
+ function getPageHeight() {
+ var windowHeight
+ if (self.innerHeight) { // all except Explorer
+ windowHeight = self.innerHeight;
+ } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
+ windowHeight = document.documentElement.clientHeight;
+ } else if (document.body) { // other Explorers
+ windowHeight = document.body.clientHeight;
+ }
+ return windowHeight
+ }
+
+ // Curverider addition
+ function getPageWidth() {
+ var windowWidth;
+ if( typeof( window.innerWidth ) == 'number' ) {
+ windowWidth = window.innerWidth; //Non-IE
+ } else if( document.documentElement && ( document.documentElement.clientWidth ) ) {
+ windowWidth = document.documentElement.clientWidth; //IE 6+ in 'standards compliant mode'
+ } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
+ windowWidth = document.body.clientWidth; //IE 4 compatible
+ }
+ return windowWidth
+ }
+
+
+
+ // Backwards compatibility
+/*
+ function makeCompatible() {
+ var $s = $.facebox.settings
+
+ $s.loadingImage = $s.loading_image || $s.loadingImage
+ $s.closeImage = $s.close_image || $s.closeImage
+ $s.imageTypes = $s.image_types || $s.imageTypes
+ $s.faceboxHtml = $s.facebox_html || $s.faceboxHtml
+ }
+*/
+
+ // Figures out what you want to display and displays it
+ // formats are:
+ // div: #id
+ // image: blah.extension
+ // ajax: anything else
+ function fillFaceboxFromHref(href, klass) {
+ // div
+ if (href.match(/#/)) {
+ var url = window.location.href.split('#')[0]
+ var target = href.replace(url,'')
+ $.facebox.reveal($(target).clone().show(), klass)
+
+ // image
+ } else if (href.match($.facebox.settings.imageTypesRegexp)) {
+ fillFaceboxFromImage(href, klass)
+ // ajax
+ } else {
+ fillFaceboxFromAjax(href, klass)
+ }
+ }
+
+ function fillFaceboxFromImage(href, klass) {
+ var image = new Image()
+ image.onload = function() {
+ $.facebox.reveal('<div class="image"><img src="' + image.src + '" /></div>', klass)
+ }
+ image.src = href
+ }
+
+ function fillFaceboxFromAjax(href, klass) {
+ $.get(href, function(data) { $.facebox.reveal(data, klass) })
+ }
+
+ function skipOverlay() {
+ return $.facebox.settings.overlay == false || $.facebox.settings.opacity === null
+ }
+
+ function showOverlay() {
+ if (skipOverlay()) return
+
+ if ($('facebox_overlay').length == 0)
+ $("body").append('<div id="facebox_overlay" class="facebox_hide"></div>')
+
+ $('#facebox_overlay').hide().addClass("facebox_overlayBG")
+ .css('opacity', $.facebox.settings.opacity)
+ /* .click(function() { $(document).trigger('close.facebox') }) */
+ .fadeIn(400)
+ return false
+ }
+
+ function hideOverlay() {
+ if (skipOverlay()) return
+
+ $('#facebox_overlay').fadeOut(400, function(){
+ $("#facebox_overlay").removeClass("facebox_overlayBG")
+ $("#facebox_overlay").addClass("facebox_hide")
+ $("#facebox_overlay").remove()
+ })
+
+ return false
+ }
+
+ /*
+ * Bindings
+ */
+
+ $(document).bind('close.facebox', function() {
+ $(document).unbind('keydown.facebox')
+ $('#facebox').fadeOut(function() {
+ $('#facebox .content').removeClass().addClass('content')
+ hideOverlay()
+ $('#facebox .loading').remove()
+ })
+ })
+
+
+
+
+ // Curverider addition
+ $(window).resize(function(){
+ //alert("resized");
+
+ $('#facebox').css({
+ top: getPageScroll()[1] + (getPageHeight() / 10),
+ left: ((getPageWidth() / 2) - 365)
+ })
+
+
+ });
+
+
+
+
+
+})(jQuery);
diff --git a/mod/embed/views/default/embed/link.php b/mod/embed/views/default/embed/link.php
new file mode 100644
index 000000000..f8db0bd85
--- /dev/null
+++ b/mod/embed/views/default/embed/link.php
@@ -0,0 +1 @@
+<a class="embed_media" href="<?php echo $vars['url'] . 'pg/embed/media'; ?>?internalname=<?php echo $vars['internalname']; ?>" rel="facebox"><?php echo elgg_echo('media:insert'); ?></a><br /> \ No newline at end of file
diff --git a/mod/embed/views/default/embed/media.php b/mod/embed/views/default/embed/media.php
new file mode 100644
index 000000000..48bf65fdf
--- /dev/null
+++ b/mod/embed/views/default/embed/media.php
@@ -0,0 +1,66 @@
+<h1 class="mediaModalTitle">Embed / Upload Media</h1>
+<?php
+
+ echo elgg_view('embed/tabs',array('tab' => 'media', 'internalname' => $vars['internalname']));
+?>
+ <div id='mediaEmbed'>
+<?php
+ echo elgg_view('embed/pagination',array(
+ 'offset' => $vars['offset'],
+ 'baseurl' => $vars['url'] . 'pg/embed/media?internalname=' . $vars['internalname'] . "&amp;simpletype=" . $vars['simpletype'],
+ 'limit' => $vars['limit'],
+ 'count' => $vars['count']
+ ));
+
+ echo elgg_view('embed/simpletype',array(
+ 'internalname' => $vars['internalname'],
+ 'simpletypes' => $vars['simpletypes'],
+ 'simpletype' => $vars['simpletype'],
+ ));
+
+ $context = get_context();
+ $entities = $vars['entities'];
+ if (is_array($entities) && !empty($entities)) {
+
+ echo "<p class=\"embedInstructions\">" . elgg_echo('embed:instructions') . "</p>";
+
+ foreach($entities as $entity) {
+ if ($entity instanceof ElggEntity) {
+
+ $mime = $entity->mimetype;
+
+ $enttype = $entity->getType();
+ $entsubtype = $entity->getSubtype();
+
+ if (elgg_view_exists($enttype . '/' . $entsubtype . '/embed')) {
+ $content = elgg_view($enttype . '/' . $entsubtype . '/embed', array('entity' => $entity, 'full' => true));
+ } else {
+ $content = elgg_view($enttype . '/default/embed', array('entity' => $entity, 'full' => true));
+ }
+
+ $content = str_replace("\n","", $content);
+ $content = str_replace("\r","", $content);
+ //$content = htmlentities($content,null,'utf-8');
+ $content = htmlentities($content, ENT_COMPAT, "UTF-8");
+
+ $link = "javascript:elggUpdateContent('{$content}','{$vars['internalname']}');";
+ if ($entity instanceof ElggObject) { $title = $entity->title; $mime = $entity->mimetype; } else { $title = $entity->name; $mime = ''; }
+
+ set_context('search');
+
+ if (elgg_view_exists("{$enttype}/{$entsubtype}/embedlist")) {
+ $entview = elgg_view("{$enttype}/{$entsubtype}/embedlist",array('entity' => $entity));
+ } else {
+ $entview = elgg_view_entity($entity);
+ }
+ $entview = str_replace($entity->getURL(),$link,$entview);
+ echo $entview;
+
+ set_context($context);
+
+ }
+ }
+ }
+
+?>
+</div> \ No newline at end of file
diff --git a/mod/embed/views/default/embed/metatags.php b/mod/embed/views/default/embed/metatags.php
new file mode 100644
index 000000000..3c7ab87a9
--- /dev/null
+++ b/mod/embed/views/default/embed/metatags.php
@@ -0,0 +1,5 @@
+ <script type="text/javascript">
+ jQuery(document).ready(function($) {
+ $('a[rel*=facebox]').facebox()
+ });
+ </script>
diff --git a/mod/embed/views/default/embed/pagination.php b/mod/embed/views/default/embed/pagination.php
new file mode 100644
index 000000000..d087fc12c
--- /dev/null
+++ b/mod/embed/views/default/embed/pagination.php
@@ -0,0 +1,131 @@
+<?php
+
+ /**
+ * Elgg pagination
+ *
+ * @package Elgg
+ * @subpackage Core
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd
+ * @copyright Curverider Ltd 2008-2010
+ * @link http://elgg.org/
+ *
+ */
+
+ if (!isset($vars['offset'])) {
+ $offset = 0;
+ } else {
+ $offset = $vars['offset'];
+ }
+ if ((!isset($vars['limit'])) || (!$vars['limit'])) {
+ $limit = 10;
+ } else {
+ $limit = (int)$vars['limit'];
+ }
+ if (!isset($vars['count'])) {
+ $count = 0;
+ } else {
+ $count = $vars['count'];
+ }
+ if (!isset($vars['word'])) {
+ $word = "offset";
+ } else {
+ $word = $vars['word'];
+ }
+ if (isset($vars['nonefound'])) {
+ $nonefound = $vars['nonefound'];
+ } else {
+ $nonefound = true;
+ }
+
+ $totalpages = ceil($count / $limit);
+ $currentpage = ceil($offset / $limit) + 1;
+
+ //only display if there is content to paginate through or if we already have an offset
+ if (($count > $limit || $offset > 0) && get_context() != 'widget') {
+
+?>
+
+<div class="pagination">
+<?php
+
+ if ($offset > 0) {
+ $prevoffset = $offset - $limit;
+ if ($prevoffset < 0) {
+ $prevoffset = 0;
+ }
+
+ $prevurl = elgg_http_add_url_query_elements($baseurl, array($word => $prevoffset));
+
+ echo "<a onclick=\"javascript:$('.popup .content').load('{$prevurl}'); return false\" href=\"#\" class=\"pagination_previous\">&laquo; ". elgg_echo("previous") ."</a> ";
+
+ }
+
+ if ($offset > 0 || $offset < ($count - $limit)) {
+
+ $currentpage = round($offset / $limit) + 1;
+ $allpages = ceil($count / $limit);
+
+ $i = 1;
+ $pagesarray = array();
+ while ($i <= $allpages && $i <= 4) {
+ $pagesarray[] = $i;
+ $i++;
+ }
+ $i = $currentpage - 2;
+ while ($i <= $allpages && $i <= ($currentpage + 2)) {
+ if ($i > 0 && !in_array($i,$pagesarray))
+ $pagesarray[] = $i;
+ $i++;
+ }
+ $i = $allpages - 3;
+ while ($i <= $allpages) {
+ if ($i > 0 && !in_array($i,$pagesarray))
+ $pagesarray[] = $i;
+ $i++;
+ }
+
+ sort($pagesarray);
+
+ $prev = 0;
+ foreach($pagesarray as $i) {
+
+ if (($i - $prev) > 1) {
+
+ echo "<span class=\"pagination_more\">...</span>";
+
+ }
+
+ $curoffset = (($i - 1) * $limit);
+ $counturl = elgg_http_add_url_query_elements($base_url, array($word => $curoffset));
+
+ if ($curoffset != $offset) {
+ echo " <a onclick=\"javascript:$('.popup .content').load('{$counturl}'); return false\" href=\"#\" class=\"pagination_number\">{$i}</a> ";
+ } else {
+ echo "<span class=\"pagination_currentpage\"> {$i} </span>";
+ }
+ $prev = $i;
+
+ }
+
+ }
+
+ if ($offset < ($count - $limit)) {
+
+ $nextoffset = $offset + $limit;
+ if ($nextoffset >= $count) {
+ $nextoffset--;
+ }
+
+ $nexturl = elgg_http_add_url_query_elements($baseurl, array($word => $nextoffset));
+
+ echo " <a onclick=\"javascript:$('.popup .content').load('{$nexturl}'); return false\" href=\"#\" class=\"pagination_next\">" . elgg_echo("next") . " &raquo;</a>";
+
+ }
+
+?>
+<br class="clearfloat" />
+</div>
+<?php
+ } // end of pagination check if statement
+?>
diff --git a/mod/embed/views/default/embed/simpletype.php b/mod/embed/views/default/embed/simpletype.php
new file mode 100644
index 000000000..f92678f52
--- /dev/null
+++ b/mod/embed/views/default/embed/simpletype.php
@@ -0,0 +1,39 @@
+ <select name="simpletype" id="embed_simpletype_select">
+
+<?php
+
+ $all = new stdClass;
+ $all->tag = "all";
+ $vars['simpletypes'][] = $all;
+ $vars['simpletypes'] = array_reverse($vars['simpletypes']);
+
+ if (isset($vars['simpletypes']) && is_array($vars['simpletypes']))
+ foreach($vars['simpletypes'] as $type) {
+
+ if ($vars['simpletype'] == $type->tag || (empty($vars['simpletype']) && $type->tag == 'all')) {
+ $selected = 'selected = "selected"';
+ } else $selected = '';
+ $tag = $type->tag;
+ if ($tag != "all") {
+ $label = elgg_echo("file:type:" . $tag);
+ } else {
+ $tag = '';
+ $label = elgg_echo('all');
+ }
+
+?>
+ <option <?php echo $selected; ?> value="<?php echo $tag; ?>"><?php echo $label; ?></option>
+<?php
+
+ }
+
+?>
+
+ </select>
+ <script type="text/javascript">
+ $('#embed_simpletype_select').change(function(){
+ var simpletype = $('#embed_simpletype_select').val();
+ var url = '<?php echo $vars['url']; ?>pg/embed/media?simpletype=' + simpletype + '&internalname=<?php echo $vars['internalname']; ?>';
+ $('.popup .content').load(url);
+ });
+ </script>
diff --git a/mod/embed/views/default/embed/tabs.php b/mod/embed/views/default/embed/tabs.php
new file mode 100644
index 000000000..8b2f5bde4
--- /dev/null
+++ b/mod/embed/views/default/embed/tabs.php
@@ -0,0 +1,23 @@
+<?php
+
+ $embedselected = '';
+ $uploadselected = '';
+ if ($vars['tab'] == 'media') {
+ $embedselected = 'class="embed_tab_selected"';
+ } else {
+ $uploadselected = 'class="embed_tab_selected"';
+ }
+
+?>
+
+<div id="embed_media_tabs">
+ <ul>
+ <li>
+ <a href="#" <?php echo $embedselected; ?> onclick="javascript:$('.popup .content').load('<?php echo $vars['url'] . 'pg/embed/media'; ?>?internalname=<?php echo $vars['internalname']; ?>'); return false"><?php echo elgg_echo('embed:media'); ?></a>
+ </li>
+ <li>
+ <a href="#" <?php echo $uploadselected; ?> onclick="javascript:$('.popup .content').load('<?php echo $vars['url'] . 'pg/embed/upload'; ?>?internalname=<?php echo $vars['internalname']; ?>'); return false"><?php echo elgg_echo('upload:media'); ?></a>
+ </li>
+ </ul>
+</div>
+<div class="clearfloat"></div> \ No newline at end of file
diff --git a/mod/embed/views/default/embed/upload.php b/mod/embed/views/default/embed/upload.php
new file mode 100644
index 000000000..a727501dd
--- /dev/null
+++ b/mod/embed/views/default/embed/upload.php
@@ -0,0 +1,88 @@
+<h1 class="mediaModalTitle">Embed / Upload Media</h1>
+<?php
+
+ echo elgg_view('embed/tabs',array('tab' => 'upload', 'internalname'=>get_input('internalname')));
+
+ if (!elgg_view_exists('file/upload')) {
+ echo "<p>" . elgg_echo('embed:file:required') . "</p>";
+ } else {
+ $action = 'file/upload';
+
+?>
+ <form id="mediaUpload" action="<?php echo $vars['url']; ?>action/file/upload" method="post" enctype="multipart/form-data">
+ <p>
+ <label for="upload"><?php echo elgg_echo("file:file"); ?><br />
+ <?php
+ echo elgg_view('input/securitytoken');
+ echo elgg_view("input/file",array('internalname' => 'upload', 'js' => 'id="upload"'));
+
+ ?>
+ </label></p>
+ <p>
+ <label><?php echo elgg_echo("title"); ?><br />
+ <?php
+
+ echo elgg_view("input/text", array(
+ "internalname" => "title",
+ "value" => $title,
+ ));
+
+ ?>
+ </label>
+ </p>
+ <p>
+ <label for="filedescription"><?php echo elgg_echo("description"); ?><br />
+ <textarea class="input-textarea" name="description" id="filedescription"></textarea>
+ </label></p>
+
+ <p>
+ <label><?php echo elgg_echo("tags"); ?><br />
+ <?php
+ echo elgg_view("input/tags", array(
+ "internalname" => "tags",
+ "value" => $tags,
+ ));
+
+ ?>
+ </label>
+ </p>
+ <p>
+ <label>
+ <?php echo elgg_echo('access'); ?><br />
+ <?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => ACCESS_DEFAULT)); ?>
+ </label>
+ </p>
+
+ <p>
+ <?php
+
+ if (isset($vars['container_guid']))
+ echo "<input type=\"hidden\" name=\"container_guid\" value=\"{$vars['container_guid']}\" />";
+ if (isset($vars['entity']))
+ echo "<input type=\"hidden\" name=\"file_guid\" value=\"{$vars['entity']->getGUID()}\" />";
+
+ ?>
+ <input type="submit" value="<?php echo elgg_echo("save"); ?>" />
+ </p>
+ </form>
+ <script type="text/javascript">
+ // wait for the DOM to be loaded
+ //$(document).ready(function() {
+ // bind 'myForm' and provide a simple callback function
+ $('#mediaUpload').submit(function() {
+ var options = {
+ success: function() {
+ $('.popup .content').load('<?php echo $vars['url'] . 'pg/embed/media'; ?>?internalname=<?php echo $vars['internalname']; ?>');
+ }
+ };
+ $(this).ajaxSubmit(options);
+ return false;
+ });
+ //});
+ </script>
+
+<?php
+
+ }
+
+?>
diff --git a/mod/embed/views/default/group/default/embed.php b/mod/embed/views/default/group/default/embed.php
new file mode 100644
index 000000000..c5bf905a0
--- /dev/null
+++ b/mod/embed/views/default/group/default/embed.php
@@ -0,0 +1,9 @@
+<?php
+
+ if ($vars['entity'] instanceof ElggGroup) {
+
+ echo '<a href="'. $vars['entity']->getURL() .'">' . $vars['entity']->title . '</a>';
+
+ }
+
+?> \ No newline at end of file
diff --git a/mod/embed/views/default/object/default/embed.php b/mod/embed/views/default/object/default/embed.php
new file mode 100644
index 000000000..c97dbd48a
--- /dev/null
+++ b/mod/embed/views/default/object/default/embed.php
@@ -0,0 +1,9 @@
+<?php
+
+ if ($vars['entity'] instanceof ElggObject) {
+
+ echo '<a href="'. $vars['entity']->getURL() .'">' . $vars['entity']->title . '</a>';
+
+ }
+
+?> \ No newline at end of file
diff --git a/mod/embed/views/default/object/file/embed.php b/mod/embed/views/default/object/file/embed.php
new file mode 100644
index 000000000..01f3904ac
--- /dev/null
+++ b/mod/embed/views/default/object/file/embed.php
@@ -0,0 +1,17 @@
+<?php
+
+ $mime = $vars['entity']->mimetype;
+
+ if (elgg_view_exists('file/specialcontent/' . $mime)) {
+ $content = elgg_view('file/specialcontent/' . $mime, $vars);
+ } else if (elgg_view_exists("file/specialcontent/" . substr($mime,0,strpos($mime,'/')) . "/default")) {
+ $content = elgg_view("file/specialcontent/" . substr($mime,0,strpos($mime,'/')) . "/default", $vars);
+ }
+
+ if (empty($content) || substr_count(strtolower($content),'<embed') || substr_count(strtolower($content),'<object') || substr_count(strtolower($content),'<script')) {
+ echo elgg_view('object/default/embed',$vars);
+ } else {
+ echo $content;
+ }
+
+?> \ No newline at end of file
diff --git a/mod/embed/views/default/object/file/embedlist.php b/mod/embed/views/default/object/file/embedlist.php
new file mode 100644
index 000000000..71e84f265
--- /dev/null
+++ b/mod/embed/views/default/object/file/embedlist.php
@@ -0,0 +1,20 @@
+<?php
+
+ $file = $vars['entity'];
+ $friendlytime = friendly_time($vars['entity']->time_created);
+
+ $info = "<p> <a href=\"{$file->getURL()}\">{$file->title}</a></p>";
+ $info .= "<p class=\"owner_timestamp\">{$friendlytime}";
+ $icon = "<a href=\"{$file->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $file->mimetype, 'thumbnail' => $file->thumbnail, 'file_guid' => $file->guid, 'size' => 'small')) . "</a>";
+
+?>
+<div id="embedFile<?php echo $file->guid; ?>">
+ <div class="search_listing">
+ <div class="search_listing_icon">
+ <?php echo $icon; ?>
+ </div>
+ <div class="search_listing_info">
+ <?php echo $info; ?>
+ </div>
+ </div>
+</div>
diff --git a/mod/embed/views/default/site/default/embed.php b/mod/embed/views/default/site/default/embed.php
new file mode 100644
index 000000000..2d0c52214
--- /dev/null
+++ b/mod/embed/views/default/site/default/embed.php
@@ -0,0 +1,9 @@
+<?php
+
+ if ($vars['entity'] instanceof ElggSite) {
+
+ echo '<a href="'. $vars['entity']->getURL() .'">' . $vars['entity']->name . '</a>';
+
+ }
+
+?> \ No newline at end of file
diff --git a/mod/embed/views/default/user/default/embed.php b/mod/embed/views/default/user/default/embed.php
new file mode 100644
index 000000000..1c3dae072
--- /dev/null
+++ b/mod/embed/views/default/user/default/embed.php
@@ -0,0 +1,9 @@
+<?php
+
+ if ($vars['entity'] instanceof ElggUser) {
+
+ echo '<a href="'. $vars['entity']->getURL() .'">' . $vars['entity']->name . '</a>';
+
+ }
+
+?> \ No newline at end of file