/** * Ad Tag generation for zone. * * @return Ad Tag */ public function generateTagAction() { $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $request = $this->getRequest(); if ($request->isPost()) { $PublisherAdZoneID = $this->getRequest()->getPost('ad_id'); $PublisherWebsiteID = intval($this->params()->fromRoute('param1', 0)); $PublisherAdZoneFactory = \_factory\PublisherAdZone::get_instance(); $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $params = array(); $params["PublisherAdZoneID"] = $PublisherAdZoneID; $AdObject = $PublisherAdZoneFactory->get_row_object($params); $params = array(); $params["PublisherWebsiteID"] = $PublisherWebsiteID; $PublishObject = $PublisherWebsiteFactory->get_row_object($params); $width = 0; $height = 0; $domain = $PublishObject->WebDomain; if ($AdObject->AdTemplateID != NULL && $AdObject->AdTemplateID != 0) { $AdTemplatesFactory = \_factory\AdTemplates::get_instance(); $params = array(); $params['AdTemplateID'] = $AdObject->AdTemplateID; $AdTemplatesObject = $AdTemplatesFactory->get_row_object($params); $height = $AdTemplatesObject->Height; $width = $AdTemplatesObject->Width; } else { $height = $AdObject->Height; $width = $AdObject->Width; } $delivery_adtag = $this->config_handle['delivery']['adtag']; $cache_buster = time(); $effective_tag = "<script type='text/javascript' src='" . $delivery_adtag . "?pzoneid=" . $PublisherAdZoneID . "&height=" . $height . "&width=" . $width . "&tld=" . $domain . "&cb=" . $cache_buster . "'></script>"; $data = array('result' => true, 'data' => array('tag' => htmlentities($effective_tag))); return $this->getResponse()->setContent(json_encode($data)); } }
private function build_banner_request($config, $banner_request) { $banner_request_id = intval($banner_request["publisher_banner_id"]); $PublisherAdZoneFactory = \_factory\PublisherAdZone::get_instance(); $params = array(); $params["PublisherAdZoneID"] = $banner_request_id; $params["AdStatus"] = 1; $PublisherAdZone = $PublisherAdZoneFactory->get_row_cached($params); $PublisherWebsite = null; if ($PublisherAdZone == null) { return null; } $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $params = array(); $params["PublisherWebsiteID"] = $PublisherAdZone->PublisherWebsiteID; $PublisherWebsite = $PublisherWebsiteFactory->get_row_cached($params); if ($PublisherWebsite == null) { return null; } /* * Produce the RTB request to our demand partners */ $banner_request["PublisherAdZoneID"] = $PublisherAdZone->PublisherAdZoneID; $banner_request["AdName"] = $PublisherAdZone->AdName; $banner_request["WebDomain"] = $PublisherWebsite->WebDomain; if (!isset($banner_request["org_tld"]) || $banner_request["org_tld"] == null) { $banner_request["org_tld"] = $PublisherWebsite->WebDomain; } $banner_request["height"] = $PublisherAdZone->Height; $banner_request["width"] = $PublisherAdZone->Width; $banner_request["bidfloor"] = sprintf("%1.4f", $PublisherAdZone->FloorPrice); $banner_request["iab_category"] = $PublisherWebsite->IABCategory; $banner_request["iab_sub_category"] = $PublisherWebsite->IABSubCategory; $banner_request["website_id"] = $PublisherAdZone->PublisherWebsiteID; $banner_request["publisher_info_website"] = "example.com"; // will be populated from the initial publisher signup. $banner_request["publisher_id"] = 1; // will be populated from the initial publisher signup. $banner_request["publisher_name"] = "Demo Publisher"; // will be populated from the initial publisher signup. $banner_request["publisher_iab_category"] = null; $ip_address = isset($_SERVER['HTTP_X_REAL_IP']) && !empty($_SERVER['HTTP_X_REAL_IP']) ? $_SERVER['HTTP_X_REAL_IP'] : $_SERVER["REMOTE_ADDR"]; $banner_request["ip_address"] = $ip_address; $banner_request["user_id"] = md5($banner_request["ip_address"]); $user_agent = isset($_SERVER["HTTP_USER_AGENT"]) ? $_SERVER["HTTP_USER_AGENT"] : ""; $banner_request["user_agent"] = $user_agent; $banner_request["language"] = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : null; /* * Device Type * * 1 Mobile/Tablet * 2 Personal Computer */ $detect = new \mobileutil\MobileDetect(null, $banner_request["user_agent"]); if ($detect->isMobile()) { $banner_request["devicetype"] = 1; if ($detect->is('iOS')) { $banner_request["mobile_os"] = "iOS"; $banner_request["mobile_make"] = "Apple"; if ($detect->isTablet()) { $banner_request["mobile_model"] = "iPad"; } else { $banner_request["mobile_model"] = "iPhone"; } } elseif ($detect->is('AndroidOS') || $detect->is('Chrome')) { $banner_request["mobile_os"] = "Android"; } } else { $banner_request["devicetype"] = 2; } return $banner_request; }
public function deletewebsiteAction() { $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $auth = $this->getServiceLocator()->get('AuthService'); if (!$auth->hasIdentity()) { return $this->redirect()->toRoute('login'); } $success = false; $msg = null; $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $PublisherAdZoneFactory = \_factory\PublisherAdZone::get_instance(); $publisher_website_data = null; $request = $this->getRequest(); if ($request->isPost()) { $website_id = intval($request->getPost('website_id')); if ($this->auth->isDomainAdmin($this->config_handle)) { $authorized = \util\AuthHelper::domain_user_authorized_publisher_website($this->auth->getUserID(), $website_id); if ($authorized === true) { $params = array(); $params["PublisherWebsiteID"] = $website_id; $publisher_website_data = $PublisherWebsiteFactory->get_row($params); } } else { $params = array(); $params["PublisherWebsiteID"] = $website_id; $params["DomainOwnerID"] = $this->auth->getPublisherInfoID(); $publisher_website_data = $PublisherWebsiteFactory->get_row($params); } if ($publisher_website_data == null) { $msg = 'Authorization Error.'; } else { $success = true; $PublisherWebsiteFactory->delete_domain($website_id); $params = array(); $params['PublisherWebsiteID'] = $website_id; $PublisherAdZoneList = $PublisherAdZoneFactory->get($params); foreach ($PublisherAdZoneList as $PublisherAdZone) { $PublisherAdZoneFactory->delete_zone(intval($PublisherAdZone->PublisherAdZoneID)); } $msg = '"' . $publisher_website_data->WebDomain . '" removed successfully.'; } } $data = array('success' => $success, 'data' => array('msg' => $msg)); $this->setJsonHeader(); return $this->getResponse()->setContent(json_encode($data)); }
/** * * @return Ambigous <\Zend\View\Model\ViewModel, \Zend\View\Model\ViewModel> */ public function newlineitemAction() { $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $ImpressionType = $this->getRequest()->getPost('ImpressionType'); if ($ImpressionType != 'banner' && $ImpressionType != 'image' && $ImpressionType != 'video') { die("Required Field: ImpressionType was missing"); } $needed_input_banner = array('bannername', 'startdate', 'enddate', 'ismobile', 'iabsize', 'height', 'width', 'bidamount', 'adtag', 'landingpagetld'); $needed_input_video = array('bannername', 'startdate', 'enddate', 'bidamount', 'adtag', 'landingpagetld'); $adtag = $this->getRequest()->getPost('adtag'); if ($ImpressionType == 'video') { $this->validateInput($needed_input_video); } elseif ($ImpressionType == 'image') { $this->validateInput($needed_input_banner); preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $adtag, $matches); if (!isset($matches[1])) { die("Required Field: <img src= attribute was missing"); } preg_match('/href=[\'"]?([^\\s\\>\'"]*)[\'"\\>]/', $adtag, $matches); if (!isset($matches[1])) { die("Required Field: <a href= attribute was missing"); } } else { $this->validateInput($needed_input_banner); } $campaignid = $this->getRequest()->getPost('campaignid'); $campaign_preview_id = $this->getRequest()->getPost('campaignpreviewid'); $bannerid = $this->getRequest()->getPost('bannerid'); $banner_preview_id = $this->getRequest()->getPost('bannerpreviewid'); $ispreview = $this->getRequest()->getPost('ispreview'); $px_feeds = $this->getRequest()->getPost('px-feeds'); $pc_feeds = $this->getRequest()->getPost('pc-feeds'); $ssp_feeds = $this->getRequest()->getPost('ssp-feeds'); $pc_feeds = is_array($pc_feeds) ? $pc_feeds : array(); $px_feeds = is_array($px_feeds) ? $px_feeds : array(); $ssp_feeds = is_array($ssp_feeds) ? $ssp_feeds : array(); $exchange_feeds = array_merge($pc_feeds, $px_feeds); if ($ispreview != true) { /* * THIS METHOD CHECKS IF THERE IS AN EXISTING PREVIEW MODE CAMPAIGN * IF NOT, IT CHECKS THE ACL PERMISSIONS ON THE PRODUCTION BANNER/CAMPAIGN REFERENCED * THEN IT CREATES A PREVIEW VERSION OF THE AD CAMPAIGN */ if ($bannerid != null) { $update_data = array('type' => 'InsertionOrderLineItemID', 'id' => $bannerid); } else { $update_data = array('type' => 'InsertionOrderID', 'id' => $campaignid); } $return_val = \transformation\TransformPreview::previewCheckInsertionOrderID($campaignid, $this->auth, $this->config_handle, $this->getServiceLocator()->get('mail.transport'), $update_data); if ($return_val !== null) { if ($bannerid != null) { $campaign_preview_id = $return_val["InsertionOrderPreviewID"]; $banner_preview_id = $return_val["InsertionOrderLineItemPreviewID"]; } else { $campaign_preview_id = $return_val["InsertionOrderPreviewID"]; } } } // ACL PREVIEW PERMISSIONS CHECK transformation\CheckPermissions::checkEditPermissionInsertionOrderPreview($campaign_preview_id, $this->auth, $this->config_handle); $bannername = $this->getRequest()->getPost('bannername'); $startdate = $this->getRequest()->getPost('startdate'); $enddate = $this->getRequest()->getPost('enddate'); $ismobile = $this->getRequest()->getPost('ismobile'); $iabsize = $this->getRequest()->getPost('iabsize'); $height = $this->getRequest()->getPost('height'); $width = $this->getRequest()->getPost('width'); $weight = $this->getRequest()->getPost('weight'); $bidamount = $this->getRequest()->getPost('bidamount'); $landingpagetld = $this->getRequest()->getPost('landingpagetld'); $bannerid = $this->getRequest()->getPost('bannerid'); if ($ImpressionType == 'video') { $mimes = $this->getRequest()->getPost("Mimes"); if ($mimes && is_array($mimes) && count($mimes) > 0) { $mimes = join(',', $mimes); } else { $mimes = ""; } $protocols = $this->getRequest()->getPost("Protocols"); if ($protocols && is_array($protocols) && count($protocols) > 0) { $protocols = join(',', $protocols); } else { $protocols = ""; } $apis_supported = $this->getRequest()->getPost("ApisSupported"); if ($apis_supported && is_array($apis_supported) && count($apis_supported) > 0) { $apis_supported = join(',', $apis_supported); } else { $apis_supported = ""; } $delivery = $this->getRequest()->getPost("Delivery"); if ($delivery && is_array($delivery) && count($delivery) > 0) { $delivery = join(',', $delivery); } else { $delivery = ""; } $playback = $this->getRequest()->getPost("Playback"); if ($playback && is_array($playback) && count($playback) > 0) { $playback = join(',', $playback); } else { $playback = ""; } $start_delay = $this->getRequest()->getPost("StartDelay"); $linearity = $this->getRequest()->getPost("Linearity"); } $BannerPreview = new \model\InsertionOrderLineItemPreview(); if ($banner_preview_id != null) { $BannerPreview->InsertionOrderLineItemPreviewID = $banner_preview_id; } $BannerPreview->UserID = $this->auth->getEffectiveUserID(); $BannerPreview->Name = $bannername; $BannerPreview->InsertionOrderPreviewID = $campaign_preview_id; $BannerPreview->StartDate = date("Y-m-d H:i:s", strtotime($startdate)); $BannerPreview->EndDate = date("Y-m-d H:i:s", strtotime($enddate)); $BannerPreview->ImpressionType = $ImpressionType; $BannerPreview->IsMobile = $ismobile; $BannerPreview->IABSize = $iabsize; $BannerPreview->Height = $height; $BannerPreview->Width = $width; $BannerPreview->Weight = $weight == null ? 5 : $weight; $BannerPreview->BidAmount = $bidamount; $BannerPreview->AdTag = trim($adtag); $BannerPreview->DeliveryType = 'js'; $BannerPreview->LandingPageTLD = $landingpagetld; $BannerPreview->ImpressionsCounter = 0; $BannerPreview->BidsCounter = 0; $BannerPreview->CurrentSpend = 0; $BannerPreview->Active = 1; $BannerPreview->DateCreated = date("Y-m-d H:i:s"); $BannerPreview->DateUpdated = date("Y-m-d H:i:s"); $BannerPreview->ChangeWentLive = 0; $BannerPreview->WentLiveDate = '0000-00-00 00:00:00'; $InsertionOrderLineItemPreviewFactory = \_factory\InsertionOrderLineItemPreview::get_instance(); $banner_preview_id_new = $InsertionOrderLineItemPreviewFactory->saveInsertionOrderLineItemPreview($BannerPreview); if ($banner_preview_id_new != null) { $banner_preview_id = $banner_preview_id_new; } if ($BannerPreview->InsertionOrderLineItemPreviewID == null) { $BannerPreview->InsertionOrderLineItemPreviewID = $banner_preview_id; } $InsertionOrderLineItemVideoRestrictionsPreviewFactory = \_factory\InsertionOrderLineItemVideoRestrictionsPreview::get_instance(); $InsertionOrderLineItemRestrictionsPreviewFactory = \_factory\InsertionOrderLineItemRestrictionsPreview::get_instance(); if ($ImpressionType == 'video') { $params = array(); $params["InsertionOrderLineItemPreviewID"] = $banner_preview_id; $InsertionOrderLineItemVideoRestrictionsPreview = $InsertionOrderLineItemVideoRestrictionsPreviewFactory->get_row($params); if ($InsertionOrderLineItemVideoRestrictionsPreview == null) { $InsertionOrderLineItemVideoRestrictionsPreview = new \model\InsertionOrderLineItemVideoRestrictionsPreview(); } $InsertionOrderLineItemVideoRestrictionsPreview->InsertionOrderLineItemPreviewID = $banner_preview_id; $InsertionOrderLineItemVideoRestrictionsPreview->DateCreated = date("Y-m-d H:i:s"); $InsertionOrderLineItemVideoRestrictionsPreview->MimesCommaSeparated = trim($mimes); $InsertionOrderLineItemVideoRestrictionsPreview->ProtocolsCommaSeparated = trim($protocols); $InsertionOrderLineItemVideoRestrictionsPreview->ApisSupportedCommaSeparated = trim($apis_supported); $InsertionOrderLineItemVideoRestrictionsPreview->DeliveryCommaSeparated = trim($delivery); $InsertionOrderLineItemVideoRestrictionsPreview->PlaybackCommaSeparated = trim($playback); $InsertionOrderLineItemVideoRestrictionsPreview->StartDelay = trim($start_delay); $InsertionOrderLineItemVideoRestrictionsPreview->Linearity = trim($linearity); $InsertionOrderLineItemVideoRestrictionsPreviewFactory->saveInsertionOrderLineItemVideoRestrictionsPreview($InsertionOrderLineItemVideoRestrictionsPreview); $InsertionOrderLineItemRestrictionsPreviewFactory->deleteInsertionOrderLineItemRestrictionsPreview($banner_preview_id); } else { $InsertionOrderLineItemVideoRestrictionsPreviewFactory->deleteInsertionOrderLineItemVideoRestrictionsPreview($banner_preview_id); } /* * Private Exchange Feeds * * wipe out existing preview data first */ $PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewFactory = \_factory\PmpDealPublisherWebsiteToInsertionOrderLineItemPreview::get_instance(); $PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewFactory->deletePmpDealPublisherWebsiteToInsertionOrderLineItemByInsertionOrderLineItemPreviewID($banner_preview_id); foreach ($exchange_feeds as $raw_feed_data) { $raw_feed_data = rawurldecode($raw_feed_data); $exchange_feed_data = \util\AuthHelper::parse_feed_id($raw_feed_data); if ($exchange_feed_data === null) { continue; } $exchange_feed_id = intval($exchange_feed_data["id"]); $exchange_feed_description = $exchange_feed_data["description"]; $is_local = false; if (!$this->is_super_admin) { $authorized = \util\AuthHelper::domain_user_authorized_px_publisher_website_passthru($this->config_handle, $this->auth->getUserID(), $exchange_feed_id, $is_local); if (!$authorized) { $viewModel = new ViewModel(array('admin_email' => $this->config_handle['mail']['reply-to']['email'], 'refresh_url' => '/private-exchange/editlineitem/' . $banner_preview_id . '?ispreview=true')); return $viewModel->setTemplate('dashboard-manager/demand/creditapp.phtml'); } } else { $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $params = array(); $params["PublisherWebsiteID"] = $exchange_feed_id; $PublisherWebsite = $PublisherWebsiteFactory->get_row_cached($this->config_handle, $params); $ret_val = \util\AuthHelper::domain_user_authorized_publisher_passthru($this->auth->getEffectiveUserID(), $PublisherWebsite->DomainOwnerID); if ($ret_val === true) { $is_local = true; } } $params = array(); $params["PublisherWebsiteID"] = $exchange_feed_id; $_PmpDealPublisherWebsiteToInsertionOrderLineItemPreview = $PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewFactory->get_row($params); $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview = new \model\PmpDealPublisherWebsiteToInsertionOrderLineItemPreview(); if ($_PmpDealPublisherWebsiteToInsertionOrderLineItemPreview != null) { $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->PmpDealPublisherWebsiteToInsertionOrderPreviewID = $_PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewID; } $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->PublisherWebsiteID = $exchange_feed_id; $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->PublisherWebsiteLocal = $is_local; $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->PublisherWebsiteDescription = $exchange_feed_description; $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->InsertionOrderLineItemPreviewID = $banner_preview_id; $PmpDealPublisherWebsiteToInsertionOrderLineItemPreview->Enabled = 1; $PmpDealPublisherWebsiteToInsertionOrderLineItemPreviewFactory->savePmpDealPublisherWebsiteToInsertionOrderLineItemPreview($PmpDealPublisherWebsiteToInsertionOrderLineItemPreview); } /* * SSP RTB Feeds * * wipe out existing preview data first */ $SspRtbChannelToInsertionOrderLineItemPreviewFactory = \_factory\SspRtbChannelToInsertionOrderLineItemPreview::get_instance(); $SspRtbChannelToInsertionOrderLineItemPreviewFactory->deleteSspRtbChannelToInsertionOrderLineItemByInsertionOrderLineItemPreviewID($banner_preview_id); /* * If they are adding inventory from SSP RTB Channels * make sure they are approved for that */ if (!$this->is_super_admin && count($ssp_feeds) >= 1) { if (!\util\CreditHelper::wasApprovedForSspRtbInventoryAuthUserID($this->auth->getUserID())) { $viewModel = new ViewModel(array('admin_email' => $this->config_handle['mail']['reply-to']['email'], 'refresh_url' => '/private-exchange/editlineitem/' . $banner_preview_id . '?ispreview=true')); return $viewModel->setTemplate('dashboard-manager/demand/creditapp.phtml'); } } foreach ($ssp_feeds as $raw_feed_data) { $raw_feed_data = rawurldecode($raw_feed_data); $ssp_feed_data = \util\AuthHelper::parse_feed_id($raw_feed_data); if ($ssp_feed_data === null) { continue; } $ssp_feed_id = $ssp_feed_data["id"]; $ssp_exchange = $ssp_feed_data["exchange"]; $ssp_feed_id = str_replace('__COLON__', ':', $ssp_feed_id); $ssp_exchange = str_replace('__COLON__', ':', $ssp_exchange); $ssp_feed_description = $ssp_feed_data["description"]; if (!$this->is_super_admin) { $authorized = \util\AuthHelper::domain_user_authorized_ssp_passthru($this->auth->getUserID(), $ssp_feed_id); if (!$authorized) { die("You are not authorized to add inventory from SSP RTB Channel: " . $ssp_feed_id . ' - ' . $ssp_feed_description . " <br />Please contact an administrator for more information."); } } $params = array(); $params["SspPublisherChannelID"] = $ssp_feed_id; $_SspRtbChannelToInsertionOrderLineItemPreview = $SspRtbChannelToInsertionOrderLineItemPreviewFactory->get_row($params); $SspRtbChannelToInsertionOrderLineItemPreview = new \model\SspRtbChannelToInsertionOrderLineItemPreview(); if ($_SspRtbChannelToInsertionOrderLineItemPreview != null) { $SspRtbChannelToInsertionOrderLineItemPreview->SspRtbChannelToInsertionOrderLineItemPreviewID = $_SspRtbChannelToInsertionOrderLineItemPreview->SspRtbChannelToInsertionOrderLineItemPreviewID; } $SspRtbChannelToInsertionOrderLineItemPreview->SspPublisherChannelID = $ssp_feed_id; $SspRtbChannelToInsertionOrderLineItemPreview->SspPublisherChannelDescription = $ssp_feed_description; $SspRtbChannelToInsertionOrderLineItemPreview->SspExchange = $ssp_exchange; $SspRtbChannelToInsertionOrderLineItemPreview->InsertionOrderLineItemPreviewID = $banner_preview_id; $SspRtbChannelToInsertionOrderLineItemPreview->Enabled = 1; $SspRtbChannelToInsertionOrderLineItemPreviewFactory->saveSspRtbChannelToInsertionOrderLineItemPreview($SspRtbChannelToInsertionOrderLineItemPreview); } $refresh_url = "/private-exchange/viewlineitem/" . $BannerPreview->InsertionOrderPreviewID . "?ispreview=true"; $viewModel = new ViewModel(array('refresh_url' => $refresh_url)); return $viewModel->setTemplate('dashboard-manager/demand/interstitial.phtml'); }
public static function domain_user_authorized_publisher_website($parent_id, $publisher_website_id) { $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $params = array(); $params["PublisherWebsiteID"] = $publisher_website_id; $PublisherWebsite = $PublisherWebsiteFactory->get_row($params); if (!\util\AuthHelper::domain_user_authorized_publisher($parent_id, $PublisherWebsite->DomainOwnerID)) { die("You are not authorized to perform this action: CODE 101"); } return true; }
private function add_publisher_website_request_params($config, &$banner_request, &$PublisherAdZone) { $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $params = array(); $params["PublisherWebsiteID"] = $PublisherAdZone->PublisherWebsiteID; $PublisherWebsite = $PublisherWebsiteFactory->get_row_cached($config, $params); if ($PublisherWebsite == null) { return; } $banner_request["WebDomain"] = $PublisherWebsite->WebDomain; $banner_request["iab_category"] = array($PublisherWebsite->IABCategory); $banner_request["iab_sub_category"] = array($PublisherWebsite->IABSubCategory); $banner_request["website_name"] = $PublisherWebsite->Description; if (!isset($banner_request["org_tld"]) || $banner_request["org_tld"] == null) { $banner_request["org_tld"] = $PublisherWebsite->WebDomain; } }
/** * Show the editing of a domain and process it. * * @return multitype:string \DashboardManager\model\PublisherWebsite |multitype:Ambigous <NULL, string> \DashboardManager\model\PublisherWebsite */ public function editdomainAction() { $error_message = null; $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $editResultObj = new \model\PublisherWebsite(); $needed_input = array('WebDomain', 'Description'); // Check to make sure the value is valid to begin with. $PublisherWebsiteID = intval($this->params()->fromRoute('param1', 0)); if ($PublisherWebsiteID > 0) { // Only modify entries that belong to the user. $parameters = array("PublisherWebsiteID" => $PublisherWebsiteID, "DomainOwnerID" => $this->PublisherInfoID); $editResultObj = $PublisherWebsiteFactory->get_row_object($parameters); $request = $this->getRequest(); // Check to make sure this entry exists for editing and make sure the user owns this entry. // Prevent the display of entries that the user does not own or have access. if (intval($editResultObj->PublisherWebsiteID) == $PublisherWebsiteID && $editResultObj->DomainOwnerID == $this->PublisherInfoID) { if ($request->isPost()) { $validate = $this->validateInput($needed_input, false); if ($validate && $editResultObj->DomainOwnerID == $this->PublisherInfoID) { $web_domain = $request->getPost("WebDomain"); $description = $request->getPost("Description"); $iab_category = $request->getPost("IABCategory"); // Check if an entry exists with the same name. A NULL means there is no duplicate. //if ($PublisherWebsiteFactory->get_row(array("WebDomain" => $web_domain)) === null): $editResultObj->WebDomain = $web_domain; $editResultObj->Description = $description; $editResultObj->IABCategory = $iab_category; try { $PublisherWebsiteFactory->save_domain($editResultObj); return $this->redirect()->toRoute('publisher'); } catch (\Zend\Db\Adapter\Exception\InvalidQueryException $e) { $error_msg = "ERROR: A database error has occurred, please contact customer service."; } //else: //$error_msg = "ERROR: A duplicate Web Domain may exist. Please try another."; // endif; } else { $error_message = "ERROR: Required fields are not filled in or invalid input."; } } // Valid entry, show edit. } else { $error_message = "ERROR: The specified domain entry ID was not found or you do not have permission to edit this entry."; return $this->redirect()->toRoute('publisher'); } } else { $error_message = "An invalid domain entry ID was provided."; return $this->redirect()->toRoute('publisher'); } return array('error_message' => $error_message, 'is_admin' => $this->is_admin, 'user_id_list' => $this->user_id_list_publisher, 'effective_id' => $this->auth->getEffectiveIdentityID(), 'impersonate_id' => $this->ImpersonateID, 'true_user_name' => $this->true_user_name, 'editResultObj' => $editResultObj, 'vertical_map' => \util\DeliveryFilterOptions::$vertical_map, 'dashboard_view' => 'publisher', 'user_identity' => $this->identity(), 'header_title' => 'Edit Domain'); }
public function privateexchangeAction() { $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } $PrivateExchangeRtbChannelDailyStatsRollUpPxFilterFactory = \_factory\PrivateExchangeRtbChannelDailyStatsRollUpPxFilter::get_instance(); $params = array(); if ($this->auth->isSuperAdmin($this->config_handle)) { $params["ParentID"] = $this->auth->getEffectiveIdentityID(); } else { $params["ParentID"] = $this->auth->getUserID(); } $PrivateExchangeRtbChannelDailyStatsRollUpPxFilterList = $PrivateExchangeRtbChannelDailyStatsRollUpPxFilterFactory->get($params); $insertion_order_id = $this->getRequest()->getQuery('insertion-order-id'); if ($insertion_order_id != null) { $insertion_order_id = intval($insertion_order_id); $markup_rate = \util\Markup::getMarkupRateByInsertionOrderIDAndUserID($insertion_order_id, $this->auth->getEffectiveIdentityID(), $this->config_handle); } else { $user_markup = \util\Markup::getMarkupForUser($this->auth->getEffectiveIdentityID(), $this->config_handle, false); if ($user_markup != null) { $markup_rate = $user_markup->MarkupRate; } else { $markup_rate = $this->config_handle['system']['default_demand_markup_rate']; } } $data = array(); $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); foreach ($PrivateExchangeRtbChannelDailyStatsRollUpPxFilterList as $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter) { $site_id = $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->PublisherWebsiteID; $site_name = $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->RtbChannelSiteName; if (strlen($site_name) > 20) { $site_name = substr($site_name, 0, 20) . '…'; } $publisher_name = $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->PublisherName; if (strlen($publisher_name) > 20) { $publisher_name = substr($publisher_name, 0, 20) . '…'; } $label_name = $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->WebDomain . " - " . $site_name . " - " . $publisher_name; $adusted_floor_price = ""; if ($PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->BidFloor) { $floor_price = floatval($PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->BidFloor); $params = array(); $params["PublisherWebsiteID"] = $site_id; $PublisherWebsite = $PublisherWebsiteFactory->get_row_cached($this->config_handle, $params); if ($PublisherWebsite == null) { continue; } // floor should be marked up by the private exchange domain admin rate for this publisher and website $px_markup_rate_for_publisher = \util\Markup::getPrivateExchangePublisherMarkupRate($site_id, $PublisherWebsite->DomainOwnerID, $this->config_handle); $mark_up = $floor_price * floatval($px_markup_rate_for_publisher); $adusted_floor_price = floatval($floor_price) + floatval($mark_up); // floor should be marked up by the global exchange rate for this publisher and website $exchange_markup_rate_for_publisher = \util\Markup::getPublisherMarkupRate($site_id, $PublisherWebsite->DomainOwnerID, $this->config_handle); $mark_up = $adusted_floor_price * floatval($exchange_markup_rate_for_publisher); $adusted_floor_price = floatval($adusted_floor_price) + floatval($mark_up); // floor should be marked up by the IO markup rate // Approximation: actual implementation is mark-down in buyrtb\workflows\OpenRTBWorkflow $mark_up = $adusted_floor_price * floatval($markup_rate); $adusted_floor_price = floatval($adusted_floor_price) + floatval($mark_up); $adusted_floor_price = sprintf("%1.2f", $adusted_floor_price); } $row = array(" " => '<input type="checkbox" labelname="' . rawurlencode($label_name) . '" class="ckssp" name="ckssp[]" value="' . rawurlencode($PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->PublisherWebsiteID . '::' . $label_name) . '" />', "Site ID" => $site_id, "Domain" => $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->WebDomain, "Name" => $site_name, "IAB Cat" => $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->IABCategory, "Daily Imps" => number_format($PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->ImpressionsOfferedCounter), "Average CPM" => $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->BidTotalAverage, "Floor" => $adusted_floor_price, "Exchange" => $PrivateExchangeRtbChannelDailyStatsRollUpPxFilter->BuySidePartnerName); $data[] = $row; } $this->setJsonHeader(); return $this->getResponse()->setContent(json_encode(array("data" => $data))); }
public function listAction() { $initialized = $this->initialize(); if ($initialized !== true) { return $initialized; } if (!$this->auth->hasIdentity()) { return $this->redirect()->toRoute('login'); } elseif (!$this->is_super_admin) { return $this->redirect()->toRoute('publisher'); } $publisher_id = intval($this->params()->fromRoute('param1', 0)); $PublisherWebsiteFactory = \_factory\PublisherWebsite::get_instance(); $PublisherInfoFactory = \_factory\PublisherInfo::get_instance(); $orders = 'DateCreated DESC'; $params = array(); $params["DomainOwnerID"] = $publisher_id; $pending_list = $PublisherWebsiteFactory->get($params, $orders); $view = new ViewModel(array('dashboard_view' => 'account', 'pending_list' => $pending_list, 'PublisherInfoFactory' => $PublisherInfoFactory, 'vertical_map' => \util\DeliveryFilterOptions::$vertical_map, 'user_id_list' => $this->user_id_list, 'user_identity' => $this->identity(), 'true_user_name' => $this->auth->getUserName(), 'header_title' => 'Websites', 'is_super_admin' => $this->is_super_admin, 'effective_id' => $this->auth->getEffectiveIdentityID(), 'impersonate_id' => $this->ImpersonateID)); return $view; }