function phpAds_ImageDuplicate($storagetype, $name) { global $phpAds_config; // Strip existing path $name = basename($name); if ($storagetype == 'web') { if ($phpAds_config['type_web_mode'] == 0) { // Local mode $duplicate = phpAds_LocalUniqueName($name); if (@copy($phpAds_config['type_web_dir'] . "/" . $name, $phpAds_config['type_web_dir'] . "/" . $duplicate)) { $stored_url = $duplicate; } } else { // FTP mode $server = parse_url($phpAds_config['type_web_ftp']); if ($server['path'] != "" && substr($server['path'], 0, 1) == "/") { $server['path'] = substr($server['path'], 1); } if ($server['scheme'] == 'ftp') { $stored_url = phpAds_FTPDuplicate($server, $name); } } } if ($storagetype == 'sql') { if ($buffer = phpAds_ImageRetrieve($storagetype, $name)) { $stored_url = phpAds_ImageStore($storagetype, $name, $buffer); } } if (isset($stored_url) && $stored_url != '') { return $stored_url; } else { return false; } }
function phpAds_ImageStore($type, $name, $buffer, $overwrite = false) { $aConf = $GLOBALS['_MAX']['CONF']; $pref = $GLOBALS['_MAX']['PREF']; // Make name web friendly $name = basename($name); $name = strtolower($name); $name = str_replace(" ", "_", $name); $name = str_replace("'", "", $name); $extension = substr($name, strrpos($name, ".")); if ($type == 'web') { $filename = phpAds_LocalUniqueName($buffer, $extension); if ($aConf['store']['mode'] == 'ftp') { // FTP mode $server = array(); $server['host'] = $aConf['store']['ftpHost']; $server['path'] = $aConf['store']['ftpPath']; if ($server['path'] != "" && substr($server['path'], 0, 1) == "/") { $server['path'] = substr($server['path'], 1); } $server['user'] = $aConf['store']['ftpUsername']; $server['pass'] = $aConf['store']['ftpPassword']; $server['passiv'] = !empty($aConf['store']['ftpPassive']); $stored_url = phpAds_FTPStore($server, $filename, $buffer, true); } else { // Local mode, get the unique filename $filename = phpAds_LocalUniqueName($buffer, $extension); // Doe the file exist already? if (@file_exists($aConf['store']['webDir'] . "/" . $filename) == false) { // Write the file if ($fp = @fopen($aConf['store']['webDir'] . "/" . $filename, 'wb')) { @fwrite($fp, $buffer); @fclose($fp); $stored_url = $filename; } } else { $stored_url = $filename; } } } if ($type == 'sql') { // Look for existing image. $doImages = OA_Dal::staticGetDO('images', $name); if ($doImages) { $doImages->contents = DB_DataObject_Cast::blob($buffer); if ($overwrite == false) { $name = $doImages->getUniqueFileNameForDuplication(); $doImages->filename = $name; $doImages->insert(); } else { $doImages->filename = $name; $doImages->update(); } } else { $doImages = OA_Dal::factoryDO('images'); $doImages->filename = $name; $doImages->contents = DB_DataObject_Cast::blob($buffer); $doImages->insert(); } $stored_url = $name; } if (isset($stored_url) && $stored_url != '') { return $stored_url; } else { return false; } }
// Prepare the parameters $parameters_complete = array(); foreach ($parameters as $key => $val) { if (isset($overwrite_source) && $overwrite_source[$val] != '') { $overwrite_link[$val] .= '|source:' . $overwrite_source[$val]; } $parameters_complete[$key] = array('link' => $overwrite_link[$val], 'tar' => $overwrite_target[$val]); } $parameters = array('swf' => $parameters_complete); } else { $parameters = ''; } $row['pluginversion'] = phpAds_SWFVersion($result); $row['htmltemplate'] = $row['htmltemplate']; $extension = substr($row['filename'], strrpos($row['filename'], ".")); $row['filename'] = phpAds_LocalUniqueName($result, $extension); // Store the HTML Template $doBanners = OA_Dal::factoryDO('banners'); $doBanners->get($bannerid); $doBanners->filename = $row['filename']; $doBanners->url = $row['url']; $doBanners->target = $row['target']; $doBanners->pluginversion = $row['pluginversion']; $doBanners->htmltemplate = $row['htmltemplate']; $doBanners->parameters = empty($parameters) ? null : serialize($parameters); $doBanners->update(); // Store the banner phpAds_ImageStore($row['storagetype'], $row['filename'], $result, true); // Rebuild cache // require_once MAX_PATH . '/lib/max/deliverycache/cache-'.$conf['delivery']['cache'].'.inc.php'; // phpAds_cacheDelete();