Example #1
0
 /**
  * This method modifies an existing banner. Undefined fields do not change
  * and defined fields with a NULL value also remain unchanged.
  *
  * @access public
  *
  * @param OA_Dll_BannerInfo &$oBanner <br />
  *          <b>For adding</b><br />
  *          <b>Required properties:</b> campaignId<br />
  *          <b>Optional properties:</b> bannerName, storageType, imageURL, htmlTemplate, width, height, weight, url, alt<br />
  *
  *          <b>For modify</b><br />
  *          <b>Required properties:</b> bannerId<br />
  *          <b>Optional properties:</b> campaignId, bannerName, storageType, imageURL, htmlTemplate, width, height, weight, url, altText<br />
  *
  * @return boolean  True if the operation was successful
  *
  */
 function modify(&$oBanner)
 {
     if (!isset($oBanner->bannerId)) {
         // Add
         $oBanner->setDefaultForAdd();
         if (!$this->checkPermissions($this->aAllowAdvertiserAndAbovePerm, 'campaigns', $oBanner->campaignId, OA_PERM_BANNER_EDIT)) {
             return false;
         }
     } else {
         // Edit
         if (!$this->checkPermissions($this->aAllowAdvertiserAndAbovePerm, 'banners', $oBanner->bannerId, OA_PERM_BANNER_EDIT)) {
             return false;
         }
     }
     $bannerData = (array) $oBanner;
     // Name
     $bannerData['bannerid'] = $oBanner->bannerId;
     $bannerData['campaignid'] = $oBanner->campaignId;
     $bannerData['description'] = $oBanner->bannerName;
     $bannerData['storagetype'] = $oBanner->storageType;
     $bannerData['imageurl'] = $oBanner->imageURL;
     $bannerData['htmltemplate'] = $oBanner->htmlTemplate;
     $bannerData['alt'] = $oBanner->alt;
     $bannerData['capping'] = $oBanner->capping > 0 ? $oBanner->capping : 0;
     $bannerData['session_capping'] = $oBanner->sessionCapping > 0 ? $oBanner->sessionCapping : 0;
     $bannerData['block'] = $oBanner->block > 0 ? $oBanner->block : 0;
     if ($this->_validate($oBanner)) {
         $bannerData['storagetype'] = $oBanner->storageType;
         switch ($bannerData['storagetype']) {
             case 'html':
                 $bannerData['contenttype'] = $bannerData['storagetype'];
                 $bannerData['bannertext'] = $oBanner->bannerText;
                 $bannerData['ext_bannertype'] = 'bannerTypeHtml:oxHtml:genericHtml';
                 break;
             case 'txt':
                 $bannerData['contenttype'] = $bannerData['storagetype'];
                 $bannerData['bannertext'] = $oBanner->bannerText;
                 $bannerData['ext_bannertype'] = 'bannerTypeText:oxText:genericText';
                 break;
             case 'sql':
             case 'web':
                 if (!empty($oBanner->aImage)) {
                     // Hardcoded link conversion
                     $bannerData['parameters'] = '';
                     if ($this->oImage->contentType == 'swf' && !empty($oBanner->aImage['editswf'])) {
                         $aLinks = array_keys($this->oImage->hardcodedLinks);
                         list($result, $params) = phpAds_SWFConvert($this->oImage->content, true, $aLinks);
                         if ($result != $this->oImage->content) {
                             $this->oImage->content = $result;
                             $bannerData['parameters'] = array('swf' => array());
                             foreach ($params as $key) {
                                 $bannerData['parameters']['swf'][$key] = array('link' => $this->oImage->hardcodedLinks[$key][0], 'tar' => $this->oImage->hardcodedLinks[$key][1]);
                             }
                             $bannerData['parameters'] = serialize($bannerData['parameters']);
                             $bannerData['url'] = $this->oImage->hardcodedLinks[1][0];
                             $bannerData['target'] = $this->oImage->hardcodedLinks[1][1];
                         }
                     }
                     $this->oImage->store($bannerData['storagetype']);
                     $bannerData['contenttype'] = $this->oImage->contentType;
                     $bannerData['filename'] = $this->oImage->fileName;
                     $bannerData['width'] = $this->oImage->width;
                     $bannerData['height'] = $this->oImage->height;
                 }
                 if (!empty($oBanner->aBackupImage)) {
                     if (isset($this->oBackupImage)) {
                         $this->oBackupImage->store($bannerData['storagetype']);
                         $bannerData['alt_contenttype'] = $this->oBackupImage->contentType;
                         $bannerData['alt_filename'] = $this->oBackupImage->fileName;
                     } elseif (!isset($oBanner->aBackupImage['filename'])) {
                         $bannerData['alt_contenttype'] = '';
                         $bannerData['alt_filename'] = '';
                     }
                 }
                 break;
             case 'url':
                 $bannerData['contenttype'] = OA_Creative_File::staticGetContentTypeByExtension($oBanner->imageURL);
                 break;
         }
         $doBanner = OA_Dal::factoryDO('banners');
         if (!isset($bannerData['bannerId'])) {
             $doBanner->setFrom($bannerData);
             $oBanner->bannerId = $doBanner->insert();
         } else {
             $doBanner->get($bannerData['bannerId']);
             $doBanner->setFrom($bannerData);
             $doBanner->update();
         }
         return true;
     } else {
         return false;
     }
 }
 if ($swf_file) {
     if (phpAds_SWFVersion($swf_file) >= 3 && phpAds_SWFInfo($swf_file)) {
         if (phpAds_SWFVersion($swf_file) >= 6 && phpAds_SWFCompressed($swf_file)) {
             $compress = true;
         } else {
             // Compress the converted file
             if (isset($compress)) {
                 $compress = true;
             } else {
                 $compress = false;
             }
         }
         if (!isset($convert_links)) {
             $convert_links = array();
         }
         list($result, $parameters) = phpAds_SWFConvert($swf_file, $compress, $convert_links);
         if ($result != $swf_file) {
             // Reload template to be sure it can be updated
             $row['htmltemplate'] = phpAds_getBannerTemplate('swf');
             if (count($parameters) > 0) {
                 // Set default link
                 $row['url'] = $overwrite_link[$chosen_link];
                 $row['target'] = $overwrite_target[$chosen_link];
                 // Prepare the parameters
                 $parameters_complete = array();
                 while (list($key, $val) = each($parameters)) {
                     if (isset($overwrite_source) && $overwrite_source[$val] != '') {
                         $overwrite_link[$val] .= '|source:' . $overwrite_source[$val];
                     }
                     $parameters_complete[] = 'alink' . $key . '={targeturl:' . $overwrite_link[$val] . '}&amp;atar' . $key . '=' . $overwrite_target[$val];
                 }