From 60fd7ad6ce1c2fbd140edf1a6185649e47735bbc Mon Sep 17 00:00:00 2001 From: brettp Date: Tue, 1 Jun 2010 22:33:58 +0000 Subject: First pass at a loosely couple embed plugin using ECML. git-svn-id: http://code.elgg.org/elgg/trunk@6315 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/embed/README.txt | 3 +- mod/embed/embed.php | 62 ++- mod/embed/manifest.xml | 2 +- mod/embed/start.php | 75 +-- mod/embed/views/default/embed/addcontentjs.php | 4 +- mod/embed/views/default/embed/embed.php | 104 +++++ mod/embed/views/default/embed/item/list.php | 49 ++ mod/embed/views/default/embed/js.php | 528 +++++++++++----------- mod/embed/views/default/embed/layouts/gallery.php | 1 + mod/embed/views/default/embed/layouts/list.php | 60 +++ mod/embed/views/default/embed/link.php | 5 + mod/embed/views/default/embed/media.php | 28 +- mod/embed/views/default/embed/upload.php | 37 +- 13 files changed, 600 insertions(+), 358 deletions(-) create mode 100644 mod/embed/views/default/embed/embed.php create mode 100644 mod/embed/views/default/embed/item/list.php create mode 100644 mod/embed/views/default/embed/layouts/gallery.php create mode 100644 mod/embed/views/default/embed/layouts/list.php (limited to 'mod') diff --git a/mod/embed/README.txt b/mod/embed/README.txt index 17f867d7a..f81d5b14a 100644 --- a/mod/embed/README.txt +++ b/mod/embed/README.txt @@ -6,5 +6,4 @@ 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 +To insert into the active editor, use elggEmbedInsert(html). \ No newline at end of file diff --git a/mod/embed/embed.php b/mod/embed/embed.php index 358547491..09b3ac29b 100644 --- a/mod/embed/embed.php +++ b/mod/embed/embed.php @@ -1,37 +1,35 @@ array('file')); +$internalname = get_input('internalname'); - 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, - )); +if (!isloggedin()) exit; + +global $SESSION; + +$offset = (int) get_input('offset',0); +$simpletype = get_input('simpletype'); +$entity_types = array('object' => array('file')); -?> \ No newline at end of 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, + )); diff --git a/mod/embed/manifest.xml b/mod/embed/manifest.xml index f0f82a699..f54de1fa3 100644 --- a/mod/embed/manifest.xml +++ b/mod/embed/manifest.xml @@ -1,7 +1,7 @@ - + diff --git a/mod/embed/start.php b/mod/embed/start.php index f98c21245..eb6f6d4a6 100644 --- a/mod/embed/start.php +++ b/mod/embed/start.php @@ -1,7 +1,7 @@ @@ -13,37 +13,54 @@ * 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',1); - - // Page handler for the modal media embed - register_page_handler('embed','embed_page_handler'); - - } - +function embed_init() { + 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', 1); + + // Page handler for the modal media embed + register_page_handler('embed', 'embed_page_handler'); +} + /** - * Runs the 'embed' script + * Serves pages for upload and embed. * + * @param $page */ - 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; - } - +function embed_page_handler($page) { + if (!isset($page[0])) { + $page[0] = 'embed'; + } + + switch($page[0]) { + case 'upload': + echo elgg_view('embed/upload'); + + break; + + case 'embed': + default: + // trigger hook to get section tabs + // use views for embed/section/ + // listing + // item + // default to embed/listing | item if not found. + // @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()); + asort($sections, SORT_LOCALE_STRING); + $active_section = get_input('active_section', NULL); + + echo elgg_view('embed/embed', array( + 'sections' => $sections, + 'active_section' => $active_section + )); + + break; } -// Register the init action - register_elgg_event_handler('init','system','embed_init',10); + exit; +} -?> +register_elgg_event_handler('init', 'system', 'embed_init'); \ No newline at end of file diff --git a/mod/embed/views/default/embed/addcontentjs.php b/mod/embed/views/default/embed/addcontentjs.php index ee3678b89..f5533c22e 100644 --- a/mod/embed/views/default/embed/addcontentjs.php +++ b/mod/embed/views/default/embed/addcontentjs.php @@ -1,4 +1,2 @@ - var entity; - $('textarea[name='+entityname+']').val($('textarea[name='+entityname+']').val() + ' ' + content); - + $('textarea[name=' + textAreaName + ']').val($('textarea[name=' + textAreaName + ']').val() + ' ' + content); \ No newline at end of file diff --git a/mod/embed/views/default/embed/embed.php b/mod/embed/views/default/embed/embed.php new file mode 100644 index 000000000..7815c1222 --- /dev/null +++ b/mod/embed/views/default/embed/embed.php @@ -0,0 +1,104 @@ + Section Display Name + * @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)); + +if (!$sections) { + $content = elgg_echo('embed:no_sections'); +} else { + $offset = max(0, get_input('offset', 0)); + $limit = get_input('limit', 10); + + $content = elgg_view_title(elgg_echo('embed:embed')); + + // prepare tabbed menu + $tabs = array(); + foreach ($sections as $section_id => $section_info) { + $tab = array( + 'title' => $section_info['name'], + 'url' => '#', + 'url_class' => 'embed_section', + // abusing the js attribute. + 'url_js' => "id=\"$section_id\"" + ); + + if ($section_id == $active_section) { + $tab['selected'] = TRUE; + } + $tabs[] = $tab; + } + + $tabs_html = elgg_view('navigation/tabs', array('tabs' => $tabs)); + $content .= $tabs_html; + + $pagination_vars = array( + + ); + + $content .= elgg_view('navigation/pagination', $pagination_vars); + + if (array_key_exists($active_section, $sections)) { + $section_info = $sections[$active_section]; + $layout = isset($section_info['layout']) ? $section_info['layout'] : 'list'; + + $params = array( + //'type' => $type, + //'subtype' => $subtype, + 'offset' => $offset, + 'limit' => $limit, + 'section' => $active_section + ); + + // allow full override for this section + // check for standard hook + if ($section_content = elgg_view("embed/$active_section/content", $params)) { + // handles its own pagination + $content .= $section_content; + } elseif ($embed_info = trigger_plugin_hook('embed_get_items', $active_section, $params, array('items' => array(), 'count' => 0))) { + $params['items'] = $embed_info['items']; + $params['count'] = $embed_info['count']; + // pagination here. + $content .= elgg_view('navigation/pagination', $params); + $content .= elgg_view("embed/layouts/{$section_info['layout']}", $params); + } else { + $content .= elgg_echo('embed:no_section_content'); + } + } else { + $content .= elgg_echo('embed:invalid_section'); + } + +} +echo $content; +?> + + + diff --git a/mod/embed/views/default/embed/item/list.php b/mod/embed/views/default/embed/item/list.php new file mode 100644 index 000000000..259419df4 --- /dev/null +++ b/mod/embed/views/default/embed/item/list.php @@ -0,0 +1,49 @@ +name) ? $item->name : $item->title; +// don't let it be too long +$title = elgg_make_excerpt($title); + +// @todo you can disable plugins that are required by other plugins +// (embed requires ecml) so fallback to a hard-coded check to see if ecml is enabled. +// #grumble +if ($ecml_keyword) { + $embed_code = "[$ecml_keyword guid={$item->getGUID()}]"; +} else { + // fallback to inserting a hard link to the object with its icon + $icon = "getIcon()}\" />" . htmlentities($title, ENT_QUOTES, 'UTF-8'); + + $embed_code = elgg_view('output/url', array( + 'href' => $item->getURL(), + 'title' => $title, + 'text' => $title, + 'encode_text' => FALSE + )); +} + +$icon = "getIcon('tiny')}\" />"; +$info = htmlentities($title, ENT_QUOTES, 'UTF-8'); + +// @todo is this approach better than inline js? +echo "
getGUID()}\">" . elgg_view_listing($icon, $info) . '
'; +echo ""; \ No newline at end of file diff --git a/mod/embed/views/default/embed/js.php b/mod/embed/views/default/embed/js.php index 71120e68f..c98fe63da 100644 --- a/mod/embed/views/default/embed/js.php +++ b/mod/embed/views/default/embed/js.php @@ -1,11 +1,21 @@ + - $.facebox.close(); - } +?> +function elggEmbedInsertContent(content, textAreaName) { + content = ' ' + content + ' '; + + $.facebox.close(); +} /* @@ -21,9 +31,9 @@ * Copyright 2007, 2008 Chris Wanstrath [ chris@ozmm.org ] * * Usage: - * + * * jQuery(document).ready(function() { - * jQuery('a[rel*=facebox]').facebox() + * jQuery('a[rel*=facebox]').facebox() * }) * * Terms @@ -37,12 +47,12 @@ * * * 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($) { + * + * jQuery.facebox(function($) { * $.get('blah.html', function(data) { $.facebox(data) }) * }) * @@ -50,7 +60,7 @@ * 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' }) * @@ -71,305 +81,305 @@ * */ (function($) { - $.facebox = function(data, klass) { - $.facebox.loading() +$.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) - } + 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 : '_graphics/ajax_loader_bw.gif', - closeImage : '_graphics/spacer.gif', - imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ], - faceboxHtml : '\ - ' - }, - - loading: function() { - init() - if ($('#facebox .loading').length == 1) return true - showOverlay() - - $('#facebox .content').empty() - $('#facebox .body').children().hide().end(). - append('




') - - $('#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) - +$.extend($.facebox, { + settings: { + opacity : 0.7, + overlay : true, + loadingImage : '_graphics/ajax_loader_bw.gif', + closeImage : '_graphics/spacer.gif', + imageTypes : [ 'png', 'jpg', 'jpeg', 'gif' ], + faceboxHtml : '\ + ' + }, + + loading: function() { + init() + if ($('#facebox .loading').length == 1) return true + showOverlay() + + $('#facebox .content').empty() + $('#facebox .body').children().hide().end(). + append('




') + + $('#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'); - }, 100); - - //$('#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 - } - }) - - /* + $('#facebox .loading').remove(); + $('#facebox .body').children().fadeIn('slow'); + $('#facebox').css('left', $(window).width() / 2 - ($('#facebox').width() / 2)); + $(document).trigger('reveal.facebox').trigger('afterReveal.facebox'); + }, 100); + + //$('#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 + +// 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); - }); + 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) +$.fn.facebox = function(settings) { + init(settings) - function clickHandler() { - $.facebox.loading(true) + 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] + // 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 - } + fillFaceboxFromHref(this.href, klass) + return false + } - return this.click(clickHandler) - } + 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 +// 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() */ + $(document).trigger('init.facebox') + /* makeCompatible() */ - var imageTypes = $.facebox.settings.imageTypes.join('|') - $.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i') + var imageTypes = $.facebox.settings.imageTypes.join('|') + $.facebox.settings.imageTypesRegexp = new RegExp('\.' + imageTypes + '$', 'i') - if (settings) $.extend($.facebox.settings, settings) - $('body').append($.facebox.settings.faceboxHtml) + 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 + 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').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) - } + $('#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; + windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode - windowHeight = document.documentElement.clientHeight; + windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers - windowHeight = document.body.clientHeight; - } + 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 - } + 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 +// 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 - } +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('
', 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('
') - - $('#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 - } - - /* +// 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('
', 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('
') + + $('#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() - }) - }) - - - - +$(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) - }) - - + //alert("resized"); + + $('#facebox').css({ + top: getPageScroll()[1] + (getPageHeight() / 10), + left: ((getPageWidth() / 2) - 365) + }) + + }); diff --git a/mod/embed/views/default/embed/layouts/gallery.php b/mod/embed/views/default/embed/layouts/gallery.php new file mode 100644 index 000000000..b3d9bbc7f --- /dev/null +++ b/mod/embed/views/default/embed/layouts/gallery.php @@ -0,0 +1 @@ + $section, + 'item' => $item, + 'ecml_enabled' => $ecml_enabled, + 'ecml_keyword' => ($ecml_valid_keyword) ? $section : 'entity' + ); + + $content .= elgg_view($view, $params); +} + +echo $content; + +?> + + \ No newline at end of file diff --git a/mod/embed/views/default/embed/link.php b/mod/embed/views/default/embed/link.php index 14b33d4c2..bd500dfaf 100644 --- a/mod/embed/views/default/embed/link.php +++ b/mod/embed/views/default/embed/link.php @@ -1 +1,6 @@ + \ No newline at end of file diff --git a/mod/embed/views/default/embed/media.php b/mod/embed/views/default/embed/media.php index ff0505466..381774618 100644 --- a/mod/embed/views/default/embed/media.php +++ b/mod/embed/views/default/embed/media.php @@ -11,43 +11,43 @@ '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 "

" . elgg_echo('embed:instructions') . "

"; - + foreach($entities as $entity) { if ($entity instanceof ElggEntity) { - $mime = $entity->mimetype; - + $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 { @@ -55,9 +55,9 @@ } $entview = str_replace($entity->getURL(),$link,$entview); echo $entview; - - set_context($context); - + + set_context($context); + } } } diff --git a/mod/embed/views/default/embed/upload.php b/mod/embed/views/default/embed/upload.php index d995b4b2b..5f249c0c7 100644 --- a/mod/embed/views/default/embed/upload.php +++ b/mod/embed/views/default/embed/upload.php @@ -1,5 +1,6 @@

Embed / Upload Media

'upload', 'internalname'=>get_input('internalname'))); @@ -7,7 +8,7 @@ if (!elgg_view_exists('file/upload')) { echo "

" . elgg_echo('embed:file:required') . "

"; } else { $action = 'file/upload'; - + ?>

@@ -15,7 +16,7 @@ if (!elgg_view_exists('file/upload')) { 'upload', 'js' => 'id="upload"')); - + ?>

@@ -26,7 +27,7 @@ if (!elgg_view_exists('file/upload')) { "internalname" => "title", "value" => $title, )); - + ?>

@@ -34,7 +35,7 @@ if (!elgg_view_exists('file/upload')) {

- +

- + -- cgit v1.2.3