Пример #1
0
 /**
  * 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;
     }
 }
Пример #3
0
 /**
  * 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;
     }
 }
Пример #4
0
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>&nbsp;&nbsp;{$GLOBALS['strName']}</b></td>\n        <td width='20%'><b>&nbsp;&nbsp;{$GLOBALS['strType']}</b></td>\n        <td><b>{$GLOBALS['strID']}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></td>\n        <td>&nbsp;</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 ? '&nbsp;' : 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            &nbsp;&nbsp;<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            &nbsp;&nbsp;<img src='{$placementIcon}' align='absmiddle'>\n            &nbsp;{$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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src='{$adIcon}' align='absmiddle'>&nbsp;{$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'>&nbsp;<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>&nbsp;&nbsp;\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 ? "&nbsp;&nbsp;|&nbsp;&nbsp;{$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);
    }
}
Пример #5
0
                    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>&nbsp;</td>\n                <td valign='top'><input id='affiliate{$publisherId}' name='affiliate[{$publisherId}]' type='checkbox' value='t'{$checked} onClick='toggleZones({$publisherId});' tabindex='{$tabindex}'>&nbsp;&nbsp;</td>\n                <td valign='top'><img src='" . OX::assetPath() . "/images/icon-affiliate.gif' align='absmiddle'>&nbsp;</td>\n                <td><a href='affiliate-edit.php?affiliateid={$publisherId}'>" . htmlspecialchars($publisherName) . "</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>\n            </tr>\n        </table>\n    </td>\n    <td>{$publisherId}</td>\n    <td height='25'>&nbsp;</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'>&nbsp;</td>\n                <td valign='top'><input name='includezone[{$zoneId}]' id='a{$publisherId}' type='checkbox' value='t'{$checked} onClick='toggleAffiliate({$publisherId});' tabindex='{$tabindex}'>&nbsp;&nbsp;</td>\n                <td valign='top'><img src='{$zoneIcon}' align='absmiddle'>&nbsp;</td>\n                <td><a href='zone-edit.php?affiliateid={$publisherId}&zoneid={$zoneId}'>" . htmlspecialchars($zoneName) . "</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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'>&nbsp;&nbsp;{$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}'>";