本文整理汇总了PHP中OA::setTempDebugPrefix方法的典型用法代码示例。如果您正苦于以下问题:PHP OA::setTempDebugPrefix方法的具体用法?PHP OA::setTempDebugPrefix怎么用?PHP OA::setTempDebugPrefix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OA
的用法示例。
在下文中一共展示了OA::setTempDebugPrefix方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
/**
* The main method of the class, that is run by the controlling
* task runner class.
*/
function run()
{
OA::debug('Running Maintenance Priority Engine: Allocate Zone Impressions', PEAR_LOG_DEBUG);
// Set the zone forecast information
$this->_setZoneForecasts();
// Set the campaign information
$this->_setCampaigns();
// Set the ad/zone linkage information
$this->_setAdZoneAssociations();
// Set the required impressions for each ad/zone pair
$this->_allocateRequiredImpressions();
// Determine if any zones are over-subscribed
$this->_calculateOverSubscribedZoneInformation();
// Set the requested impressions for each ad/zone pair
$this->_allocateRequestedImpressions();
// Save the ad/zone impression allocations to the database
OA::setTempDebugPrefix('- ');
$this->table->createTable('tmp_ad_zone_impression');
$this->oDal->saveAllocatedImpressions($this->aAdZoneImpressionAllocations);
}
示例2: distributeCampaignImpressions
//.........这里部分代码省略.........
// it expires at the expiration date/time
$oCampaignExpiryDate = $this->_getDate($oCampaign->expireTime);
} else {
// Error! There should not be any other kind of high-priority
// campaign in terms of activation/expiration dates and
// either (total) inventory requirements or daily targets
$message = "- Error calculating the end date for Campaign ID {$oCampaign->id}";
OA::debug($message, PEAR_LOG_ERR);
continue;
}
}
// Determine number of remaining operation intervals for campaign
$message = " - Calculating campaign remaining operation intervals.";
OA::debug($message, PEAR_LOG_DEBUG);
$campaignRemainingOperationIntervals = OX_OperationInterval::getIntervalsRemaining($aCurrentOperationIntervalDates['start'], $oCampaignExpiryDate);
// For all ads in the campaign, determine:
// - If the ad is capable of delivery in the current operation
// interval, or not, based on if it is linked to any zones, and,
// if so:
// - If the ad is capable of delivery in the current operation
// interval, or not, based on delivery limitation(s), and if so;
// - The result of the weight of the ad multiplied by the
// number of operation intervals remaining in which the ad
// is capable of delivering
$aAdZones = array();
$aAdDeliveryLimitations = array();
$aAdBlockedForCurrentOI = array();
$aAdWeightRemainingOperationIntervals = array();
$aInvalidAdIds = array();
reset($oCampaign->aAds);
while (list($key, $oAd) = each($oCampaign->aAds)) {
// Only calculate values for active ads
if ($oAd->active && $oAd->weight > 0) {
$message = " - Calculating remaining operation intervals for ad ID: {$oAd->id}";
OA::debug($message, PEAR_LOG_DEBUG);
// Get all zones associated with the ad
$aAdsZones = $this->oDal->getAdZoneAssociationsByAds(array($oAd->id));
$aAdZones[$oAd->id] = @$aAdsZones[$oAd->id];
if (is_null($aAdZones[$oAd->id])) {
$aInvalidAdIds[] = $oAd->id;
$message = " - Ad ID {$oAd->id} has no linked zones, will skip...";
OA::debug($message, PEAR_LOG_ERR);
continue;
}
// Prepare a delivery limitation object for the ad
$aAdDeliveryLimitations[$oAd->id] = new OA_Maintenance_Priority_DeliveryLimitation($oAd->getDeliveryLimitations());
// Is the ad blocked from delivering in the current operation interval?
$aAdBlockedForCurrentOI[$oAd->id] = $aAdDeliveryLimitations[$oAd->id]->deliveryBlocked($aCurrentOperationIntervalDates['start']);
// Determine how many operation intervals remain that the ad can deliver in
$adRemainingOperationIntervals = $aAdDeliveryLimitations[$oAd->id]->getActiveAdOperationIntervals($campaignRemainingOperationIntervals, $aCurrentOperationIntervalDates['start'], $oCampaignExpiryDate);
// Determine the value of the ad weight multiplied by the number
// of operation intervals remaining that the ad can deliver in
if ($oAd->weight > 0) {
$aAdWeightRemainingOperationIntervals[$oAd->id] = $oAd->weight * $adRemainingOperationIntervals;
} else {
$aAdWeightRemainingOperationIntervals[$oAd->id] = 0;
}
}
}
// Get the total sum of the ad weight * remaining OI values
$sumAdWeightRemainingOperationIntervals = array_sum($aAdWeightRemainingOperationIntervals);
// For each (active) ad that is capable of delivering in the current
// operation interval, determine how many of the campaign's required
// impressions should be alloced as the ad's required impressions
// For each advertisement
reset($oCampaign->aAds);
while (list($key, $oAd) = each($oCampaign->aAds)) {
if (in_array($oAd->id, $aInvalidAdIds)) {
OA::debug(' - Skipping ad ID: ' . $oAd->id, PEAR_LOG_DEBUG);
continue;
}
OA::debug(' - Calculating required impressions for ad ID: ' . $oAd->id, PEAR_LOG_DEBUG);
// Get impressions required
$totalRequiredAdImpressions = 0;
if ($oAd->active && $oAd->weight > 0 && $aAdBlockedForCurrentOI[$oAd->id] !== true) {
$totalRequiredAdImpressions = $oCampaign->requiredImpressions * ($aAdWeightRemainingOperationIntervals[$oAd->id] / $sumAdWeightRemainingOperationIntervals);
}
if ($totalRequiredAdImpressions <= 0) {
OA::debug(' - No required impressions for ad ID: ' . $oAd->id, PEAR_LOG_DEBUG);
continue;
}
// Based on the average zone pattern of the zones the ad is
// linked to, calculate how many of these impressions should
// be delivered in the next operation interval
OA::debug(' - Calculating next OI required impressions for ad ID: ' . $oAd->id, PEAR_LOG_DEBUG);
$oAd->requiredImpressions = $this->_getAdImpressions($oAd, $totalRequiredAdImpressions, $aCurrentOperationIntervalDates['start'], $oCampaignExpiryDate, $aAdDeliveryLimitations[$oAd->id], $aAdZones[$oAd->id]);
$aRequiredAdImpressions[] = array('ad_id' => $oAd->id, 'required_impressions' => $oAd->requiredImpressions);
}
}
// Save the required impressions into the temporary database table
OA::setTempDebugPrefix('- ');
// Check if table exists
if (!isset($GLOBALS['_OA']['DB_TABLES']['tmp_ad_required_impression'])) {
if ($this->oTable->createTable('tmp_ad_required_impression', null, true) !== false) {
// Remember that table was created
$GLOBALS['_OA']['DB_TABLES']['tmp_ad_required_impression'] = true;
}
}
$this->oDal->saveRequiredAdImpressions($aRequiredAdImpressions);
}