diff --git a/ccm-ldn-portal/application.xml b/ccm-ldn-portal/application.xml index 18fe7da86..09747c474 100755 --- a/ccm-ldn-portal/application.xml +++ b/ccm-ldn-portal/application.xml @@ -2,7 +2,7 @@ diff --git a/ccm-ldn-portal/pdl/com/arsdigita/london/portal/portlet/FlashPortlet.pdl b/ccm-ldn-portal/pdl/com/arsdigita/london/portal/portlet/FlashPortlet.pdl new file mode 100644 index 000000000..4b8512414 --- /dev/null +++ b/ccm-ldn-portal/pdl/com/arsdigita/london/portal/portlet/FlashPortlet.pdl @@ -0,0 +1,36 @@ +// Copyright (C) 2008 Permeance Technologies Ptd Ltd. All Rights Reserved. +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License +// as published by the Free Software Foundation; either version 2.1 of +// the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +model com.arsdigita.london.portal.portlet; + +import com.arsdigita.portal.Portlet; + +object type FlashPortlet extends Portlet { + + String[0..1] backgroundColour = portlet_flash.background_colour VARCHAR(7); // #nnnnnn + String[0..1] detectKey = portlet_flash.detect_key VARCHAR(32); + String[1..1] swfFile = portlet_flash.swf_file VARCHAR(2048); + String[1..1] height = portlet_flash.height VARCHAR(8); // 100(px), 25% + String[0..1] parameters = portlet_flash.parameters VARCHAR(1024); + String[0..1] quality = portlet_flash.quality VARCHAR(8); + String[0..1] redirectUrl = portlet_flash.redirect_url VARCHAR(2048); + String[0..1] variables = portlet_flash.variables VARCHAR(1024); + String[1..1] version = portlet_flash.version VARCHAR(8); // nn.nn.nn + String[1..1] width = portlet_flash.width VARCHAR(8); // 100(px), 25% + String[0..1] xiRedirectUrl = portlet_flash.xi_redirect_url VARCHAR(2048); + + reference key (portlet_flash.portlet_id); +} \ No newline at end of file diff --git a/ccm-ldn-portal/pdl/com/arsdigita/london/portal/portlet/NavigationDirectoryPortlet.pdl b/ccm-ldn-portal/pdl/com/arsdigita/london/portal/portlet/NavigationDirectoryPortlet.pdl new file mode 100644 index 000000000..e54559749 --- /dev/null +++ b/ccm-ldn-portal/pdl/com/arsdigita/london/portal/portlet/NavigationDirectoryPortlet.pdl @@ -0,0 +1,26 @@ +// Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License as published by the Free +// Software Foundation; either version 2.1 of the License, or (at your option) +// any later version. +// +// This library is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +// details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with this library; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +model com.arsdigita.london.portal.portlet; + +import com.arsdigita.london.navigation.Navigation; +import com.arsdigita.portal.Portlet; + +object type NavigationDirectoryPortlet extends Portlet { + Navigation[1..1] navigation = join portlet_navigation_directory.navigation_id to nav_app.application_id; + Integer[1..1] depth = portlet_navigation_directory.depth INTEGER; + reference key (portlet_navigation_directory.portlet_id); +} \ No newline at end of file diff --git a/ccm-ldn-portal/sql/ccm-ldn-portal/default/upgrade/add-flash-portlet.sql b/ccm-ldn-portal/sql/ccm-ldn-portal/default/upgrade/add-flash-portlet.sql new file mode 100644 index 000000000..3de696bdd --- /dev/null +++ b/ccm-ldn-portal/sql/ccm-ldn-portal/default/upgrade/add-flash-portlet.sql @@ -0,0 +1,38 @@ +-- Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +-- +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License as published by the Free +-- Software Foundation; either version 2.1 of the License, or (at your option) +-- any later version. +-- +-- This library is distributed in the hope that it will be useful, but WITHOUT +-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +-- details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with this library; if not, write to the Free Software Foundation, Inc., +-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +create table portlet_flash ( + portlet_id INTEGER not null + constraint portle_flas_portlet_id_p_d00yp + primary key, + -- referential constraint for portlet_id deferred due to circular dependencies + background_colour VARCHAR(7), + detect_key VARCHAR(32), + swf_file VARCHAR(2048) not null, + height VARCHAR(8) not null, + parameters VARCHAR(1024), + quality VARCHAR(8), + redirect_url VARCHAR(2048), + variables VARCHAR(1024), + version VARCHAR(8) not null, + width VARCHAR(8) not null, + xi_redirect_url VARCHAR(2048) +); + +alter table portlet_flash add + constraint portle_flas_portlet_id_f_bhmp4 foreign key (portlet_id) + references portlets(portlet_id); + \ No newline at end of file diff --git a/ccm-ldn-portal/sql/ccm-ldn-portal/default/upgrade/add-navigation-directory-portlet.sql b/ccm-ldn-portal/sql/ccm-ldn-portal/default/upgrade/add-navigation-directory-portlet.sql new file mode 100644 index 000000000..2c04e9bd6 --- /dev/null +++ b/ccm-ldn-portal/sql/ccm-ldn-portal/default/upgrade/add-navigation-directory-portlet.sql @@ -0,0 +1,31 @@ +-- Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +-- +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License as published by the Free +-- Software Foundation; either version 2.1 of the License, or (at your option) +-- any later version. +-- +-- This library is distributed in the hope that it will be useful, but WITHOUT +-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +-- details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with this library; if not, write to the Free Software Foundation, Inc., +-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +create table portlet_navigation_directory ( + portlet_id INTEGER not null + constraint port_navig_dire_por_id_p_n4lfs + primary key, + navigation_id INTEGER not null, + depth INTEGER not null +); + +alter table portlet_navigation_directory add + constraint port_navi_dir_navig_id_f_rq14k foreign key (navigation_id) + references nav_app(application_id); + +alter table portlet_navigation_directory add + constraint port_navig_dire_por_id_f_vsyyc foreign key (portlet_id) + references portlets(portlet_id); \ No newline at end of file diff --git a/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/oracle-se-6.5.1-6.5.2.sql b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/oracle-se-6.5.1-6.5.2.sql new file mode 100644 index 000000000..433467867 --- /dev/null +++ b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/oracle-se-6.5.1-6.5.2.sql @@ -0,0 +1,18 @@ +-- Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +-- +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License as published by the Free +-- Software Foundation; either version 2.1 of the License, or (at your option) +-- any later version. +-- +-- This library is distributed in the hope that it will be useful, but WITHOUT +-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +-- details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with this library; if not, write to the Free Software Foundation, Inc., +-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +@@ ../default/upgrade/add-navigation-directory-portlet.sql + diff --git a/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/oracle-se-6.5.2-6.5.3.sql b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/oracle-se-6.5.2-6.5.3.sql new file mode 100644 index 000000000..bc152332e --- /dev/null +++ b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/oracle-se-6.5.2-6.5.3.sql @@ -0,0 +1,18 @@ +-- Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +-- +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License as published by the Free +-- Software Foundation; either version 2.1 of the License, or (at your option) +-- any later version. +-- +-- This library is distributed in the hope that it will be useful, but WITHOUT +-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +-- details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with this library; if not, write to the Free Software Foundation, Inc., +-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +@@ ../default/upgrade/add-flash-portlet.sql + diff --git a/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/postgres-6.5.1-6.5.2.sql b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/postgres-6.5.1-6.5.2.sql new file mode 100644 index 000000000..c9764018a --- /dev/null +++ b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/postgres-6.5.1-6.5.2.sql @@ -0,0 +1,20 @@ +-- Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +-- +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License as published by the Free +-- Software Foundation; either version 2.1 of the License, or (at your option) +-- any later version. +-- +-- This library is distributed in the hope that it will be useful, but WITHOUT +-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +-- details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with this library; if not, write to the Free Software Foundation, Inc., +-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +begin; +\i ../default/upgrade/add-navigation-directory-portlet.sql +commit; + diff --git a/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/postgres-6.5.2-6.5.3.sql b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/postgres-6.5.2-6.5.3.sql new file mode 100644 index 000000000..bbd37a52f --- /dev/null +++ b/ccm-ldn-portal/sql/ccm-ldn-portal/upgrade/postgres-6.5.2-6.5.3.sql @@ -0,0 +1,20 @@ +-- Copyright (C) 2008 Permeance Technologies Pty Ltd. All Rights Reserved. +-- +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License as published by the Free +-- Software Foundation; either version 2.1 of the License, or (at your option) +-- any later version. +-- +-- This library is distributed in the hope that it will be useful, but WITHOUT +-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +-- FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +-- details. +-- +-- You should have received a copy of the GNU Lesser General Public License +-- along with this library; if not, write to the Free Software Foundation, Inc., +-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +begin; +\i ../default/upgrade/add-flash-portlet.sql +commit; + diff --git a/ccm-ldn-portal/src/ccm-ldn-portal.upgrade b/ccm-ldn-portal/src/ccm-ldn-portal.upgrade index 51f1d6321..cd84ec75c 100755 --- a/ccm-ldn-portal/src/ccm-ldn-portal.upgrade +++ b/ccm-ldn-portal/src/ccm-ldn-portal.upgrade @@ -11,4 +11,12 @@ + + + + +
+ You need to upgrade your Flash Player + This is replaced by the Flash content. + Place your alternate content here and users without the Flash plugin or with + Javascript turned off will see this. Content here allows you to leave out noscript + tags. Include a link to bypass the detection if you wish. +
+ + + +
+

+ This Flash movie was embedded using the SWFObject embed method by Geoff Stearns. +

+

Other sample embeds:

+ +

You can also view your installed Flash version.

+

+ View source (in mozilla, firefox) | View Javascript. +

+

+ Download Source. +

+
+ +

Validate XHTML and CSS

+ + diff --git a/ccm-ldn-portal/web/assets/swfobject15/expressinstall.swf b/ccm-ldn-portal/web/assets/swfobject15/expressinstall.swf new file mode 100644 index 000000000..613d69b72 Binary files /dev/null and b/ccm-ldn-portal/web/assets/swfobject15/expressinstall.swf differ diff --git a/ccm-ldn-portal/web/assets/swfobject15/flashversion.html b/ccm-ldn-portal/web/assets/swfobject15/flashversion.html new file mode 100644 index 000000000..9258bab56 --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/flashversion.html @@ -0,0 +1,46 @@ + + + + + +SWFObject embed by Geoff Stearns (show player version) @ deconcept + + + + + + +
+ You do not have the Flash plugin installed, or your browser does not support Javascript (you should enable it, perhaps?) +
+ + + +
+

+ This page displays your current Flash player version using Javascript. +

+
+ + diff --git a/ccm-ldn-portal/web/assets/swfobject15/fullpage.html b/ccm-ldn-portal/web/assets/swfobject15/fullpage.html new file mode 100644 index 000000000..3a11eee2c --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/fullpage.html @@ -0,0 +1,53 @@ + + + + + +SWFObject embed by Geoff Stearns (full page) @ deconcept + + + + + + +
+ You need to upgrade your Flash Player + This is replaced by the Flash content. + Place your alternate content here and users without the Flash plugin or with + Javascript turned off will see this. Content here allows you to leave out noscript + tags. Include a link to bypass the detection if you wish. +
+ + + + + diff --git a/ccm-ldn-portal/web/assets/swfobject15/readme.txt b/ccm-ldn-portal/web/assets/swfobject15/readme.txt new file mode 100644 index 000000000..fa9a8d6e5 --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/readme.txt @@ -0,0 +1,141 @@ +SWFObject Readme +http://blog.deconcept.com/swfobject/ + +v1.5 + +SWFObject is a small Javascript file used for embedding Macromedia Flash content. The script can detect the Flash plug-in in all major web browsers (on Mac and PC) and is designed to make embedding Flash movies as easy as possible. It is also very search engine friendly, degrades gracefully, can be used in valid HTML and XHTML 1.0 documents, and is forward compatible, so it should work for years to come. + +* SWFObject is the Flash embed script formerly known as FlashObject. The name was changed after a request from Adobe + for legal / trademark reasons. + +Created: 10-14-2004 +Last Updated: 02-28-2007 + +By: Geoff Stearns +geoff@deconcept.com +http://blog.deconcept.com/ +-------------------------- + +Copyright (c) 2007 Geoff Stearns + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------- + +Files: + +readme.txt - this file + +swfobject.js - SWFObject javascript file - this will need to be included in any html + file that uses the SWFObject embed. This file is compressed with dojo + shrinksafe (http://alex.dojotoolkit.org/shrinksafe/) to save bandwidth. To view the uncompressed version, look at + source/swfobject_source.js + +swfobject.html - sample html file showing how to use the SWFObject embed + +expressinstall.html - sample html file showing how to use SWFObject with the ExpressInstall feature + +fullpage.html - sample html file showing a full page (100% by 100% flash embed) + +flashversion.html - sample page showing how to use SWFObject to determine the installed player version + +so_tester.swf - sample swf used to test basic SWFObject functionality + +expressinstall.swf - swf used to invoke the Express Install feature for users that have Flash Player 6.0.65 or higher already installed + +source/so_tester.fla - sample fla for SWFObject testing. Open this to see how to use the ExpressInstall + features + +source/swfobject_source.as - uncompressed swfobject.js file - only provided for viewing, you should use + the production version (swfobject.js) on your website + + +These files are provided 'as is,' with no technical support provided, but if you +find a problem, please e-mail me at geoff@deconcept.com or send an e-mail to the SWFObject mailing list +(http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com) so I can update/correct the problem and +provide an updated version. + + +---------- +Changelog: + +03-05-2007 (v1.5) +[fixed] updated expressinstall.swf to fix a scaling issue after the update was finished. + +02-28-2007 (v1.5) +[changed] Express Install functionality was updated to support projects that use AS3 (or Flex 2 projects). This means new syntax when using Express Install (see expressinstall.html for an example) +[fixed/changed] adjusted cleanup code to only call cleanUpSWFs() if the user is using IE and has Flash Player 8 or higher (because the streaming audio + out of memory error only affects these systems) +[fixed/changed] adjusted cleanup code to only be called once - this fixes issues people had when accidentally including the js file more than once +[changed] added support for IE Mobile devices with Flash Player installed +[changed] added support for style attributes on the object/embed tags - mainly for compatibility with swfIR (http://www.swfir.com) + +8-2-206 (v1.4.4) +[fixed] The v1.4.3 introduced a new issue: When clicking links with href="javascript:..." it would cause all the swf files on the page to disappear (it was triggering the cleanUpSWFs function prematurely). This is now fixed, and all users should upgrade immediately to v1.4.4. + +7-25-2006 (v1.4.3) +[updated] added in a fix for a bug introduced in Flash Player 9 that would cause an error in IE "Line 56: Out of memory". This was caused by new code inserted by Flash Player 9, and SWFObject 'fixes' this by removing the 'bad' code that fp9 inserts and replacing it with code that does not cause the 'Out of memory' error. + +6-2-2006 (v1.4.2) +[updated] added one more fix for a related issue to the audio streaming bug listed below, thanks to Ben Longoria for the fix +[updated] updated the detection code for IE/ActiveX browsers to fix a crash that could occur when the user had Flash Player 6.0.21 or 6.0.23 installed (Thanks to Michael Williams at Adobe for the code to fix this (and the Adobe detection kit)) +[fixed] updated the getQueryParamValue method to fix a bug that would return the wrong value if you had two variables that ended with the same string (Thanks to Aran Rhee for discovering the issue and providing a fix) +[fixed] fixed a couple of strict js warnings that crept back in sometime after the 1.4 update + +5-17-2006 (v1.4.1) +[updated] added code to 'clean up' Flash Player instances on window unload because of a bug when using innerHTML and streaming media. + +4-21-2006 (v1.4) +[changed] FlashObject is now known as SWFObject because of legal reasons. For more info, read: +http://blog.deconcept.com/2006/04/21/flashobject-to-become-swfobject/ +Note that using the code 'new FlashObject()' will still work because I've added a link from FlashObject to deconcept.SWFObject, but you should update your code to reflect the new name as soon as possible to avoid future complications +[updated] SWFObject.write() now returns true or false depending on whether the SWF content was written to the page or not (true if it is, false if it is not) +[changed] the 'com' namespace has been removed, now everything lives in the 'deconcept' namespace only, instead of 'com.deconcept' namespace. +[updated] made a couple very small changes to get rid of warnings in the mozilla script debugger when the debugger was in strict mode +[updated] added 'the mark of the web' to the examples pages to (hopefully) prevent the ActiveX bar from appearing at the top of the page when viewing these files locally in IE on Windows. + +3-26-06 +[fixed] bug found in the location.hash handling in the getQueryParamValue() call. Changed document.location.href.hash to document.location.hash. + +2-14-06 +[fixed] bug found in the custom ExpressInstall message. When publishing the fla as a Flash 8 swf, the upgrade message would not show up. This is due to the way the Flash 7 player displays text and outlines (among other things). To avoid issues with custom upgrade messages, you should use device fonts, and either remove outlines from objects, or set them to 'hairline'. There may be other issues to avoid, so if you have issues with items not showing up in older Flash player versions, try simplifying the objects. + +2-09-2006 +[fixed] bug in the getHTML method - the closing tag wasn't being appended unless you passed in at least 1 flashvar, and fixed some closing slashes on the param tags. + +1-25-2006 +[fixed] Found a small bug in this latest version that caused the Flash movie to not load on IE 5.01 on PC. The bug has been fixed and the zip/source has been updated. Please update to the latest version if you are using 1.3 and have a lot of users using IE 5.01 (does anyone have a high number of those anymore?). The new version number is 1.3b. + +1-18-2006 +[fixed] Bug that would keep users with Flash Player 6 installed from using ExpressInstall + +1-12-2006 +[Changed] When calling FlashObject.write() you can now pass an HTMLElement reference. Previously you needed to pass a string (the Id of the element to write the Flash content to) +[Changed] Made changes to the plugin detection routine that would cause a crash in browsers running certain versions of the Flash plugin. Read a comprehensive description of the issue and the fix. +[New] You may now specify a specific URL to redirect the user to after they complete an ExpressInstall process. Previously the script would always redirect them to the page the Flash movie was embedded in, but when using a popup window this is not always the best solution. See the ExpressInstall section of the FlashObject page for more information. +[New] FlashObject now integrates seamlessly with the Javascript Integration Kit. More information on this is forthcoming in a new blog post. +[New] I’ve used Dojo Shrinksafe to strip out the extra space in the swfobject.js file. FlashObject now weighs in at just a hair over 6kb. Super tiny! The FlashObject ’source code’ (un-shunken Javascript) is included in the FlashObject zip file in the ’source’ folder. I also made a number of small syntax changes to reduce the size even more. + +8-1-2005 +-fixed bug in detection that caused redirection to fail and threw an error if no flash player was installed +-updated IE detection code - no more VBscript at all, and no more loop to check the version installed. + +7-22-2005 +-added minor version and revision detection +-fixed a few small bugs (one would have caused SWFObject to fail once a user tries to detect a flash player version larger than 9) +-rewrote so it's all in it's own namespace (Thanks to Toby Boudreaux for the excellent code tips http://www.tobyjoe.com/) +- *** note that FlashObject.write() now requires an element ID - it will no longer work with no id specified +- *** please note that there is no more bypass text or altTxt variables, you should place your alternate content in a div, and then have FlashObject write to that div, thereby replacing the alternate content. + +5-17-2005 +[changed] the 'id' attribute on the embed tag to 'name' instead. This +change enables the use of features that require liveconnect or other javascript +communication in browsers that use the embed tag. (later changed so the embed tag has both id and name) + +3-31-2005 +v1.1 update, multiple changes, mostly some code optimization and some +changes in how the script displays alt content. see: +http://blog.deconcept.com/2005/03/31/proper-flash-embedding-flashobject-best-practices/ + diff --git a/ccm-ldn-portal/web/assets/swfobject15/so_tester.swf b/ccm-ldn-portal/web/assets/swfobject15/so_tester.swf new file mode 100644 index 000000000..183b6dbc1 Binary files /dev/null and b/ccm-ldn-portal/web/assets/swfobject15/so_tester.swf differ diff --git a/ccm-ldn-portal/web/assets/swfobject15/source/com/deconcept/expressinstall/ExpressInstall.as b/ccm-ldn-portal/web/assets/swfobject15/source/com/deconcept/expressinstall/ExpressInstall.as new file mode 100644 index 000000000..8b9954e08 --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/source/com/deconcept/expressinstall/ExpressInstall.as @@ -0,0 +1,81 @@ +/** + * expressinstall.as v2.0 - http://blog.deconcept.com/swfobject/ + * + * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * NOTE: Your Flash movie must be at least 214px by 137px in order to use ExpressInstall. + * Please see http://blog.deconcept.com/swfobject/ for other notes. + * + * This swf needs to be AS2 because it needs to run in Flash Player 6.0.65 + * + */ +class com.deconcept.expressinstall.ExpressInstall { + + private static var instance:ExpressInstall; + private var updater:MovieClip; + private var hold:MovieClip; + + function ExpressInstall() {} + + public static function getInstance():ExpressInstall { + if (instance == undefined) { + instance = new ExpressInstall(); + } + return instance; + } + + public function loadUpdater():Void { + System.security.allowDomain("fpdownload.macromedia.com"); + + var _self = this; + + // hope that nothing is at a depth of 10000007, you can change this depth if needed, but you want + // it to be on top of your content if you have any stuff on the first frame + updater = _root.createEmptyMovieClip("deconcept_expressInstallHolder", 10000007); + + // register the callback so we know if they cancel or there is an error + updater.installStatus = _self.onInstallStatus; + hold = updater.createEmptyMovieClip("hold", 1); + + // can't use movieClipLoader because it has to work in 6.0.65 + updater.onEnterFrame = function():Void { + if (typeof hold.startUpdate == 'function') { + _self.initUpdater(); + this.onEnterFrame = null; + } + } + + var cacheBuster:Number = Math.random(); + hold.loadMovie("http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/autoUpdater.swf?"+ cacheBuster); + } + + private function initUpdater():Void { + hold.redirectURL = _root.MMredirectURL; + hold.MMplayerType = _root.MMplayerType; + hold.MMdoctitle = _root.MMdoctitle; + hold.startUpdate(); + } + + private function onInstallStatus(msg):Void { + if (msg == "Download.Complete") { + // Installation is complete. In most cases the browser window that this SWF + // is hosted in will be closed by the installer or manually by the end user + + } else if (msg == "Download.Cancelled") { + // The end user chose "NO" when prompted to install the new player + // by default no User Interface is presented in this case. It is left up to + // the developer to provide an alternate experience in this case + + // feel free to change this to whatever you want, js errors are sufficient for this example + getURL("javascript:alert('This content requires a more recent version of the Adobe Flash Player.')"); + } else if (msg == "Download.Failed") { + // The end user failed to download the installer due to a network failure + // by default no User Interface is presented in this case. It is left up to + // the developer to provide an alternate experience in this case + + // feel free to change this to whatever you want, js errors are sufficient for this example + getURL("javascript:alert('There was an error downloading the Flash Player update. Please try again later, or visit adobe.com/go/getflashplayer/ to download the latest version of the Flash plugin.')"); + } + } +} diff --git a/ccm-ldn-portal/web/assets/swfobject15/source/expressinstall.fla b/ccm-ldn-portal/web/assets/swfobject15/source/expressinstall.fla new file mode 100644 index 000000000..e00f4da2c Binary files /dev/null and b/ccm-ldn-portal/web/assets/swfobject15/source/expressinstall.fla differ diff --git a/ccm-ldn-portal/web/assets/swfobject15/source/so_tester.fla b/ccm-ldn-portal/web/assets/swfobject15/source/so_tester.fla new file mode 100644 index 000000000..2e74b95bc Binary files /dev/null and b/ccm-ldn-portal/web/assets/swfobject15/source/so_tester.fla differ diff --git a/ccm-ldn-portal/web/assets/swfobject15/source/swfobject_source.js b/ccm-ldn-portal/web/assets/swfobject15/source/swfobject_source.js new file mode 100644 index 000000000..caa256a23 --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/source/swfobject_source.js @@ -0,0 +1,233 @@ +/** + * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ + * + * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ +if(typeof deconcept == "undefined") var deconcept = new Object(); +if(typeof deconcept.util == "undefined") deconcept.util = new Object(); +if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object(); +deconcept.SWFObject = function(swf, id, w, h, ver, c, quality, xiRedirectUrl, redirectUrl, detectKey) { + if (!document.getElementById) { return; } + this.DETECT_KEY = detectKey ? detectKey : 'detectflash'; + this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY); + this.params = new Object(); + this.variables = new Object(); + this.attributes = new Array(); + if(swf) { this.setAttribute('swf', swf); } + if(id) { this.setAttribute('id', id); } + if(w) { this.setAttribute('width', w); } + if(h) { this.setAttribute('height', h); } + if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); } + this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(); + if (!window.opera && document.all && this.installedVer.major > 7) { + // only add the onunload cleanup if the Flash Player version supports External Interface and we are in IE + deconcept.SWFObject.doPrepUnload = true; + } + if(c) { this.addParam('bgcolor', c); } + var q = quality ? quality : 'high'; + this.addParam('quality', q); + this.setAttribute('useExpressInstall', false); + this.setAttribute('doExpressInstall', false); + var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location; + this.setAttribute('xiRedirectUrl', xir); + this.setAttribute('redirectUrl', ''); + if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); } +} +deconcept.SWFObject.prototype = { + useExpressInstall: function(path) { + this.xiSWFPath = !path ? "expressinstall.swf" : path; + this.setAttribute('useExpressInstall', true); + }, + setAttribute: function(name, value){ + this.attributes[name] = value; + }, + getAttribute: function(name){ + return this.attributes[name]; + }, + addParam: function(name, value){ + this.params[name] = value; + }, + getParams: function(){ + return this.params; + }, + addVariable: function(name, value){ + this.variables[name] = value; + }, + getVariable: function(name){ + return this.variables[name]; + }, + getVariables: function(){ + return this.variables; + }, + getVariablePairs: function(){ + var variablePairs = new Array(); + var key; + var variables = this.getVariables(); + for(key in variables){ + variablePairs[variablePairs.length] = key +"="+ variables[key]; + } + return variablePairs; + }, + getSWFHTML: function() { + var swfNode = ""; + if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture + if (this.getAttribute("doExpressInstall")) { + this.addVariable("MMplayerType", "PlugIn"); + this.setAttribute('swf', this.xiSWFPath); + } + swfNode = ' 0){ swfNode += 'flashvars="'+ pairs +'"'; } + swfNode += '/>'; + } else { // PC IE + if (this.getAttribute("doExpressInstall")) { + this.addVariable("MMplayerType", "ActiveX"); + this.setAttribute('swf', this.xiSWFPath); + } + swfNode = ''; + swfNode += ''; + var params = this.getParams(); + for(var key in params) { + swfNode += ''; + } + var pairs = this.getVariablePairs().join("&"); + if(pairs.length > 0) {swfNode += '';} + swfNode += ""; + } + return swfNode; + }, + write: function(elementId){ + if(this.getAttribute('useExpressInstall')) { + // check to see if we need to do an express install + var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]); + if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) { + this.setAttribute('doExpressInstall', true); + this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl'))); + document.title = document.title.slice(0, 47) + " - Flash Player Installation"; + this.addVariable("MMdoctitle", document.title); + } + } + if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){ + var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId; + n.innerHTML = this.getSWFHTML(); + return true; + }else{ + if(this.getAttribute('redirectUrl') != "") { + document.location.replace(this.getAttribute('redirectUrl')); + } + } + return false; + } +} + +/* ---- detection functions ---- */ +deconcept.SWFObjectUtil.getPlayerVersion = function(){ + var PlayerVersion = new deconcept.PlayerVersion([0,0,0]); + if(navigator.plugins && navigator.mimeTypes.length){ + var x = navigator.plugins["Shockwave Flash"]; + if(x && x.description) { + PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); + } + }else if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0){ // if Windows CE + var axo = 1; + var counter = 3; + while(axo) { + try { + counter++; + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter); +// document.write("player v: "+ counter); + PlayerVersion = new deconcept.PlayerVersion([counter,0,0]); + } catch (e) { + axo = null; + } + } + } else { // Win IE (non mobile) + // do minor version lookup in IE, but avoid fp6 crashing issues + // see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/ + try{ + var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); + }catch(e){ + try { + var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); + PlayerVersion = new deconcept.PlayerVersion([6,0,21]); + axo.AllowScriptAccess = "always"; // error if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code) + } catch(e) { + if (PlayerVersion.major == 6) { + return PlayerVersion; + } + } + try { + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + } catch(e) {} + } + if (axo != null) { + PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); + } + } + return PlayerVersion; +} +deconcept.PlayerVersion = function(arrVersion){ + this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0; + this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0; + this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0; +} +deconcept.PlayerVersion.prototype.versionIsValid = function(fv){ + if(this.major < fv.major) return false; + if(this.major > fv.major) return true; + if(this.minor < fv.minor) return false; + if(this.minor > fv.minor) return true; + if(this.rev < fv.rev) return false; + return true; +} +/* ---- get value of query string param ---- */ +deconcept.util = { + getRequestParameter: function(param) { + var q = document.location.search || document.location.hash; + if (param == null) { return q; } + if(q) { + var pairs = q.substring(1).split("&"); + for (var i=0; i < pairs.length; i++) { + if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { + return pairs[i].substring((pairs[i].indexOf("=")+1)); + } + } + } + return ""; + } +} +/* fix for video streaming bug */ +deconcept.SWFObjectUtil.cleanupSWFs = function() { + var objects = document.getElementsByTagName("OBJECT"); + for (var i = objects.length - 1; i >= 0; i--) { + objects[i].style.display = 'none'; + for (var x in objects[i]) { + if (typeof objects[i][x] == 'function') { + objects[i][x] = function(){}; + } + } + } +} +// fixes bug in some fp9 versions see http://blog.deconcept.com/2006/07/28/swfobject-143-released/ +if (deconcept.SWFObject.doPrepUnload) { + if (!deconcept.unloadSet) { + deconcept.SWFObjectUtil.prepUnload = function() { + __flash_unloadHandler = function(){}; + __flash_savedUnloadHandler = function(){}; + window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs); + } + window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload); + deconcept.unloadSet = true; + } +} +/* add document.getElementById if needed (mobile IE < 5) */ +if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }} + +/* add some aliases for ease of use/backwards compatibility */ +var getQueryParamValue = deconcept.util.getRequestParameter; +var FlashObject = deconcept.SWFObject; // for legacy support +var SWFObject = deconcept.SWFObject; diff --git a/ccm-ldn-portal/web/assets/swfobject15/swfobject.html b/ccm-ldn-portal/web/assets/swfobject15/swfobject.html new file mode 100644 index 000000000..49df740c3 --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/swfobject.html @@ -0,0 +1,72 @@ + + + + + +SWFObject embed by Geoff Stearns (basic) @ deconcept + + + + + + +
+ You need to upgrade your Flash Player + This is replaced by the Flash content. + Place your alternate content here and users without the Flash plugin or with + Javascript turned off will see this. Content here allows you to leave out noscript + tags. Include a link to bypass the detection if you wish. +
+ + + +
+

+ This Flash movie was embedded using the SWFObject embed method by Geoff Stearns. +

+

Other sample embeds:

+ +

You can also view your installed Flash version.

+

+ View source (in mozilla, firefox) | View Javascript. +

+

+ Download Source. +

+
+ +

Validate XHTML and CSS

+ + diff --git a/ccm-ldn-portal/web/assets/swfobject15/swfobject.js b/ccm-ldn-portal/web/assets/swfobject15/swfobject.js new file mode 100644 index 000000000..e7edd42c0 --- /dev/null +++ b/ccm-ldn-portal/web/assets/swfobject15/swfobject.js @@ -0,0 +1,8 @@ +/** + * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ + * + * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ +if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject; \ No newline at end of file diff --git a/ccm-ldn-portal/web/packages/workspace/xsl/flash-portlet.xsl b/ccm-ldn-portal/web/packages/workspace/xsl/flash-portlet.xsl new file mode 100644 index 000000000..350fd681e --- /dev/null +++ b/ccm-ldn-portal/web/packages/workspace/xsl/flash-portlet.xsl @@ -0,0 +1,39 @@ + + + + + + player_ +
+ + +
+
+ +
diff --git a/ccm-ldn-portal/web/packages/workspace/xsl/portlets.xsl b/ccm-ldn-portal/web/packages/workspace/xsl/portlets.xsl index 41330e382..e6ff9e54f 100755 --- a/ccm-ldn-portal/web/packages/workspace/xsl/portlets.xsl +++ b/ccm-ldn-portal/web/packages/workspace/xsl/portlets.xsl @@ -12,6 +12,7 @@ +