/** * 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] . '}&atar' . $key . '=' . $overwrite_target[$val]; }