0
長途跋涉後,我設法使用jQuery和PHP的組合Ajax加載我的openx廣告。ajaxloading與jQuery和PHP的openx
您的需要是
- 你自己的的OpenX服務器和訪問/{openxPath}/www/delivery/alocal.php。
- 一個小包裝,使廣告腳本ajaxable
- 的Ajax-loader在
第三和最容易的部分是Ajax的裝載機:
$(document).ready(function() {
$.ajax({
url: "http://{urlToYourOpenxWrapper/adwrapper.php",
type: "POST",
data: {m:'f'}, // 'code' of ad to load
async: false,
dataType: 'html'
}).done(function (answer) {
$('#footerBanner').html(answer);
});
});
第二部分是一點點有點棘手,也許沒有前途。但是2.8.11它正在工作。 出於安全原因,我製作了從字符到zone-id的映射。我不知道這是否真的有必要。
adwrapper.php:
define('MAX_PATH', 'pathToYoutOpenXServer');
if (@include_once(MAX_PATH . '/www/delivery/alocal.php')) {
if (!isset($phpAds_context)) {
$phpAds_context = array();
}
switch ($_POST["m"]) {
case 'f': // code of the ad to load
$zoneId = 12;
$bannerTarget = 'footerBanner zone_' . $zoneId;
$bannerCode = view_local('', 12, 0, 0, '', '', '0', $phpAds_context, '');
break;
}
// get banner id
$regex = '/(.*)(ox_[^\']*)(.*)/';
preg_match($regex, $bannerCode['html'], $matches);
$oxId = $matches[2];
// compile new insert code
$replaceWith = '$("' . $oxId . '").after';
$banner = str_replace('document.write', $replaceWith, $bannerCode['html']);
$banner = str_replace('<script type=\'text/javascript\' src=\'http://openx.lift-online.de/www/delivery/fl.js\'></script>' ,
'<!-- replaced -->' ,
$banner);
// use a single object for each ad to prevent problem in multitasking
$banner = str_replace('ox_swf', 'ox_swf_' . $zoneId, $banner);
// sometime the oxId (unique Id???) is the same and than zones are mixed
// so I append the zoneId to the oxId
$banner = str_replace($oxId, $oxId . '_' . $zoneId, $banner);
echo '<div class="' . $bannerTarget . '">' . $banner . '</div>';
}
是否有問題? – DGS
這個問題似乎是無關緊要的,因爲毫無疑問 – madth3