/** * Gets the content of necessary widget's application. * @param sModule - module(widget) name. * @param sApp - application name in the widget. * @param aParamValues - an associative array of parameters to be passed into the Flash object. * @param bInline - whether you want to have it with the full page code(for opening in a new window) * or only DIV with flash object (for embedding into the existing page). */ function getApplicationContent($sModule, $sApp, $aParamValues = array(), $bInline = false, $bEmbedCode = false, $sHtmlId = "") { global $sGlobalUrl; global $sHomeUrl; global $sRayHomeDir; global $sModulesUrl; global $sModulesPath; global $sFlashPlayerVersion; $sModule = isset($sModule) ? $sModule : process_db_input($_REQUEST['module']); $sApp = isset($sApp) ? $sApp : process_db_input($_REQUEST['app']); $sModuleStatus = getSettingValue($sModule, "status", "main"); if ($sModuleStatus == WIDGET_STATUS_NOT_INSTALLED || $sModuleStatus == WIDGET_STATUS_DISABLED) { return ""; } $aConfig = getFlashConfig($sModule, $sApp, $aParamValues); $aModules = $aConfig['modules']; if (!isset($bInline)) { $bInline = $aModules[$sApp]['inline']; } //--- Parameters for container's div ---// $sDivId = !empty($aModules[$sApp]['div']['id']) ? $aModules[$sApp]['div']['id'] : ''; if (!empty($sHtmlId)) { $sDivId = $sHtmlId; } if (empty($sDivId)) { $sDivId = $sModule . '_' . $sApp; } $sInnerDivId = $sDivId . "_" . time(); if (empty($sHtmlId)) { $sHtmlId = "ray_" . $sModule . "_" . $sApp . "_object"; } $sDivName = !empty($aModules[$sApp]['div']['name']) ? ' name="' . $aModules[$sApp]['div']['name'] . '"' : ''; if (!empty($aModules[$sApp]['div']['style'])) { $sDivStyle = ' style="'; foreach ($aModules[$sApp]['div']['style'] as $sKey => $sValue) { $sDivStyle .= $sKey . ':' . $sValue . ';'; } $sDivStyle .= '"'; } else { $sDivStyle = ''; } //--- Parameters for SWF object and reloading ---// $aParametersReload = array(); if (!isset($_GET["module"])) { $aParametersReload[] = "module=" . $sModule; } if (!isset($_GET["app"])) { $aParametersReload[] = "app=" . $sApp; } ob_start(); if (!$bInline) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title><?php echo $aModules[$sApp]['caption']; ?> </title> <meta http-equiv=Content-Type content="text/html;charset=UTF-8" /> </head> <body style="margin:0; padding:0;" <?php echo $aModules[$sApp]['hResizable'] || $aModules[$sApp]['vResizable'] ? 'onLoad="resizeWindow()" onResize="if ( window.resizeWindow ) resizeWindow()"' : ''; ?> > <?php echo getRayIntegrationJS(); } if (!$bEmbedCode) { foreach ($aModules[$sApp]['js'] as $sJSUrl) { echo "\t\t<script src=\"" . $sJSUrl . "\" type=\"text/javascript\" language=\"javascript\"></script>\n"; } } if (!$bEmbedCode && ($aModules[$sApp]['hResizable'] || $aModules[$sApp]['vResizable'])) { $iMinWidth = (int) $aModules[$sApp]['minSize']['width']; $iMinHeight = (int) $aModules[$sApp]['minSize']['height']; ?> <script type="text/javascript" language="javascript"> function resizeWindow() { var frameWidth = 0; var frameHeight = 0; if (document.documentElement) { if(document.documentElement.clientHeight) { frameWidth = document.documentElement.clientWidth; frameHeight = document.documentElement.clientHeight; } } else if(window.innerWidth) { frameWidth = window.innerWidth; frameHeight = window.innerHeight; } else if (document.body) { frameWidth = document.body.offsetWidth; frameHeight = document.body.offsetHeight; } var sAppName = 'ray_flash_<?php echo $sModule; ?> _<?php echo $sApp; ?> _'; var o = document.getElementById(sAppName + 'object'); var e = document.getElementById(sAppName + 'embed'); frameWidth = (frameWidth < <?php echo $iMinWidth; ?> ) ? <?php echo $iMinWidth; ?> : frameWidth; frameHeight = (frameHeight < <?php echo $iMinHeight; ?> ) ? <?php echo $iMinHeight; ?> : frameHeight; <?php $sRet = $aModules[$sApp]['hResizable'] ? "o.width = frameWidth;\n" : ""; $sRet .= $aModules[$sApp]['vResizable'] ? "o.height = frameHeight;\n" : ""; $sRet .= "if(e != null){"; $sRet .= $aModules[$sApp]['hResizable'] ? "e.width = frameWidth;\n" : ""; $sRet .= $aModules[$sApp]['vResizable'] ? "e.height = frameHeight;\n" : ""; $sRet .= "}"; echo $sRet; ?> } </script> <?php } if (!$bEmbedCode && $aModules[$sApp]['reloadable']) { if (!$bInline) { echo getRedirectForm($sModule, $sApp, array_merge($_GET, $_POST)); } ?> <script type="text/javascript" language="javascript"> function reload() { <?php $sGet = $_SERVER['QUERY_STRING']; $sExtraGet = implode("&", $aParametersReload); if (!empty($sGet) && !empty($sExtraGet)) { $sGet .= "&"; } echo !$bInline ? "redirect();" : "location.href='" . $_SERVER['PHP_SELF'] . "?" . $sGet . $sExtraGet . "';"; ?> } </script> <?php } ?> <div id="<?php echo $sDivId; ?> " <?php echo $sDivName . $sDivStyle; ?> ><div id="<?php echo $sInnerDivId; ?> "></div></div> <script type="text/javascript" language="javascript"> <?php foreach ($aConfig['flashVars'] as $sKey => $sValue) { if (!isset($_GET[$sKey]) && $sKey != 'url') { $aParametersReload[] = $sKey . "=" . (isset($aConfig['flashVars'][$sKey]) ? $aConfig['flashVars'][$sKey] : process_db_input($_REQUEST[$sKey])); } } echo phpArrayToJS($aConfig['flashVars'], "flashvars"); echo phpArrayToJS($aConfig['params'], "params"); ?> var attributes = { id: "ray_flash_<?php echo $sModule; ?> _<?php echo $sApp; ?> _object", name: "ray_flash_<?php echo $sModule; ?> _<?php echo $sApp; ?> _embed", style: "display:block;" }; swfobject.embedSWF("<?php echo $aConfig['holder']; ?> ", "<?php echo $sInnerDivId; ?> ", "<?php echo $aConfig['width']; ?> ", "<?php echo $aConfig['height']; ?> ", "<?php echo $sFlashPlayerVersion; ?> ", "<?php echo $sGlobalUrl; ?> app/expressInstall.swf", flashvars, params, attributes); </script> <?php if (!$bInline) { ?> </body> </html> <?php } $sWidgetContent = ob_get_contents(); ob_end_clean(); return $sWidgetContent; }
/** * Gets the content of necessary widget's application. * @param sModule - module(widget) name. * @param sApp - application name in the widget. * @param aParamValues - an associative array of parameters to be passed into the Flash object. * @param bInline - whether you want to have it with the full page code(for opening in a new window) * or only DIV with flash object (for embedding into the existing page). */ function getApplicationContent($sModule, $sApp, $aParamValues = array(), $bInline = false, $bEmbedCode = false) { global $sGlobalUrl; global $sHomeUrl; global $sRayHomeDir; global $sModulesUrl; global $sModulesPath; $sModule = isset($sModule) ? $sModule : $_REQUEST['module']; $sApp = isset($sApp) ? $sApp : $_REQUEST['app']; if (isset($aModules)) { unset($aModules); } require $sModulesPath . $sModule . "/inc/header.inc.php"; require $sModulesPath . $sModule . "/inc/constants.inc.php"; //--- Print container ---// $sRayAppBaseDir = $sModulesUrl . $sModule . "/"; $sRayHolderBaseDir = $sModulesUrl . "global/"; if (!isset($bInline)) { $bInline = $aModules[$sApp]['inline']; } $iWidth = $aModules[$sApp]['layout']['width']; $iHeight = $aModules[$sApp]['layout']['height']; //--- Parameters for container's div ---// $sDivId = !empty($aModules[$sApp]['div']['id']) ? ' id="' . $aModules[$sApp]['div']['id'] . '"' : ''; $sDivName = !empty($aModules[$sApp]['div']['name']) ? ' name="' . $aModules[$sApp]['div']['name'] . '"' : ''; if (count($aModules[$sApp]['div']['style'])) { $sDivStyle = ' style="'; foreach ($aModules[$sApp]['div']['style'] as $sKey => $sValue) { $sDivStyle .= $sKey . ':' . $sValue . ';'; } $sDivStyle .= '"'; } else { $sDivStyle = ''; } //--- Parameters for SWF object and reloading ---// $aParametersReload = array(); if (!isset($_GET["module"])) { $aParametersReload[] = "module=" . $sModule; } if (!isset($_GET["app"])) { $aParametersReload[] = "app=" . $sApp; } $sParameters = "module=" . $sModule . "&app=" . $sApp; foreach ($aModules[$sApp]['parameters'] as $sParameter) { $sParameters .= "&" . $sParameter . "=" . (isset($aParamValues[$sParameter]) ? $aParamValues[$sParameter] : $_REQUEST[$sParameter]); if (!isset($_GET[$sParameter])) { $aParametersReload[] = $sParameter . "=" . (isset($aParamValues[$sParameter]) ? $aParamValues[$sParameter] : $_REQUEST[$sParameter]); } } $sParameters .= "&url=" . $sHomeUrl . "XML.php"; $sHolder = $aInfo['mode'] == "paid" ? "holder.swf" : "holder_free.swf"; ob_start(); if (!$bInline) { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title><?php echo $aModules[$sApp]['caption']; ?> </title> <meta http-equiv=Content-Type content="text/html;charset=UTF-8" /> </head> <body style="margin:0; padding:0;" <?php echo $aModules[$sApp]['hResizable'] || $aModules[$sApp]['vResizable'] ? 'onLoad="resizeWindow()" onResize="resizeWindow()"' : ''; ?> > <script type="text/javascript" language="javascript"> var sRayUrl = '<?php echo $sHomeUrl; ?> '; </script> <script src="<?php echo $sGlobalUrl; ?> js/integration.js" type="text/javascript" language="javascript"></script> <?php } if (!$bEmbedCode) { foreach ($aModules[$sApp]['js'] as $sJSUrl) { echo "\t\t<script src=\"" . $sJSUrl . "\" type=\"text/javascript\" language=\"javascript\"></script>\n"; } } if (!$bEmbedCode && ($aModules[$sApp]['hResizable'] || $aModules[$sApp]['vResizable'])) { $iMinWidth = (int) $aModules[$sApp]['minSize']['width']; $iMinHeight = (int) $aModules[$sApp]['minSize']['height']; ?> <script type="text/javascript" language="javascript"> <!-- function resizeWindow() { var frameWidth = 0; var frameHeight = 0; if(window.innerWidth) { frameWidth = window.innerWidth; frameHeight = window.innerHeight; } else if (document.documentElement) { if(document.documentElement.clientHeight) { frameWidth = document.documentElement.clientWidth; frameHeight = document.documentElement.clientHeight; } } else if (document.body) { frameWidth = document.body.offsetWidth; frameHeight = document.body.offsetHeight; } var o = document.getElementById('ray_<?php echo $sApp; ?> _object'); var e = document.getElementById('ray_<?php echo $sApp; ?> _embed'); frameWidth = (frameWidth < <?php echo $iMinWidth; ?> ) ? <?php echo $iMinWidth; ?> : frameWidth; frameHeight = (frameHeight < <?php echo $iMinHeight; ?> ) ? <?php echo $iMinHeight; ?> : frameHeight; <?php $sRet = $aModules[$sApp]['hResizable'] ? "o.width = frameWidth;\n" : ""; $sRet .= $aModules[$sApp]['vResizable'] ? "o.height = frameHeight;\n" : ""; $sRet .= "if(e != null){"; $sRet .= $aModules[$sApp]['hResizable'] ? "e.width = frameWidth;\n" : ""; $sRet .= $aModules[$sApp]['vResizable'] ? "e.height = frameHeight;\n" : ""; $sRet .= "}"; echo $sRet; ?> } --> </script> <?php } if (!$bEmbedCode && $aModules[$sApp]['reloadable']) { if (!$bInline) { echo getRedirectForm($sModule, $sApp, array_merge($_GET, $_POST)); } ?> <script type="text/javascript" language="javascript"> <!-- function reload() { <?php $sGet = $_SERVER['QUERY_STRING']; $sExtraGet = implode("&", $aParametersReload); if (!empty($sGet) && !empty($sExtraGet)) { $sGet .= "&"; } echo !$bInline ? "redirect();" : "location.href='" . $_SERVER['PHP_SELF'] . "?" . $sGet . $sExtraGet . "';"; ?> } --> </script> <?php } ?> <div<?php echo $sDivId . $sDivName . $sDivStyle; ?> ><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" <?php echo 'width="' . $iWidth . '" height="' . $iHeight . '"'; ?> id="ray_<?php echo $sApp; ?> _object" align="middle"><param name="allowScriptAccess" value="always" /><param name="movie" value="<?php echo $sRayHolderBaseDir . "app/" . $sHolder; ?> " /><param name="quality" value="high" /><param name="allowFullScreen" value="true" /><param name="base" value="<?php echo $sRayAppBaseDir; ?> " /><param name="FlashVars" value="<?php echo $sParameters; ?> " /><embed id="ray_<?php echo $sApp; ?> _embed" name="ray_<?php echo $sApp; ?> " src="<?php echo $sRayHolderBaseDir . "app/" . $sHolder; ?> " quality="high" allowFullScreen="true" <?php echo 'width="' . $iWidth . '" height="' . $iHeight . '"'; ?> align="middle" allowScriptAccess="always" base="<?php echo $sRayAppBaseDir; ?> " FlashVars="<?php echo $sParameters; ?> " pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></div> <?php /* if(!$bEmbedCode) { ?> <script type="text/javascript" language="javascript"> <!-- theObjects = document.getElementsByTagName("object"); for (var i = 0; i < theObjects.length; i++) theObjects[i].outerHTML = theObjects[i].outerHTML; --> </script> <? }*/ if (!$bInline) { ?> </body> </html> <?php } $sWidgetContent = ob_get_contents(); ob_end_clean(); return $sWidgetContent; }