shortName;
if (file_exists(ADVMAN_TEMPLATE_PATH . "/{$name}/{$shortName}.php")) {
include_once(ADVMAN_TEMPLATE_PATH . "/{$name}/{$shortName}.php");
$className = "Template_{$name}_{$shortName}";
}
}
if (empty($className)) {
include_once(ADVMAN_TEMPLATE_PATH . "/{$name}.php");
$className = "Template_{$name}";
}
return new $className;
}
function sort($ads)
{
uasort($ads, array('OX_Tools', '_sort_by_class'));
return $ads;
}
function _sort_by_class($a,$b)
{
return strcmp(get_class($a), get_class($b));
}
function sanitize_number($number)
{
return preg_replace('/[^0-9\.\-]/i', '', $number);
}
function sanitize_format($number)
{
if (strtolower($number) == 'custom') {
return $number;
}
return preg_replace('/[^0-9x]/i', '', $number);
}
function sanitize_key($string)
{
if (is_array($string)) {
$a = array();
foreach ($string as $n => $str) {
$a[$n] = OX_Tools::sanitize_key($str);
}
return $a;
}
return preg_replace('/[^0-9a-z\_\-]/i', '', $string);
}
function get_last_edit($ad)
{
$last_user = __('Unknown', 'advman');
$last_timestamp = 0;
$revisions = $ad->get('revisions');
if (!empty($revisions)) {
foreach($revisions as $t => $u) {
$last_user = $u;
$last_timestamp = $t;
break; // just get first one - the array is sorted by reverse date
}
}
return array($last_user, $last_timestamp);
}
function add_revision($revisions = null)
{
// Get the user login information
global $user_login;
get_currentuserinfo();
// If there is no revisions, use my own revisions
if (!is_array($revisions)) {
$revisions = array();
}
// Deal with revisions
$r = array();
$now = mktime();
$r[$now] = $user_login;
// Get rid of revisions more than 30 days old
if (!empty($revisions)) {
foreach ($revisions as $ts => $user) {
$days = (strtotime($now) - strtotime($ts)) / 86400 + 1;
if ($days <= 30) {
$r[$ts] = $user;
}
}
}
krsort($r);
return $r;
}
function post_url($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'post',
'content' => $data
));
if ($optional_headers!== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
//throw new Exception("Problem with $url, $php_errormsg");
return false; // silently fail
}
$response = @stream_get_contents($fp);
if ($response === false) {
//throw new Exception("Problem reading data from $url, $php_errormsg");
return false; //silently fail
}
return $response;
}
function is_data_valid()
{
global $_advman;
// If there is no data (or no readable data), create an initial array
if (empty($_advman['version']) || !is_array($_advman['ads'])) {
// Build an initial array
$_advman = array();
$_advman['ads'] = array();
$_advman['next_ad_id'] = 1;
$_advman['default-ad'] = '';
$_advman['version'] = ADVMAN_VERSION;
$_advman['uuid'] = $viewerId = md5(uniqid('', true));
// If there is no Advertising Manager data, check to see if we can import from Adsense Deluxe
$deluxe = get_option('acmetech_adsensedeluxe');
if (is_array($deluxe)) {
advman::add_notice('upgrade adsense-deluxe',__('Advertising Manager has detected a previous installation of Adsense Deluxe. Import settings?'),'yn');
}
update_option('plugin_adsensem', $_advman);
}
if (version_compare($_advman['version'], ADVMAN_VERSION, '<')) {
include_once(ADVMAN_PATH . '/class-upgrade.php');
//Backup cycle
$backup = get_option('plugin_adsensem_backup');
$backup[advman::major_version($_advman['version'])] = $_advman;
update_option('plugin_adsensem_backup',$backup);
unset($backup);
advman_upgrade::go();
update_option('plugin_adsensem', $_advman);
}
// Remove any notices that Adsense Manager may have put in the mix
if (!empty($_advman['notices'])) {
foreach ($_advman['notices'] as $action => $notice) {
if ( ($action !== 'upgrade adsense-deluxe') && ($action !== 'optimise') && ($action !== 'activate advertising-manager') ) {
unset($_advman['notices'][$action]);
}
}
update_option('plugin_adsensem', $_advman);
}
return true;
}
/**
* This function synchornises with the central server. This will be used to pass ad deals to publishers if publisher choose to accept
*/
function sync()
{
global $_advman;
global $wp_version;
global $user_login;
// for testing...
// $_advman['last-sync'] = 1235710700;
if (!empty($_advman['settings']['openx-sync'])) {
if (empty($_advman['last-sync']) || (mktime(0,0,0) - $_advman['last-sync'] > 0) ) {
// Update that we have already synched the server
$_advman['last-sync'] = mktime(0,0,0);
update_option('plugin_adsensem', $_advman);
get_currentuserinfo();
$params = array(
'p' => 'advman',
'i' => $_advman['uuid'],
'v' => ADVMAN_VERSION,
'w' => $wp_version,
'e' => get_option('admin_email'),
'u' => $user_login,
's' => get_option('siteurl'),
);
$id = base64_encode(serialize($params));
$url = 'http://code.openx.org/sync.php?id=' . $id;
// $url = 'http://localhost:8888/wordpress.27/wp-content/plugins/advertising-manager/sync.php?XDEBUG_SESSION_START=' . time() . '&id=' . $id;
$data = @file_get_contents($url);
// $data = OX_Tools::post_url();
}
}
}
}
?>