/** * Get zone stats * * @param array Query parameters * @param int Tree level * @param string Expand GET parameter, used only when called from other get methods * @return Entities array */ function getZones($aParams, $level, $expand) { $aParams['exclude'] = array('ad_id'); $aParams['include'] = array('publisher_id'); $this->prepareData($aParams); $period_preset = MAX_getStoredValue('period_preset', 'today'); $aZones = $this->mergeData($aParams, 'zone_id'); MAX_sortArray($aZones, $this->listOrderField == 'id' ? 'zone_id' : $this->listOrderField, $this->listOrderDirection == 'up'); $aEntitiesData = array(); foreach ($aZones as $zoneId => $zone) { $zone['active'] = $this->_hasActiveStats($zone); if ($this->startLevel > $level || !$this->hideInactive || $zone['active']) { $this->_summarizeStats($zone); $zone['prefix'] = 'z'; $zone['id'] = $zoneId; $zone['linkparams'] = "affiliateid={$zone['publisher_id']}&zoneid={$zoneId}&"; if (is_array($aParams) && count($aParams) > 0) { foreach ($aParams as $key => $value) { if ($key != "include" && $key != "exclude") { $zone['linkparams'] .= $key . "=" . $value . "&"; } } } else { $zone['linkparams'] .= "&"; } $zone['linkparams'] .= "period_preset={$period_preset}&period_start=" . MAX_getStoredValue('period_start', date('Y-m-d')) . "&period_end=" . MAX_getStoredValue('period_end', date('Y-m-d')); $zone['expanded'] = MAX_isExpanded($zoneId, $expand, $this->aNodes, $zone['prefix']); $zone['icon'] = MAX_getEntityIcon('zone', $zone['active'], $zone['type']); if ($zone['type'] == MAX_ZoneMarketMigrated) { $zone['html-append'] = $this->getHtmlHelpLink('help-market-zone-migrated-from-pre-283'); $zone['name'] = $GLOBALS['strMarketZoneBeforeOpenX2.8.4']; } $aEntitiesData[] = $zone; } elseif ($this->startLevel == $level) { $this->hiddenEntities++; } } return $aEntitiesData; }
function addCrossBreadCrumbs($type, $entityId, $level = 0) { $cache = $this->crossEntitiesCache; switch ($type) { case 'campaign': if ($this->noStatsAvailable) { $this->_addBreadcrumb('', MAX_getEntityIcon('placement'), $type); } else { $this->_addBreadcrumb(MAX_buildName($entityId, MAX_getPlacementName($cache[$entityId])), MAX_getEntityIcon('placement'), $type); } break; case 'banner': if ($this->noStatsAvailable) { $this->_addBreadcrumb('', MAX_getEntityIcon('ad'), $type); } else { $this->_addBreadcrumb(MAX_buildName($entityId, MAX_getAdName($cache[$entityId]['name'], null, null, $cache[$entityId]['anonymous'], $entityId)), MAX_getEntityIcon('ad'), $type); } break; case 'publisher': if ($this->noStatsAvailable) { $this->_addBreadcrumb('', MAX_getEntityIcon('publisher'), ''); } else { $this->_addBreadcrumb(MAX_buildName($entityId, MAX_getPublisherName($cache[$entityId]['name'], null, $cache[$entityId]['anonymous'], $entityId)), MAX_getEntityIcon('publisher'), 'website'); } break; case 'zone': if ($this->noStatsAvailable) { $this->_addBreadcrumb('', MAX_getEntityIcon('zone'), $type); } else { $this->_addBreadcrumb(MAX_buildName($entityId, MAX_getZoneName($cache[$entityId]['name'], null, $cache[$entityId]['anonymous'], $entityId)), MAX_getEntityIcon('zone'), $type); } break; } }
/** * A private method that can be inherited and used by children classes to * add the breadcrumbs for the current entity item, automatically adding * parent entities breadcrumbs if needed. * * @param string $type Entity type (advertiser, campaign, etc) * @param integer $entityId Entity ID * @param intever $level Recursion level */ function _addBreadcrumbs($type, $entityId, $level = 0) { switch ($type) { case 'advertiser': if (OA_Permission::isAccount(OA_ACCOUNT_ADMIN) || OA_Permission::isAccount(OA_ACCOUNT_MANAGER)) { $advertisers = Admin_DA::getAdvertisers(array('advertiser_id' => $entityId), false); if (count($advertisers) == 1) { $advertiser = current($advertisers); $this->_addBreadcrumb(MAX_buildName($advertiser['advertiser_id'], $advertiser['name']), MAX_getEntityIcon('advertiser'), $type); } } break; case 'campaign': $campaigns = Admin_DA::getPlacements(array('placement_id' => $entityId), false); if (count($campaigns) == 1) { $campaign = current($campaigns); $this->_addBreadcrumbs('advertiser', $campaign['advertiser_id'], $level + 1); // mask campaign name if anonymous campaign $campaign['name'] = MAX_getPlacementName($campaign); $this->_addBreadcrumb(MAX_buildName($campaign['placement_id'], $campaign['name']), MAX_getEntityIcon('placement'), $type); } break; case 'banner': $banners = Admin_DA::getAds(array('ad_id' => $entityId), false); if (count($banners) == 1) { $banner = current($banners); $this->_addBreadcrumbs('campaign', $banner['placement_id'], $level + 1); // mask banner name if anonymous campaign $campaign = Admin_DA::getPlacement($banner['placement_id']); $campaignAnonymous = $campaign['anonymous'] == 't' ? true : false; $banner['name'] = MAX_getAdName($banner['name'], null, null, $campaignAnonymous, $banner['ad_id']); $this->_addBreadcrumb(MAX_buildName($banner['ad_id'], $banner['name']), MAX_getEntityIcon('ad'), $type); } break; case 'publisher': if (OA_Permission::isAccount(OA_ACCOUNT_ADMIN) || OA_Permission::isAccount(OA_ACCOUNT_MANAGER)) { $publishers = Admin_DA::getPublishers(array('publisher_id' => $entityId), false); if (count($publishers) == 1) { $publisher = current($publishers); $this->_addBreadcrumb(MAX_buildName($publisher['publisher_id'], $publisher['name']), MAX_getEntityIcon('publisher'), 'website'); } } break; case 'zone': $zones = Admin_DA::getZones(array('zone_id' => $entityId), false); if (count($zones) == 1) { $zone = current($zones); $this->_addBreadcrumbs('publisher', $zone['publisher_id'], $level + 1); $this->_addBreadcrumb(MAX_buildName($zone['zone_id'], $zone['name']), MAX_getEntityIcon('zone'), $type); } break; } }
function MAX_displayLinkedPlacementsAds($aParams, $publisherId, $zoneId, $hideInactive, $showMatchingAds, $pageName, &$tabIndex, $directLinkedAds = false) { echo "\n <br /><strong>{$GLOBALS['strCampaignLinkedAds']}:</strong><br />\n <table id='linked-campaigns' width='100%' border='0' align='center' cellspacing='0' cellpadding='0'>\n <tr height='25'>\n <td width='40%'><b> {$GLOBALS['strName']}</b></td>\n <td width='20%'><b> {$GLOBALS['strType']}</b></td>\n <td><b>{$GLOBALS['strID']} </b></td>\n <td> </td>\n </tr>\n <tr height='1'>\n <td colspan='4' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break.gif' height='1' width='100%'></td>\n </tr>"; $i = 0; $inactive = 0; $aPlacements = !empty($aParams) ? Admin_DA::getPlacements($aParams) : array(); foreach ($aPlacements as $placementId => $aPlacement) { $placementActive = $aPlacement['status'] == OA_ENTITY_STATUS_RUNNING; if (!$hideInactive || $placementActive) { $pParams = $aParams; $pParams['placement_id'] = $placementId; $aAds = Admin_DA::getAds($pParams, true); $bgcolor = $i % 2 == 0 ? " bgcolor='#F6F6F6'" : ''; // Remove these ad(s) from the direct linked ads foreach ($aAds as $dAdId) { unset($directLinkedAds[$dAdId['ad_id']]); } // Remove from array any ads not linked to the zone. // These might exist if campaign has been linked to zone // and indivual ads have then been unlinked $pParams = array('zone_id' => $zoneId); $aAdZones = Admin_DA::getAdZones($pParams, true); $aAdZoneLinks = array(); foreach ($aAdZones as $aAdZone) { $aAdZoneLinks[] = $aAdZone['ad_id']; } foreach ($aAds as $adId => $aAd) { if (!in_array($adId, $aAdZoneLinks)) { unset($aAds[$adId]); } } $placementIcon = MAX_getEntityIcon('placement', $placementActive); $placementName = htmlspecialchars(MAX_getDisplayName($aPlacement['name'])); $placementLink = OA_Permission::isAccount(OA_ACCOUNT_ADMIN) || OA_Permission::isAccount(OA_ACCOUNT_MANAGER) ? "<a href='campaign-edit.php?clientid={$aPlacement['advertiser_id']}&campaignid={$placementId}'>{$placementName}</a>" : $placementName; $placementTypeName = OX_Util_Utils::getCampaignTypeName($aPlacement['priority']); $adCount = empty($aAds) ? 0 : count($aAds); $placementDescription = $showMatchingAds ? ' ' : str_replace('{count}', $adCount, $GLOBALS['strMatchingBanners']); if ($i > 0) { echo "\n <tr height='1'>\n <td colspan='4' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break-l.gif' height='1' width='100%'></td>\n </tr>"; } echo "\n <tr height='25'{$bgcolor}>\n <td>\n <a href='{$pageName}?affiliateid={$publisherId}&zoneid={$zoneId}&campaignid={$placementId}&action=remove'><img src='" . OX::assetPath() . "/images/caret-l.gif' border='0' align='absmiddle'></a>\n <img src='{$placementIcon}' align='absmiddle'>\n {$placementLink}\n </td>\n <td><span class='campaign-type'>{$placementTypeName}</span></td>\n <td>{$placementId}</td>\n <td>{$placementDescription}</td>\n </tr>"; if ($showMatchingAds && !empty($aAds)) { foreach ($aAds as $adId => $aAd) { $adActive = $aAd['status'] == OA_ENTITY_STATUS_RUNNING && $aPlacement['status'] == OA_ENTITY_STATUS_RUNNING; if (!$hideInactive || $adActive) { $adIcon = MAX_getEntityIcon('ad', $adActive, $aAd['type']); $adName = htmlspecialchars(MAX_getDisplayName($aAd['name'])); $adLink = OA_Permission::isAccount(OA_ACCOUNT_ADMIN) || OA_Permission::isAccount(OA_ACCOUNT_MANAGER) ? "<a href='banner-edit.php?clientid={$aPlacement['advertiser_id']}&campaignid={$placementId}&bannerid={$adId}'>{$adName}</a>" : $adName; $adWidth = $aAd['contenttype'] == 'txt' ? 300 : $aAd['width'] + 64; $adHeight = $aAd['contenttype'] == 'txt' ? 200 : $aAd['height'] + (!empty($aAd['bannertext']) ? 90 : 64); echo "\n <tr height='1'>\n <td{$bgcolor}><img src='" . OX::assetPath() . "/images/spacer.gif' width='1' height='1'></td>\n <td colspan='3' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break-el.gif' height='1' width='100%'></td>\n </tr>\n <tr height='25'{$bgcolor}>\n <td> <img src='{$adIcon}' align='absmiddle'> {$adLink}</td>\n <td></td>\n <td>{$adId}</td>\n <td align=" . $GLOBALS['phpAds_TextAlignRight'] . ">\n <img src='" . OX::assetPath() . "/images/icon-zoom.gif' align='absmiddle' border='0'> <a href='banner-htmlpreview.php?bannerid={$adId}' target='_new' onClick=\"return openWindow('banner-htmlpreview.php?bannerid={$adId}', '', 'status=no,scrollbars=no,resizable=no,width={$adWidth},height={$adHeight}');\">{$GLOBALS['strShowBanner']}</a> \n </td>\n </tr>"; } else { $inactive++; } } } $i++; } else { $inactive++; } } $showMatchingText = $showMatchingAds ? $GLOBALS['strHideMatchingBanners'] : $GLOBALS['strShowMatchingBanners']; $showMatchingValue = $showMatchingAds ? '0' : '1'; $hideInactiveText = $hideInactive ? $GLOBALS['strShowAll'] : $GLOBALS['strHideInactiveCampaigns']; $hideInactiveStats = $hideInactive ? " | {$inactive} {$GLOBALS['strInactiveCampaignsHidden']}" : ''; $hideInactiveValue = $hideInactive ? '0' : '1'; $hideInactiveIcon = OX::assetPath($hideInactive ? 'images/icon-activate.gif' : 'images/icon-hideinactivate.gif'); echo "\n <tr height='1'>\n <td colspan='4' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break.gif' height='1' width='100%'></td>\n </tr>\n <tr height='25'>\n <td colspan='3'>\n <img src='{$hideInactiveIcon}' align='absmiddle' border='0'>\n <a href='{$pageName}?affiliateid={$publisherId}&zoneid={$zoneId}&hideinactive={$hideInactiveValue}'>{$hideInactiveText}</a>{$hideInactiveStats}\n </td>\n <td align='right'>\n <img src='" . OX::assetPath() . "/images/icon-banner-stored-d.gif' align='absmiddle' border='0'>\n <a href='{$pageName}?affiliateid={$publisherId}&zoneid={$zoneId}&showbanners={$showMatchingValue}'>{$showMatchingText}</a>\n </table>"; if (!empty($directLinkedAds)) { echo "<br /><strong>{$GLOBALS['strBannerLinkedAds']}:</strong><br />"; $aParams = array('ad_id' => implode(',', array_keys($directLinkedAds))); MAX_displayLinkedAdsPlacements($aParams, $publisherId, $zoneId, $hideInactive, $showParentPlacements, $pageName, $tabIndex); } }
break; } } $checked = $allchecked ? ' checked' : ''; if ($i > 0) { echo "\n<tr height='1'>\n <td colspan='3' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break.gif' height='1' width='100%'></td>\n</tr>"; } echo "\n<tr height='25'{$bgcolor}>\n <td>\n <table>\n <tr>\n <td> </td>\n <td valign='top'><input id='affiliate{$publisherId}' name='affiliate[{$publisherId}]' type='checkbox' value='t'{$checked} onClick='toggleZones({$publisherId});' tabindex='{$tabindex}'> </td>\n <td valign='top'><img src='" . OX::assetPath() . "/images/icon-affiliate.gif' align='absmiddle'> </td>\n <td><a href='affiliate-edit.php?affiliateid={$publisherId}'>" . htmlspecialchars($publisherName) . "</a> </td>\n </tr>\n </table>\n </td>\n <td>{$publisherId}</td>\n <td height='25'> </td>\n</tr>"; $tabindex++; if (!empty($aZones)) { MAX_sortArray($aZones, $listorder == 'id' ? 'zone_id' : $listorder, $orderdirection == 'up'); foreach ($aZones as $zoneId => $aZone) { $zoneName = $aZone['name']; $zoneDescription = $aZone['description']; $zoneIsActive = isset($aZone['active']) && $aZone['active'] == 't' ? true : false; $zoneIcon = MAX_getEntityIcon('zone', $zoneIsActive, $aZone['type']); $checked = isset($aLinkedZones[$zoneId]) ? ' checked' : ''; $bgcolor = $checked == ' checked' ? " bgcolor='#d8d8ff'" : $bgcolorSave; echo "\n<tr height='25'{$bgcolor}>\n <td>\n <table>\n <tr>\n <td width='28'> </td>\n <td valign='top'><input name='includezone[{$zoneId}]' id='a{$publisherId}' type='checkbox' value='t'{$checked} onClick='toggleAffiliate({$publisherId});' tabindex='{$tabindex}'> </td>\n <td valign='top'><img src='{$zoneIcon}' align='absmiddle'> </td>\n <td><a href='zone-edit.php?affiliateid={$publisherId}&zoneid={$zoneId}'>" . htmlspecialchars($zoneName) . "</a> </td>\n </tr>\n </table>\n </td>\n <td>{$zoneId}</td>\n <td>" . htmlspecialchars($zoneDescription) . "</td>\n</tr>"; } } $i++; } } echo "\n<tr height='1'><td colspan='3' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break.gif' height='1' width='100%'></td></tr>"; } if (!$zoneToSelect) { echo "\n<tr height='25' bgcolor='#F6F6F6'>\n <td colspan='4'> {$GLOBALS['strNoZonesToLinkToCampaign']}</td>\n</tr>\n<tr height='1'><td colspan='3' bgcolor='#888888'><img src='" . OX::assetPath() . "/images/break.gif' height='1' width='100%'></td></tr>"; } echo "\n</table>"; echo "\n<br /><br />\n<input type='submit' name='submit' value='{$GLOBALS['strSaveChanges']}' tabindex='{$tabindex}'>";