diff options
Diffstat (limited to 'framework/web/widgets/CFlexWidget.php')
| -rw-r--r-- | framework/web/widgets/CFlexWidget.php | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/framework/web/widgets/CFlexWidget.php b/framework/web/widgets/CFlexWidget.php new file mode 100644 index 0000000..f6ff982 --- /dev/null +++ b/framework/web/widgets/CFlexWidget.php @@ -0,0 +1,122 @@ +<?php +/** + * CFlexWidget class file. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @link http://www.yiiframework.com/ + * @copyright Copyright © 2008-2011 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + +/** + * CFlexWidget embeds a Flex 3.x application into a page. + * + * To use CFlexWidget, set {@link name} to be the Flex application name + * (without the .swf suffix), and set {@link baseUrl} to be URL (without the ending slash) + * of the directory containing the SWF file of the Flex application. + * + * @property string $flashVarsAsString The flash parameter string. + * + * @author Qiang Xue <qiang.xue@gmail.com> + * @version $Id: CFlexWidget.php 3515 2011-12-28 12:29:24Z mdomba $ + * @package system.web.widgets + * @since 1.0 + */ +class CFlexWidget extends CWidget +{ + /** + * @var string name of the Flex application. + * This should be the SWF file name without the ".swf" suffix. + */ + public $name; + /** + * @var string the base URL of the Flex application. + * This refers to the URL of the directory containing the SWF file. + */ + public $baseUrl; + /** + * @var string width of the application region. Defaults to 450. + */ + public $width='100%'; + /** + * @var string height of the application region. Defaults to 300. + */ + public $height='100%'; + /** + * @var string quality of the animation. Defaults to 'high'. + */ + public $quality='high'; + /** + * @var string background color of the application region. Defaults to '#FFFFFF', meaning white. + */ + public $bgColor='#FFFFFF'; + /** + * @var string align of the application region. Defaults to 'middle'. + */ + public $align='middle'; + /** + * @var string the access method of the script. Defaults to 'sameDomain'. + */ + public $allowScriptAccess='sameDomain'; + /** + * @var boolean whether to allow running the Flash in full screen mode. Defaults to false. + * @since 1.1.1 + */ + public $allowFullScreen=false; + /** + * @var string the HTML content to be displayed if Flash player is not installed. + */ + public $altHtmlContent; + /** + * @var boolean whether history should be enabled. Defaults to true. + */ + public $enableHistory=true; + /** + * @var array parameters to be passed to the Flex application. + */ + public $flashVars=array(); + + /** + * Renders the widget. + */ + public function run() + { + if(empty($this->name)) + throw new CException(Yii::t('yii','CFlexWidget.name cannot be empty.')); + if(empty($this->baseUrl)) + throw new CException(Yii::t('yii','CFlexWidget.baseUrl cannot be empty.')); + if($this->altHtmlContent===null) + $this->altHtmlContent=Yii::t('yii','This content requires the <a href="http://www.adobe.com/go/getflash/">Adobe Flash Player</a>.'); + + $this->registerClientScript(); + + $this->render('flexWidget'); + } + + /** + * Registers the needed CSS and JavaScript. + */ + public function registerClientScript() + { + $cs=Yii::app()->getClientScript(); + $cs->registerScriptFile($this->baseUrl.'/AC_OETags.js'); + + if($this->enableHistory) + { + $cs->registerCssFile($this->baseUrl.'/history/history.css'); + $cs->registerScriptFile($this->baseUrl.'/history/history.js'); + } + } + + /** + * Generates the properly quoted flash parameter string. + * @return string the flash parameter string. + */ + public function getFlashVarsAsString() + { + $params=array(); + foreach($this->flashVars as $k=>$v) + $params[]=urlencode($k).'='.urlencode($v); + return CJavaScript::quote(implode('&',$params)); + } +}
\ No newline at end of file |
