Exemple #1
0
/**
 * 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;
}