PageRenderTime 49ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/www/admin/plugins/zpBannerDesigner/banner-designer.php

http://openx-banner-creator.googlecode.com/
PHP | 174 lines | 134 code | 32 blank | 8 comment | 24 complexity | ca80c50abda5cadd70c7e207da45b1ad MD5 | raw file
  1. <?php
  2. require_once '../../../../init.php';
  3. require_once '../../config.php';
  4. require_once MAX_PATH . '/lib/OA/Admin/TemplatePlugin.php';
  5. require_once MAX_PATH . '/lib/OA/Admin/UI/component/Form.php';
  6. require_once('lib/common.php');
  7. $admin_ui = OA_Admin_UI::getInstance();
  8. $admin_ui->registerStylesheetFile(MAX::constructURL(MAX_URL_ADMIN, 'plugins/zpBannerDesigner/css/colorpicker.css'));
  9. $admin_ui->registerStylesheetFile(MAX::constructURL(MAX_URL_ADMIN, 'plugins/zpBannerDesigner/css/zp-style.css'));
  10. phpAds_registerGlobalUnslashed('bannerid', 'campaignid', 'clientid', 'ajax', 'size', 'keywords', 'qty', 'template_id', 'image_url', 'description', 'type');
  11. OA_Permission::enforceAccount(OA_ACCOUNT_MANAGER, OA_ACCOUNT_ADVERTISER);
  12. if (isset($ajax)) {
  13. if ($ajax === 'search')
  14. echo search_ajax_request($keywords, $size, $qty);
  15. elseif ($ajax === 'form')
  16. echo form_ajax_request($template_id);
  17. elseif ($ajax === 'preview')
  18. echo preview_ajax_request($template_id);
  19. elseif ($ajax === 'save-image')
  20. echo save_ajax_request($bannerid, $campaignid, $clientid, $image_url, $template_id, $description, $type);
  21. return;
  22. }
  23. //get advertisers and set the current one
  24. $aAdvertisers = getAdvertiserMap();
  25. if (empty($clientid)) { //if it's empty
  26. $campaignid = null; //reset campaign id, we could derive it after we have clientid
  27. if ($session['prefs']['inventory_entities'][OA_Permission::getEntityId()]['clientid']) {
  28. //try previous one from session
  29. $sessionClientId = $session['prefs']['inventory_entities'][OA_Permission::getEntityId()]['clientid'];
  30. if (isset($aAdvertisers[$sessionClientId])) { //check if 'id' from session was not removed
  31. $clientid = $sessionClientId;
  32. }
  33. }
  34. if (empty($clientid)) { //was empty, is still empty - just pick one, no need for redirect
  35. $ids = array_keys($aAdvertisers);
  36. if (!empty($ids)) {
  37. $clientid = $ids[0];
  38. }
  39. else {
  40. $clientid = -1; //if no advertisers set to non-existent id
  41. $campaignid = -1; //also reset campaign id
  42. }
  43. }
  44. }
  45. else {
  46. if (!isset($aAdvertisers[$clientid])) {
  47. $page = basename($_SERVER['PHP_SELF']);
  48. OX_Admin_Redirect::redirect($page);
  49. }
  50. }
  51. //get campaigns - if there was any client id derived
  52. if ($clientid > 0) {
  53. $aCampaigns = getCampaignMap($clientid);
  54. if (empty($campaignid)) { //if it's empty
  55. if ($session['prefs']['inventory_entities'][OA_Permission::getEntityId()]['campaignid'][$clientid]) {
  56. //try previous one from session
  57. $sessionCampaignId = $session['prefs']['inventory_entities'][OA_Permission::getEntityId()]['campaignid'][$clientid];
  58. if (isset($aCampaigns[$sessionCampaignId])) { //check if 'id' from session was not removed
  59. $campaignid = $sessionCampaignId;
  60. }
  61. }
  62. if (empty($campaignid)) { //was empty, is still empty - just pick one, no need for redirect
  63. $ids = array_keys($aCampaigns);
  64. $campaignid = !empty($ids) ? $ids[0] : -1; //if no campaigns set to non-existent id
  65. }
  66. }
  67. else {
  68. if (!isset($aCampaigns[$campaignid])) {
  69. $page = basename($_SERVER['PHP_SELF']);
  70. OX_Admin_Redirect::redirect("$page?clientid=$clientid");
  71. }
  72. }
  73. }
  74. OA_Permission::enforceAccessToObject('clients', $clientid);
  75. OA_Permission::enforceAccessToObject('campaigns', $campaignid);
  76. if (OA_Permission::isAccount(OA_ACCOUNT_ADVERTISER)) {
  77. OA_Permission::enforceAllowed(OA_PERM_BANNER_EDIT);
  78. OA_Permission::enforceAccessToObject('banners', $bannerid);
  79. } else
  80. OA_Permission::enforceAccessToObject('banners', $bannerid, true);
  81. $session['prefs']['inventory_entities'][OA_Permission::getEntityId()]['clientid'] = $clientid;
  82. $session['prefs']['inventory_entities'][OA_Permission::getEntityId()]['campaignid'][$clientid] = $campaignid;
  83. phpAds_SessionDataStore();
  84. display_page($bannerid, $campaignid, $clientid);
  85. function display_page($banner_id, $campaign_id, $client_id) {
  86. $page_name = basename($_SERVER['PHP_SELF']);
  87. $entities = array('clientid' => $client_id, 'campaignid' => $campaign_id, 'bannerid' => $banner_id);
  88. $entity_id = OA_Permission::getEntityId();
  89. if (OA_Permission::isAccount(OA_ACCOUNT_ADVERTISER)) {
  90. $entity_type = 'advertiser_id';
  91. } else
  92. $entity_type = 'agency_id';
  93. // Display navigation
  94. $other_campaigns = Admin_DA::getPlacements(array($entity_type => $entity_id));
  95. $other_banners = Admin_DA::getAds(array('placement_id' => $campaign_id), false);
  96. displayNavigationBanner($page_name, $other_campaigns, $other_banners, $entities);
  97. if (!empty($banner_id)) {
  98. $template_id = OA_Dal::factoryDO('Zpbanners')->get_zp_banner_id((int)$banner_id);
  99. $form = explode('|', form_ajax_request($template_id));
  100. }
  101. $template = new OA_Plugin_Template('designer-form.html', 'bannerDesigner');
  102. //$oTpl->debugging = true;
  103. $template->assign('bannerid', $banner_id);
  104. $template->assign('campaignid', $campaign_id);
  105. $template->assign('clientid', $client_id);
  106. $template->assign('template_id', $template_id);
  107. $template->assign('form', $form);
  108. $template->display();
  109. phpAds_PageFooter();
  110. }
  111. function getAdvertiserMap()
  112. {
  113. $doClients = OA_Dal::factoryDO('clients');
  114. // Unless admin, restrict results shown.
  115. if (OA_Permission::isAccount(OA_ACCOUNT_ADVERTISER)) {
  116. $doClients->clientid = OA_Permission::getEntityId();
  117. }
  118. else {
  119. $doClients->agencyid = OA_Permission::getEntityId();
  120. }
  121. $doClients->find();
  122. $aAdvertiserMap = array();
  123. while ($doClients->fetch() && $row = $doClients->toArray()) {
  124. $aAdvertiserMap[$row['clientid']] = array('name' => $row['clientname'],
  125. 'url' => "advertiser-campaigns.php?clientid=".$row['clientid']);
  126. }
  127. return $aAdvertiserMap;
  128. }
  129. function getCampaignMap($advertiserId)
  130. {
  131. $aCampaigns = Admin_DA::getPlacements(array('advertiser_id' => $advertiserId));
  132. $aCampaignMap = array();
  133. foreach ($aCampaigns as $campaignId => $aCampaign) {
  134. $campaignName = $aCampaign['name'];
  135. // mask campaign name if anonymous campaign
  136. $campaign_details = Admin_DA::getPlacement($campaignId);
  137. $campaignName = MAX_getPlacementName($campaign_details);
  138. $aCampaignMap[$campaignId] = array('name' => $campaignName);
  139. }
  140. return $aCampaignMap;
  141. }
  142. ?>