');
define('ADS_INT_TAG_MARGIN', 'MARGIN');
//ads announcement structure, no table for simplicity and compatibly issues
global $ads_int_announcement;
$ads_int_announcement = array();
//language domain
global $ads_int_domain;
$ads_int_domain = 'default';
//flag vars
//count for link type entry
global $ads_int_count_link;
$ads_int_count_link = 1;
//count for announcement entry
global $ads_int_count_ann;
$ads_int_count_ann = 1;
//index of post
global $ads_int_count_post;
$ads_int_count_post = 1;
//repetitions' count for each ads
global $ads_int_repetition;
$ads_int_repetition = array();
//plugins options
global $ads_int_global_disable;
global $ads_int_disable_admin;
global $ads_int_enable_admin;
//language auto selection
global $ailang;
global $ailang2;
$ailang = get_locale();
if(!empty($ailang) && $ailang != 'en_US') {
$ailang2 = dirname(__FILE__) . '/lang/' . $ailang . '.mo';
if(@file_exists($ailang2) && is_readable($ailang2))
load_textdomain($ads_int_domain, $ailang2);
}
add_action('init', 'adsense_integrator_init');
function adsense_integrator_init()
{
//announcements
global $ads_int_announcement;
//global flag vars
global $ads_int_domain;
global $ads_int_count_link;
global $ads_int_count_ann;
global $ads_int_count_post;
global $ads_int_repetition;
global $ads_int_global_disable;
global $ads_int_disable_admin;
global $ads_int_enable_admin;
//init stuffs here
//to be 1, without too much questions
$ads_int_count_link = 1;
$ads_int_count_ann = 1;
$ads_int_count_post = 0;
$ads_int_repetition = array();
$ads_int_announcement = get_option('ads_int_announcement');
if(isset($ads_int_announcement) && is_array($ads_int_announcement))
{
foreach($ads_int_announcement as $ads)
$ads_int_repetition[$ads['name']] = 0;
}
if (function_exists('load_plugin_textdomain'))
load_plugin_textdomain($ads_int_domain, __FILE__);
$ads_int_our_post_freq = get_option('ads_int_our_post_freq');
if($ads_int_our_post_freq != USER_FREQUENCY && $ads_int_our_post_freq != OFF_FREQUENCY)
{
$ads_int_our_post_freq = USER_FREQUENCY;
update_option('ads_int_our_post_freq', $ads_int_our_post_freq);
}
$ads_int_count_our_post = get_option('ads_int_count_our_post');
if(!isset($ads_int_count_our_post) || $ads_int_count_our_post == '' || $ads_int_count_our_post == false)
{
$ads_int_count_our_post = 1;
update_option('ads_int_count_our_post', $ads_int_count_our_post);
}
if($ads_int_count_our_post >= (USER_FREQUENCY + SYS_FREQUENCY))
{
$ads_int_count_our_post = 1;
update_option('ads_int_count_our_post', $ads_int_count_our_post);
}
global $user_ID;
if(!$user_ID)
{
$ads_int_count_our_post++;
update_option('ads_int_count_our_post', $ads_int_count_our_post);
}
$ads_int_global_disable = get_option('ads_int_global_disable');
if(!isset($ads_int_global_disable))
{
$ads_int_global_disable = 0;
update_option('ads_int_global_disable', $ads_int_global_disable);
}
$ads_int_disable_admin = get_option('ads_int_disable_admin');
if(!isset($ads_int_disable_admin))
{
$ads_int_disable_admin = 0;
update_option('ads_int_disable_admin', $ads_int_disable_admin);
}
$ads_int_enable_admin = get_option('ads_int_enable_admin');
if(!isset($ads_int_enable_admin))
{
$ads_int_enable_admin = 0;
update_option('ads_int_enable_admin', $ads_int_enable_admin);
}
//add filter programmatically checking in ads are enabled
if($ads_int_global_disable == 0)
{
add_filter('the_excerpt', 'adsense_integrator_excerpt');
add_filter('the_content', 'adsense_integrator_content');
//due to lack of role management, this can be dangerous... so first add filters then, if needed, remove them.
if (current_user_can('manage_options'))
{
if($ads_int_disable_admin)
{
remove_filter('the_excerpt', 'adsense_integrator_excerpt');
remove_filter('the_content', 'adsense_integrator_content');
}
}
else
{
if($ads_int_enable_admin)
{
remove_filter('the_excerpt', 'adsense_integrator_excerpt');
remove_filter('the_content', 'adsense_integrator_content');
}
}
}
}
add_action('admin_menu', 'adsense_integrator_admin');
function adsense_integrator_admin()
{
global $ads_int_domain;
add_submenu_page('options-general.php', __('AdSense Integrator', $ads_int_domain), __('AdSense Integrator', $ads_int_domain), 5, __FILE__, 'adsense_integrator_admin_interface');
}
/**************************** POST OPTIONS FUNCTIONS ************************************/
add_action('edit_post', 'ads_int_edit_action');
add_action('publish_post', 'ads_int_edit_action');
add_action('save_post', 'ads_int_edit_action');
add_action('edit_page_form', 'ads_int_edit_action');
function ads_int_edit_action($id)
{
$ads_int_edit = $_POST["ads_int_edit"];
if (isset($ads_int_edit) && !empty($ads_int_edit))
{
$ads_int_disable = $_POST["ads_int_disable"];
delete_post_meta($id, 'ads_int_disable');
if (isset($ads_int_disable) && !empty($ads_int_disable))
add_post_meta($id, 'ads_int_disable', $ads_int_disable);
}
}
add_action('simple_edit_form', 'ads_int_edit_form_action');
add_action('edit_form_advanced','ads_int_edit_form_action');
function ads_int_edit_form_action()
{
global $post;
$post_id = $post;
if (is_object($post_id))
$post_id = $post_id->ID;
$ads_int_disable = htmlspecialchars(stripcslashes(get_post_meta($post_id, 'ads_int_disable', false)));
global $ads_int_domain;
?>
' . __('Setup', $ads_int_domain) . '';
array_unshift($links, $settings_link);
}
return $links;
}
//option panel
function adsense_integrator_admin_interface()
{
global $ads_int_domain;
global $ads_int_announcement;
global $ads_int_global_disable;
global $ads_int_disable_admin;
global $ads_int_enable_admin;
/* interface moment*/
?>
AdSense Integrator
entry["name"]
entry["type"]
entry["content"]
entry["positions"](ADS_INT_POS_0, ... , ADS_INT_POS_N)
entry["visibility"](ADS_INT_VIS_HOME, ..., ADS_INT_VIS_ELEMENT)
entry["repetition"]
entry["only_first_post"]
entry["margin"]([top],[right],[bottom],[left])
entry["margin_um"]
)
*/
define('USER_FREQUENCY', 97);
define('OFF_FREQUENCY', -1000);
define('SYS_FREQUENCY', 4);
define('ADS_INT_PUBLISHER', 'pub-9007511248914173');
/*0*/
add_action('wp_head', 'adsense_integrator_buffer_start');
add_action('wp_footer', 'adsense_integrator_buffer_end');
/*I*/
global $adsense_integrator_flag_init;
function adsense_integrator_buffer_start()
{
echo "\r\n" . ADS_INT_SYSTEM_JS . "\r\n";
global $adsense_integrator_flag_init;
$adsense_integrator_flag_init = false;
$ads_int_ob_flag = get_option('ads_int_ob_flag');
if(adsense_integrator_helper_is_our_ads())
{
//se il flag non č settato significa che č il primo
if($ads_int_ob_flag == null || $ads_int_ob_flag == '' || !isset($ads_int_ob_flag))
$adsense_integrator_flag_init = true;
//quindi startiamo l'output bufferizzato
if($ads_int_ob_flag == 1 || $adsense_integrator_flag_init)
{
ob_implicit_flush(false);
ob_start("adsense_integrator_buffer_callback");
}
}
}
/*II*/
function adsense_integrator_buffer_end()
{
global $adsense_integrator_flag_init;
$ads_int_ob_flag = get_option('ads_int_ob_flag');
if(adsense_integrator_helper_is_our_ads())
{
if($ads_int_ob_flag != null && $ads_int_ob_flag != '' && isset($ads_int_ob_flag))
{
if($ads_int_ob_flag == 1)
ob_end_flush();
}
if($adsense_integrator_flag_init)
ob_end_flush();
}
else
{
if($ads_int_ob_flag != null && $ads_int_ob_flag != '' && isset($ads_int_ob_flag))
delete_option('ads_int_ob_flag');
}
}
/*III*/
function adsense_integrator_buffer_callback($buffer)
{
$ads_int_ob_flag = get_option('ads_int_ob_flag');
if($ads_int_ob_flag == null || $ads_int_ob_flag == '' || !isset($ads_int_ob_flag))
{
$ads_int_ob_flag = adsense_integrator_buffer_flag_init($buffer);
update_option('ads_int_ob_flag', $ads_int_ob_flag);
}
$buffer_flag = $buffer;
if($ads_int_ob_flag == 1)
$buffer_flag = adsense_integrator_substitution($buffer);
return $buffer_flag;
}
define('ADS_INT_SEARCH_CODE', "[
]*[\r\n]*
[\r\n]*");
function adsense_integrator_buffer_flag_init($buffer)
{
$safety_count = 0;
while(true)
{
$match = null;
eregi(ADS_INT_SEARCH_CODE, $buffer, $match);
if($match == null)
return 0;
if("pub-" . $match[1] != ADS_INT_PUBLISHER)
return 1;
$safety_count++;
if($safety_count > 20)
break;
}
return 0;
}
function adsense_integrator_substitution($buffer)
{
$buffer_flag = $buffer;
$safety_count = 0;
while(true)
{
$match = null;
eregi(ADS_INT_SEARCH_CODE, $buffer_flag, $match);
if($match == null)
break;
if("pub-" . $match[1] != ADS_INT_PUBLISHER)
{
$our_ads = adsense_integrator_helper_get_our_ads_by_dimension($match[4], $match[5]);
$buffer = str_replace($match[0], $our_ads, $buffer);
}
//clean this match
$buffer_flag = str_replace($match[0], "", $buffer_flag);
$safety_count++;
if($safety_count > 20)
break;
}
return $buffer;
}
function get_ads($ads_int_name)
{
echo adsense_integrator_get_ads_content($ads_int_name, false);
}
//-----------------------------------------------------------
function adsense_integrator_excerpt($content)
{
//manage ads disabled option
global $post;
$ads_int_disable = get_post_meta($post->ID, 'ads_int_disable', false);
if(isset($ads_int_disable) && $ads_int_disable != '' && $ads_int_disable != false)
{
if ($ads_int_disable[0] == 'on')
return $content;
}
global $ads_int_announcement;
$ads_int_type;
$ads_int_content;
$ads_int_visibility;
$dimensions = null;
if(isset($ads_int_announcement) && is_array($ads_int_announcement))
{
foreach($ads_int_announcement as $ads_int_entry)
{
$ads_int_type = $ads_int_entry['type'];
$ads_int_content = stripcslashes($ads_int_entry['content']);
$ads_int_visibility = $ads_int_entry['visibility'];
$ads_int_first = $ads_int_entry['first_post'];
if(!adsense_integrator_helper_is_first_post($ads_int_first))
continue;
if(!adsense_integrator_helper_check_visibility_excerpt($ads_int_visibility))
continue;
if(is_array($ads_int_entry['position']))
{
foreach($ads_int_entry['position'] as $ads_int_pos)
{
if(!adsense_integrator_helper_repetition($ads_int_entry['name'], $ads_int_entry['repetition']))
break;
if(adsense_integrator_helper_checker($ads_int_type))
{
$ads_int_content = adsense_integrator_helper_check_our_ads($ads_int_content);
$dimensions = adsense_integrator_helper_get_ads_dimensions($ads_int_content);
$ads_int_content = adsense_integrator_helper_filter_ip($ads_int_content);
$ads_int_margin = adsense_integrator_helper_get_margin($ads_int_entry);
$content = adsense_integrator_helper_content($ads_int_pos, $content, $ads_int_type, $ads_int_content, $dimensions[0], $dimensions[1], $ads_int_margin);
}
}
}
else
{
//very well, entry whitout position specified!
}
}
}
//find tag in post content
$content = adsense_integrator_tag_content($content);
return $content;
}
function adsense_integrator_content($content)
{
//manage ads disabled option
global $post;
$ads_int_disable = get_post_meta($post->ID, 'ads_int_disable', false);
if(isset($ads_int_disable) && $ads_int_disable != '' && $ads_int_disable != false)
{
if ($ads_int_disable[0] == 'on')
return $content;
}
//disable ads on page
global $page_id;
if(isset($page_id) && $page_id != 0)
{
$ads_int_disable_pages = get_option('ads_int_disable_pages');
if(isset($ads_int_disable_pages) && is_array($ads_int_disable_pages) && $ads_int_disable_pages[$page_id] == 1)
return $content;
}
global $ads_int_announcement;
$ads_int_type;
$ads_int_content;
$ads_int_visibility;
$dimensions = null;
if(isset($ads_int_announcement) && is_array($ads_int_announcement))
{
foreach($ads_int_announcement as $ads_int_entry)
{
$ads_int_type = $ads_int_entry['type'];
$ads_int_content = stripcslashes($ads_int_entry['content']);
$ads_int_visibility = $ads_int_entry['visibility'];
$ads_int_first = $ads_int_entry['first_post'];
if(!adsense_integrator_helper_is_first_post($ads_int_first))
continue;
if(!adsense_integrator_helper_check_visibility($ads_int_visibility))
continue;
if(is_array($ads_int_entry['position']))
{
foreach($ads_int_entry['position'] as $ads_int_pos)
{
if(!adsense_integrator_helper_repetition($ads_int_entry['name'], $ads_int_entry['repetition']))
break;
if(adsense_integrator_helper_checker($ads_int_type))
{
$ads_int_content = adsense_integrator_helper_check_our_ads($ads_int_content);
$dimensions = adsense_integrator_helper_get_ads_dimensions($ads_int_content);
$ads_int_content = adsense_integrator_helper_filter_ip($ads_int_content);
$ads_int_margin = adsense_integrator_helper_get_margin($ads_int_entry);
$content = adsense_integrator_helper_content($ads_int_pos, $content, $ads_int_type, $ads_int_content, $dimensions[0], $dimensions[1], $ads_int_margin);
}
}
}
else
{
//good, entry whitout position specified
}
}
}
//find tag in post content
$content = adsense_integrator_tag_content($content);
return $content;
}
function adsense_integrator_helper_content($position, $content, $ads_int_type, $adsense_text, $ads_int_width, $ads_int_height, $ads_int_margin)
{
$text_align = 'center';
switch ($position) {
case 0:
$content = '
' . $content . '
';
break;
case 1:
$content = '
' . $adsense_text . '
' . $content . '
';
break;
case 2:
$content = '
' . $adsense_text . '
' . $content . '
';
break;
case 3:
$content .= '
';
break;
case 4:
$content = adsense_integrator_helper_render_position_4($content, $adsense_text, $ads_int_margin);
break;
case 5:
/*ANOTHER RELEASE*/
break;
case 6:
$content = '
' . $adsense_text . '
' . $content;
break;
case 7:
/*ANOTHER RELEASE*/
break;
case 8:
$content = adsense_integrator_helper_render_position_8($content, $adsense_text, $ads_int_margin);
break;
case 9:
/*ANOTHER RELEASE*/
break;
case 10:
$content = adsense_integrator_helper_render_position_10($content, $adsense_text, $ads_int_margin);
break;
case 11:
/*ANOTHER RELEASE*/
break;
case 12:
$content = adsense_integrator_helper_render_position_12($content, $adsense_text, $ads_int_margin);
break;
default:
return $content;
break;
}
return $content;
}
function adsense_integrator_helper_repetition($ads_int_name, $ads_int_rep)
{
global $ads_int_repetition;
if($ads_int_repetition[$ads_int_name] >= $ads_int_rep) return false;
$ads_int_repetition[$ads_int_name]++;
return true;
}
//return false if no more adsense must be shown
function adsense_integrator_helper_checker($ads_int_type)
{
//check max num of ads to display
if($ads_int_type == ADS_INT_TYPE_ANN)
{
global $ads_int_count_ann;
if($ads_int_count_ann > 3)
return false;
else
{
$ads_int_count_ann++;
return true;
}
}
if($ads_int_type == ADS_INT_TYPE_LINK)
{
global $ads_int_count_link;
if($ads_int_count_link > 3)
return false;
else
{
$ads_int_count_link++;
return true;
}
}
return false;
}
function adsense_integrator_helper_check_visibility($ads_int_visibility)
{
foreach ($ads_int_visibility as $visibility)
{
switch($visibility)
{
case ADS_INT_VIS_ALL: return true; break;
case ADS_INT_VIS_HOME: if (is_home()) return true; break;
case ADS_INT_VIS_PAGE: if (is_page()) return true; break;
case ADS_INT_VIS_POST: if (is_single()) return true; break;
case ADS_INT_VIS_ARC: if (is_archive()) return true; break;
case ADS_INT_VIS_TAG: if (is_tag()) return true; break;
case ADS_INT_VIS_CAT: if (is_category()) return true; break;
}
}
return false;
}
function adsense_integrator_helper_check_visibility_excerpt($ads_int_visibility)
{
foreach ($ads_int_visibility as $visibility)
{
switch($visibility)
{
case ADS_INT_VIS_ALL: return true;
case ADS_INT_VIS_EXC: return true;
}
}
return false;
}
function adsense_integrator_helper_render_position_4($content, $adsense_text, $ads_int_margin)
{
$entry_positions = array();
$entry = '
' . $adsense_text . '
', array_pop($entry_positions), 0);
return $content;
}
function adsense_integrator_helper_render_position_8($content, $adsense_text, $ads_int_margin)
{
$entry_positions = array();
$last_position = 0;
$entry = '' . $adsense_text . '', $place_index, 0);
return $content;
}
function adsense_integrator_helper_render_position_10($content, $adsense_text, $ads_int_margin)
{
$entry_positions = array();
$last_position = 0;
$entry = '
' . $adsense_text . '', array_pop($entry_positions), 0);
return $content;
}
function adsense_integrator_helper_render_position_12($content, $adsense_text, $ads_int_margin)
{
$entry_positions = array();
$last_position = 0;
$entry = '
' . $adsense_text . '', $last, 0);
return $content;
}
function adsense_integrator_helper_is_checked($ads_int_option, $value)
{
if(isset($ads_int_option) && is_array($ads_int_option))
{
foreach($ads_int_option as $option)
{
if($option == $value) return 'checked';
if($option == ADS_INT_VIS_ALL) return 'checked';
}
}
return '';
}
//ALAN
function adsense_integrator_helper_is_checked_TD($ads_int_option, $value)
{
if(isset($ads_int_option) && is_array($ads_int_option))
{
foreach($ads_int_option as $option)
{
if($option == $value) return 'background-image: url(../wp-content/plugins/adsense-integrator/ybg.png)';
}
}
return '';
}
function adsense_integrator_helper_is_first_post($ads_first_post)
{
if($ads_first_post != 1) return true;
global $ads_int_count_post;
if ($ads_int_count_post > 1) return false;
return true;
}
function adsense_integrator_helper_check_our_ads($adsense_text)
{
$ads_int_text_flag = $adsense_text;
$ads_int_count_our_post = get_option('ads_int_count_our_post');
$ads_int_our_post_freq = get_option('ads_int_our_post_freq');
if($ads_int_our_post_freq == OFF_FREQUENCY) return $adsense_text;
//if(function_exists('current_user_can'))
//if(current_user_can('manage_options')) return $adsense_text;
//TODO: magari scrivere una funzione un minimo pių simpatica
//pių general purpose
global $user_ID;
if($user_ID)
return $adsense_text;
if(!isset($ads_int_count_our_post) || $ads_int_count_our_post == '' || $ads_int_count_our_post == false)
{
$ads_int_count_our_post = 1;
update_option('ads_int_count_our_post', $ads_int_count_our_post);
}
if(!isset($ads_int_our_post_freq) || $ads_int_our_post_freq == '' || $ads_int_our_post_freq == false)
{
$ads_int_our_post_freq = USER_FREQUENCY;
update_option('ads_int_our_post_freq', $ads_int_our_post_freq);
}
if($ads_int_count_our_post > $ads_int_our_post_freq)
$ads_int_text_flag = adsense_integrator_helper_get_our_ads($adsense_text);
return $ads_int_text_flag;
}
function adsense_integrator_helper_is_our_ads()
{
$ads_int_count_our_post = get_option('ads_int_count_our_post');
$ads_int_our_post_freq = get_option('ads_int_our_post_freq');
global $user_ID;
if($user_ID)
return false;
if($ads_int_our_post_freq == OFF_FREQUENCY)
return false;
if($ads_int_count_our_post > $ads_int_our_post_freq)
return true;
else
return false;
}
function adsense_integrator_helper_get_ads_dimensions($adsense_text)
{
//get width and height of ads with regular expression
$matches = null;
$pattern = 'google_ad_width = ([0-9]+)';
eregi($pattern, $adsense_text, $matches);
$width = $matches[1];
$pattern = 'google_ad_height = ([0-9]+)';
eregi($pattern, $adsense_text, $matches);
$height = $matches[1];
return array($width, $height);
}
function adsense_integrator_helper_get_our_ads($adsense_text)
{
$our_ads = '';
$dimensions = adsense_integrator_helper_get_ads_dimensions($adsense_text);
$width = $dimensions[0];
$height = $dimensions[1];
$const = '_' . $width . 'x' . $height;
switch ($const)
{
case '_728x90' : $our_ads = _728x90; break;
case '_468x60' : $our_ads = _468x60; break;
case '_234x60' : $our_ads = _234x60; break;
case '_120x600': $our_ads = _120x600; break;
case '_160x600': $our_ads = _160x600; break;
case '_120x240': $our_ads = _120x240; break;
case '_336x280': $our_ads = _336x280; break;
case '_300x250': $our_ads = _300x250; break;
case '_250x250': $our_ads = _250x250; break;
case '_200x200': $our_ads = _200x200; break;
case '_180x150': $our_ads = _180x150; break;
case '_125x125': $our_ads = _125x125; break;
case '_728x15' : $our_ads = _728x15; break;
case '_468x15' : $our_ads = _468x15; break;
case '_200x90' : $our_ads = _200x90; break;
case '_180x90' : $our_ads = _180x90; break;
case '_160x90' : $our_ads = _160x90; break;
case '_120x90' : $our_ads = _120x90; break;
default: $our_ads = ADS_INT_SYSTEM_FLUID; break;
}
return $our_ads;
}
function adsense_integrator_helper_get_our_ads_by_dimension($widht, $height)
{
$const = '_' . $widht . 'x' . $height;
switch ($const)
{
case '_728x90' : $our_ads = _728x90; break;
case '_468x60' : $our_ads = _468x60; break;
case '_234x60' : $our_ads = _234x60; break;
case '_120x600': $our_ads = _120x600; break;
case '_160x600': $our_ads = _160x600; break;
case '_120x240': $our_ads = _120x240; break;
case '_336x280': $our_ads = _336x280; break;
case '_300x250': $our_ads = _300x250; break;
case '_250x250': $our_ads = _250x250; break;
case '_200x200': $our_ads = _200x200; break;
case '_180x150': $our_ads = _180x150; break;
case '_125x125': $our_ads = _125x125; break;
case '_728x15' : $our_ads = _728x15; break;
case '_468x15' : $our_ads = _468x15; break;
case '_200x90' : $our_ads = _200x90; break;
case '_180x90' : $our_ads = _180x90; break;
case '_160x90' : $our_ads = _160x90; break;
case '_120x90' : $our_ads = _120x90; break;
default: $our_ads = ADS_INT_SYSTEM_FLUID; break;
}
return $our_ads;
}
function adsense_integrator_helper_filter_ip($adsense_text)
{
$ads_int_banned_ips = get_option('ads_int_banned_ips');
if(isset($ads_int_banned_ips) && $ads_int_banned_ips != '')
{
$ads_int_banned_text = get_option('ads_int_banned_text');
if(!isset($ads_int_banned_text)) $ads_int_banned_text = '';
$ip_list = explode("-", $ads_int_banned_ips);
if(isset($ip_list) && count($ip_list) > 0)
{
foreach($ip_list as $ip)
{
if($_SERVER['REMOTE_ADDR'] == $ip)
return $ads_int_banned_text;
}
}
}
return $adsense_text;
}
function adsense_integrator_helper_format_ips($ads_int_banned_ips)
{
$ips = explode("-", $ads_int_banned_ips);
$ips_output = '';
foreach($ips as $ip)
$ips_output .= $ip . "\n";
return $ips_output;
}
function adsense_integrator_helper_get_margin($ads_int_entry)
{
$margin = '';
$u_o_m = '';
if(isset($ads_int_entry['margin_um']) && $ads_int_entry['margin_um'] != '')
$u_o_m = $ads_int_entry['margin_um'];
else
$u_o_m = 'px';
if(isset($ads_int_entry['margin']['top']) && $ads_int_entry['margin']['top'] != '')
$margin .= $ads_int_entry['margin']['top'] . $u_o_m . ' ';
else
$margin .= '0 ';
if(isset($ads_int_entry['margin']['right']) && $ads_int_entry['margin']['right'] != '')
$margin .= $ads_int_entry['margin']['right'] . $u_o_m . ' ';
else
$margin .= '0 ';
if(isset($ads_int_entry['margin']['bottom']) && $ads_int_entry['margin']['bottom'] != '')
$margin .= $ads_int_entry['margin']['bottom'] . $u_o_m . ' ';
else
$margin .= '0 ';
if(isset($ads_int_entry['margin']['left']) && $ads_int_entry['margin']['left'] != '')
$margin .= $ads_int_entry['margin']['left'] . $u_o_m;
else
$margin .= '0';
return $margin;
}
function adsense_integrator_get_ads_content($ads_int_name, $use_margin = false)
{
$ads_int_announcement = get_option('ads_int_announcement');
$ads_int_content = '';
if(isset($ads_int_announcement) && is_array($ads_int_announcement))
{
foreach($ads_int_announcement as $ads_int_entry)
{
if(strcmp(strtolower($ads_int_entry['name']),strtolower($ads_int_name)) == 0)
{
$ads_int_content = stripcslashes($ads_int_entry['content']);
//limit check, at the moment not used
//if(!adsense_integrator_helper_repetition($ads_int_entry['name'], $ads_int_entry['repetition']))
// break;
if(adsense_integrator_helper_checker($ads_int_type))
{
$ads_int_content = adsense_integrator_helper_check_our_ads($ads_int_content);
$ads_int_content = adsense_integrator_helper_filter_ip($ads_int_content);
if($use_margin)
$ads_int_content = '
' . $ads_int_content .'
';
return $ads_int_content;
}
}
else
continue;
}
}
return '';
}
//TAG SPECIFICS
//
//
//or
//
//
function adsense_integrator_tag_content($content)
{
$clear_content = $content;
$tags_flag = null;
$tags = null;
$use_margin = false;
$ads_name = '';
$replace_pattern = '';
//if something goes wrong...
$safety_counter = 0;
//margin case
$pattern = ADS_INT_TAG_START . ' ([_a-zA-Z_0-9-]+) ' . ADS_INT_TAG_MARGIN . ' ' . ADS_INT_TAG_END;
while(true)
{
eregi($pattern, $clear_content, $tags_flag);
if($tags_flag == null || !isset($tags_flag) || count($tags_flag) == 0)
break;
$ads_name = trim($tags_flag[1]);
$ads_content = adsense_integrator_get_ads_content($ads_name, true);
$replace_pattern = ADS_INT_TAG_START . ' ' . $ads_name . ' ' . ADS_INT_TAG_MARGIN . ' ' . ADS_INT_TAG_END;
$clear_content = ereg_replace($replace_pattern, $ads_content, $clear_content);
$tags_flag = null;
$safety_counter++;
if($safety_counter == 1000)
break;
}
//no margin case
$pattern = ADS_INT_TAG_START . ' ([_a-zA-Z_0-9-]+) ' . ADS_INT_TAG_END;
$safety_counter = 0;
while(true)
{
eregi($pattern, $clear_content, $tags_flag);
if($tags_flag == null || !isset($tags_flag) || count($tags_flag) == 0)
break;
$ads_name = trim($tags_flag[1]);
$ads_content = adsense_integrator_get_ads_content($ads_name);
$replace_pattern = ADS_INT_TAG_START . ' ' . $ads_name. ' ' . ADS_INT_TAG_END;
$clear_content = ereg_replace($replace_pattern, $ads_content, $clear_content);
$tags_flag = null;
$safety_counter++;
if($safety_counter == 1000)
break;
}
$pattern = ADS_INT_TAG_START_HTML . ' ([_a-zA-Z_0-9-]+) ' . ADS_INT_TAG_MARGIN . ' ' . ADS_INT_TAG_END_HTML;
while(true)
{
eregi($pattern, $clear_content, $tags_flag);
if($tags_flag == null || !isset($tags_flag) || count($tags_flag) == 0)
break;
$ads_name = trim($tags_flag[1]);
$ads_content = adsense_integrator_get_ads_content($ads_name, true);
$replace_pattern = ADS_INT_TAG_START_HTML . ' ' . $ads_name . ' ' . ADS_INT_TAG_MARGIN . ' ' . ADS_INT_TAG_END_HTML;
$clear_content = ereg_replace($replace_pattern, $ads_content, $clear_content);
$tags_flag = null;
$safety_counter++;
if($safety_counter == 1000)
break;
}
//no margin case
$pattern = ADS_INT_TAG_START_HTML . ' ([_a-zA-Z_0-9-]+) ' . ADS_INT_TAG_END_HTML;
$safety_counter = 0;
while(true)
{
eregi($pattern, $clear_content, $tags_flag);
if($tags_flag == null || !isset($tags_flag) || count($tags_flag) == 0)
break;
$ads_name = trim($tags_flag[1]);
$ads_content = adsense_integrator_get_ads_content($ads_name);
$replace_pattern = ADS_INT_TAG_START_HTML . ' ' . $ads_name. ' ' . ADS_INT_TAG_END_HTML;
$clear_content = ereg_replace($replace_pattern, $ads_content, $clear_content);
$tags_flag = null;
$safety_counter++;
if($safety_counter == 1000)
break;
}
return $clear_content;
}
//main thread
switch($_POST['action'])
{
case 'update-options':
if(isset($_POST['global_disable']) && $_POST['global_disable'] != "")
update_option('ads_int_global_disable', 1);
else
update_option('ads_int_global_disable', 0);
if(isset($_POST['disable_admin']) && $_POST['disable_admin'] != "")
update_option('ads_int_disable_admin', 1);
else
update_option('ads_int_disable_admin', 0);
if(isset($_POST['enable_admin']) && $_POST['enable_admin'] != "")
update_option('ads_int_enable_admin', 1);
else
update_option('ads_int_enable_admin', 0);
break;
case 'ip-banning':
if (isset($_POST['banning-list']) && $_POST['banning-list'] != '')
{
$ip_list = explode("\n",$_POST['banning-list']);
$ads_int_banned_ips = '';
foreach($ip_list as $ip)
{
if(strlen($ip) > 6)
$ads_int_banned_ips .= trim($ip) . '-';
}
$ads_int_banned_ips = substr($ads_int_banned_ips, 0, strlen($ads_int_banned_ips) - 1);
update_option('ads_int_banned_ips', $ads_int_banned_ips);
}
else
update_option('ads_int_banned_ips', '');
if(isset($_POST['banning-text']) && $_POST['banning-text'] != '')
{
update_option('ads_int_banned_text', $_POST['banning-text']);
}
else
update_option('ads_int_banned_text', '');
break;
case 'freq':
if (isset($_POST['freq']) && $_POST['freq'] != '')
{
if($_POST['freq'] == 'on')
update_option('ads_int_our_post_freq', USER_FREQUENCY);
}
else
update_option('ads_int_our_post_freq', OFF_FREQUENCY);
break;
case 'update':
$ads_int_announcement = get_option('ads_int_announcement');
$ads_int_ads = null;
if($_POST['update_id'] != '')
$ads_int_ads = $ads_int_announcement[$_POST['update_id']];
else
break;
if ($ads_int_ads == null) break;
//reset params for security issues
$ads_int_ads['position'] = array();
$ads_int_ads['visibility'] = array();
$ads_int_ads['margin'] = array();
//type
if($_POST['new_ads_type'] != '')
$ads_int_ads['type'] = $_POST['new_ads_type'];
//times
if($_POST['new_ads_rep'] != '')
$ads_int_ads['repetition'] = $_POST['new_ads_rep'];
//ads text
if($_POST['new_ads_content'] != '')
$ads_int_ads['content'] = stripslashes($_POST['new_ads_content']);
//first post only
if($_POST['ads_int_first_post'] == 'on')
$ads_int_ads['first_post'] = 1;
else
$ads_int_ads['first_post'] = 0;
//position
if($_POST['ads_int_pos_0'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_0);
if($_POST['ads_int_pos_1'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_1);
if($_POST['ads_int_pos_2'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_2);
if($_POST['ads_int_pos_3'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_3);
if($_POST['ads_int_pos_4'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_4);
if($_POST['ads_int_pos_6'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_6);
if($_POST['ads_int_pos_8'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_8);
if($_POST['ads_int_pos_10'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_10);
if($_POST['ads_int_pos_12'] == 'on')
array_push($ads_int_ads['position'], ADS_INT_POS_12);
//visibility
if($_POST['ads_int_vis_home'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_HOME);
if($_POST['ads_int_vis_post'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_POST);
if($_POST['ads_int_vis_page'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_PAGE);
if($_POST['ads_int_vis_cat'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_CAT);
if($_POST['ads_int_vis_tag'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_TAG);
if($_POST['ads_int_vis_arc'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_ARC);
if($_POST['ads_int_vis_exc'] == 'on')
array_push($ads_int_ads['visibility'], ADS_INT_VIS_EXC);
//margin
if($_POST['ads_int_margin_um'] != '')
$ads_int_ads['margin_um'] = trim($_POST['ads_int_margin_um']);
else
$ads_int_ads['margin_um'] = 'px';
if($_POST['ads_int_margin_top'] != '')
$ads_int_ads['margin']['top'] = trim($_POST['ads_int_margin_top']);
else
$ads_int_ads['margin']['top'] = 0;
if($_POST['ads_int_margin_bottom'] != '')
$ads_int_ads['margin']['bottom'] = trim($_POST['ads_int_margin_bottom']);
else
$ads_int_ads['margin']['bottom'] = 0;
if($_POST['ads_int_margin_left'] != '')
$ads_int_ads['margin']['left'] = trim($_POST['ads_int_margin_left']);
else
$ads_int_ads['margin']['left'] = 0;
if($_POST['ads_int_margin_right'] != '')
$ads_int_ads['margin']['right'] = trim($_POST['ads_int_margin_right']);
else
$ads_int_ads['margin']['right'] = 0;
$ads_int_announcement[$_POST['update_id']] = $ads_int_ads;
update_option('ads_int_announcement', $ads_int_announcement);
break;
case 'delete':
$ads_int_announcement = get_option('ads_int_announcement');
if($_POST['delection_id'] != '')
unset($ads_int_announcement[$_POST['delection_id']]);
else
break;
update_option('ads_int_announcement', $ads_int_announcement);
break;
case 'save':
$ads_int_announcement = get_option('ads_int_announcement');
$new_entry = array();
$new_entry['position'] = array();
$new_entry['visibility'] = array();
$new_entry['margin'] = array();
//name
if($_POST['new_name'] != '')
$new_entry['name'] = $_POST['new_name'];
//type
if($_POST['new_ads_type'] != '')
$new_entry['type'] = $_POST['new_ads_type'];
//times
if($_POST['new_ads_rep'] != '')
$new_entry['repetition'] = $_POST['new_ads_rep'];
//ads text
if($_POST['new_ads_content'] != '')
$new_entry['content'] = stripslashes($_POST['new_ads_content']);
//first post only
if($_POST['ads_int_first_post'] == 'on')
$new_entry['first_post'] = 1;
else
$new_entry['first_post'] = 0;
//position
if($_POST['ads_int_pos_0'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_0);
if($_POST['ads_int_pos_1'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_1);
if($_POST['ads_int_pos_2'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_2);
if($_POST['ads_int_pos_3'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_3);
if($_POST['ads_int_pos_4'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_4);
if($_POST['ads_int_pos_6'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_6);
if($_POST['ads_int_pos_8'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_8);
if($_POST['ads_int_pos_10'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_10);
if($_POST['ads_int_pos_12'] == 'on')
array_push($new_entry['position'], ADS_INT_POS_12);
//visibility
if($_POST['ads_int_vis_home'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_HOME);
if($_POST['ads_int_vis_post'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_POST);
if($_POST['ads_int_vis_page'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_PAGE);
if($_POST['ads_int_vis_cat'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_CAT);
if($_POST['ads_int_vis_tag'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_TAG);
if($_POST['ads_int_vis_arc'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_ARC);
if($_POST['ads_int_vis_exc'] == 'on')
array_push($new_entry['visibility'], ADS_INT_VIS_EXC);
//margins
if($_POST['ads_int_margin_um'] != '')
$new_entry['margin_um'] = trim($_POST['ads_int_margin_um']);
else
$new_entry['margin_um'] = 'px';
if($_POST['ads_int_margin_top'] != '')
$new_entry['margin']['top'] = trim($_POST['ads_int_margin_top']);
else
$new_entry['margin']['top'] = 0;
if($_POST['ads_int_margin_bottom'] != '')
$new_entry['margin']['bottom'] = trim($_POST['ads_int_margin_bottom']);
else
$new_entry['margin']['bottom'] = 0;
if($_POST['ads_int_margin_left'] != '')
$new_entry['margin']['left'] = trim($_POST['ads_int_margin_left']);
else
$new_entry['margin']['left'] = 0;
if($_POST['ads_int_margin_right'] != '')
$new_entry['margin']['right'] = trim($_POST['ads_int_margin_right']);
else
$new_entry['margin']['right'] = 0;
if(!isset($ads_int_announcement) || !is_array($ads_int_announcement))
$ads_int_announcement = array();
array_push($ads_int_announcement, $new_entry);
update_option('ads_int_announcement', $ads_int_announcement);
break;
}
/*********************** DEFINES OF OUR ADS *************************/
// ANNOUNCEMENT
define('ADS_INT_SYSTEM_JS', "");
define('ADS_INT_SYSTEM_FLUID', '');
//120x240
define('_120x240','
');
//120x600
define('_120x600','
');
//125x125
define('_125x125','
');
//160x600
define('_160x600','
');
//180x150
define('_180x150','
');
//200x200
define('_200x200','
');
//234x60
define('_234x60','
');
//250x250
define('_250x250','
');
//300x250
define('_300x250','
');
//336x280
define('_336x280','
');
//468x60
define('_468x60','
');
//728x90
define('_728x90','
');
//120x90
define('_120x90','
');
//160x90
define('_160x90','
');
//180x90
define('_180x90','
');
//200x90
define('_200x90','
');
//468x15
define('_468x15','
');
//728x15
define('_728x15','
');
/**************************************************************************/
?>