function test_MAX_commonGetDeliveryUrl_Includes_Nonstandard_Secure_Port_Number()
 {
     $_SERVER['SERVER_PORT'] = 4430;
     $GLOBALS['_MAX']['SSL_REQUEST'] = true;
     $GLOBALS['_MAX']['CONF']['openads']['sslPort'] = 4430;
     $url = MAX_commonGetDeliveryUrl('test.html');
     $this->assertEqual($url, 'https://secure.maxstore.net:4430/www/delivery/test.html', "A non-standard port number should be explicitly provided in delivery URLs. %s");
     unset($_SERVER['HTTPS']);
 }
示例#2
0
/**
 * This function outputs the code to include the FlashObject code as an external
 * JavaScript file
 *
 */
function MAX_flashGetFlashObjectExternal()
{
    $conf = $GLOBALS['_MAX']['CONF'];
    if (substr($conf['file']['flash'], 0, 4) == 'http') {
        $url = $conf['file']['flash'];
    } else {
        $url = MAX_commonGetDeliveryUrl($conf['file']['flash']);
    }
    return "<script type='text/javascript' src='{$url}'></script>";
}
示例#3
0
/**
 * This function builds the JavaScript to track variables for a tracker-impression via JavaScript
 *
 * @todo Ask Matteo what the $trackerJsCode is for
 *
 * @param int $trackerid                The ID of the tracker
 * @param array $conversionInfo         An array of the information from the tracker impression
 * @param unknown_type $trackerJsCode   Unknown
 *
 * @return string   The JavaScript to pick up the variables from the page, and pass them in to the
 *                  conversionvars script
 */
function MAX_trackerbuildJSVariablesScript($trackerid, $conversionInfo, $trackerJsCode = null)
{
    $conf = $GLOBALS['_MAX']['CONF'];
    $buffer = '';
    $url = MAX_commonGetDeliveryUrl($conf['file']['conversionvars']);
    $tracker = MAX_cacheGetTracker($trackerid);
    $variables = MAX_cacheGetTrackerVariables($trackerid);
    $variableQuerystring = '';
    if (empty($trackerJsCode)) {
        $trackerJsCode = md5(uniqid('', true));
    } else {
        // Appended tracker - set method to default
        $tracker['variablemethod'] = 'default';
    }
    if (!empty($variables)) {
        if ($tracker['variablemethod'] == 'dom') {
            $buffer .= "\n    function MAX_extractTextDom(o)\n    {\n        var txt = '';\n\n        if (o.nodeType == 3) {\n            txt = o.data;\n        } else {\n            for (var i = 0; i < o.childNodes.length; i++) {\n                txt += MAX_extractTextDom(o.childNodes[i]);\n            }\n        }\n\n        return txt;\n    }\n\n    function MAX_TrackVarDom(id, v)\n    {\n        if (max_trv[id][v]) { return; }\n        var o = document.getElementById(v);\n        if (o) {\n            max_trv[id][v] = escape(o.tagName == 'INPUT' ? o.value : MAX_extractTextDom(o));\n        }\n    }";
            $funcName = 'MAX_TrackVarDom';
        } elseif ($tracker['variablemethod'] == 'default') {
            $buffer .= "\n    function MAX_TrackVarDefault(id, v)\n    {\n        if (max_trv[id][v]) { return; }\n        if (typeof(window[v]) == undefined) { return; }\n        max_trv[id][v] = window[v];\n    }";
            $funcName = 'MAX_TrackVarDefault';
        } else {
            $buffer .= "\n    function MAX_TrackVarJs(id, v, c)\n    {\n        if (max_trv[id][v]) { return; }\n        if (typeof(window[v]) == undefined) { return; }\n        if (typeof(c) != 'undefined') {\n            eval(c);\n        }\n        max_trv[id][v] = window[v];\n    }";
            $funcName = 'MAX_TrackVarJs';
        }
        $buffer .= "\n    if (!max_trv) { var max_trv = new Array(); }\n    if (!max_trv['{$trackerJsCode}']) { max_trv['{$trackerJsCode}'] = new Array(); }";
        foreach ($variables as $key => $variable) {
            $variableQuerystring .= "&{$variable['name']}=\"+max_trv['{$trackerJsCode}']['{$variable['name']}']+\"";
            if ($tracker['variablemethod'] == 'custom') {
                $buffer .= "\n    {$funcName}('{$trackerJsCode}', '{$variable['name']}', '" . addcslashes($variable['variablecode'], "'") . "');";
            } else {
                $buffer .= "\n    {$funcName}('{$trackerJsCode}', '{$variable['name']}');";
            }
        }
        if (!empty($variableQuerystring)) {
            $buffer .= "\n    document.write (\"<\" + \"script language='JavaScript' type='text/javascript' src='\");\n    document.write (\"{$url}?trackerid={$trackerid}&server_conv_id={$conversionInfo['server_conv_id']}&server_raw_ip={$conversionInfo['server_raw_ip']}{$variableQuerystring}'\");";
            $buffer .= "\n\tdocument.write (\"><\\/scr\"+\"ipt>\");";
        }
    }
    if (!empty($tracker['appendcode'])) {
        // Add the correct "inherit" parameter if a OpenX trackercode was found
        $tracker['appendcode'] = preg_replace('/("\\?trackerid=\\d+&amp;inherit)=1/', '$1=' . $trackerJsCode, $tracker['appendcode']);
        $jscode = MAX_javascriptToHTML($tracker['appendcode'], "MAX_{$trackerid}_appendcode");
        // Replace template style variables
        $jscode = preg_replace("/\\{m3_trackervariable:(.+?)\\}/", "\"+max_trv['{$trackerJsCode}']['\$1']+\"", $jscode);
        $buffer .= "\n" . preg_replace('/^/m', "\t", $jscode) . "\n";
    }
    if (empty($buffer)) {
        $buffer = "document.write(\"\");";
    }
    return $buffer;
}
示例#4
0
function _adRenderBuildClickUrl($aBanner, $zoneId = 0, $source = '', $ct0 = '', $logClick = true, $overrideDest = false)
{
    $conf = $GLOBALS['_MAX']['CONF'];
    $clickUrl = '';
    if (is_string($logClick)) {
        $clickUrl = $logClick;
    } elseif (!empty($aBanner['url']) || $overrideDest) {
        $clickUrl = MAX_commonGetDeliveryUrl($conf['file']['click']) . '?' . $conf['var']['params'] . '=' . _adRenderBuildParams($aBanner, $zoneId, $source, $ct0, $logClick, true);
    }
    return $clickUrl;
}
function prepareTrackingParams(&$aOutputParams, $aBanner, $zoneId, $source, $loc, $ct0, $logClick, $referer)
{
    $conf = $GLOBALS['_MAX']['CONF'];
    $aOutputParams['impressionUrl'] = _adRenderBuildLogURL($aBanner, $zoneId, $source, $loc, $referer, '&');
    if ($aOutputParams['format'] == 'vast') {
        $trackingUrl = MAX_commonGetDeliveryUrl($conf['file']['frontcontroller']) . "?script=deliveryLog:oxLogVast:logImpressionVast&banner_id={$aBanner['bannerid']}&zone_id={$zoneId}";
        if (!empty($source)) {
            $trackingUrl .= "&source={$source}";
        }
        $aOutputParams['trackUrlStart'] = $trackingUrl . '&vast_event=start';
        $aOutputParams['trackUrlMidPoint'] = $trackingUrl . '&vast_event=midpoint';
        $aOutputParams['trackUrlFirstQuartile'] = $trackingUrl . '&vast_event=firstquartile';
        $aOutputParams['trackUrlThirdQuartile'] = $trackingUrl . '&vast_event=thirdquartile';
        $aOutputParams['trackUrlComplete'] = $trackingUrl . '&vast_event=complete';
        $aOutputParams['trackUrlMute'] = $trackingUrl . '&vast_event=mute';
        $aOutputParams['trackUrlPause'] = $trackingUrl . '&vast_event=pause';
        $aOutputParams['trackReplay'] = $trackingUrl . '&vast_event=replay';
        $aOutputParams['trackUrlFullscreen'] = $trackingUrl . '&vast_event=fullscreen';
        $aOutputParams['trackUrlStop'] = $trackingUrl . '&vast_event=stop';
        $aOutputParams['trackUrlUnmute'] = $trackingUrl . '&vast_event=unmute';
        $aOutputParams['trackUrlResume'] = $trackingUrl . '&vast_event=resume';
        $aOutputParams['vastVideoClickThroughUrl'] = _adRenderBuildVideoClickThroughUrl($aBanner, $zoneId, $source, $ct0);
    }
    $aOutputParams['clickUrl'] = _adRenderBuildClickUrl($aBanner, $zoneId, $source, $ct0, $logClick);
}
示例#6
0
    $resizable = 0;
}
if (!isset($scrollbars)) {
    $scrollbars = 0;
}
// Get the banner
$row = MAX_adSelect($what, $campaignid, $target, $source, $withtext, $charset, $context, true, $ct0, $GLOBALS['loc'], $GLOBALS['referer']);
$row['zoneid'] = 0;
if (isset($zoneid)) {
    $row['zoneid'] = $zoneid;
}
// Do not pop a window if not banner was found..
if (!$row['bannerid']) {
    exit;
}
$contenturl = MAX_commonGetDeliveryUrl($conf['file']['content']) . "?bannerid={$row['bannerid']}&zoneid={$row['zoneid']}&target={$target}&withtext={$withtext}&source=" . urlencode($source) . "&timeout={$timeout}&ct0={$ct0}";
/*-------------------------------------------------------*/
/* Build the code needed to pop up a window              */
/*-------------------------------------------------------*/
MAX_commonSendContentTypeHeader("application/x-javascript");
echo "\nvar MAX_errorhandler = null;\n\nif (window.captureEvents && Event.ERROR)\n  window.captureEvents (Event.ERROR);\n\n// Error handler to prevent 'Access denied' errors\nfunction MAX_onerror(e) {\n  window.onerror = MAX_errorhandler;\n  return true;\n}\n\nfunction MAX_{$row['bannerid']}_pop() {\n  MAX_errorhandler = window.onerror;\n  window.onerror = MAX_onerror;\n\n  // Determine the size of the window\n  var X={$row['width']};\n  var Y={$row['height']};\n\n  // If Netscape 3 is used add 20 to the size because it doesn't support a margin of 0\n  if(!window.resizeTo) {\n    X+=20;\n    Y+=20;\n  }\n\n  // Open the window if needed\n  window.MAX_{$row['bannerid']}=window.open('', 'MAX_{$row['bannerid']}','height='+Y+',width='+X+',toolbar=" . ($toolbars == 1 ? 'yes' : 'no') . ",location=" . ($location == 1 ? 'yes' : 'no') . ",menubar=" . ($menubar == 1 ? 'yes' : 'no') . ",status=" . ($status == 1 ? 'yes' : 'no') . ",resizable=" . ($resizable == 1 ? 'yes' : 'no') . ",scrollbars=" . ($scrollbars == 1 ? 'yes' : 'no') . "');\n\n  if (window.MAX_{$row['bannerid']}.document.title == '' || window.MAX_{$row['bannerid']}.location == 'about:blank' || window.MAX_{$row['bannerid']}.location == '') {\n    var browser = navigator.userAgent.toLowerCase();\n\n    // Resize window to correct size on IE < 6, determine outer width and height - IE 5.1x on MAC should't resize!\n    if (window.resizeTo && browser.match(/msie [345]/) && browser.indexOf('msie 5.1') == -1 && browser.indexOf('mac') == -1) {\n      if(MAX_{$row['bannerid']}.innerHeight) {\n        var diffY = MAX_{$row['bannerid']}.outerHeight-Y;\n        var diffX = MAX_{$row['bannerid']}.outerWidth-X;\n        var outerX = X+diffX;\n        var outerY = Y+diffY;\n      } else {\n        MAX_{$row['bannerid']}.resizeTo(X, Y);\n        var time = new Date().getTime();\n        while (!MAX_{$row['bannerid']}.document.body) {\n          if (new Date().getTime() - time > 250) {\n            MAX_{$row['bannerid']}.close();\n            return false;\n          }\n        }\n        var diffY = MAX_{$row['bannerid']}.document.body.clientHeight-Y;\n        var diffX = MAX_{$row['bannerid']}.document.body.clientWidth-X;\n        var outerX = X-diffX;\n        var outerY = Y-diffY;\n      }\n      MAX_{$row['bannerid']}.resizeTo(outerX, outerY);\n    }";
if (!empty($left) || !empty($top)) {
    if (!isset($left) || empty($left)) {
        $left = 0;
    }
    if (!isset($top) || empty($top)) {
        $top = 0;
    }
    echo "\n    if (window.moveTo) {";
    if ($left == 'center') {
        echo "\n      var posX = parseInt((screen.width/2)-(outerX/2));";
示例#7
0
if (isset($rewrite) && $rewrite == 1) {
    $banner['html'] = preg_replace('#target\\s*=\\s*([\'"])_parent\\1#i', "target='_top'", $banner['html']);
    $banner['html'] = preg_replace('#target\\s*=\\s*([\'"])_self\\1#i', "target='_parent'", $banner['html']);
}
// Build HTML
$outputHtml = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>\n";
$outputHtml .= "<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n";
$outputHtml .= "<head>\n";
$outputHtml .= "<title>" . (!empty($banner['alt']) ? $banner['alt'] : 'Advertisement') . "</title>\n";
// Include the FlashObject script if required
if (isset($banner['contenttype']) && $banner['contenttype'] == 'swf') {
    $outputHtml .= MAX_flashGetFlashObjectExternal();
}
// Add refresh meta tag if $refresh is set and numeric
if (isset($refresh) && is_numeric($refresh) && $refresh > 0) {
    $dest = MAX_commonGetDeliveryUrl($conf['file']['frame']) . '?' . $_SERVER['QUERY_STRING'];
    parse_str($_SERVER['QUERY_STRING'], $qs);
    $dest .= !array_key_exists('loc', $qs) ? "&loc=" . urlencode($loc) : '';
    // Try to use JS location.replace since browsers deal with this and history much better than meta-refresh
    $outputHtml .= "\n    <script type='text/javascript'><!--// <![CDATA[\n        setTimeout('window.location.replace(\"{$dest}\")', " . $refresh * 1000 . ");\n    // ]]> --></script><noscript><meta http-equiv='refresh' content='" . $refresh . ";url={$dest}'></noscript>\n    ";
}
if (isset($resize) && $resize == 1) {
    $outputHtml .= "<script type='text/javascript'>\n";
    $outputHtml .= "<!--// <![CDATA[ \n";
    $outputHtml .= "\tfunction MAX_adjustframe(frame) {\n";
    $outputHtml .= "\t\tif (document.all) {\n";
    $outputHtml .= "\t\t\tparent.document.all[frame.name].width = " . $banner['width'] . ";\n";
    $outputHtml .= "\t\t\tparent.document.all[frame.name].height = " . $banner['height'] . ";\n";
    $outputHtml .= "\t\t}\n";
    $outputHtml .= "\t\telse if (document.getElementById) {\n";
    $outputHtml .= "\t\t\tparent.document.getElementById(frame.name).width = " . $banner['width'] . ";\n";