From 912dc30b43330a3e99a3e1f947ff14de108a3701 Mon Sep 17 00:00:00 2001 From: wei <> Date: Wed, 17 Jan 2007 11:55:40 +0000 Subject: Add address-book flex demo --- .gitattributes | 27 +++ demos/address-book/index.php | 27 +++ demos/address-book/protected/application.xml | 26 ++ .../protected/pages/AddressProvider.php | 52 ++++ .../address-book/protected/pages/AddressRecord.php | 40 +++ demos/address-book/protected/pages/FlexApp.php | 114 +++++++++ demos/address-book/protected/pages/FlexApp.tpl | 93 +++++++ demos/address-book/protected/pages/Home.page | 25 ++ .../protected/pages/flex/.actionScriptProperties | 21 ++ .../protected/pages/flex/.flexProperties | 2 + demos/address-book/protected/pages/flex/.project | 18 ++ .../.settings/org.eclipse.core.resources.prefs | 3 + .../protected/pages/flex/bin/AC_OETags.js | 269 +++++++++++++++++++++ .../pages/flex/bin/flex_address_book-debug.html | 107 ++++++++ .../pages/flex/bin/flex_address_book.html | 107 ++++++++ .../protected/pages/flex/bin/flex_address_book.swf | Bin 0 -> 300237 bytes .../protected/pages/flex/bin/history.htm | 21 ++ .../protected/pages/flex/bin/history.js | 48 ++++ .../protected/pages/flex/bin/history.swf | Bin 0 -> 2656 bytes .../pages/flex/bin/playerProductInstall.swf | Bin 0 -> 657 bytes .../protected/pages/flex/flex_address_book.mxml | 106 ++++++++ .../pages/flex/html-template/AC_OETags.js | 269 +++++++++++++++++++++ .../protected/pages/flex/html-template/history.htm | 21 ++ .../protected/pages/flex/html-template/history.js | 48 ++++ .../protected/pages/flex/html-template/history.swf | Bin 0 -> 2656 bytes .../pages/flex/html-template/index.template.html | 107 ++++++++ .../flex/html-template/playerProductInstall.swf | Bin 0 -> 657 bytes demos/address-book/protected/pages/sqlite.db | Bin 0 -> 2048 bytes framework/prado-cli.php | 13 +- 29 files changed, 1559 insertions(+), 5 deletions(-) create mode 100644 demos/address-book/index.php create mode 100644 demos/address-book/protected/application.xml create mode 100644 demos/address-book/protected/pages/AddressProvider.php create mode 100644 demos/address-book/protected/pages/AddressRecord.php create mode 100644 demos/address-book/protected/pages/FlexApp.php create mode 100644 demos/address-book/protected/pages/FlexApp.tpl create mode 100644 demos/address-book/protected/pages/Home.page create mode 100644 demos/address-book/protected/pages/flex/.actionScriptProperties create mode 100644 demos/address-book/protected/pages/flex/.flexProperties create mode 100644 demos/address-book/protected/pages/flex/.project create mode 100644 demos/address-book/protected/pages/flex/.settings/org.eclipse.core.resources.prefs create mode 100644 demos/address-book/protected/pages/flex/bin/AC_OETags.js create mode 100644 demos/address-book/protected/pages/flex/bin/flex_address_book-debug.html create mode 100644 demos/address-book/protected/pages/flex/bin/flex_address_book.html create mode 100644 demos/address-book/protected/pages/flex/bin/flex_address_book.swf create mode 100644 demos/address-book/protected/pages/flex/bin/history.htm create mode 100644 demos/address-book/protected/pages/flex/bin/history.js create mode 100644 demos/address-book/protected/pages/flex/bin/history.swf create mode 100644 demos/address-book/protected/pages/flex/bin/playerProductInstall.swf create mode 100644 demos/address-book/protected/pages/flex/flex_address_book.mxml create mode 100644 demos/address-book/protected/pages/flex/html-template/AC_OETags.js create mode 100644 demos/address-book/protected/pages/flex/html-template/history.htm create mode 100644 demos/address-book/protected/pages/flex/html-template/history.js create mode 100644 demos/address-book/protected/pages/flex/html-template/history.swf create mode 100644 demos/address-book/protected/pages/flex/html-template/index.template.html create mode 100644 demos/address-book/protected/pages/flex/html-template/playerProductInstall.swf create mode 100644 demos/address-book/protected/pages/sqlite.db diff --git a/.gitattributes b/.gitattributes index 7d86a321..bf37df4b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -643,6 +643,33 @@ buildscripts/wikibuilder/dumpHTML.inc -text buildscripts/wikibuilder/dumpHTML.php -text buildscripts/wikibuilder/external.png -text buildscripts/wikibuilder/main.css -text +demos/address-book/index.php -text +demos/address-book/protected/application.xml -text +demos/address-book/protected/pages/AddressProvider.php -text +demos/address-book/protected/pages/AddressRecord.php -text +demos/address-book/protected/pages/FlexApp.php -text +demos/address-book/protected/pages/FlexApp.tpl -text +demos/address-book/protected/pages/Home.page -text +demos/address-book/protected/pages/flex/.actionScriptProperties -text +demos/address-book/protected/pages/flex/.flexProperties -text +demos/address-book/protected/pages/flex/.project -text +demos/address-book/protected/pages/flex/.settings/org.eclipse.core.resources.prefs -text +demos/address-book/protected/pages/flex/bin/AC_OETags.js -text +demos/address-book/protected/pages/flex/bin/flex_address_book-debug.html -text +demos/address-book/protected/pages/flex/bin/flex_address_book.html -text +demos/address-book/protected/pages/flex/bin/flex_address_book.swf -text +demos/address-book/protected/pages/flex/bin/history.htm -text +demos/address-book/protected/pages/flex/bin/history.js -text +demos/address-book/protected/pages/flex/bin/history.swf -text +demos/address-book/protected/pages/flex/bin/playerProductInstall.swf -text +demos/address-book/protected/pages/flex/flex_address_book.mxml -text +demos/address-book/protected/pages/flex/html-template/AC_OETags.js -text +demos/address-book/protected/pages/flex/html-template/history.htm -text +demos/address-book/protected/pages/flex/html-template/history.js -text +demos/address-book/protected/pages/flex/html-template/history.swf -text +demos/address-book/protected/pages/flex/html-template/index.template.html -text +demos/address-book/protected/pages/flex/html-template/playerProductInstall.swf -text +demos/address-book/protected/pages/sqlite.db -text demos/blog/index.php -text demos/blog/protected/.htaccess -text demos/blog/protected/Common/BlogDataModule.php -text diff --git a/demos/address-book/index.php b/demos/address-book/index.php new file mode 100644 index 00000000..90149c02 --- /dev/null +++ b/demos/address-book/index.php @@ -0,0 +1,27 @@ +run(); + +?> \ No newline at end of file diff --git a/demos/address-book/protected/application.xml b/demos/address-book/protected/application.xml new file mode 100644 index 00000000..8e87be8c --- /dev/null +++ b/demos/address-book/protected/application.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/demos/address-book/protected/pages/AddressProvider.php b/demos/address-book/protected/pages/AddressProvider.php new file mode 100644 index 00000000..bbfedd1b --- /dev/null +++ b/demos/address-book/protected/pages/AddressProvider.php @@ -0,0 +1,52 @@ + + * @version $Id$ + * @since 3.1 + */ +class AddressProvider +{ + /** + * @return AddressRecord[] + * @soapmethod + */ + public function getAllAddress() + { + return AddressRecord::finder()->findAll(); + } + + + /** + * Update address if $data->id > 0, otherwise add new address. + * @param AddressRecord $data + * @return boolean + * @soapmethod + */ + public function saveAddress($data) + { + $finder = AddressRecord::finder(); + if($data->id > 0 && $address=$finder->findByPk($data->id)) + { + return $address->copyFrom($data)->save(); + } + else + { + $data->id = null; //nullify the id + return $data->save(); + } + } + + /** + * @param integer $id + * @return integer number of records deleted + * @soapmethod + */ + public function deleteAddress($id) + { + return AddressRecord::finder()->deleteByPk($id); + } +} + +?> \ No newline at end of file diff --git a/demos/address-book/protected/pages/AddressRecord.php b/demos/address-book/protected/pages/AddressRecord.php new file mode 100644 index 00000000..e61ed233 --- /dev/null +++ b/demos/address-book/protected/pages/AddressRecord.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/demos/address-book/protected/pages/FlexApp.php b/demos/address-book/protected/pages/FlexApp.php new file mode 100644 index 00000000..e7a5bf2a --- /dev/null +++ b/demos/address-book/protected/pages/FlexApp.php @@ -0,0 +1,114 @@ + + * @version $Id$ + * @since 3.1 + */ +class FlexApp extends TTemplateControl +{ + private $_parameters; + + /** + * FlashVar parameter name value pairs. + * + * NOTE: parameter names must be accessed in lowercase in Flex Applications! + * + * @return TAttributeCollection + */ + public function getParameters() + { + if($this->_parameters===null) + $this->_parameters = new TAttributeCollection(); + return $this->_parameters; + } + + public function getFlashVars() + { + $params = array(); + foreach($this->getParameters() as $name=>$value) + $params[] = $name.'='.$value; + return implode('&', $params); + } + + public function getWidth() + { + return $this->getViewState('Width', '450'); + } + + public function setWidth($value) + { + $this->setViewState('Width', $value, '450'); + } + + public function getHeight() + { + return $this->getViewState('Height', '300'); + } + + public function setHeight($value) + { + $this->setViewState('Height', $value, '300'); + } + + public function getBinDirectory() + { + return $this->getViewState('Bin'); + } + + public function setBinDirectory($value) + { + $this->setViewState('Bin', $value); + } + + public function getAppName() + { + return $this->getViewState('AppName'); + } + + public function setAppName($value) + { + $this->setViewState('AppName', $value); + } + + public function getQuality() + { + return $this->getViewState('Quality', 'high'); + } + + public function setQuality($value) + { + $this->setViewState('Quality', $value, 'high'); + } + + public function getBgcolor() + { + return $this->getViewState('bgcolor', '#ffffff'); + } + + public function setBgColor($value) + { + $this->setViewState('bgcolor', $value, '#ffffff'); + } + + public function getAlign() + { + return $this->getViewState('align', 'middle'); + } + + public function setAlign($value) + { + $this->setViewState('align', $value, 'middle'); + } + + public function getAllowScriptAccess() + { + return $this->getViewState('allowScriptAccess', 'sameDomain'); + } + + public function setAllowScriptAccess($value) + { + $this->setViewState('allowScriptAccess', $value, 'sameDomain'); + } +} + +?> \ No newline at end of file diff --git a/demos/address-book/protected/pages/FlexApp.tpl b/demos/address-book/protected/pages/FlexApp.tpl new file mode 100644 index 00000000..f3abe1cc --- /dev/null +++ b/demos/address-book/protected/pages/FlexApp.tpl @@ -0,0 +1,93 @@ + + + + diff --git a/demos/address-book/protected/pages/Home.page b/demos/address-book/protected/pages/Home.page new file mode 100644 index 00000000..801267e7 --- /dev/null +++ b/demos/address-book/protected/pages/Home.page @@ -0,0 +1,25 @@ + + + + Prado Address Book + + + + +
+ + AppName="flex_address_book" + Parameters.wsdl="<%= $this->Request->constructUrl('soap', 'address-book.wsdl') %>" + Width="100%" Height="300"/> +
+ + + \ No newline at end of file diff --git a/demos/address-book/protected/pages/flex/.actionScriptProperties b/demos/address-book/protected/pages/flex/.actionScriptProperties new file mode 100644 index 00000000..43e782c3 --- /dev/null +++ b/demos/address-book/protected/pages/flex/.actionScriptProperties @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/address-book/protected/pages/flex/.flexProperties b/demos/address-book/protected/pages/flex/.flexProperties new file mode 100644 index 00000000..9e63031c --- /dev/null +++ b/demos/address-book/protected/pages/flex/.flexProperties @@ -0,0 +1,2 @@ + + diff --git a/demos/address-book/protected/pages/flex/.project b/demos/address-book/protected/pages/flex/.project new file mode 100644 index 00000000..b9d6c02b --- /dev/null +++ b/demos/address-book/protected/pages/flex/.project @@ -0,0 +1,18 @@ + + + flex_address_book + + + + + + com.adobe.flexbuilder.project.flexbuilder + + + + + + com.adobe.flexbuilder.project.flexnature + com.adobe.flexbuilder.project.actionscriptnature + + diff --git a/demos/address-book/protected/pages/flex/.settings/org.eclipse.core.resources.prefs b/demos/address-book/protected/pages/flex/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..246a6e57 --- /dev/null +++ b/demos/address-book/protected/pages/flex/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +#Tue Jan 16 18:14:52 EST 2007 +eclipse.preferences.version=1 +encoding/=utf-8 diff --git a/demos/address-book/protected/pages/flex/bin/AC_OETags.js b/demos/address-book/protected/pages/flex/bin/AC_OETags.js new file mode 100644 index 00000000..157eb218 --- /dev/null +++ b/demos/address-book/protected/pages/flex/bin/AC_OETags.js @@ -0,0 +1,269 @@ +// Flash Player Version Detection - Rev 1.5 +// Detect Client Browser type +// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved. +var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; +var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; +var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false; + +function ControlVersion() +{ + var version; + var axo; + var e; + + // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry + + try { + // version will be set for 7.X or greater players + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); + version = axo.GetVariable("$version"); + } catch (e) { + } + + if (!version) + { + try { + // version will be set for 6.X players only + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); + + // installed player is some revision of 6.0 + // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29, + // so we have to be careful. + + // default to the first public version + version = "WIN 6,0,21,0"; + + // throws if AllowScripAccess does not exist (introduced in 6.0r47) + axo.AllowScriptAccess = "always"; + + // safe to call for 6.0r47 or greater + version = axo.GetVariable("$version"); + + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 4.X or 5.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); + version = axo.GetVariable("$version"); + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 3.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); + version = "WIN 3,0,18,0"; + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 2.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + version = "WIN 2,0,0,11"; + } catch (e) { + version = -1; + } + } + + return version; +} + +// JavaScript helper required to detect Flash Player PlugIn version information +function GetSwfVer(){ + // NS/Opera version >= 3 check for Flash plugin in plugin array + var flashVer = -1; + + if (navigator.plugins != null && navigator.plugins.length > 0) { + if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) { + var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; + var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; + var descArray = flashDescription.split(" "); + var tempArrayMajor = descArray[2].split("."); + var versionMajor = tempArrayMajor[0]; + var versionMinor = tempArrayMajor[1]; + if ( descArray[3] != "" ) { + tempArrayMinor = descArray[3].split("r"); + } else { + tempArrayMinor = descArray[4].split("r"); + } + var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0; + var flashVer = versionMajor + "." + versionMinor + "." + versionRevision; + } + } + // MSN/WebTV 2.6 supports Flash 4 + else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; + // WebTV 2.5 supports Flash 3 + else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; + // older WebTV supports Flash 2 + else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; + else if ( isIE && isWin && !isOpera ) { + flashVer = ControlVersion(); + } + return flashVer; +} + +// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available +function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) +{ + versionStr = GetSwfVer(); + if (versionStr == -1 ) { + return false; + } else if (versionStr != 0) { + if(isIE && isWin && !isOpera) { + // Given "WIN 2,0,0,11" + tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"] + tempString = tempArray[1]; // "2,0,0,11" + versionArray = tempString.split(","); // ['2', '0', '0', '11'] + } else { + versionArray = versionStr.split("."); + } + var versionMajor = versionArray[0]; + var versionMinor = versionArray[1]; + var versionRevision = versionArray[2]; + + // is the major.revision >= requested major.revision AND the minor version >= requested minor + if (versionMajor > parseFloat(reqMajorVer)) { + return true; + } else if (versionMajor == parseFloat(reqMajorVer)) { + if (versionMinor > parseFloat(reqMinorVer)) + return true; + else if (versionMinor == parseFloat(reqMinorVer)) { + if (versionRevision >= parseFloat(reqRevision)) + return true; + } + } + return false; + } +} + +function AC_AddExtension(src, ext) +{ + if (src.indexOf('?') != -1) + return src.replace(/\?/, ext+'?'); + else + return src + ext; +} + +function AC_Generateobj(objAttrs, params, embedAttrs) +{ + var str = ''; + if (isIE && isWin && !isOpera) + { + str += ' '; + str += '>'; + } else { + str += ' + + + + + + + + + + + + + + + + diff --git a/demos/address-book/protected/pages/flex/bin/flex_address_book.html b/demos/address-book/protected/pages/flex/bin/flex_address_book.html new file mode 100644 index 00000000..7802a896 --- /dev/null +++ b/demos/address-book/protected/pages/flex/bin/flex_address_book.html @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + diff --git a/demos/address-book/protected/pages/flex/bin/flex_address_book.swf b/demos/address-book/protected/pages/flex/bin/flex_address_book.swf new file mode 100644 index 00000000..9c3e63ef Binary files /dev/null and b/demos/address-book/protected/pages/flex/bin/flex_address_book.swf differ diff --git a/demos/address-book/protected/pages/flex/bin/history.htm b/demos/address-book/protected/pages/flex/bin/history.htm new file mode 100644 index 00000000..69e8c722 --- /dev/null +++ b/demos/address-book/protected/pages/flex/bin/history.htm @@ -0,0 +1,21 @@ + + + + + + + + + \ No newline at end of file diff --git a/demos/address-book/protected/pages/flex/bin/history.js b/demos/address-book/protected/pages/flex/bin/history.js new file mode 100644 index 00000000..b0537ef1 --- /dev/null +++ b/demos/address-book/protected/pages/flex/bin/history.js @@ -0,0 +1,48 @@ +// $Revision: 1.49 $ +// Vars +Vars = function(qStr) { + this.numVars = 0; + if(qStr != null) { + var nameValue, name; + var pairs = qStr.split('&'); + var pairLen = pairs.length; + for(var i = 0; i < pairLen; i++) { + var pair = pairs[i]; + if( (pair.indexOf('=')!= -1) && (pair.length > 3) ) { + var nameValue = pair.split('='); + var name = nameValue[0]; + var value = nameValue[1]; + if(this[name] == null && name.length > 0 && value.length > 0) { + this[name] = value; + this.numVars++; + } + } + } + } +} +Vars.prototype.toString = function(pre) { + var result = ''; + if(pre == null) { pre = ''; } + for(var i in this) { + if(this[i] != null && typeof(this[i]) != 'object' && typeof(this[i]) != 'function' && i != 'numVars') { + result += pre + i + '=' + this[i] + '&'; + } + } + if(result.length > 0) result = result.substr(0, result.length-1); + return result; +} +function getSearch(wRef) { + var searchStr = ''; + if(wRef.location.search.length > 1) { + searchStr = new String(wRef.location.search); + searchStr = searchStr.substring(1, searchStr.length); + } + return searchStr; +} +var lc_id = Math.floor(Math.random() * 100000).toString(16); +if (this != top) +{ + top.Vars = Vars; + top.getSearch = getSearch; + top.lc_id = lc_id; +} diff --git a/demos/address-book/protected/pages/flex/bin/history.swf b/demos/address-book/protected/pages/flex/bin/history.swf new file mode 100644 index 00000000..e6e03ecb Binary files /dev/null and b/demos/address-book/protected/pages/flex/bin/history.swf differ diff --git a/demos/address-book/protected/pages/flex/bin/playerProductInstall.swf b/demos/address-book/protected/pages/flex/bin/playerProductInstall.swf new file mode 100644 index 00000000..bdc34378 Binary files /dev/null and b/demos/address-book/protected/pages/flex/bin/playerProductInstall.swf differ diff --git a/demos/address-book/protected/pages/flex/flex_address_book.mxml b/demos/address-book/protected/pages/flex/flex_address_book.mxml new file mode 100644 index 00000000..d6db809a --- /dev/null +++ b/demos/address-book/protected/pages/flex/flex_address_book.mxml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/address-book/protected/pages/flex/html-template/AC_OETags.js b/demos/address-book/protected/pages/flex/html-template/AC_OETags.js new file mode 100644 index 00000000..157eb218 --- /dev/null +++ b/demos/address-book/protected/pages/flex/html-template/AC_OETags.js @@ -0,0 +1,269 @@ +// Flash Player Version Detection - Rev 1.5 +// Detect Client Browser type +// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved. +var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; +var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; +var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false; + +function ControlVersion() +{ + var version; + var axo; + var e; + + // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry + + try { + // version will be set for 7.X or greater players + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); + version = axo.GetVariable("$version"); + } catch (e) { + } + + if (!version) + { + try { + // version will be set for 6.X players only + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); + + // installed player is some revision of 6.0 + // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29, + // so we have to be careful. + + // default to the first public version + version = "WIN 6,0,21,0"; + + // throws if AllowScripAccess does not exist (introduced in 6.0r47) + axo.AllowScriptAccess = "always"; + + // safe to call for 6.0r47 or greater + version = axo.GetVariable("$version"); + + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 4.X or 5.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); + version = axo.GetVariable("$version"); + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 3.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); + version = "WIN 3,0,18,0"; + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 2.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + version = "WIN 2,0,0,11"; + } catch (e) { + version = -1; + } + } + + return version; +} + +// JavaScript helper required to detect Flash Player PlugIn version information +function GetSwfVer(){ + // NS/Opera version >= 3 check for Flash plugin in plugin array + var flashVer = -1; + + if (navigator.plugins != null && navigator.plugins.length > 0) { + if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) { + var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; + var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; + var descArray = flashDescription.split(" "); + var tempArrayMajor = descArray[2].split("."); + var versionMajor = tempArrayMajor[0]; + var versionMinor = tempArrayMajor[1]; + if ( descArray[3] != "" ) { + tempArrayMinor = descArray[3].split("r"); + } else { + tempArrayMinor = descArray[4].split("r"); + } + var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0; + var flashVer = versionMajor + "." + versionMinor + "." + versionRevision; + } + } + // MSN/WebTV 2.6 supports Flash 4 + else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; + // WebTV 2.5 supports Flash 3 + else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; + // older WebTV supports Flash 2 + else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; + else if ( isIE && isWin && !isOpera ) { + flashVer = ControlVersion(); + } + return flashVer; +} + +// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available +function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) +{ + versionStr = GetSwfVer(); + if (versionStr == -1 ) { + return false; + } else if (versionStr != 0) { + if(isIE && isWin && !isOpera) { + // Given "WIN 2,0,0,11" + tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"] + tempString = tempArray[1]; // "2,0,0,11" + versionArray = tempString.split(","); // ['2', '0', '0', '11'] + } else { + versionArray = versionStr.split("."); + } + var versionMajor = versionArray[0]; + var versionMinor = versionArray[1]; + var versionRevision = versionArray[2]; + + // is the major.revision >= requested major.revision AND the minor version >= requested minor + if (versionMajor > parseFloat(reqMajorVer)) { + return true; + } else if (versionMajor == parseFloat(reqMajorVer)) { + if (versionMinor > parseFloat(reqMinorVer)) + return true; + else if (versionMinor == parseFloat(reqMinorVer)) { + if (versionRevision >= parseFloat(reqRevision)) + return true; + } + } + return false; + } +} + +function AC_AddExtension(src, ext) +{ + if (src.indexOf('?') != -1) + return src.replace(/\?/, ext+'?'); + else + return src + ext; +} + +function AC_Generateobj(objAttrs, params, embedAttrs) +{ + var str = ''; + if (isIE && isWin && !isOpera) + { + str += ' '; + str += '>'; + } else { + str += ' + + + + + + + + \ No newline at end of file diff --git a/demos/address-book/protected/pages/flex/html-template/history.js b/demos/address-book/protected/pages/flex/html-template/history.js new file mode 100644 index 00000000..b0537ef1 --- /dev/null +++ b/demos/address-book/protected/pages/flex/html-template/history.js @@ -0,0 +1,48 @@ +// $Revision: 1.49 $ +// Vars +Vars = function(qStr) { + this.numVars = 0; + if(qStr != null) { + var nameValue, name; + var pairs = qStr.split('&'); + var pairLen = pairs.length; + for(var i = 0; i < pairLen; i++) { + var pair = pairs[i]; + if( (pair.indexOf('=')!= -1) && (pair.length > 3) ) { + var nameValue = pair.split('='); + var name = nameValue[0]; + var value = nameValue[1]; + if(this[name] == null && name.length > 0 && value.length > 0) { + this[name] = value; + this.numVars++; + } + } + } + } +} +Vars.prototype.toString = function(pre) { + var result = ''; + if(pre == null) { pre = ''; } + for(var i in this) { + if(this[i] != null && typeof(this[i]) != 'object' && typeof(this[i]) != 'function' && i != 'numVars') { + result += pre + i + '=' + this[i] + '&'; + } + } + if(result.length > 0) result = result.substr(0, result.length-1); + return result; +} +function getSearch(wRef) { + var searchStr = ''; + if(wRef.location.search.length > 1) { + searchStr = new String(wRef.location.search); + searchStr = searchStr.substring(1, searchStr.length); + } + return searchStr; +} +var lc_id = Math.floor(Math.random() * 100000).toString(16); +if (this != top) +{ + top.Vars = Vars; + top.getSearch = getSearch; + top.lc_id = lc_id; +} diff --git a/demos/address-book/protected/pages/flex/html-template/history.swf b/demos/address-book/protected/pages/flex/html-template/history.swf new file mode 100644 index 00000000..e6e03ecb Binary files /dev/null and b/demos/address-book/protected/pages/flex/html-template/history.swf differ diff --git a/demos/address-book/protected/pages/flex/html-template/index.template.html b/demos/address-book/protected/pages/flex/html-template/index.template.html new file mode 100644 index 00000000..4aa4ffbc --- /dev/null +++ b/demos/address-book/protected/pages/flex/html-template/index.template.html @@ -0,0 +1,107 @@ + + + + +${title} + + + + + + + + + + + + diff --git a/demos/address-book/protected/pages/flex/html-template/playerProductInstall.swf b/demos/address-book/protected/pages/flex/html-template/playerProductInstall.swf new file mode 100644 index 00000000..bdc34378 Binary files /dev/null and b/demos/address-book/protected/pages/flex/html-template/playerProductInstall.swf differ diff --git a/demos/address-book/protected/pages/sqlite.db b/demos/address-book/protected/pages/sqlite.db new file mode 100644 index 00000000..997be3ed Binary files /dev/null and b/demos/address-book/protected/pages/sqlite.db differ diff --git a/framework/prado-cli.php b/framework/prado-cli.php index 4c3e7c61..0cd33a74 100755 --- a/framework/prado-cli.php +++ b/framework/prado-cli.php @@ -204,7 +204,11 @@ EOD; return Prado::getApplication(); } else + { + echo '+'.str_repeat('-',77)."+\n"; echo '** Unable to load Prado application in directory "'.$directory."\".\n"; + echo '+'.str_repeat('-',77)."+\n"; + } return false; } @@ -684,13 +688,12 @@ if(class_exists('PHP_Shell_Commands', false)) $args = explode(" ", trim($l)); if(count($args) > 2) { + $app_dir = '.'; + if(Prado::getApplication()!==null) + $app_dir = dirname(Prado::getApplication()->getBasePath()); + $args = array($args[0],$args[1], $args[2],$app_dir); if(count($args)>3) - { - $app_dir = '.'; - if(Prado::getApplication()!==null) - $app_dir = dirname(Prado::getApplication()->getBasePath()); $args = array($args[0],$args[1], $args[2],$app_dir,'soap'); - } $cmd = new PradoCommandLineActiveRecordGen; $cmd->performAction($args); } -- cgit v1.2.3