', {attr: {'style': b64d ('" . base64_encode (str_replace (array ("'", "\r", "\n"), array ("\'", '', ''), AI_BASIC_ADB_OVERLAY_CSS) . get_overlay_css ()) . "')}})", $js);
$js = str_replace ('AI_ADB_MESSAGE_WINDOW', "jQuery ('
', {attr: {'style': b64d ('" . base64_encode (str_replace (array ("'", "\r", "\n"), array ("\'", '', ''), AI_BASIC_ADB_MESSAGE_CSS) . get_message_css ()) . "')}, 'html': b64d ('" .
base64_encode (str_replace (array ("'", "\r", "\n"), array ("\'", '', ''), do_shortcode ($adb->ai_getCode ()))) . "')})", $js);
$js = str_replace ('AI_ADB_SELECTORS', get_adb_selectors (true), $js);
$redirection_page = get_redirection_page ();
if ($redirection_page != 0) $url = get_permalink ($redirection_page); else $url = trim (get_custom_redirection_url ());
$js = str_replace ('AI_ADB_REDIRECTION_PAGE', $url, $js);
if (($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_AD_BLOCKING_STATUS | AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0) {
// translators: AD BLOCKING DETECTED, PAGE VIEWS: n - NO ACTION
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=1;', '$("#ai-adb-status").text ("' . __('AD BLOCKING DETECTED, PAGE VIEWS', 'ad-inserter') . '" + ": " + d1 + " - " + "' . __('NO ACTION', 'ad-inserter') . '");$("#ai-adb-bar").addClass ("adb-on");', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=2;', '$("#ai-adb-status").text ("' . __('AD BLOCKING DETECTED, COOKIE DETECTED - NO ACTION', 'ad-inserter') . '");$("#ai-adb-bar").addClass ("adb-on");', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=3;', '$("#ai-adb-status").text ("' . __('AD BLOCKING DETECTED - ACTION', 'ad-inserter') . '");$("#ai-adb-bar").addClass ("adb-on");', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=4;', 'jQuery("#ai-adb-status").text ("' . __('AD BLOCKING NOT DETECTED', 'ad-inserter') . '");jQuery("#ai-adb-bar").addClass ("adb-off");', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=5;', '$("#ai-adb-status").text ("' . __('AD BLOCKING DETECTION COOKIES DELETED', 'ad-inserter') . '");', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=6;', '$("#ai-adb-status").text ("' . __('AD BLOCKING DETECTED - NO ACTION', 'ad-inserter') . '");$("#ai-adb-bar").addClass ("adb-on");', $js);
} else {
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=1', '', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=2', '', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=3', '', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=4', '{}', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=5', '', $js);
$js = str_replace ('var AI_ADB_STATUS_MESSAGE=6', '', $js);
}
}
}
$js = str_replace ('AI_NONCE', wp_create_nonce ("adinserter_data"), $js);
$js = str_replace ('AI_AJAXURL', admin_url ('admin-ajax.php'), $js);
$js = str_replace ('AI_SITE_URL', wp_make_link_relative (get_site_url()), $js);
$js = str_replace ('AI_HOME_URL', home_url (), $js);
if (defined ('AI_STATISTICS') && AI_STATISTICS) {
$js = str_replace ('AI_INTERNAL_TRACKING', get_internal_tracking () == AI_ENABLED ? 1 : 0, $js);
$js = str_replace ('AI_EXTERNAL_TRACKING', get_external_tracking () == AI_ENABLED ? 1 : 0, $js);
$js = str_replace ('AI_TRACK_PAGEVIEWS', get_track_pageviews () == AI_TRACKING_ENABLED && $ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_AJAX && !$ai_wp_data [AI_CODE_FOR_IFRAME] ? 1 : 0, $js);
$js = str_replace ('AI_ADVANCED_CLICK_DETECTION', get_click_detection () == AI_CLICK_DETECTION_ADVANCED ? 1 : 0, $js);
if (!isset ($ai_wp_data [AI_VIEWPORTS])) {
$viewports = array ();
$viewport_names = array ();
for ($viewport = 1; $viewport <= 6; $viewport ++) {
$viewport_name = get_viewport_name ($viewport);
$viewport_width = get_viewport_width ($viewport);
if ($viewport_name != '') {
$viewports [$viewport] = $viewport_width;
$viewport_names [$viewport] = $viewport_name;
}
}
$ai_wp_data [AI_VIEWPORTS] = $viewports;
$ai_wp_data [AI_VIEWPORT_NAMES] = $viewport_names;
}
$js = str_replace ('AI_VIEWPORTS', '[' . implode (',', $ai_wp_data [AI_VIEWPORTS]) . ']', $js);
$js = str_replace ('AI_VIEWPORT_NAMES', base64_encode ('["' . implode ('","', $ai_wp_data [AI_VIEWPORT_NAMES]) . '"]'), $js);
}
// Deprecated
$js = str_replace ('AI_BLOCK_CLASS_NAME', get_block_class_name (true), $js);
if (function_exists ('ai_replace_js_data_2')) ai_replace_js_data_2 ($js);
return $js;
}
function ai_adb_code () {
return ai_get_js ('ai-adb', false);
}
function add_footer_inline_scripts () {
global $ai_wp_data, $wp_version;
if (get_disable_js_code ()) return;
if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
if ($ai_wp_data [AI_ADB_DETECTION] && !isset ($ai_wp_data [AI_ADB_SHORTCODE_DISABLED])) {
if (function_exists ('add_footer_inline_scripts_1')) add_footer_inline_scripts_1 (); else {
echo '', "\n";
echo '', "\n";
echo '
', "\n";
echo '', "\n";
echo '', "\n";
echo "\n";
echo "\n";
echo '', "\n";
}
}
}
// Update also $footer_inline_scripts in ai_wp_enqueue_scripts_hook
$footer_inline_scripts =
get_dynamic_blocks () == AI_DYNAMIC_BLOCKS_CLIENT_SIDE_SHOW ||
get_dynamic_blocks () == AI_DYNAMIC_BLOCKS_CLIENT_SIDE_INSERT ||
isset ($ai_wp_data [AI_CLIENT_SIDE_ROTATION]) ||
$ai_wp_data [AI_TRACKING] ||
$ai_wp_data [AI_STICKY_WIDGETS] ||
$ai_wp_data [AI_STICK_TO_THE_CONTENT] ||
$ai_wp_data [AI_ANIMATION] ||
$ai_wp_data [AI_CLOSE_BUTTONS] ||
$ai_wp_data [AI_HTML_ELEMENT_SELECTION] ||
$ai_wp_data [AI_LAZY_LOADING] ||
$ai_wp_data [AI_CLIENT_SIDE_INSERTION] ||
(defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION && $ai_wp_data [AI_ADB_DETECTION] && !isset ($ai_wp_data [AI_ADB_SHORTCODE_DISABLED]));
// if (($footer_inline_scripts || $ai_wp_data [AI_CLIENT_SIDE_INSERTION]) && !wp_script_is ('jquery', 'done')) {
if ($footer_inline_scripts && !wp_script_is ('jquery', 'done')) {
// Should not insert as it is forced in the header if jquery needed in the footer
echo "\n";
echo "\n";
}
if ($ai_wp_data [AI_STICKY_WIDGETS] && get_sticky_widget_mode() == AI_STICKY_WIDGET_MODE_JS) {
// echo "\n";
echo "\n";
}
if ($footer_inline_scripts) echo "\n";
}
function ai_admin_notice_hook () {
global $current_screen, $ai_db_options, $ai_wp_data, $ai_db_options_extract;
global $ai_settings_page, $hook_suffix;
// $sidebar_widgets = wp_get_sidebars_widgets();
// $sidebars_with_deprecated_widgets = array ();
// foreach ($sidebar_widgets as $sidebar_widget_index => $sidebar_widget) {
// if (is_array ($sidebar_widget))
// foreach ($sidebar_widget as $widget) {
// if (preg_match ("/ai_widget([\d]+)/", $widget, $widget_number)) {
// if (isset ($widget_number [1]) && is_numeric ($widget_number [1])) {
// $is_widget = $ai_db_options [$widget_number [1]][AI_OPTION_AUTOMATIC_INSERTION] == AD_SELECT_WIDGET;
// } else $is_widget = false;
// $sidebar_name = $GLOBALS ['wp_registered_sidebars'][$sidebar_widget_index]['name'];
// if ($is_widget && $sidebar_name != "")
// $sidebars_with_deprecated_widgets [$sidebar_widget_index] = $sidebar_name;
// }
// }
// }
// if (!empty ($sidebars_with_deprecated_widgets)) {
// echo "
Warning : You are using deprecated Ad Inserter widgets in the following sidebars: ",
// implode (", ", $sidebars_with_deprecated_widgets),
// ". Please replace them with the new 'Ad Inserter' code block widget. See FAQ for details.
";
// }
if (function_exists ('ai_admin_notices')) ai_admin_notices (); else {
if (/*$hook_suffix == $ai_settings_page &&*/ is_super_admin () && !wp_is_mobile () && isset ($ai_wp_data [AI_DAYS_SINCE_INSTAL])) {
$used_blocks = count (unserialize ($ai_db_options_extract [AI_EXTRACT_USED_BLOCKS]));
$notice_option = get_option ('ai-notice-review');
if ($notice_option === false && $ai_wp_data [AI_DAYS_SINCE_INSTAL] >= 40) $notice_option = 'later';
if (($notice_option === false && $used_blocks >= 2 && $ai_wp_data [AI_DAYS_SINCE_INSTAL] > 20 && $ai_wp_data [AI_DAYS_SINCE_INSTAL] < 40) ||
($notice_option == 'later' && ($used_blocks >= 5 && $ai_wp_data [AI_DAYS_SINCE_INSTAL] > 50 ||
$used_blocks >= 2 && $ai_wp_data [AI_DAYS_SINCE_INSTAL] > 70))) {
if ($notice_option == 'later') {
// Translators: 1: number of blocks, 2: Ad Inserter
$message = sprintf (_n('Hey, you are now using %1$s %2$s block.', 'Hey, you are now using %1$s %2$s blocks.', $used_blocks, 'ad-inserter'), "
{$used_blocks} ", "
Ad Inserter ");
$option = '
' . __("No, thank you.", 'ad-inserter') . '
';
} else {
// Translators: %s: Ad Inserter
$message = sprintf (__("Hey, you've been using %s for a while now, and I hope you're happy with it.", 'ad-inserter'), '
Ad Inserter ');
$option = '
' . __("Not now, maybe later.", 'ad-inserter') . '
';
}
?>
" nonce="" >
';
_e("Positive reviews are a great incentive to fix bugs and to add new features for better monetization of your website. Thank you, Igor", 'ad-inserter');
?>
'._x('Settings', 'Menu item', 'ad-inserter') . '';
array_unshift ($links, $settings_link);
return $links;
}
function ai_set_plugin_meta ($links, $file) {
if ($file == plugin_basename (__FILE__)) {
if (is_multisite() && !is_main_site ()) {
foreach ($links as $index => $link) {
if (stripos ($link, "update") !== false) unset ($links [$index]);
}
}
// if (stripos (AD_INSERTER_NAME, "pro") === false) {
// $new_links = array ('donate' => '
Donate ');
// $links = array_merge ($links, $new_links);
// }
}
return $links;
}
function current_user_role ($user_role_name = "") {
$role_values = array ("super-admin" => 6, "administrator" => 5, "editor" => 4, "author" => 3, "contributor" => 2, "subscriber" => 1);
global $wp_roles;
if ($user_role_name != "") {
return isset ($role_values [$user_role_name]) ? $role_values [$user_role_name] : 0;
}
$user_role = 0;
$current_user = wp_get_current_user();
$roles = $current_user->roles;
// Fix for empty roles
if (isset ($current_user->caps) && count ($current_user->caps) != 0) {
$caps = $current_user->caps;
foreach ($role_values as $role_name => $role_value) {
if (isset ($caps [$role_name]) && $caps [$role_name]) $roles []= $role_name;
}
}
foreach ($roles as $role) {
$current_user_role = isset ($role_values [$role]) ? $role_values [$role] : 0;
if ($current_user_role > $user_role) $user_role = $current_user_role;
}
return $user_role;
}
function ai_current_user_role_ok () {
return current_user_role () >= current_user_role (get_minimum_user_role ());
}
function ai_add_meta_box_hook() {
if (!ai_current_user_role_ok ()) return;
if (is_multisite() && !is_main_site () && !multisite_exceptions_enabled ()) return;
$screens = array ('post', 'page');
$args = array (
'public' => true,
'_builtin' => false
);
$custom_post_types = get_post_types ($args, 'names', 'and');
$screens = array_values (array_merge ($screens, $custom_post_types));
foreach ($screens as $screen) {
add_meta_box (
'adinserter_sectionid',
// translators: %s: Ad Inserter
sprintf (_x('%s Individual Exceptions', 'Meta box name', 'ad-inserter'), AD_INSERTER_NAME),
'ai_meta_box_callback',
$screen
);
}
}
function ai_meta_box_callback ($post) {
global $block_object;
// Add an nonce field so we can check for it later.
wp_nonce_field ('adinserter_meta_box', 'adinserter_meta_box_nonce');
$post_type = get_post_type ($post);
$post_type_object = get_post_type_object ($post_type);
$page_type_name = $post_type_object->labels->name;
$page_type_name1 = $post_type_object->labels->singular_name;
/*
* Use get_post_meta() to retrieve an existing value
* from the database and use the value for the form.
*/
$post_meta = get_post_meta ($post->ID, '_adinserter_block_exceptions', true);
$selected_blocks = explode (",", $post_meta);
ob_start ();
echo '
';
echo '';
echo ' ', __('Block', 'ad-inserter') . ' ';
echo ' ', __('Name', 'ad-inserter') . ' ';
echo ' ', __('Automatic insertion', 'ad-inserter') . ' ';
if ($post_type == 'page')
echo ' ', __('Default insertion for pages', 'ad-inserter') . ' '; else
echo ' ', __('Default insertion for posts', 'ad-inserter') . ' ';
// translators: For this post or page
if ($post_type == 'page')
echo ' ', _x('For this', 'Page', 'ad-inserter'), ' ', $page_type_name1, ' '; else
echo ' ', _x('For this', 'Post', 'ad-inserter'), ' ', $page_type_name1, ' ';
echo ' ';
echo '';
$rows = 0;
for ($block = 1; $block <= 96; $block ++) {
$obj = $block_object [$block];
if ($post_type == 'page') {
$page_name1 = _x('pages', 'Enabled/disabled on all', 'ad-inserter');
$page_name2 = _x('pages', 'Default insertion for', 'ad-inserter');
$enabled_on = $obj->get_ad_enabled_on_which_pages ();
$general_enabled = $obj->get_display_settings_page();
} else {
$page_name1 = _x('posts', 'Enabled/disabled on all', 'ad-inserter');
$page_name2 = _x('posts', 'Default insertion for', 'ad-inserter');
$enabled_on = $obj->get_ad_enabled_on_which_posts ();
$general_enabled = $obj->get_display_settings_post();
}
if (!$general_enabled || $enabled_on == AI_NO_INDIVIDUAL_EXCEPTIONS) continue;
$individual_option_enabled = $general_enabled && ($enabled_on == AI_INDIVIDUALLY_DISABLED || $enabled_on == AI_INDIVIDUALLY_ENABLED);
$individual_text_enabled = $enabled_on == AI_INDIVIDUALLY_DISABLED;
if ($rows % 2 != 0) $background = "#F0F0F0"; else $background = "#FFF";
echo '';
echo ' ', $obj->number, ' ';
if (function_exists ('ai_settings_url_parameters')) $url_parameters = ai_settings_url_parameters ($block); else $url_parameters = "";
echo ' ', $obj->get_ad_name(), ' ';
echo ' ', $obj->get_automatic_insertion_text(), ' ';
echo ' ';
if ($individual_option_enabled) {
if ($individual_text_enabled) echo __('Enabled', 'ad-inserter'); else echo __('Disabled', 'ad-inserter');
} else {
// translators: Enabled on all pages or posts
if ($general_enabled) echo __('Enabled on all', 'ad-inserter'). ' ', $page_name1; else
// translators: Disabled on all pages or posts
echo __('Disabled on all', 'ad-inserter') . ' ', $page_name1;
}
echo ' ';
echo ' ';
if ($individual_option_enabled) {
echo ' ';
echo '';
if (!$individual_text_enabled) echo __('Enabled', 'ad-inserter'); else echo __('Disabled', 'ad-inserter');
echo ' ';
} else {
if (in_array ($block, $selected_blocks)) {
echo '• ';
}
}
echo ' ';
echo ' ';
$rows ++;
}
echo ' ';
echo '
';
$exceptions_table = ob_get_clean ();
if ($rows == 0) {
// translators: No individual exceptions enabled for pages or posts
echo '
' . __('No individual exceptions enabled for', 'ad-inserter') . ' ', $page_name2, ' .
';
} else echo $exceptions_table;
// translators: 1: pages or posts, 2: Ad Inserter Settings (page)
echo '
',
sprintf (__('Default insertion for %1$s can be configured for each block on %2$s page - selection next to Posts / Static pages checkbox. ', 'ad-inserter'),
$page_name2,
// translators: %s: Ad Inserter
'' . sprintf (__('%s Settings', 'ad-inserter'), AD_INSERTER_NAME) . ' '),
__('Default value is blank and means no individual exceptions (even if previously defined here). ', 'ad-inserter');
if ($post_type == 'page')
_ex('Set to Individually disabled or Individually enabled to enable individual exception settings on this page. ', 'Pages', 'ad-inserter'); else
_ex('Set to Individually disabled or Individually enabled to enable individual exception settings on this page. ', 'Posts', 'ad-inserter');
printf (__('For more information check page %s', 'ad-inserter'),
// translators: Ad Inserter Exceptions documentation page
'Ad Inserter ' . __('Individual Exceptions', 'ad-inserter') . ' .
');
}
function ai_save_meta_box_data_hook ($post_id) {
// Check if our nonce is set.
if (!isset ($_POST ['adinserter_meta_box_nonce'])) return;
// Verify that the nonce is valid.
if (!wp_verify_nonce ($_POST ['adinserter_meta_box_nonce'], 'adinserter_meta_box')) return;
// If this is an autosave, our form has not been submitted, so we don't want to do anything.
if (defined ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
// Check the user's permissions.
if (isset ($_POST ['post_type'])) {
if ($_POST ['post_type'] == 'page') {
if (!current_user_can ('edit_page', $post_id)) return;
} else {
if (!current_user_can ('edit_post', $post_id)) return;
}
}
/* OK, it's safe for us to save the data now. */
$selected = array ();
for ($block = 1; $block <= 96; $block ++) {
$option_name = 'adinserter_selected_block_' . $block;
if (isset ($_POST [$option_name]) && $_POST [$option_name]) $selected []= $block;
}
if (!empty ($selected)) {
// Update the meta field in the database.
update_post_meta ($post_id, '_adinserter_block_exceptions', implode (",", $selected));
} else delete_post_meta ($post_id, '_adinserter_block_exceptions');
}
function ai_widgets_init_hook () {
if (is_multisite() && !is_main_site () && !multisite_widgets_enabled ()) return;
register_widget ('ai_widget');
}
function get_page_type_debug_info ($text = '') {
global $ai_wp_data;
switch ($ai_wp_data [AI_WP_PAGE_TYPE]) {
case AI_PT_STATIC:
$page_type = __('STATIC PAGE', 'ad-inserter');
break;
case AI_PT_POST:
$page_type = __('POST', 'ad-inserter');
break;
case AI_PT_HOMEPAGE:
$page_type = __('HOMEPAGE', 'ad-inserter');
break;
case AI_PT_CATEGORY:
$page_type = __('CATEGORY PAGE', 'ad-inserter');
break;
case AI_PT_SEARCH:
$page_type = __('SEARCH PAGE', 'ad-inserter');
break;
case AI_PT_ARCHIVE:
$page_type = __('ARCHIVE PAGE', 'ad-inserter');
break;
case AI_PT_404:
$page_type = __('ERROR 404 PAGE', 'ad-inserter');
break;
case AI_PT_AJAX:
$page_type = __('AJAX CALL', 'ad-inserter');
break;
default:
$page_type = __('UNKNOWN PAGE TYPE', 'ad-inserter');
break;
}
$class = AI_DEBUG_PAGE_TYPE_CLASS;
$page_type = "
";
return $page_type;
}
function get_adb_status_debug_info () {
global $ai_wp_data;
$page_type = '';
if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
if ($ai_wp_data [AI_ADB_DETECTION]) {
$title = __('Click to delete ad blocking detection cokies', 'ad-inserter');
$status = __('AD BLOCKING STATUS UNKNOWN', 'ad-inserter');
$page_type = "
";
}
}
return $page_type;
}
function ai_header_noindex () {
global $ai_wp_data;
if ($ai_wp_data [AI_WP_DEBUGGING] != 0 || $ai_wp_data [AI_CODE_FOR_IFRAME]) {
echo '
';
if ($ai_wp_data [AI_WP_DEBUGGING] != 0) {
echo ' ';
}
echo "\n";
}
}
function get_code_debug_block ($name, $message, $right_text, $code, $inserted_code, $javascript = false) {
if (strpos ($code, 'enable_page_level_ads') !== false)
// translators: %s: AdSense Auto Ads
$message = sprintf (__('Code for %s detected - Code will automatically insert AdSense ads at optimal positions', 'ad-inserter') . ' ',
'
AdSense Auto Ads ');
$debug_script = new ai_block_labels ('ai-debug-script');
$debug_block_start = $debug_script->block_start ();
$debug_block_start .= $debug_script->bar ($name, '', $message, $right_text);
if ($javascript) $debug_block_start = str_replace (array ('"', "\n", "\r"), array ("'", "\\n", ''), $debug_block_start);
$debug_block_end = $debug_script->block_end ();
if ($javascript) $debug_block_end = str_replace (array ('"', "\n", "\r"), array ("'", "\\n", ''), $debug_block_end);
$html_code = htmlspecialchars ($code);
if ($javascript) $html_code = str_replace (array ("\n", "\r"), array ("\\n", ''), $html_code);
$html_inserted_code = htmlspecialchars ($inserted_code);
if ($javascript) $html_inserted_code = str_replace (array ("\n", "\r"), array ("\\n", ''), $html_inserted_code);
return $debug_block_start . "
" . $html_code . " " . $html_inserted_code . "
" . $debug_block_end;
}
function ai_http_header () {
global $block_object, $ai_wp_data;
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_HTTP_HEADER;
$obj = $block_object [AI_HEADER_OPTION_NAME];
$obj->clear_code_cache ();
if ($obj->get_enable_manual ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_404 || $obj->get_enable_404()) {
$processed_code = do_shortcode ($obj->ai_getCode ());
if (strpos ($processed_code, AD_HTTP_SEPARATOR) !== false) {
$codes = explode (AD_HTTP_SEPARATOR, $processed_code);
$processed_code = $codes [0];
} else $processed_code = '';
$header_lines = explode ("\n", $processed_code);
foreach ($header_lines as $header_line) {
if (trim ($header_line) != '' && strpos ($header_line, ':') !== false) {
header (trim ($header_line));
}
}
}
}
}
function ai_wp_head_hook () {
global $block_object, $ai_wp_data, $ai_total_plugin_time, $ai_front_translations;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
ai_log ("HEAD HOOK START");
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
if (defined ('AI_BUFFERING')) {
if (get_output_buffering ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_AJAX && !$ai_wp_data [AI_CODE_FOR_IFRAME]) {
ai_buffering_start ();
}
}
}
if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0) {
echo "\n\n";
}
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_NONE;
ai_header_noindex ();
add_head_inline_styles ();
$header_code = '';
$header = $block_object [AI_HEADER_OPTION_NAME];
if ($header->get_enable_manual ()) {
if (!$header->get_debug_disable_insertion () && !get_disable_header_code ()) {
if ($header->check_server_side_detection ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_404 || $header->get_enable_404()) {
$processed_code = do_shortcode ($header->ai_getCode ());
if (strpos ($processed_code, AD_HTTP_SEPARATOR) !== false) {
$codes = explode (AD_HTTP_SEPARATOR, $processed_code);
$processed_code = ltrim ($codes [1]);
}
if (strpos ($processed_code, AD_AMP_SEPARATOR) !== false) {
$codes = explode (AD_AMP_SEPARATOR, $processed_code);
$processed_code = $codes [0];
} elseif ($ai_wp_data [AI_WP_AMP_PAGE]) $processed_code = '';
$header_code = $processed_code;
echo $processed_code;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
if (strlen ($processed_code) != 0)
ai_log ("HEAD CODE: " . strlen ($processed_code) . ' characters');
}
}
}
} else {
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
ai_log ('HEAD CODE DEBUG NO INSERTION');
}
}
}
if (defined ('AI_BUFFERING')) {
if (get_output_buffering () && !get_disable_header_code ()) {
$ai_head_codes = "";
echo $ai_head_codes;
$header_code .= $ai_head_codes;
}
}
if (!$ai_wp_data [AI_CODE_FOR_IFRAME]) {
if (!get_disable_js_code () && $ai_wp_data [AI_WP_DEBUGGING] != 0 && isset ($_GET ['ai-debug-code']) && !defined ('AI_DEBUGGING_DEMO')) {
if (is_numeric ($_GET ['ai-debug-code']) && $_GET ['ai-debug-code'] >= 1 && $_GET ['ai-debug-code'] <= 96) {
$obj = $block_object [$_GET ['ai-debug-code']];
$block_name = $obj->number . ' ' . $obj->get_ad_name ();
if (!$header->get_debug_disable_insertion ()) {
$ai_wp_debugging = $ai_wp_data [AI_WP_DEBUGGING];
$ai_wp_data [AI_WP_DEBUGGING] = 0;
$code_for_insertion = $obj->get_code_for_insertion ();
$ai_wp_data [AI_WP_DEBUGGING] = $ai_wp_debugging;
} else $code_for_insertion = '';
echo "\n";
}
}
if (!get_disable_js_code () && $ai_wp_data [AI_IFRAMES]) {
echo "\n";
}
if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
echo '', "\n";
}
if (!get_disable_js_code () && !get_disable_header_code () && ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_BLOCKS) != 0 && !defined ('AI_DEBUGGING_DEMO')) {
echo "\n";
}
}
// After Header code info
if (!$ai_wp_data [AI_CODE_FOR_IFRAME]) {
if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
// No scripts on AMP pages
// if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_AD_BLOCKING_STATUS) != 0 && $ai_wp_data [AI_ADB_DETECTION] && !$ai_wp_data [AI_WP_AMP_PAGE]) {
if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_AD_BLOCKING_STATUS | AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0 && $ai_wp_data [AI_ADB_DETECTION] /*&& !$ai_wp_data [AI_WP_AMP_PAGE]*/) {
echo "\n";
}
}
}
if (!get_disable_js_code () && defined ('AI_ADSENSE_OVERLAY') && ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_BLOCKS) != 0 && !(isset ($_GET ["hide-debug-labels"]) && $_GET ["hide-debug-labels"] == 1)) {
echo "\n";
}
if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_BLOCKS) != 0) {
echo "\n";
}
if (!get_disable_js_code () && $ai_wp_data [AI_CODE_FOR_IFRAME]) {
$object_name = 'ai_front';
$l10n = $ai_front_translations;
echo '', "\n";
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("HEAD HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
}
function ai_amp_head_hook () {
global $block_object, $ai_wp_data, $ai_total_plugin_time;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
ai_log ("AMP HEAD HOOK START");
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
if (defined ('AI_BUFFERING')) {
if (get_output_buffering ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_AJAX) {
ai_buffering_start ();
}
}
}
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_NONE;
ai_header_noindex ();
$header = $block_object [AI_HEADER_OPTION_NAME];
if ($header->get_enable_manual ()) {
if (!$header->get_debug_disable_insertion () && !get_disable_header_code ()) {
if ($header->check_server_side_detection ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_404 || $header->get_enable_404()) {
$processed_code = do_shortcode ($header->ai_getCode ());
if (strpos ($processed_code, AD_HTTP_SEPARATOR) !== false) {
$codes = explode (AD_HTTP_SEPARATOR, $processed_code);
$processed_code = ltrim ($codes [1]);
}
// ai_log ("ai_amp_head_hook ");
if (strpos ($processed_code, AD_AMP_SEPARATOR) !== false) {
$codes = explode (AD_AMP_SEPARATOR, $processed_code);
$processed_code = ltrim ($codes [1]);
echo $processed_code;
// ai_log ("ai_amp_head_hook " . $processed_code);
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
if (strlen ($processed_code) != 0)
ai_log ("HEAD CODE: " . strlen ($processed_code) . ' bytes');
}
}
}
}
}
}
if (defined ('AI_BUFFERING')) {
if (get_output_buffering () && !get_disable_header_code ()) {
$ai_head_codes = "";
echo $ai_head_codes;
}
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("AMP HEAD HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
}
function ai_amp_css_hook () {
global $ai_wp_data;
if (get_disable_css_code ()) return;
if (defined ('AI_AMP_HEADER_STYLES') && AI_AMP_HEADER_STYLES || $ai_wp_data [AI_WP_DEBUGGING] != 0) {
if (defined ('AI_AMP_HEADER_STYLES') && AI_AMP_HEADER_STYLES) {
if ($ai_wp_data [AI_WP_DEBUGGING] != 0) generate_debug_css_base ();
echo get_alignment_css ();
echo ".ai-align-left * {margin: 0 auto 0 0; text-align: left;}\n";
echo ".ai-align-right * {margin: 0 0 0 auto; text-align: right;}\n";
echo ".ai-center * {margin: 0 auto; text-align: center; }\n";
}
if ($ai_wp_data [AI_WP_DEBUGGING] != 0) generate_debug_css ();
}
}
function ai_wp_footer_hook () {
global $block_object, $ai_wp_data, $ai_total_plugin_time;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
ai_log ("FOOTER HOOK START");
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
if (defined ('AI_BUFFERING')) {
if (get_output_buffering ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_AJAX && !$ai_wp_data [AI_CODE_FOR_IFRAME]) {
ai_buffering_end ();
}
}
}
if ($ai_wp_data [AI_DISABLE_CACHING]) ai_disable_caching ();
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_FOOTER;
$footer_code = '';
$footer = $block_object [AI_FOOTER_OPTION_NAME];
$footer->clear_code_cache ();
if ($footer->get_enable_manual ()) {
if (!$footer->get_debug_disable_insertion () && !get_disable_footer_code ()) {
if ($footer->check_server_side_detection ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_404 || $footer->get_enable_404()) {
$processed_code = do_shortcode ($footer->ai_getCode ());
if (strpos ($processed_code, AD_AMP_SEPARATOR) !== false) {
$codes = explode (AD_AMP_SEPARATOR, $processed_code);
$processed_code = $codes [0];
} elseif ($ai_wp_data [AI_WP_AMP_PAGE]) $processed_code = '';
$footer_code = $processed_code;
echo $processed_code;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
if (strlen ($processed_code) != 0)
ai_log ("FOOTER CODE: " . strlen ($processed_code) . ' characters');
}
}
}
} else {
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
ai_log ('FOOTER CODE DEBUG NO INSERTION');
}
}
}
if (!(defined ('DOING_AJAX') && DOING_AJAX) || $ai_wp_data [AI_CODE_FOR_IFRAME]) {
add_footer_inline_scripts ();
if (function_exists ('ai_add_footer_html')) {
ai_add_footer_html ();
}
}
if (!$ai_wp_data [AI_CODE_FOR_IFRAME]) {
if (!get_disable_footer_code () && ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_BLOCKS) != 0 && !defined ('AI_DEBUGGING_DEMO')) {
echo get_code_debug_block (' ' . __('Footer code', 'ad-inserter') . ' ' . ($footer->get_enable_manual () ? '' : ' ' . _x('DISABLED', 'Footer code', 'ad-inserter')), '...</body>', strlen ($footer_code).' ' . _n('character inserted', 'characters inserted', strlen ($footer_code), 'ad-inserter'), $footer->ai_getCode (), $footer_code);
}
if (!get_disable_js_code () && ($ai_wp_data [AI_WP_DEBUGGING] & (AI_DEBUG_POSITIONS | AI_DEBUG_BLOCKS)) != 0) {
$class_0 = AI_DEBUG_STATUS_CLASS.' status-error';
$class_1 = AI_DEBUG_STATUS_CLASS.' status-ok';
$javascript_text = "
" . __('JAVASCRIPT NOT WORKING', 'ad-inserter') . " " . __('NO JAVASCRIPT ERRORS', 'ad-inserter') . " " . __('JAVASCRIPT ERRORS', 'ad-inserter') . " ";
echo "\n";
echo $javascript_text , "\n";
echo get_page_type_debug_info () , "\n";
}
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("FOOTER HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
}
function ai_amp_footer_hook () {
global $block_object, $ai_wp_data, $ai_total_plugin_time;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
ai_log ("AMP FOOTER HOOK START");
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
if (defined ('AI_BUFFERING')) {
if (get_output_buffering ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_AJAX) {
ai_buffering_end ();
}
}
}
// if (!(defined ('DOING_AJAX') && DOING_AJAX) && !$ai_wp_data [AI_WP_AMP_PAGE]) {
// add_footer_inline_scripts ();
// }
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_FOOTER;
$footer = $block_object [AI_FOOTER_OPTION_NAME];
$footer->clear_code_cache ();
if ($footer->get_enable_manual ()) {
if (!$footer->get_debug_disable_insertion () && !get_disable_footer_code ()) {
if ($footer->check_server_side_detection ()) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] != AI_PT_404 || $footer->get_enable_404()) {
$processed_code = do_shortcode ($footer->ai_getCode ());
if (strpos ($processed_code, AD_AMP_SEPARATOR) !== false) {
$codes = explode (AD_AMP_SEPARATOR, $processed_code);
$processed_code = ltrim ($codes [1]);
echo $processed_code;
}
}
}
}
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
echo get_page_type_debug_info ('AMP ') , "\n";
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("AMP FOOTER HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
}
function ai_write_debug_info ($write_processing_log = false) {
global $block_object, $ai_last_time, $ai_total_plugin_time, $ai_total_php_time, $ai_processing_log, $ai_db_options_extract, $ai_wp_data, $ai_db_options, $block_insertion_log, $ai_custom_hooks, $version_string, $subversion_string;
echo sprintf ("%-25s%s", AD_INSERTER_NAME, AD_INSERTER_VERSION);
if (function_exists ('ai_debug_header')) ai_debug_header ();
echo "\n\n";
if (($install_timestamp = get_option (AI_INSTALL_NAME)) !== false) {
echo "INSTALLED: ", date ("Y-m-d H:i:s", $install_timestamp + get_option ('gmt_offset') * 3600);
if (isset ($ai_wp_data [AI_INSTALL_TIME_DIFFERENCE])) {
printf (' (%04d-%02d-%02d %02d:%02d:%02d, %d days ago)', $ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->y,
$ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->m,
$ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->d,
$ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->h,
$ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->i,
$ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->s,
isset ($ai_wp_data [AI_DAYS_SINCE_INSTAL]) ? $ai_wp_data [AI_DAYS_SINCE_INSTAL] : null);
}
echo "\n";
}
echo "GENERATED (WP time): ", date ("Y-m-d H:i:s", time() + get_option ('gmt_offset') * 3600), "\n";
echo "GENERATED (Server time): ", date ("Y-m-d H:i:s", time()), "\n";
echo "PLUGIN CODE PROCESSING: ", number_format (($ai_total_plugin_time - $ai_total_php_time) * 1000, 2, '.' , ''), " ms\n";
echo "USER CODE PROCESSING: ", number_format ($ai_total_php_time * 1000, 2, '.' , ''), " ms\n";
echo "TOTAL PROCESSING TIME: ", number_format ($ai_total_plugin_time * 1000, 2, '.' , ''), " ms\n";
// echo "MEMORY USED: ", number_format (memory_get_usage (true) / 1024 / 1024, 2, '.' , ''), " MB\n";
// echo "PEAK MEMORY USED: ", number_format (memory_get_peak_usage (true) / 1024 / 1024, 2, '.' , ''), " MB\n";
echo "SETTINGS: ";
if (isset ($ai_db_options [AI_OPTION_GLOBAL]['VERSION']))
echo (int) ($ai_db_options [AI_OPTION_GLOBAL]['VERSION'][0].$ai_db_options [AI_OPTION_GLOBAL]['VERSION'][1]), '.',
(int) ($ai_db_options [AI_OPTION_GLOBAL]['VERSION'][2].$ai_db_options [AI_OPTION_GLOBAL]['VERSION'][3]), '.',
(int) ($ai_db_options [AI_OPTION_GLOBAL]['VERSION'][4].$ai_db_options [AI_OPTION_GLOBAL]['VERSION'][5]);
echo "\n";
echo "SETTINGS SIZE: ", strlen (serialize (get_option (AI_OPTION_NAME))), "\n";
echo "SETTINGS TIMESTAMP: ";
echo isset ($ai_db_options [AI_OPTION_GLOBAL]['TIMESTAMP']) ? date ("Y-m-d H:i:s", $ai_db_options [AI_OPTION_GLOBAL]['TIMESTAMP'] + get_option ('gmt_offset') * 3600) : "", "\n";
$expected_extract_version = $version_string . $subversion_string . '-' . '96';
$extract_source = '';
$saved_settings = get_option (AI_OPTION_NAME);
if (isset ($saved_settings [AI_OPTION_EXTRACT]['VERSION']) && $saved_settings [AI_OPTION_EXTRACT]['VERSION'] == $expected_extract_version) {
$saved_extract = $saved_settings [AI_OPTION_EXTRACT];
$extract_source = 'SAVED SETTINGS';
} else {
$saved_extract = get_option (AI_EXTRACT_NAME);
$extract_source = defined ('AI_EXTRACT_GENERATED') ? "REGENERATED" : 'SAVED EXTRACT';
}
echo "SETTINGS EXTRACT: ";
if (isset ($saved_extract ['VERSION'])) {
$extract_subversion_blocks = explode ('-', $saved_extract ['VERSION']);
array_shift ($extract_subversion_blocks);
echo (int) ($saved_extract ['VERSION'][0].$saved_extract ['VERSION'][1]), '.',
(int) ($saved_extract ['VERSION'][2].$saved_extract ['VERSION'][3]), '.',
(int) ($saved_extract ['VERSION'][4].$saved_extract ['VERSION'][5]), '-', implode ('-', $extract_subversion_blocks);
}
echo"\n";
echo "EXTRACT TIMESTAMP: ";
echo isset ($saved_extract ['TIMESTAMP']) ? date ("Y-m-d H:i:s", $saved_extract ['TIMESTAMP'] + get_option ('gmt_offset') * 3600) : "", "\n";
echo "EXTRACT SOURCE: ", $extract_source, "\n";
echo "MULTISITE: ", is_multisite() ? "YES" : "NO", "\n";
if (is_multisite()) {
echo "MAIN SITE: ", is_main_site () ? "YES" : "NO", "\n";
}
echo "USER: ";
if (($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) == AI_USER_LOGGED_IN) echo "LOGGED-IN "; else echo "NOT LOGGED-IN ";
if (($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) == AI_USER_ADMINISTRATOR) echo "ADMINISTRATOR";
$current_user = wp_get_current_user();
echo "\n";
echo "USERNAME: ", $current_user->user_login, "\n";
echo 'USER ROLES: ', implode (', ', $current_user->roles), "\n";
echo 'MIN.USER FOR EXCEPTIONS: ', get_minimum_user_role (), "\n";
echo "PAGE TYPE: ";
switch ($ai_wp_data [AI_WP_PAGE_TYPE]) {
case AI_PT_STATIC: echo "STATIC PAGE"; break;
case AI_PT_POST: echo "POST"; break;
case AI_PT_HOMEPAGE: echo "HOMEPAGE"; break;
case AI_PT_CATEGORY: echo "CATEGORY PAGE"; break;
case AI_PT_ARCHIVE: echo "ARCHIVE PAGE"; break;
case AI_PT_SEARCH: echo "SEARCH PAGE"; break;
case AI_PT_404: echo "404 PAGE"; break;
case AI_PT_ADMIN: echo "ADMIN"; break;
case AI_PT_FEED: echo "FEED"; break;
case AI_PT_AJAX: echo "AJAX"; break;
case AI_PT_ANY: echo "ANY ?"; break;
case AI_PT_NONE: echo "NONE ?"; break;
default: echo "?"; break;
}
echo "\n";
switch ($ai_wp_data [AI_WP_PAGE_TYPE]) {
case AI_PT_STATIC:
case AI_PT_POST:
echo 'PUBLISHED: ', date ("Y-m-d H:i:s", get_the_date ('U')), "\n";
echo 'ID: ', get_the_ID(), "\n";
echo 'POST TYPE: ', get_post_type (), "\n";
$category_data = get_the_category();
$categories = array ();
foreach ($category_data as $category) {
$categories []= $category->name . ' ('.$category->slug.')';
}
echo 'CATEGORIES: ', implode (', ', $categories), "\n";
$tag_data = wp_get_post_tags (get_the_ID());
$tags = array ();
foreach ($tag_data as $tag) {
$tags []= $tag->name . ' ('.$tag->slug.')';
}
echo 'TAGS: ', implode (', ', $tags), "\n";
$taxonomies = array ();
$taxonomy_names = get_post_taxonomies ();
foreach ($taxonomy_names as $taxonomy_name) {
$terms = get_the_terms (0, $taxonomy_name);
if (is_array ($terms)) {
foreach ($terms as $term) {
$taxonomies [] = strtolower ($term->taxonomy) . ':' . strtolower ($term->slug);
}
}
}
echo 'TAXONOMIES: ', implode (', ', $taxonomies), "\n";
$post_meta = get_post_meta (get_the_ID());
$meta_string = array ();
foreach ($post_meta as $key => $post_meta_field) {
foreach ($post_meta_field as $post_meta_field_item) {
$meta_string []= $key . ':' . $post_meta_field_item;
}
}
// echo 'POST META: ', implode (', ', $meta_string), "\n";
echo 'POST META: ', str_replace (array ("", "\n", "\r"), array ("[!--", "--]", "*n", "*r"), implode (', ', $meta_string)), "\n";
break;
case AI_PT_CATEGORY:
$category_data = get_the_category();
$categories = array ();
foreach ($category_data as $category) {
$categories []= $category->slug;
}
echo 'CATEGORY: ', implode (', ', $categories), "\n";
break;
case AI_PT_ARCHIVE:
$tag_data = wp_get_post_tags (get_the_ID());
$tags = array ();
foreach ($tag_data as $tag) {
$tags []= $tag->slug;
}
echo 'TAG: ', implode (', ', $tags), "\n";
break;
}
echo 'AMP PAGE: ', ($ai_wp_data [AI_WP_AMP_PAGE] ? 'YES' : 'NO'), "\n";
echo 'URL: ', $ai_wp_data [AI_WP_URL], "\n";
echo 'REFERER: ', isset ($_SERVER['HTTP_REFERER']) ? strtolower (parse_url ($_SERVER['HTTP_REFERER'], PHP_URL_HOST)) . ' ('. remove_debug_parameters_from_url ($_SERVER['HTTP_REFERER']).')' : "", "\n";
if (function_exists ('ai_debug')) ai_debug ();
if ($ai_wp_data [AI_CLIENT_SIDE_DETECTION] || 1) {
for ($viewport = 1; $viewport <= 6; $viewport ++) {
$viewport_name = get_viewport_name ($viewport);
$viewport_width = get_viewport_width ($viewport);
if ($viewport_name != '') {
echo 'VIEWPORT ', $viewport, ': ', sprintf ("%-16s min width %s", $viewport_name.' ', $viewport_width), " px\n";
}
}
}
echo 'SERVER-SIDE DETECTION: ', $ai_wp_data [AI_SERVER_SIDE_DETECTION] ? 'USED' : "NOT USED", "\n";
if ($ai_wp_data [AI_SERVER_SIDE_DETECTION]) {
echo 'SERVER-SIDE DEVICE: ';
if (AI_DESKTOP) echo "DESKTOP\n";
elseif (AI_TABLET) echo "TABLET\n";
elseif (AI_PHONE) echo "PHONE\n";
else echo "?\n";
}
echo 'CLIENT-SIDE DETECTION: ', $ai_wp_data [AI_CLIENT_SIDE_DETECTION] ? 'USED' : "NOT USED", "\n";
echo 'CLIENT-SIDE INSERTION: ', $ai_wp_data [AI_CLIENT_SIDE_INSERTION] ? 'USED' : "NOT USED", "\n";
if (function_exists ('ai_debug_features')) ai_debug_features ();
$enabled_custom_hooks = array ();
foreach ($ai_custom_hooks as $ai_custom_hook) {
$hook = $ai_custom_hook ['index'];
$enabled_custom_hooks [] = $ai_custom_hook ['action'];
}
for ($hook = 1; $hook <= 8; $hook ++) {
$name = str_replace (array ('<', '>'), array ('<', '>'), get_hook_name ($hook));
$action = get_hook_action ($hook);
if (get_hook_enabled ($hook) /*&& $name != '' && $action != ''*/) {
$priority = get_hook_priority ($hook);
echo 'CUSTOM HOOK ', $hook, ': ', sprintf ("%-30s %-35s %d %s", $name, $action, $priority, !in_array ($action, $enabled_custom_hooks) ? 'INVALID' : ''), "\n";
}
}
echo 'BLOCK CLASS NAME: ', get_block_class_name (), "\n";
echo 'INLINE STYLES: ', get_inline_styles () ? 'ENABLED' : 'DISABLED', "\n";
echo 'DYNAMIC BLOCKS: ';
switch (get_dynamic_blocks()) {
case AI_DYNAMIC_BLOCKS_SERVER_SIDE:
echo AI_TEXT_ENG_SERVER_SIDE;
break;
case AI_DYNAMIC_BLOCKS_SERVER_SIDE_W3TC:
echo AI_TEXT_ENG_SERVER_SIDE_W3TC;
break;
case AI_DYNAMIC_BLOCKS_CLIENT_SIDE_SHOW:
echo AI_TEXT_ENG_CLIENT_SIDE_SHOW;
break;
case AI_DYNAMIC_BLOCKS_CLIENT_SIDE_INSERT:
echo AI_TEXT_ENG_CLIENT_SIDE_INSERT;
break;
}
echo "\n";
echo 'PARAGRAPH COUNTING: ';
switch (get_paragraph_counting_functions()) {
case AI_STANDARD_PARAGRAPH_COUNTING_FUNCTIONS:
echo AI_TEXT_ENG_STANDARD;
break;
case AI_MULTIBYTE_PARAGRAPH_COUNTING_FUNCTIONS:
echo AI_TEXT_ENG_MULTIBYTE;
break;
}
echo "\n";
echo 'NO PAR. COUNTING INSIDE: ', get_no_paragraph_counting_inside (), "\n";
if (defined ('AI_BUFFERING')) {
echo 'OUTPUT BUFFERING: ';
switch (get_output_buffering()) {
case AI_OUTPUT_BUFFERING_DISABLED:
echo AI_TEXT_ENG_DISABLED;
break;
case AI_OUTPUT_BUFFERING_ENABLED:
echo AI_TEXT_ENG_ENABLED;
break;
}
echo "\n";
}
echo 'AD LABEL: ', get_ad_label (), "\n";
if (defined ('AI_STICKY_SETTINGS') && AI_STICKY_SETTINGS) {
echo 'MAIN CONTENT: ', get_main_content_element (), "\n";
}
echo 'PLUGIN PRIORITY: ', get_plugin_priority (), "\n";
echo 'ADMIN DISABLE CACHING: ', get_disable_caching () ? 'ENABLED' : 'DISABLED', "\n";
echo 'DO NOT CACHE CONSTANTS: ', defined ('DONOTCACHEPAGE') ? 'DONOTCACHEPAGE ' : '', defined ('DONOTCACHEOBJECT') ? 'DONOTCACHEOBJECT ' : '', defined ('DONOTCACHEDB') ? 'DONOTCACHEDB ' : '', "\n";
echo 'HEADER: ', $block_object [AI_HEADER_OPTION_NAME]->get_enable_manual () ? 'ENABLED' : 'DISABLED', "\n";
echo 'FOOTER: ', $block_object [AI_FOOTER_OPTION_NAME]->get_enable_manual () ? 'ENABLED' : 'DISABLED', "\n";
if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
echo 'AD BLOCKING DETECTION: ', $ai_wp_data [AI_ADB_DETECTION] ? 'ENABLED' : 'DISABLED', "\n";
if ($ai_wp_data [AI_ADB_DETECTION]) {
echo 'ADB ACTION: ';
switch (get_adb_action (true)) {
case AI_ADB_ACTION_NONE:
echo AI_TEXT_ENG_NONE;
break;
case AI_ADB_ACTION_MESSAGE:
echo AI_TEXT_ENG_POPUP_MESSAGE;
break;
case AI_ADB_ACTION_REDIRECTION:
echo AI_TEXT_ENG_REDIRECTION;
break;
}
echo "\n";
echo 'ADB NO ACTION: ';
switch (get_adb_no_action (true)) {
case AI_ADB_NO_ACTION_NONE:
echo AI_TEXT_ENG_NONE;
break;
case AI_ADB_NO_ACTION_LOGGED_IN:
echo AI_TEXT_ENG_DISPLAY_LOGGED_IN_USERS;
break;
case AI_ADB_NO_ACTION_ADMINISTRATORS:
echo AI_TEXT_ENG_DISPLAY_ADMINISTRATORS;
break;
}
echo "\n";
echo 'ADB DELAY ACTION: ', get_delay_action (), "\n";
echo 'ADB NO ACTION PERIOD: ', get_no_action_period (), "\n";
echo 'ADB SELECTORS: ', get_adb_selectors (true), "\n";
$redirection_page = get_redirection_page ();
echo 'ADB REDIRECTION PAGE: ', $redirection_page != 0 ? get_the_title ($redirection_page) . ' (' . get_permalink ($redirection_page) . ')' : 'Custom Url', "\n";
echo 'ADB REDIRECTION URL: ', get_custom_redirection_url (), "\n";
echo 'ADB MESSAGE: ', $block_object [AI_ADB_MESSAGE_OPTION_NAME]->ai_getCode (), "\n";
echo 'ADB MESSAGE CSS: ', get_message_css (), "\n";
echo 'ADB OVERLAY CSS: ', get_overlay_css (), "\n";
echo 'ADB UNDISMISSIBLE: ', get_undismissible_message (true) ? 'ON' : 'OFF', "\n";
}
}
echo "\n";
// if ($block_object [AI_HEADER_OPTION_NAME]->get_enable_manual ()) {
// echo "HEADER CODE ========================================================\n";
// echo ai_dump_code ($block_object [AI_HEADER_OPTION_NAME]->ai_getCode ());
// echo "\n====================================================================\n\n";
// }
// if ($block_object [AI_FOOTER_OPTION_NAME]->get_enable_manual ()) {
// echo "FOOTER CODE ========================================================\n";
// echo ai_dump_code ($block_object [AI_FOOTER_OPTION_NAME]->ai_getCode ());
// echo "\n====================================================================\n\n";
// }
$default = new ai_Block (1);
echo "BLOCK SETTINGS Po Pa Hp Cp Ap Sp AM Aj Fe 404 Wi Sh PHP\n";
for ($block = 1; $block <= 96; $block ++) {
$obj = $block_object [$block];
$settings = "";
$insertion_settings = '';
$alignment_settings = '';
$default_settings = true;
// $display_type = '';
foreach (array_keys ($default->wp_options) as $key){
switch ($key) {
case AI_OPTION_CODE:
case AI_OPTION_BLOCK_NAME:
continue 2;
case AI_OPTION_DISPLAY_ON_PAGES:
case AI_OPTION_DISPLAY_ON_POSTS:
case AI_OPTION_DISPLAY_ON_HOMEPAGE:
case AI_OPTION_DISPLAY_ON_CATEGORY_PAGES:
case AI_OPTION_DISPLAY_ON_SEARCH_PAGES:
case AI_OPTION_DISPLAY_ON_ARCHIVE_PAGES:
case AI_OPTION_ENABLE_AMP:
case AI_OPTION_ENABLE_AJAX:
case AI_OPTION_ENABLE_FEED:
case AI_OPTION_ENABLE_404:
case AI_OPTION_ENABLE_MANUAL:
case AI_OPTION_ENABLE_WIDGET:
case AI_OPTION_ENABLE_PHP_CALL:
if ($obj->wp_options [$key] != $default->wp_options [$key]) $default_settings = false;
continue 2;
}
// if (gettype ($obj->wp_options [$key]) == 'string' && gettype ($default->wp_options [$key]) == 'integer') {
// $default->wp_options [$key] = strval ($default->wp_options [$key]);
// }
// elseif (gettype ($obj->wp_options [$key]) == 'integer' && gettype ($default->wp_options [$key]) == 'string') {
// $default->wp_options [$key] = intval ($default->wp_options [$key]);
// }
// if ($obj->wp_options [$key] !== $default->wp_options [$key]) {
if ($obj->wp_options [$key] != $default->wp_options [$key]) {
$default_settings = false;
switch ($key) {
case AI_OPTION_AUTOMATIC_INSERTION:
$insertion_settings = $obj->get_automatic_insertion_text (false, false);
break;
case AI_OPTION_SERVER_SIDE_INSERTION:
$settings .= "[" . $key . ": " . $obj->get_automatic_insertion_text (true, false) . ']';
break;
case AI_OPTION_ALIGNMENT_TYPE:
$alignment_settings = $obj->get_alignment_type_text (false);
break;
case AI_OPTION_ENABLED_ON_WHICH_PAGES:
$settings .= "[" . $key . ": " . $obj->get_ad_enabled_on_which_pages_text (false) . ']';
break;
case AI_OPTION_ENABLED_ON_WHICH_POSTS:
$settings .= "[" . $key . ": " . $obj->get_ad_enabled_on_which_posts_text (false) . ']';
break;
case AI_OPTION_FILTER_TYPE:
$settings .= "[" . $key . ": " . $obj->get_filter_type_text (false) . ']';
break;
case AI_OPTION_AVOID_ACTION:
$settings .= "[" . $key . ": " . $obj->get_avoid_action_text (false) . ']';
break;
case AI_OPTION_AVOID_DIRECTION:
$settings .= "[" . $key . ": " . $obj->get_avoid_direction_text (false) . ']';
break;
case AI_OPTION_DIRECTION_TYPE:
$settings .= "[" . $key . ": " . $obj->get_direction_type_text (false) . ']';
break;
case AI_OPTION_PARAGRAPH_TEXT_TYPE:
$settings .= "[" . $key . ": " . $obj->get_paragraph_text_type_text (false) . ']';
break;
case AI_OPTION_DISPLAY_FOR_USERS:
$settings .= "[" . $key . ": " . $obj->get_display_for_users_text (false) . ']';
break;
case AI_OPTION_DISPLAY_FOR_DEVICES:
$settings .= "[" . $key . ": " . $obj->get_display_for_devices_text (false) . ']';
break;
case AI_OPTION_PARAGRAPH_TEXT:
case AI_OPTION_AVOID_TEXT_ABOVE:
case AI_OPTION_AVOID_TEXT_BELOW:
case AI_OPTION_HTML_SELECTOR:
if ($write_processing_log)
$settings .= "[" . $key . ": " . ai_log_filter_content (html_entity_decode ($obj->wp_options [$key])) . ']'; else
$settings .= "[" . $key . ": " . $obj->wp_options [$key] . ']';
break;
default:
$settings .= "[" . $key . ": " . $obj->wp_options [$key] . ']';
break;
}
// $settings .= ' ['.gettype ($obj->wp_options [$key]).':'.$obj->wp_options [$key].'#'.gettype ($default->wp_options [$key]).':'.$default->wp_options [$key].'] ';
} else
switch ($key) {
case AI_OPTION_AUTOMATIC_INSERTION:
$insertion_settings = $obj->get_automatic_insertion_text (false, false);
break;
case AI_OPTION_ALIGNMENT_TYPE:
$alignment_settings = $obj->get_alignment_type_text (false);
break;
}
}
if ($default_settings && $settings == '') continue;
$settings = ' [' . $insertion_settings . '][' . $alignment_settings . ']' . $settings;
echo sprintf ("%2d %-21s ", $block, $ai_wp_data [AI_MBSTRING_LOADED] ? mb_substr ($obj->get_ad_name(), 0, 21) : substr ($obj->get_ad_name(), 0, 21));
echo $obj->get_display_settings_post() ? "o" : ".", " ";
echo $obj->get_display_settings_page() ? "o" : ".", " ";
echo $obj->get_display_settings_home() ? "o" : ".", " ";
echo $obj->get_display_settings_category() ? "o" : ".", " ";
echo $obj->get_display_settings_archive() ? "o" : ".", " ";
echo $obj->get_display_settings_search() ? "o" : ".", " ";
echo $obj->get_enable_amp() ? "o" : ".", " ";
echo $obj->get_enable_ajax() ? "o" : ".", " ";
echo $obj->get_enable_feed() ? "o" : ".", " ";
echo $obj->get_enable_404() ? "o" : ".", " ";
echo $obj->get_enable_widget() ? "x" : ".", " ";
echo $obj->get_enable_manual() ? "x" : ".", " ";
echo $obj->get_enable_php_call() ? "x" : ".", " ";
echo $settings, "\n";
}
echo "\n";
$args = array (
'public' => true,
'_builtin' => false
);
$custom_post_types = get_post_types ($args, 'names', 'and');
$screens = array_values (array_merge (array ('post', 'page'), $custom_post_types));
$args = array (
'posts_per_page' => 100,
'offset' => 0,
'category' => '',
'category_name' => '',
'orderby' => 'type',
'order' => 'ASC',
'include' => '',
'exclude' => '',
'meta_key' => '_adinserter_block_exceptions',
'meta_value' => '',
'post_type' => $screens,
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'author_name' => '',
'post_status' => '',
'suppress_filters' => true
);
$posts_pages = get_posts ($args);
if (count ($posts_pages) != 0) {
echo "EXCEPTIONS FOR BLOCKS ID TYPE TITLE URL\n";
foreach ($posts_pages as $page) {
$post_meta = get_post_meta ($page->ID, '_adinserter_block_exceptions', true);
if ($post_meta == '') continue;
$post_type_object = get_post_type_object ($page->post_type);
echo sprintf ("%-24s %-6s %-24s %-64s %s", $post_meta, $page->ID, $post_type_object->labels->singular_name, substr ($page->post_title, 0, 64), get_permalink ($page->ID)), "\n";
}
echo "\n";
}
echo "TOTAL BLOCKS\n";
if (count ($ai_db_options_extract [ABOVE_HEADER_HOOK_BLOCKS][AI_PT_ANY]))
echo "ABOVE HEADER: ", implode (", ", $ai_db_options_extract [ABOVE_HEADER_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [CONTENT_HOOK_BLOCKS][AI_PT_ANY]))
echo "CONTENT HOOK: ", implode (", ", $ai_db_options_extract [CONTENT_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [EXCERPT_HOOK_BLOCKS][AI_PT_ANY]))
echo "EXCERPT HOOK: ", implode (", ", $ai_db_options_extract [EXCERPT_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [LOOP_START_HOOK_BLOCKS][AI_PT_ANY]))
echo "LOOP START HOOK: ", implode (", ", $ai_db_options_extract [LOOP_START_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [LOOP_END_HOOK_BLOCKS][AI_PT_ANY]))
echo "LOOP END HOOK: ", implode (", ", $ai_db_options_extract [LOOP_END_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [POST_HOOK_BLOCKS][AI_PT_ANY]))
echo "POST HOOK: ", implode (", ", $ai_db_options_extract [POST_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][AI_PT_ANY]))
echo "AFTER COMMENTS HOOK: ", implode (", ", $ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][AI_PT_ANY]))
echo "BETWEEN COMMENTS HOOK ", implode (", ", $ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][AI_PT_ANY]))
echo "AFTER COMMENTS HOOK: ", implode (", ", $ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][AI_PT_ANY]), "\n";
if (count ($ai_db_options_extract [FOOTER_HOOK_BLOCKS][AI_PT_ANY]))
echo "FOOTER HOOK: ", implode (", ", $ai_db_options_extract [FOOTER_HOOK_BLOCKS][AI_PT_ANY]), "\n";
foreach ($ai_custom_hooks as $hook_index => $custom_hook) {
switch ($custom_hook ['action']) {
case 'wp_footer':
// case 'wp_head':
case 'the_content':
case 'the_excerpt':
case 'loop_start':
case 'loop_end':
case 'the_post':
continue 2;
}
if (count ($ai_db_options_extract [$custom_hook ['action'] . CUSTOM_HOOK_BLOCKS][AI_PT_ANY]))
echo substr (strtoupper (str_replace (array ('<', '>'), array ('<', '>'), get_hook_name ($custom_hook ['index']))) . " HOOK: ", 0, 25), implode (", ", $ai_db_options_extract [$custom_hook ['action'] . CUSTOM_HOOK_BLOCKS][AI_PT_ANY]), "\n";
}
if (count ($ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][AI_PT_ANY]))
echo "HTML ELEMENT: ", implode (", ", $ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][AI_PT_ANY]), "\n";
echo "\nBLOCKS FOR THIS PAGE TYPE\n";
if (isset ($ai_db_options_extract [ABOVE_HEADER_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [ABOVE_HEADER_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "ABOVE HEADER: ", implode (", ", $ai_db_options_extract [ABOVE_HEADER_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [CONTENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [CONTENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "CONTENT HOOK: ", implode (", ", $ai_db_options_extract [CONTENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [EXCERPT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [EXCERPT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "EXCERPT HOOK: ", implode (", ", $ai_db_options_extract [EXCERPT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [LOOP_START_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [LOOP_START_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "LOOP START HOOK: ", implode (", ", $ai_db_options_extract [LOOP_START_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [LOOP_END_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [LOOP_END_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "LOOP END HOOK: ", implode (", ", $ai_db_options_extract [LOOP_END_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [POST_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [POST_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "POST HOOK: ", implode (", ", $ai_db_options_extract [POST_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "AFTER COMMENTS HOOK: ", implode (", ", $ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "BETWEEN COMMENTS HOOK: ", implode (", ", $ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "AFTER COMMENTS HOOK: ", implode (", ", $ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if (isset ($ai_db_options_extract [FOOTER_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [FOOTER_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "FOOTER HOOK ", implode (", ", $ai_db_options_extract [FOOTER_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
foreach ($ai_custom_hooks as $hook_index => $custom_hook) {
switch ($custom_hook ['action']) {
case 'wp_footer':
// case 'wp_head':
case 'the_content':
case 'the_excerpt':
case 'loop_start':
case 'loop_end':
case 'the_post':
continue 2;
}
if (isset ($ai_db_options_extract [$custom_hook ['action'] . CUSTOM_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [$custom_hook ['action'] . CUSTOM_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo substr (strtoupper (str_replace (array ('<', '>'), array ('<', '>'), get_hook_name ($custom_hook ['index']))) . " HOOK: ", 0, 25), implode (", ", $ai_db_options_extract [$custom_hook ['action'] . CUSTOM_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
}
if (isset ($ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) && count ($ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
echo "HTML ELEMENT: ", implode (", ", $ai_db_options_extract [HTML_ELEMENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]), "\n";
if ($write_processing_log) {
echo "\nTIME EVENT\n";
echo "======================================\n";
foreach ($ai_processing_log as $log_line) {
echo $log_line, "\n";
}
sort ($block_insertion_log);
echo "\nINSERTION SUMMARY\n";
echo "======================================\n";
foreach ($block_insertion_log as $log_line) {
echo substr ($log_line, 3), "\n";
}
echo "\n\n";
echo "SERVER_ADDR: ", isset ($_SERVER ['SERVER_ADDR']) ? $_SERVER ['SERVER_ADDR'] : '', "\n";
echo "HTTP_CF_CONNECTING_IP: ", isset ($_SERVER ['HTTP_CF_CONNECTING_IP']) ? $_SERVER ['HTTP_CF_CONNECTING_IP'] : '', "\n";
echo "HTTP_CLIENT_IP: ", isset ($_SERVER ['HTTP_CLIENT_IP']) ? $_SERVER ['HTTP_CLIENT_IP'] : '', "\n";
echo "HTTP_X_FORWARDED_FOR: ", isset ($_SERVER ['HTTP_X_FORWARDED_FOR']) ? $_SERVER ['HTTP_X_FORWARDED_FOR'] : '', "\n";
echo "HTTP_X_FORWARDED: ", isset ($_SERVER ['HTTP_X_FORWARDED']) ? $_SERVER ['HTTP_X_FORWARDED'] : '', "\n";
echo "HTTP_X_CLUSTER_CLIENT_IP:", isset ($_SERVER ['HTTP_X_CLUSTER_CLIENT_IP']) ? $_SERVER ['HTTP_X_CLUSTER_CLIENT_IP'] : '', "\n";
echo "HTTP_FORWARDED_FOR: ", isset ($_SERVER ['HTTP_FORWARDED_FOR']) ? $_SERVER ['HTTP_FORWARDED_FOR'] : '', "\n";
echo "HTTP_FORWARDED: ", isset ($_SERVER ['HTTP_FORWARDED']) ? $_SERVER ['HTTP_FORWARDED'] : '', "\n";
echo "REMOTE_ADDR: ", isset ($_SERVER ['REMOTE_ADDR']) ? $_SERVER ['REMOTE_ADDR'] : '', "\n";
echo "\n";
echo "PHP: ", phpversion(), "\n";
echo "mbstring: ", $ai_wp_data [AI_MBSTRING_LOADED] ? 'LOADED' : 'NO', "\n";
echo "Default charset: ", ini_get ("default_charset"), "\n";
echo "Memory Limit: ", ini_get ('memory_limit'), "\n";
echo "Upload Max Filesize: ", ini_get ('upload_max_filesize'), "\n";
echo "Post Max Size: ", ini_get ('post_max_size'), "\n";
echo "Max Execution Time: ", ini_get ('max_execution_time'), "\n";
echo "Max Input Vars: ", ini_get ('max_input_vars'), "\n";
echo "Display Errors: ", ini_get ('display_errors'), "\n";
echo "cURL: ", function_exists ('curl_version') ? 'ENABLED' : 'DISABLED', "\n";
echo "fsockopen: ", function_exists ('fsockopen') ? 'ENABLED' : 'DISABLED', "\n";
echo "DOMDocument: ", class_exists ('DOMDocument') ? 'YES' : 'NO', "\n";
echo "\n\n";
global $wp_version;
echo "Wordpress: ", $wp_version, "\n";
$current_theme = wp_get_theme();
echo "Current Theme: ", $current_theme->get ('Name') . " " . $current_theme->get ('Version'), "\n";
echo "\n";
echo "A INSTALLED PLUGINS\n";
echo "======================================\n";
if ( ! function_exists( 'get_plugins' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$all_plugins = get_plugins();
$active_plugins = get_option ('active_plugins');
$active_sitewide_plugins = is_multisite () ? get_site_option ('active_sitewide_plugins') : false;
foreach ($all_plugins as $plugin_path => $plugin) {
$multisite_status = ' ';
if ($active_sitewide_plugins !== false) {
$multisite_status = array_key_exists ($plugin_path, $active_sitewide_plugins) ? '# ' : ' ';
}
echo in_array ($plugin_path, $active_plugins) ? '* ' : $multisite_status, html_entity_decode ($plugin ["Name"]), ' ', $plugin ["Version"], "\n";
}
}
}
function ai_shutdown_hook () {
global $ai_wp_data;
if (function_exists ('ai_system_output')) ai_system_output ();
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0 && (get_remote_debugging () || ($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0)) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_HOMEPAGE ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_STATIC ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_POST ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_CATEGORY ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_SEARCH ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_ARCHIVE ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_404 ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_NONE ||
$ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_ANY) {
echo "\n\n";
}
}
}
function ai_check_multisite_options (&$multisite_options) {
if (!isset ($multisite_options ['MULTISITE_SETTINGS_PAGE'])) $multisite_options ['MULTISITE_SETTINGS_PAGE'] = DEFAULT_MULTISITE_SETTINGS_PAGE;
if (!isset ($multisite_options ['MULTISITE_WIDGETS'])) $multisite_options ['MULTISITE_WIDGETS'] = DEFAULT_MULTISITE_WIDGETS;
if (!isset ($multisite_options ['MULTISITE_PHP_PROCESSING'])) $multisite_options ['MULTISITE_PHP_PROCESSING'] = DEFAULT_MULTISITE_PHP_PROCESSING;
if (!isset ($multisite_options ['MULTISITE_EXCEPTIONS'])) $multisite_options ['MULTISITE_EXCEPTIONS'] = DEFAULT_MULTISITE_EXCEPTIONS;
if (!isset ($multisite_options ['MULTISITE_MAIN_FOR_ALL_BLOGS'])) $multisite_options ['MULTISITE_MAIN_FOR_ALL_BLOGS'] = DEFAULT_MULTISITE_MAIN_FOR_ALL_BLOGS;
if (function_exists ('ai_check_multisite_options_2')) ai_check_multisite_options_2 ($multisite_options);
}
function ai_check_limits ($value, $min, $max, $default) {
if (!is_numeric ($value)) {
$value = $default;
}
$value = intval ($value);
if ($value < $min) {
$value = $min;
}
if ($value > $max) {
$value = $max;
}
return $value;
}
function ai_check_plugin_options ($plugin_options = array ()) {
global $version_string;
$plugin_options ['VERSION'] = $version_string;
if (!isset ($plugin_options ['SYNTAX_HIGHLIGHTER_THEME'])) $plugin_options ['SYNTAX_HIGHLIGHTER_THEME'] = DEFAULT_SYNTAX_HIGHLIGHTER_THEME;
if (!isset ($plugin_options ['BLOCK_CLASS_NAME'])) $plugin_options ['BLOCK_CLASS_NAME'] = DEFAULT_BLOCK_CLASS_NAME;
if (!isset ($plugin_options ['BLOCK_CLASS'])) $plugin_options ['BLOCK_CLASS'] = DEFAULT_BLOCK_CLASS;
if (!isset ($plugin_options ['BLOCK_NUMBER_CLASS'])) $plugin_options ['BLOCK_NUMBER_CLASS'] = DEFAULT_BLOCK_NUMBER_CLASS;
if (!isset ($plugin_options ['INLINE_STYLES'])) $plugin_options ['INLINE_STYLES'] = DEFAULT_INLINE_STYLES;
if (!isset ($plugin_options ['MINIMUM_USER_ROLE'])) $plugin_options ['MINIMUM_USER_ROLE'] = DEFAULT_MINIMUM_USER_ROLE;
if (!isset ($plugin_options ['STICKY_WIDGET_MODE'])) $plugin_options ['STICKY_WIDGET_MODE'] = DEFAULT_STICKY_WIDGET_MODE;
if (!isset ($plugin_options ['STICKY_WIDGET_MARGIN'])) $plugin_options ['STICKY_WIDGET_MARGIN'] = DEFAULT_STICKY_WIDGET_MARGIN;
$plugin_options ['STICKY_WIDGET_MARGIN'] = ai_check_limits ($plugin_options ['STICKY_WIDGET_MARGIN'], 0, 999, DEFAULT_STICKY_WIDGET_MARGIN);
if (!isset ($plugin_options ['LAZY_LOADING_OFFSET'])) $plugin_options ['LAZY_LOADING_OFFSET'] = DEFAULT_LAZY_LOADING_OFFSET;
$plugin_options ['LAZY_LOADING_OFFSET'] = ai_check_limits ($plugin_options ['LAZY_LOADING_OFFSET'], 0, 9999, DEFAULT_LAZY_LOADING_OFFSET);
if (!isset ($plugin_options ['MAX_PAGE_BLOCKS'])) $plugin_options ['MAX_PAGE_BLOCKS'] = DEFAULT_MAX_PAGE_BLOCKS;
$plugin_options ['MAX_PAGE_BLOCKS'] = ai_check_limits ($plugin_options ['MAX_PAGE_BLOCKS'], 0, 9999, DEFAULT_MAX_PAGE_BLOCKS);
if (!isset ($plugin_options ['PLUGIN_PRIORITY'])) $plugin_options ['PLUGIN_PRIORITY'] = DEFAULT_PLUGIN_PRIORITY;
$plugin_options ['PLUGIN_PRIORITY'] = ai_check_limits ($plugin_options ['PLUGIN_PRIORITY'], 0, 999999, DEFAULT_PLUGIN_PRIORITY);
if (!isset ($plugin_options ['DYNAMIC_BLOCKS'])) $plugin_options ['DYNAMIC_BLOCKS'] = DEFAULT_DYNAMIC_BLOCKS;
if (!isset ($plugin_options ['PARAGRAPH_COUNTING_FUNCTIONS'])) $plugin_options ['PARAGRAPH_COUNTING_FUNCTIONS'] = DEFAULT_PARAGRAPH_COUNTING_FUNCTIONS;
if (!isset ($plugin_options ['OUTPUT_BUFFERING'])) $plugin_options ['OUTPUT_BUFFERING'] = DEFAULT_OUTPUT_BUFFERING;
if (!isset ($plugin_options ['DISABLE_CACHING'])) $plugin_options ['DISABLE_CACHING'] = DEFAULT_DISABLE_CACHING;
if (!isset ($plugin_options ['NO_PARAGRAPH_COUNTING_INSIDE'])) $plugin_options ['NO_PARAGRAPH_COUNTING_INSIDE'] = DEFAULT_NO_PARAGRAPH_COUNTING_INSIDE;
if (!isset ($plugin_options ['AD_LABEL'])) $plugin_options ['AD_LABEL'] = DEFAULT_AD_TITLE;
if (!isset ($plugin_options ['MAIN_CONTENT_ELEMENT'])) $plugin_options ['MAIN_CONTENT_ELEMENT'] = DEFAULT_MAIN_CONTENT_ELEMENT;
if (!isset ($plugin_options ['ADB_ACTION'])) $plugin_options ['ADB_ACTION'] = AI_DEFAULT_ADB_ACTION;
if (!isset ($plugin_options ['ADB_NO_ACTION'])) $plugin_options ['ADB_NO_ACTION'] = AI_DEFAULT_ADB_NO_ACTION;
if (!isset ($plugin_options ['ADB_DELAY_ACTION'])) $plugin_options ['ADB_DELAY_ACTION'] = '';
if (!isset ($plugin_options ['ADB_NO_ACTION_PERIOD'])) $plugin_options ['ADB_NO_ACTION_PERIOD'] = AI_DEFAULT_ADB_NO_ACTION_PERIOD;
if (!isset ($plugin_options ['ADB_SELECTORS'])) $plugin_options ['ADB_SELECTORS'] = '';
if (!isset ($plugin_options ['ADB_REDIRECTION_PAGE'])) $plugin_options ['ADB_REDIRECTION_PAGE'] = AI_DEFAULT_ADB_REDIRECTION_PAGE;
if (!isset ($plugin_options ['ADB_CUSTOM_REDIRECTION_URL'])) $plugin_options ['ADB_CUSTOM_REDIRECTION_URL'] = '';
if (!isset ($plugin_options ['ADB_OVERLAY_CSS'])) $plugin_options ['ADB_OVERLAY_CSS'] = AI_DEFAULT_ADB_OVERLAY_CSS;
if (!isset ($plugin_options ['ADB_MESSAGE_CSS'])) $plugin_options ['ADB_MESSAGE_CSS'] = AI_DEFAULT_ADB_MESSAGE_CSS;
if (!isset ($plugin_options ['ADB_UNDISMISSIBLE_MESSAGE'])) $plugin_options ['ADB_UNDISMISSIBLE_MESSAGE'] = AI_DEFAULT_ADB_UNDISMISSIBLE_MESSAGE;
if (!isset ($plugin_options ['ADB_NO_UNDISMISSIBLE_MESSAGE'])) $plugin_options ['ADB_NO_UNDISMISSIBLE_MESSAGE'] = AI_DEFAULT_ADB_NO_UNDISMISSIBLE_MESSAGE;
if (!isset ($plugin_options ['ADMIN_TOOLBAR_DEBUGGING'])) $plugin_options ['ADMIN_TOOLBAR_DEBUGGING'] = DEFAULT_ADMIN_TOOLBAR_DEBUGGING;
if (!isset ($plugin_options ['ADMIN_TOOLBAR_MOBILE'])) $plugin_options ['ADMIN_TOOLBAR_MOBILE'] = DEFAULT_ADMIN_TOOLBAR_MOBILE;
if (!isset ($plugin_options ['FORCE_ADMIN_TOOLBAR'])) $plugin_options ['FORCE_ADMIN_TOOLBAR'] = DEFAULT_FORCE_ADMIN_TOOLBAR;
if (!isset ($plugin_options ['REMOTE_DEBUGGING'])) $plugin_options ['REMOTE_DEBUGGING'] = DEFAULT_REMOTE_DEBUGGING;
if (!isset ($plugin_options ['DISABLE_TRANSLATION'])) $plugin_options ['DISABLE_TRANSLATION'] = DEFAULT_DISABLE_TRANSLATION;
if (!isset ($plugin_options ['BACKEND_JS_DEBUGGING'])) $plugin_options ['BACKEND_JS_DEBUGGING'] = DEFAULT_BACKEND_JS_DEBUGGING;
if (!isset ($plugin_options ['FRONTEND_JS_DEBUGGING'])) $plugin_options ['FRONTEND_JS_DEBUGGING'] = DEFAULT_FRONTEND_JS_DEBUGGING;
if (!isset ($plugin_options ['DISABLE_BLOCK_INSERTIONS'])) $plugin_options ['DISABLE_BLOCK_INSERTIONS'] = DEFAULT_DISABLE_BLOCK_INSERTIONS;
if (!isset ($plugin_options ['DISABLE_PHP_PROCESSING'])) $plugin_options ['DISABLE_PHP_PROCESSING'] = DEFAULT_DISABLE_PHP_PROCESSING;
if (!isset ($plugin_options ['DISABLE_CSS_CODE'])) $plugin_options ['DISABLE_CSS_CODE'] = DEFAULT_DISABLE_CSS_CODE;
if (!isset ($plugin_options ['DISABLE_JS_CODE'])) $plugin_options ['DISABLE_JS_CODE'] = DEFAULT_DISABLE_JS_CODE;
if (!isset ($plugin_options ['DISABLE_HEADER_CODE'])) $plugin_options ['DISABLE_HEADER_CODE'] = DEFAULT_DISABLE_HEADER_CODE;
if (!isset ($plugin_options ['DISABLE_FOOTER_CODE'])) $plugin_options ['DISABLE_FOOTER_CODE'] = DEFAULT_DISABLE_FOOTER_CODE;
for ($viewport = 1; $viewport <= 6; $viewport ++) {
$viewport_name_option_name = 'VIEWPORT_NAME_' . $viewport;
$viewport_width_option_name = 'VIEWPORT_WIDTH_' . $viewport;
if (!isset ($plugin_options [$viewport_name_option_name])) $plugin_options [$viewport_name_option_name] =
defined ("DEFAULT_VIEWPORT_NAME_" . $viewport) ? constant ("DEFAULT_VIEWPORT_NAME_" . $viewport) : "";
if ($viewport == 1 && $plugin_options [$viewport_name_option_name] == '')
$plugin_options [$viewport_name_option_name] = constant ("DEFAULT_VIEWPORT_NAME_1");
if ($plugin_options [$viewport_name_option_name] != '') {
if (!isset ($plugin_options [$viewport_width_option_name])) $plugin_options [$viewport_width_option_name] =
defined ("DEFAULT_VIEWPORT_WIDTH_" . $viewport) ? constant ("DEFAULT_VIEWPORT_WIDTH_" . $viewport) : 0;
$viewport_width = $plugin_options [$viewport_width_option_name];
if ($viewport > 1) {
$previous_viewport_option_width = $plugin_options ['VIEWPORT_WIDTH_' . ($viewport - 1)];
}
if (!is_numeric ($viewport_width)) {
if ($viewport == 1)
$viewport_width = constant ("DEFAULT_VIEWPORT_WIDTH_1"); else
$viewport_width = $previous_viewport_option_width - 1;
}
if ($viewport_width > 9999) {
$viewport_width = 9999;
}
if ($viewport > 1) {
if ($viewport_width >= $previous_viewport_option_width)
$viewport_width = $previous_viewport_option_width - 1;
}
$viewport_width = intval ($viewport_width);
if ($viewport_width < 0) {
$viewport_width = 0;
}
$plugin_options [$viewport_width_option_name] = $viewport_width;
} else $plugin_options [$viewport_width_option_name] = '';
}
for ($hook = 1; $hook <= 8; $hook ++) {
$hook_enabled_settins_name = 'HOOK_ENABLED_' . $hook;
$hook_name_settins_name = 'HOOK_NAME_' . $hook;
$hook_action_settins_name = 'HOOK_ACTION_' . $hook;
$hook_priority_settins_name = 'HOOK_PRIORITY_' . $hook;
if (!isset ($plugin_options [$hook_enabled_settins_name])) $plugin_options [$hook_enabled_settins_name] = AI_DISABLED;
if (!isset ($plugin_options [$hook_name_settins_name])) $plugin_options [$hook_name_settins_name] = '';
if (!isset ($plugin_options [$hook_action_settins_name])) $plugin_options [$hook_action_settins_name] = '';
if (!isset ($plugin_options [$hook_priority_settins_name]) || !is_numeric ($plugin_options [$hook_priority_settins_name])) $plugin_options [$hook_priority_settins_name] = DEFAULT_CUSTOM_HOOK_PRIORITY;
}
if (function_exists ('ai_check_options')) ai_check_options ($plugin_options);
return ($plugin_options);
}
function option_stripslashes (&$options) {
$options = wp_unslash ($options);
// if (is_array ($options)) {
// foreach ($options as $key => $option) {
// option_stripslashes ($options [$key]);
// }
// } else if (is_string ($options)) $options = stripslashes ($options);
}
// Deprecated
function ai_get_option ($option_name) {
$options = get_option ($option_name);
option_stripslashes ($options);
return ($options);
}
function ai_load_options () {
global $ai_db_options, $ai_db_options_multisite, $ai_wp_data;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) ai_log ("LOAD OPTIONS START");
if (is_multisite()) {
$ai_db_options_multisite = get_site_option (AI_OPTION_NAME);
option_stripslashes ($ai_db_options_multisite);
}
if (is_multisite() && multisite_main_for_all_blogs () && defined ('BLOG_ID_CURRENT_SITE')) {
$ai_db_options = get_blog_option (BLOG_ID_CURRENT_SITE, AI_OPTION_NAME);
option_stripslashes ($ai_db_options);
} else {
$ai_db_options = get_option (AI_OPTION_NAME);
option_stripslashes ($ai_db_options);
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) ai_log ("LOAD OPTIONS END");
}
function get_viewport_css () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['VIEWPORT_CSS'])) $ai_db_options [AI_OPTION_GLOBAL]['VIEWPORT_CSS'] = generate_viewport_css ();
return ($ai_db_options [AI_OPTION_GLOBAL]['VIEWPORT_CSS']);
}
function get_alignment_css () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ALIGNMENT_CSS']) ||
isset ($ai_db_options [AI_OPTION_GLOBAL]['VERSION']) && $ai_db_options [AI_OPTION_GLOBAL]['VERSION'] < '020211'
) $ai_db_options [AI_OPTION_GLOBAL]['ALIGNMENT_CSS'] = generate_alignment_css ();
return (str_replace (''', "'", $ai_db_options [AI_OPTION_GLOBAL]['ALIGNMENT_CSS']));
}
function get_syntax_highlighter_theme () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['SYNTAX_HIGHLIGHTER_THEME'])) $ai_db_options [AI_OPTION_GLOBAL]['SYNTAX_HIGHLIGHTER_THEME'] = DEFAULT_SYNTAX_HIGHLIGHTER_THEME;
return ($ai_db_options [AI_OPTION_GLOBAL]['SYNTAX_HIGHLIGHTER_THEME']);
}
function get_block_class_name ($default_if_empty = false) {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS_NAME'])) $ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS_NAME'] = DEFAULT_BLOCK_CLASS_NAME;
if ($default_if_empty && $ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS_NAME'] == '') return (DEFAULT_BLOCK_CLASS_NAME);
return ($ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS_NAME']);
}
function get_block_class () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS'])) $ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS'] = DEFAULT_BLOCK_CLASS;
return ($ai_db_options [AI_OPTION_GLOBAL]['BLOCK_CLASS']);
}
function get_block_number_class () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['BLOCK_NUMBER_CLASS'])) $ai_db_options [AI_OPTION_GLOBAL]['BLOCK_NUMBER_CLASS'] = DEFAULT_BLOCK_NUMBER_CLASS;
return ($ai_db_options [AI_OPTION_GLOBAL]['BLOCK_NUMBER_CLASS']);
}
function get_inline_styles () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['INLINE_STYLES'])) $ai_db_options [AI_OPTION_GLOBAL]['INLINE_STYLES'] = DEFAULT_INLINE_STYLES;
return ($ai_db_options [AI_OPTION_GLOBAL]['INLINE_STYLES']);
}
function get_minimum_user_role () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['MINIMUM_USER_ROLE'])) $ai_db_options [AI_OPTION_GLOBAL]['MINIMUM_USER_ROLE'] = DEFAULT_MINIMUM_USER_ROLE;
return ($ai_db_options [AI_OPTION_GLOBAL]['MINIMUM_USER_ROLE']);
}
function get_sticky_widget_mode () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['STICKY_WIDGET_MODE'])) $ai_db_options [AI_OPTION_GLOBAL]['STICKY_WIDGET_MODE'] = DEFAULT_STICKY_WIDGET_MODE;
return ($ai_db_options [AI_OPTION_GLOBAL]['STICKY_WIDGET_MODE']);
}
function get_sticky_widget_margin () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['STICKY_WIDGET_MARGIN'])) $ai_db_options [AI_OPTION_GLOBAL]['STICKY_WIDGET_MARGIN'] = DEFAULT_STICKY_WIDGET_MARGIN;
return ($ai_db_options [AI_OPTION_GLOBAL]['STICKY_WIDGET_MARGIN']);
}
function get_lazy_loading_offset () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['LAZY_LOADING_OFFSET'])) $ai_db_options [AI_OPTION_GLOBAL]['LAZY_LOADING_OFFSET'] = DEFAULT_LAZY_LOADING_OFFSET;
return ($ai_db_options [AI_OPTION_GLOBAL]['LAZY_LOADING_OFFSET']);
}
function get_max_page_blocks () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['MAX_PAGE_BLOCKS'])) $ai_db_options [AI_OPTION_GLOBAL]['MAX_PAGE_BLOCKS'] = DEFAULT_MAX_PAGE_BLOCKS;
return ($ai_db_options [AI_OPTION_GLOBAL]['MAX_PAGE_BLOCKS']);
}
function get_plugin_priority () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['PLUGIN_PRIORITY'])) $ai_db_options [AI_OPTION_GLOBAL]['PLUGIN_PRIORITY'] = DEFAULT_PLUGIN_PRIORITY;
return ($ai_db_options [AI_OPTION_GLOBAL]['PLUGIN_PRIORITY']);
}
function get_dynamic_blocks(){
global $ai_db_options, $ai_wp_data;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DYNAMIC_BLOCKS'])) $ai_db_options [AI_OPTION_GLOBAL]['DYNAMIC_BLOCKS'] = DEFAULT_DYNAMIC_BLOCKS;
return ($ai_db_options [AI_OPTION_GLOBAL]['DYNAMIC_BLOCKS']);
}
function get_paragraph_counting_functions(){
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['PARAGRAPH_COUNTING_FUNCTIONS'])) $ai_db_options [AI_OPTION_GLOBAL]['PARAGRAPH_COUNTING_FUNCTIONS'] = DEFAULT_PARAGRAPH_COUNTING_FUNCTIONS;
return ($ai_db_options [AI_OPTION_GLOBAL]['PARAGRAPH_COUNTING_FUNCTIONS']);
}
function get_output_buffering(){
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['OUTPUT_BUFFERING'])) $ai_db_options [AI_OPTION_GLOBAL]['OUTPUT_BUFFERING'] = DEFAULT_OUTPUT_BUFFERING;
return ($ai_db_options [AI_OPTION_GLOBAL]['OUTPUT_BUFFERING']);
}
function get_disable_caching (){
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CACHING'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CACHING'] = DEFAULT_DISABLE_CACHING;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CACHING']);
}
function get_no_paragraph_counting_inside () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['NO_PARAGRAPH_COUNTING_INSIDE'])) $ai_db_options [AI_OPTION_GLOBAL]['NO_PARAGRAPH_COUNTING_INSIDE'] = DEFAULT_NO_PARAGRAPH_COUNTING_INSIDE;
return (str_replace (array ('<', '>'), '', $ai_db_options [AI_OPTION_GLOBAL]['NO_PARAGRAPH_COUNTING_INSIDE']));
}
function get_ad_label ($decode = false) {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['AD_LABEL'])) $ai_db_options [AI_OPTION_GLOBAL]['AD_LABEL'] = DEFAULT_AD_TITLE;
if ($decode) return (html_entity_decode ($ai_db_options [AI_OPTION_GLOBAL]['AD_LABEL']));
return ($ai_db_options [AI_OPTION_GLOBAL]['AD_LABEL']);
}
function get_main_content_element () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['MAIN_CONTENT_ELEMENT'])) $ai_db_options [AI_OPTION_GLOBAL]['MAIN_CONTENT_ELEMENT'] = DEFAULT_MAIN_CONTENT_ELEMENT;
return ($ai_db_options [AI_OPTION_GLOBAL]['MAIN_CONTENT_ELEMENT']);
}
function get_force_admin_toolbar () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['FORCE_ADMIN_TOOLBAR'])) $ai_db_options [AI_OPTION_GLOBAL]['FORCE_ADMIN_TOOLBAR'] = DEFAULT_FORCE_ADMIN_TOOLBAR;
return ($ai_db_options [AI_OPTION_GLOBAL]['FORCE_ADMIN_TOOLBAR']);
}
function get_admin_toolbar_debugging () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADMIN_TOOLBAR_DEBUGGING'])) $ai_db_options [AI_OPTION_GLOBAL]['ADMIN_TOOLBAR_DEBUGGING'] = DEFAULT_ADMIN_TOOLBAR_DEBUGGING;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADMIN_TOOLBAR_DEBUGGING']);
}
function get_admin_toolbar_mobile () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADMIN_TOOLBAR_MOBILE'])) $ai_db_options [AI_OPTION_GLOBAL]['ADMIN_TOOLBAR_MOBILE'] = DEFAULT_ADMIN_TOOLBAR_MOBILE;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADMIN_TOOLBAR_MOBILE']);
}
function get_remote_debugging () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['REMOTE_DEBUGGING'])) $ai_db_options [AI_OPTION_GLOBAL]['REMOTE_DEBUGGING'] = DEFAULT_REMOTE_DEBUGGING;
return ($ai_db_options [AI_OPTION_GLOBAL]['REMOTE_DEBUGGING']);
}
function get_disable_translation () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_TRANSLATION'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_TRANSLATION'] = DEFAULT_DISABLE_TRANSLATION;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_TRANSLATION']);
}
function get_backend_javascript_debugging () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['BACKEND_JS_DEBUGGING'])) $ai_db_options [AI_OPTION_GLOBAL]['BACKEND_JS_DEBUGGING'] = DEFAULT_BACKEND_JS_DEBUGGING;
return ($ai_db_options [AI_OPTION_GLOBAL]['BACKEND_JS_DEBUGGING']);
}
function get_frontend_javascript_debugging () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['FRONTEND_JS_DEBUGGING'])) $ai_db_options [AI_OPTION_GLOBAL]['FRONTEND_JS_DEBUGGING'] = DEFAULT_FRONTEND_JS_DEBUGGING;
return ($ai_db_options [AI_OPTION_GLOBAL]['FRONTEND_JS_DEBUGGING']);
}
function get_disable_block_insertions () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_BLOCK_INSERTIONS'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_BLOCK_INSERTIONS'] = DEFAULT_DISABLE_BLOCK_INSERTIONS;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_BLOCK_INSERTIONS']);
}
function get_disable_php_processing () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_PHP_PROCESSING'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_PHP_PROCESSING'] = DEFAULT_DISABLE_PHP_PROCESSING;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_PHP_PROCESSING']);
}
function get_disable_css_code () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CSS_CODE'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CSS_CODE'] = DEFAULT_DISABLE_CSS_CODE;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_CSS_CODE']);
}
function get_disable_js_code () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_JS_CODE'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_JS_CODE'] = DEFAULT_DISABLE_JS_CODE;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_JS_CODE']);
}
function get_disable_header_code () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_HEADER_CODE'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_HEADER_CODE'] = DEFAULT_DISABLE_HEADER_CODE;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_HEADER_CODE']);
}
function get_disable_footer_code () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_FOOTER_CODE'])) $ai_db_options [AI_OPTION_GLOBAL]['DISABLE_FOOTER_CODE'] = DEFAULT_DISABLE_FOOTER_CODE;
return ($ai_db_options [AI_OPTION_GLOBAL]['DISABLE_FOOTER_CODE']);
}
function get_viewport_name ($viewport_number) {
global $ai_db_options;
$viewport_settins_name = 'VIEWPORT_NAME_' . $viewport_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$viewport_settins_name]))
$ai_db_options [AI_OPTION_GLOBAL][$viewport_settins_name] = defined ("DEFAULT_VIEWPORT_NAME_" . $viewport_number) ? constant ("DEFAULT_VIEWPORT_NAME_" . $viewport_number) : "";
return ($ai_db_options [AI_OPTION_GLOBAL][$viewport_settins_name]);
}
function get_viewport_width ($viewport_number) {
global $ai_db_options;
$viewport_settins_name = 'VIEWPORT_WIDTH_' . $viewport_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$viewport_settins_name]))
$ai_db_options [AI_OPTION_GLOBAL][$viewport_settins_name] = defined ("DEFAULT_VIEWPORT_WIDTH_" . $viewport_number) ? constant ("DEFAULT_VIEWPORT_WIDTH_" . $viewport_number) : "";
return ($ai_db_options [AI_OPTION_GLOBAL][$viewport_settins_name]);
}
function get_hook_enabled ($hook_number) {
global $ai_db_options;
$hook_settins_name = 'HOOK_ENABLED_' . $hook_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name])) $ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name] = AI_DISABLED;
return ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name]);
}
function get_hook_name ($hook_number) {
global $ai_db_options;
$hook_settins_name = 'HOOK_NAME_' . $hook_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name])) $ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name] = "";
return ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name]);
}
function get_hook_action ($hook_number) {
global $ai_db_options;
$hook_settins_name = 'HOOK_ACTION_' . $hook_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name])) $ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name] = "";
return ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name]);
}
function get_hook_priority ($hook_number) {
global $ai_db_options;
$hook_settins_name = 'HOOK_PRIORITY_' . $hook_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name])) $ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name] = DEFAULT_CUSTOM_HOOK_PRIORITY;
return ($ai_db_options [AI_OPTION_GLOBAL][$hook_settins_name]);
}
function get_country_group_name ($group_number) {
global $ai_db_options;
$country_group_settins_name = 'COUNTRY_GROUP_NAME_' . $group_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$country_group_settins_name])) $ai_db_options [AI_OPTION_GLOBAL][$country_group_settins_name] = DEFAULT_COUNTRY_GROUP_NAME . ' ' . $group_number;
return ($ai_db_options [AI_OPTION_GLOBAL][$country_group_settins_name]);
}
function get_group_country_list ($group_number) {
global $ai_db_options;
$group_countries_settins_name = 'GROUP_COUNTRIES_' . $group_number;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL][$group_countries_settins_name])) $ai_db_options [AI_OPTION_GLOBAL][$group_countries_settins_name] = '';
return ($ai_db_options [AI_OPTION_GLOBAL][$group_countries_settins_name]);
}
function multisite_settings_page_enabled () {
global $ai_db_options_multisite;
if (is_multisite()) {
if (!isset ($ai_db_options_multisite ['MULTISITE_SETTINGS_PAGE'])) $ai_db_options_multisite ['MULTISITE_SETTINGS_PAGE'] = DEFAULT_MULTISITE_SETTINGS_PAGE;
if ($ai_db_options_multisite ['MULTISITE_SETTINGS_PAGE'] == '') $ai_db_options_multisite ['MULTISITE_SETTINGS_PAGE'] = DEFAULT_MULTISITE_SETTINGS_PAGE;
if (multisite_main_for_all_blogs ()) $ai_db_options_multisite ['MULTISITE_SETTINGS_PAGE'] = AI_DISABLED;
return ($ai_db_options_multisite ['MULTISITE_SETTINGS_PAGE']);
}
return DEFAULT_MULTISITE_SETTINGS_PAGE;
}
function multisite_widgets_enabled () {
global $ai_db_options_multisite;
if (is_multisite()) {
if (!isset ($ai_db_options_multisite ['MULTISITE_WIDGETS'])) $ai_db_options_multisite ['MULTISITE_WIDGETS'] = DEFAULT_MULTISITE_WIDGETS;
if ($ai_db_options_multisite ['MULTISITE_WIDGETS'] == '') $ai_db_options_multisite ['MULTISITE_WIDGETS'] = DEFAULT_MULTISITE_WIDGETS;
return ($ai_db_options_multisite ['MULTISITE_WIDGETS']);
}
return DEFAULT_MULTISITE_WIDGETS;
}
function multisite_php_processing () {
global $ai_db_options_multisite;
if (is_multisite()) {
if (!isset ($ai_db_options_multisite ['MULTISITE_PHP_PROCESSING'])) $ai_db_options_multisite ['MULTISITE_PHP_PROCESSING'] = DEFAULT_MULTISITE_PHP_PROCESSING;
if ($ai_db_options_multisite ['MULTISITE_PHP_PROCESSING'] == '') $ai_db_options_multisite ['MULTISITE_PHP_PROCESSING'] = DEFAULT_MULTISITE_PHP_PROCESSING;
return ($ai_db_options_multisite ['MULTISITE_PHP_PROCESSING']);
}
return DEFAULT_MULTISITE_WIDGETS;
}
function multisite_exceptions_enabled () {
global $ai_db_options_multisite;
if (is_multisite()) {
if (!isset ($ai_db_options_multisite ['MULTISITE_EXCEPTIONS'])) $ai_db_options_multisite ['MULTISITE_EXCEPTIONS'] = DEFAULT_MULTISITE_EXCEPTIONS;
if ($ai_db_options_multisite ['MULTISITE_EXCEPTIONS'] == '') $ai_db_options_multisite ['MULTISITE_EXCEPTIONS'] = DEFAULT_MULTISITE_EXCEPTIONS;
return ($ai_db_options_multisite ['MULTISITE_EXCEPTIONS']);
}
return DEFAULT_MULTISITE_EXCEPTIONS;
}
function multisite_main_for_all_blogs () {
global $ai_db_options_multisite;
if (is_multisite()) {
if (!isset ($ai_db_options_multisite ['MULTISITE_MAIN_FOR_ALL_BLOGS'])) $ai_db_options_multisite ['MULTISITE_MAIN_FOR_ALL_BLOGS'] = DEFAULT_MULTISITE_MAIN_FOR_ALL_BLOGS;
if ($ai_db_options_multisite ['MULTISITE_MAIN_FOR_ALL_BLOGS'] == '') $ai_db_options_multisite ['MULTISITE_MAIN_FOR_ALL_BLOGS'] = DEFAULT_MULTISITE_MAIN_FOR_ALL_BLOGS;
return ($ai_db_options_multisite ['MULTISITE_MAIN_FOR_ALL_BLOGS']);
}
return DEFAULT_MULTISITE_MAIN_FOR_ALL_BLOGS;
}
function get_adb_action ($saved_value = false) {
global $ai_db_options, $ai_wp_data;
if (!$saved_value) {
if ($ai_wp_data [AI_CODE_FOR_IFRAME]) return AI_ADB_ACTION_NONE;
switch (get_adb_no_action ()) {
case AI_ADB_NO_ACTION_LOGGED_IN:
if (($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0) return AI_ADB_ACTION_NONE;
break;
case AI_ADB_NO_ACTION_ADMINISTRATORS:
if (($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0) return AI_ADB_ACTION_NONE;
break;
}
if (isset ($ai_wp_data [AI_ADB_SHORTCODE_ACTION])) return ($ai_wp_data [AI_ADB_SHORTCODE_ACTION]);
}
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_ACTION'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_ACTION'] = AI_DEFAULT_ADB_ACTION;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_ACTION']);
}
function get_adb_no_action ($saved_value = false) {
global $ai_db_options, $ai_wp_data;
if (!$saved_value) {
if ($ai_wp_data [AI_CODE_FOR_IFRAME]) return AI_ADB_NO_ACTION_NONE;
}
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION'] = AI_DEFAULT_ADB_NO_ACTION;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION']);
}
function get_delay_action ($return_number = false) {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_DELAY_ACTION'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_DELAY_ACTION'] = '';
if ($return_number) {
$value = trim ($ai_db_options [AI_OPTION_GLOBAL]['ADB_DELAY_ACTION']);
if ($value == '') $value = 0;
if (is_numeric ($value)) return $value; else return 0;
}
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_DELAY_ACTION']);
}
function get_no_action_period ($return_number = false) {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION_PERIOD'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION_PERIOD'] = AI_DEFAULT_ADB_NO_ACTION_PERIOD;
if ($return_number) {
$value = trim ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION_PERIOD']);
if ($value == '') $value = 0;
if (is_numeric ($value)) return $value; else return AI_DEFAULT_ADB_NO_ACTION_PERIOD;
}
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_ACTION_PERIOD']);
}
function get_adb_selectors ($decode = false) {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_SELECTORS'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_SELECTORS'] = '';
if ($decode)
return (html_entity_decode ($ai_db_options [AI_OPTION_GLOBAL]['ADB_SELECTORS'])); else
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_SELECTORS']);
}
function get_redirection_page ($return_number = false) {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_REDIRECTION_PAGE'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_REDIRECTION_PAGE'] = AI_DEFAULT_ADB_REDIRECTION_PAGE;
if ($return_number) {
$value = trim ($ai_db_options [AI_OPTION_GLOBAL]['ADB_REDIRECTION_PAGE']);
if ($value == '') $value = 0;
if (is_numeric ($value)) return $value; else return AI_DEFAULT_ADB_REDIRECTION_PAGE;
}
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_REDIRECTION_PAGE']);
}
function get_custom_redirection_url () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_CUSTOM_REDIRECTION_URL'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_CUSTOM_REDIRECTION_URL'] = '';
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_CUSTOM_REDIRECTION_URL']);
}
function get_message_css () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_MESSAGE_CSS'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_MESSAGE_CSS'] = AI_DEFAULT_ADB_MESSAGE_CSS;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_MESSAGE_CSS']);
}
function get_overlay_css () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_OVERLAY_CSS'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_OVERLAY_CSS'] = AI_DEFAULT_ADB_OVERLAY_CSS;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_OVERLAY_CSS']);
}
function get_undismissible_message ($saved_value = false) {
global $ai_db_options, $ai_wp_data;
if (!$saved_value) {
switch (get_no_undismissible_message ()) {
case AI_ADB_NO_ACTION_LOGGED_IN:
if (($ai_wp_data [AI_WP_USER] & AI_USER_LOGGED_IN) != 0) return AI_DISABLED;
break;
case AI_ADB_NO_ACTION_ADMINISTRATORS:
if (($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0) return AI_DISABLED;
break;
}
}
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_UNDISMISSIBLE_MESSAGE'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_UNDISMISSIBLE_MESSAGE'] = AI_DEFAULT_ADB_UNDISMISSIBLE_MESSAGE;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_UNDISMISSIBLE_MESSAGE']);
}
function get_no_undismissible_message () {
global $ai_db_options;
if (!isset ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_UNDISMISSIBLE_MESSAGE'])) $ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_UNDISMISSIBLE_MESSAGE'] = AI_DEFAULT_ADB_NO_UNDISMISSIBLE_MESSAGE;
return ($ai_db_options [AI_OPTION_GLOBAL]['ADB_NO_UNDISMISSIBLE_MESSAGE']);
}
function filter_html_class ($str){
$str = str_replace (array ("\\\""), array ("\""), $str);
$str = sanitize_html_class ($str);
return $str;
}
function filter_string ($str){
$str = str_replace (array ("\\\""), array ("\""), $str);
$str = str_replace (array ("\"", "<", ">"), "", $str);
$str = trim (esc_html ($str));
return $str;
}
function filter_string_tags ($str){
$str = str_replace (array ("\\\""), array ("\""), $str);
$str = str_replace (array ("\""), "", $str);
$str = str_replace (array ("<", ">"), array ("<", ">"), $str);
$str = trim (esc_html ($str));
return $str;
}
function filter_option ($option, $value, $delete_escaped_backslashes = true){
if ($delete_escaped_backslashes)
$value = str_replace (array ("\\\""), array ("\""), $value);
if ($option == 'ADB_SELECTORS' ||
$option == AI_OPTION_HTML_SELECTOR ||
$option == AI_OPTION_ANIMATION_TRIGGER_VALUE ||
$option == 'MAIN_CONTENT_ELEMENT') {
// $value = str_replace (array ("\\", "/", "?", "\"", "'", "<", ">", "'", '"'), "", $value);
$value = str_replace (array ("\\", "/", "?", "\"", "'", "'", '"'), "", $value);
$value = esc_html ($value);
}
elseif ($option == AI_OPTION_DOMAIN_LIST ||
$option == 'NO_PARAGRAPH_COUNTING_INSIDE' ||
$option == AI_OPTION_PARAGRAPH_TAGS ||
$option == AI_OPTION_IP_ADDRESS_LIST ||
$option == AI_OPTION_COUNTRY_LIST) {
$value = str_replace (array ("\\", "/", "?", "\"", "'", "<", ">", "[", "]", "'", '"'), "", $value);
$value = esc_html ($value);
}
elseif (
$option == AI_OPTION_PARAGRAPH_TEXT ||
$option == AI_OPTION_AVOID_TEXT_ABOVE ||
$option == AI_OPTION_AVOID_TEXT_BELOW
) {
$value = esc_html ($value);
}
elseif ($option == AI_OPTION_BLOCK_NAME ||
$option == AI_OPTION_GENERAL_TAG ||
$option == AI_OPTION_DOMAIN_LIST ||
$option == AI_OPTION_CATEGORY_LIST ||
$option == AI_OPTION_TAG_LIST ||
$option == AI_OPTION_ID_LIST ||
$option == AI_OPTION_URL_LIST ||
$option == AI_OPTION_URL_PARAMETER_LIST ||
$option == AI_OPTION_PARAGRAPH_TEXT_TYPE ||
$option == AI_OPTION_PARAGRAPH_NUMBER ||
$option == AI_OPTION_MIN_PARAGRAPHS ||
$option == AI_OPTION_MIN_WORDS_ABOVE ||
$option == AI_OPTION_AVOID_PARAGRAPHS_ABOVE ||
$option == AI_OPTION_AVOID_PARAGRAPHS_BELOW ||
$option == AI_OPTION_AVOID_TRY_LIMIT ||
$option == AI_OPTION_MIN_WORDS ||
$option == AI_OPTION_MAX_WORDS ||
$option == AI_OPTION_MIN_PARAGRAPH_WORDS ||
$option == AI_OPTION_MAX_PARAGRAPH_WORDS ||
$option == AI_OPTION_MAXIMUM_INSERTIONS ||
$option == AI_OPTION_AFTER_DAYS ||
$option == AI_OPTION_START_DATE ||
$option == AI_OPTION_END_DATE ||
$option == AI_OPTION_FALLBACK ||
$option == AI_OPTION_EXCERPT_NUMBER ||
$option == AI_OPTION_HORIZONTAL_MARGIN ||
$option == AI_OPTION_VERTICAL_MARGIN ||
$option == AI_OPTION_ANIMATION_TRIGGER_OFFSET ||
$option == AI_OPTION_ANIMATION_TRIGGER_DELAY ||
$option == AI_OPTION_IFRAME_WIDTH ||
$option == AI_OPTION_IFRAME_HEIGHT ||
$option == 'ADB_DELAY_ACTION' ||
$option == 'ADB_NO_ACTION_PERIOD' ||
$option == 'ADB_REDIRECTION_PAGE' ||
$option == 'ADB_CUSTOM_REDIRECTION_URL' ||
$option == AI_OPTION_CUSTOM_CSS ||
$option == 'HOOK_PRIORITY' ||
$option == 'ADB_OVERLAY_CSS' ||
$option == 'ADB_MESSAGE_CSS') {
$value = str_replace (array ("\"", "<", ">", "[", "]"), "", $value);
$value = esc_html ($value);
}
elseif ($option == 'AD_LABEL' ||
$option == 'REPORT_HEADER_TITLE' ||
$option == 'REPORT_HEADER_DESCRIPTION' ||
$option == 'REPORT_FOOTER') {
$value = str_replace (array ("\\", "?"), "", $value);
$value = esc_html ($value);
}
elseif (
$option == 'REPORT_HEADER_IMAGE') {
$value = str_replace (home_url () . '/', '', $value);
$value = str_replace (array ("http://", "https://", ":". "\"", "<", ">", "[", "]"), "", $value);
$value = esc_html ($value);
}
return $value;
}
function filter_option_hf ($option, $value){
$value = str_replace (array ("\\\""), array ("\""), $value);
// if ($option == AI_OPTION_CODE ) {
// } elseif ($option == AI_OPTION_ENABLE_MANUAL) {
// } elseif ($option == AI_OPTION_PROCESS_PHP) {
// } elseif ($option == AI_OPTION_ENABLE_404) {
// } elseif ($option == AI_OPTION_DETECT_SERVER_SIDE) {
// } elseif ($option == AI_OPTION_DISPLAY_FOR_DEVICES) {
// }
return $value;
}
function ai_ajax () {
global $ai_wp_data;
// check_ajax_referer ("adinserter_data", "ai_check");
// check_admin_referer ("adinserter_data", "ai_check");
if (isset ($_POST ["adsense-ad-units"])) {
if (defined ('AI_ADSENSE_API')) {
adsense_ad_name ($_POST ["adsense-ad-units"]);
}
}
elseif (isset ($_GET ["block"])) {
$block = sanitize_text_field ($_GET ["block"]);
if (is_numeric ($block) && $block >= 1 && $block <= 96) {
global $block_object;
$block = $block_object [$block];
if (isset ($_GET ["cookie_check"]) && $_GET ["cookie_check"] == 1) {
$block->client_side_cookie_check = true;
}
if (isset ($_GET ["hide-debug-labels"]) && $_GET ["hide-debug-labels"] == 1) {
$block->hide_debug_labels = true;
}
if ($block->get_iframe ())
echo $block->get_iframe_page ();
}
}
elseif (function_exists ('ai_ajax_processing_2')) {
ai_ajax_processing_2 ();
}
wp_die ();
}
function ai_ajax_backend () {
global $preview_name, $preview_alignment, $preview_css;
// check_ajax_referer ("adinserter_data", "ai_check");
check_admin_referer ("adinserter_data", "ai_check");
if (isset ($_POST ["preview"])) {
$block = urldecode ($_POST ["preview"]);
if (is_numeric ($block) && $block >= 1 && $block <= 96) {
require_once AD_INSERTER_PLUGIN_DIR.'includes/preview.php';
$preview_parameters = array ();
if (isset ($_POST ['name'])) $preview_parameters ['name'] = base64_decode ($_POST ['name']);
if (isset ($_POST ['code'])) $preview_parameters ['code'] = base64_decode ($_POST ['code']);
if (isset ($_POST ['alignment'])) $preview_parameters ['alignment'] = base64_decode ($_POST ['alignment']);
if (isset ($_POST ['horizontal'])) $preview_parameters ['horizontal'] = base64_decode ($_POST ['horizontal']);
if (isset ($_POST ['vertical'])) $preview_parameters ['vertical'] = base64_decode ($_POST ['vertical']);
if (isset ($_POST ['horizontal_margin'])) $preview_parameters ['horizontal_margin'] = base64_decode ($_POST ['horizontal_margin']);
if (isset ($_POST ['vertical_margin'])) $preview_parameters ['vertical_margin'] = base64_decode ($_POST ['vertical_margin']);
if (isset ($_POST ['animation'])) $preview_parameters ['animation'] = base64_decode ($_POST ['animation']);
if (isset ($_POST ['alignment_css'])) $preview_parameters ['alignment_css'] = base64_decode ($_POST ['alignment_css']);
if (isset ($_POST ['custom_css'])) $preview_parameters ['custom_css'] = base64_decode ($_POST ['custom_css']);
if (isset ($_POST ['php'])) $preview_parameters ['php'] = $_POST ['php'];
if (isset ($_POST ['close'])) $preview_parameters ['close'] = $_POST ['close'];
if (isset ($_POST ['label'])) $preview_parameters ['label'] = $_POST ['label'];
if (isset ($_POST ['read_only'])) $preview_parameters ['read_only'] = $_POST ['read_only'];
if (isset ($_POST ['iframe'])) $preview_parameters ['iframe'] = $_POST ['iframe'];
if (isset ($_POST ['check'])) $preview_parameters ['check'] = $_POST ['check'];
if (isset ($_POST ['count'])) $preview_parameters ['count'] = $_POST ['count'];
if (isset ($_POST ['rotate'])) $preview_parameters ['rotate'] = $_POST ['rotate'];
generate_code_preview (
$block,
$preview_parameters
);
}
elseif ($block == 'adb') {
require_once AD_INSERTER_PLUGIN_DIR.'includes/preview-adb.php';
generate_code_preview_adb (base64_decode ($_POST ["code"]), $_POST ["php"] == 1);
}
elseif ($block == 'adsense') {
if (defined ('AI_ADSENSE_API')) {
require_once AD_INSERTER_PLUGIN_DIR.'includes/preview.php';
require_once AD_INSERTER_PLUGIN_DIR.'includes/adsense-api.php';
if (defined ('AI_ADSENSE_AUTHORIZATION_CODE')) {
$adsense = new adsense_api();
$adsense_code = $adsense->getAdCode (base64_decode ($_POST ["slot_id"]));
$adsense_error = $adsense->getError ();
$preview_parameters = array (
"name" => isset ($_POST ["name"]) ? base64_decode ($_POST ["name"]) : 'ADSENSE CODE',
"alignment" => '',
"horizontal" => '',
"vertical" => '',
"alignment_css" => '',
"custom_css" => '',
"code" => $adsense_error == '' ? $adsense_code : '
'.$adsense_error.'
',
"php" => false,
"label" => false,
"close" => AI_CLOSE_NONE,
"read_only" => true,
);
generate_code_preview (
0, // Default settings
$preview_parameters
);
}
}
}
}
elseif (isset ($_POST ["edit"])) {
if (is_numeric ($_POST ["edit"]) && $_POST ["edit"] >= 1 && $_POST ["edit"] <= 96) {
require_once AD_INSERTER_PLUGIN_DIR.'includes/editor.php';
generate_code_editor ($_POST ["edit"], base64_decode ($_POST ["code"]), $_POST ["php"] == 1);
}
}
if (isset ($_POST ["placeholder"])) {
$block = urldecode ($_POST ["block"]);
if (is_numeric ($block) && $block >= 1 && $block <= 96) {
require_once AD_INSERTER_PLUGIN_DIR.'includes/placeholders.php';
generate_placeholder_editor (str_replace (array ('"', "\\'"), array ('"', '''), urldecode ($_POST ["placeholder"])), $block);
}
}
elseif (isset ($_POST ["generate-code"])) {
$code_generator = new ai_code_generator ();
echo json_encode ($code_generator->generate ($_POST));
}
elseif (isset ($_POST ["import-code"])) {
$code_generator = new ai_code_generator ();
echo json_encode ($code_generator->import (base64_decode ($_POST ["import-code"])));
}
elseif (isset ($_POST ["import-rotation-code"])) {
$code_generator = new ai_code_generator ();
echo json_encode ($code_generator->import_rotation (base64_decode ($_POST ["import-rotation-code"])));
}
elseif (isset ($_POST ["generate-rotation-code"])) {
$code_generator = new ai_code_generator ();
echo json_encode ($code_generator->generate_rotation (json_decode (base64_decode ($_POST ['generate-rotation-code']), true)));
}
elseif (isset ($_GET ["image"])) {
header ("Content-Type: image/png");
header ("Content-Length: " . filesize (AD_INSERTER_PLUGIN_DIR.'images/'.$_GET ["image"]));
readfile (AD_INSERTER_PLUGIN_DIR.'images/'.$_GET ["image"]);
}
elseif (isset ($_GET ["css"])) {
header ("Content-Type: text/css");
header ("Content-Length: " . filesize (AD_INSERTER_PLUGIN_DIR.''.$_GET ["css"]));
readfile (AD_INSERTER_PLUGIN_DIR.$_GET ["css"]);
}
elseif (isset ($_GET ["rating"])) {
$cache_time = $_GET ["rating"] == 'update' ? 0 * 60 : AI_TRANSIENT_RATING_EXPIRATION;
if (!get_transient (AI_TRANSIENT_RATING) || !($transient_timeout = get_option ('_transient_timeout_' . AI_TRANSIENT_RATING)) || AI_TRANSIENT_RATING_EXPIRATION - ($transient_timeout - time ()) > $cache_time) {
$args = (object) array ('slug' => 'ad-inserter');
$request = array ('action' => 'plugin_information', 'timeout' => 5, 'request' => serialize ($args));
$url = 'http://api.wordpress.org/plugins/info/1.0/';
$response = wp_remote_post ($url, array ('body' => $request));
$plugin_info = @unserialize ($response ['body']);
if (isset ($plugin_info->ratings)) {
$total_rating = 0;
$total_count = 0;
foreach ($plugin_info->ratings as $rating => $count) {
$total_rating += $rating * $count;
$total_count += $count;
}
$rating = number_format ($total_rating / $total_count, 4);
set_transient (AI_TRANSIENT_RATING, $rating, AI_TRANSIENT_RATING_EXPIRATION);
}
}
if ($rating = get_transient (AI_TRANSIENT_RATING)) {
if ($rating > 1 && $rating <= 5) echo $rating;
}
}
elseif (isset ($_POST ["notice"])) {
update_option ('ai-notice-' . $_POST ["notice"], $_POST ["click"]);
}
elseif (isset ($_POST ["notice-check"])) {
echo $_POST ["notice-check"];
}
elseif (isset ($_GET ["list"])) {
code_block_list ();
}
elseif (isset ($_GET ["adsense-list"])) {
if (defined ('AI_ADSENSE_API')) {
adsense_list ();
}
}
elseif (isset ($_GET ["adsense-code"])) {
if (defined ('AI_ADSENSE_API')) {
ai_adsense_code ($_GET ["adsense-code"]);
}
}
elseif (isset ($_GET ["adsense-authorization-code"])) {
if (defined ('AI_ADSENSE_API')) {
if ($_GET ['adsense-authorization-code'] == '') {
delete_option (AI_ADSENSE_CLIENT_IDS);
delete_option (AI_ADSENSE_AUTH_CODE);
delete_option (AI_ADSENSE_OWN_IDS);
delete_transient (AI_TRANSIENT_ADSENSE_TOKEN);
delete_transient (AI_TRANSIENT_ADSENSE_ADS);
}
elseif (base64_decode ($_GET ['adsense-authorization-code']) == 'own-ids') {
update_option (AI_ADSENSE_OWN_IDS, '1');
delete_option (AI_ADSENSE_CLIENT_IDS);
delete_option (AI_ADSENSE_AUTH_CODE);
delete_transient (AI_TRANSIENT_ADSENSE_TOKEN);
delete_transient (AI_TRANSIENT_ADSENSE_ADS);
}
else update_option (AI_ADSENSE_AUTH_CODE, base64_decode ($_GET ['adsense-authorization-code']));
}
}
elseif (isset ($_GET ["adsense-client-id"])) {
if (defined ('AI_ADSENSE_API')) {
if ($_GET ['adsense-client-id'] == '') {
delete_option (AI_ADSENSE_CLIENT_IDS);
delete_option (AI_ADSENSE_AUTH_CODE);
delete_transient (AI_TRANSIENT_ADSENSE_TOKEN);
delete_transient (AI_TRANSIENT_ADSENSE_ADS);
} else update_option (AI_ADSENSE_CLIENT_IDS, array ('ID' => base64_decode ($_GET ['adsense-client-id']), 'SECRET' => base64_decode ($_GET ['adsense-client-secret'])));
}
}
elseif (isset ($_GET ["ads-txt"])) {
ads_txt ($_GET ["ads-txt"]);
}
elseif (isset ($_GET ["settings"])) {
generate_settings_form ();
}
elseif (isset ($_GET ["list-options"])) {
generate_list_options ($_GET ["list-options"]);
}
elseif (isset ($_GET ["update"])) {
if ($_GET ["update"] == 'block-code-demo') {
ai_block_code_demo (urldecode ($_GET ["block_class_name"]), $_GET ["block_class"], $_GET ["block_number_class"], $_GET ["inline_styles"]);
}
elseif (function_exists ('ai_ajax_backend_2')) {
ai_ajax_backend_2 ();
}
}
elseif (isset ($_GET ["check-page"])) {
ai_check_page ($_GET ["check-page"]);
}
elseif (function_exists ('ai_ajax_backend_2')) {
ai_ajax_backend_2 ();
}
wp_die ();
}
function ai_generate_extract (&$settings) {
global $ai_custom_hooks, $ai_wp_data, $version_string, $subversion_string;
if (!defined ('AI_EXTRACT_GENERATED'))
define ('AI_EXTRACT_GENERATED', true);
$obj = new ai_Block (1);
$extract = array ();
if (defined ('AI_BUFFERING')) {
$above_header_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$html_element_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
}
$content_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$excerpt_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$loop_start_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$loop_end_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$post_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$before_comments_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$between_comments_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$after_comments_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$footer_hook_blocks = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
$custom_hook_blocks = array ();
for ($custom_hook = 1; $custom_hook <= 8; $custom_hook ++) {
$custom_hook_blocks [] = array (AI_PT_ANY => array (), AI_PT_HOMEPAGE => array(), AI_PT_CATEGORY => array(), AI_PT_SEARCH => array(), AI_PT_ARCHIVE => array(), AI_PT_STATIC => array(), AI_PT_POST => array(), AI_PT_404 => array(), AI_PT_FEED => array(), AI_PT_AJAX => array());
}
// Get blocks used in sidebar widgets
$sidebar_widgets = wp_get_sidebars_widgets();
$widget_options = get_option ('widget_ai_widget');
$widget_blocks = array ();
foreach ($sidebar_widgets as $sidebar_index => $sidebar_widget) {
if (is_array ($sidebar_widget) && isset ($GLOBALS ['wp_registered_sidebars'][$sidebar_index]['name'])) {
$sidebar_name = $GLOBALS ['wp_registered_sidebars'][$sidebar_index]['name'];
if ($sidebar_name != "") {
foreach ($sidebar_widget as $widget) {
if (preg_match ("/ai_widget-([\d]+)/", $widget, $widget_id)) {
if (isset ($widget_id [1]) && is_numeric ($widget_id [1])) {
$widget_option = $widget_options [$widget_id [1]];
$widget_block = $widget_option ['block'];
if ($widget_block >= 1 && $widget_block <= 96) {
$widget_blocks [] = $widget_block;
}
}
}
}
}
}
}
$widget_blocks = array_unique ($widget_blocks);
// Generate extracted data
$active_blocks = array ();
$temp_ai_wp_data = $ai_wp_data;
$ai_wp_data [AI_SERVER_SIDE_DETECTION] = false;
$ai_wp_data [AI_CLIENT_SIDE_DETECTION] = false;
$ai_wp_data [AI_CLIENT_SIDE_INSERTION] = false;
$ai_wp_data [AI_STICK_TO_THE_CONTENT] = false;
$ai_wp_data [AI_TRACKING] = false;
$ai_wp_data [AI_CLOSE_BUTTONS] = false;
$ai_wp_data [AI_IFRAMES] = false;
$ai_wp_data [AI_ANIMATION] = false;
$ai_wp_data [AI_LAZY_LOADING] = false;
$ai_wp_data [AI_GEOLOCATION] = false;
for ($block = 1; $block <= 96; $block ++) {
if (!isset ($settings [$block])) continue;
$obj->number = $block;
$obj->wp_options = $settings [$block];
$page_types = array ();
if ($obj->get_display_settings_home()) $page_types []= AI_PT_HOMEPAGE;
if ($obj->get_display_settings_page()) $page_types []= AI_PT_STATIC;
if ($obj->get_display_settings_post()) $page_types []= AI_PT_POST;
if ($obj->get_display_settings_category()) $page_types []= AI_PT_CATEGORY;
if ($obj->get_display_settings_search()) $page_types []= AI_PT_SEARCH;
if ($obj->get_display_settings_archive()) $page_types []= AI_PT_ARCHIVE;
if ($obj->get_enable_ajax()) $page_types []= AI_PT_AJAX;
if ($obj->get_enable_feed()) $page_types []= AI_PT_FEED;
if ($obj->get_enable_404()) $page_types []= AI_PT_404;
$automatic_insertion = $obj->get_automatic_insertion();
$enabled_insertion = $obj->get_disable_insertion() == AI_DISABLED;
if ($page_types && $enabled_insertion) {
// Change insertion position to actual server-side insertion position
switch ($automatic_insertion) {
case AI_AUTOMATIC_INSERTION_BEFORE_HTML_ELEMENT:
case AI_AUTOMATIC_INSERTION_INSIDE_HTML_ELEMENT:
case AI_AUTOMATIC_INSERTION_AFTER_HTML_ELEMENT:
switch ($obj->get_html_element_insertion ()) {
case AI_HTML_INSERTION_SEREVR_SIDE:
$automatic_insertion = AI_AUTOMATIC_INSERTION_OUTPUT_BUFFERING;
break;
default:
$automatic_insertion = $obj->get_server_side_insertion ();
break;
}
break;
}
switch ($automatic_insertion) {
case AI_AUTOMATIC_INSERTION_ABOVE_HEADER:
if (defined ('AI_BUFFERING')) {
foreach ($page_types as $block_page_type) $above_header_hook_blocks [$block_page_type][]= $block;
$above_header_hook_blocks [AI_PT_ANY][]= $block;
}
break;
case AI_AUTOMATIC_INSERTION_OUTPUT_BUFFERING:
if (defined ('AI_BUFFERING')) {
foreach ($page_types as $block_page_type) $html_element_hook_blocks [$block_page_type][]= $block;
$html_element_hook_blocks [AI_PT_ANY][]= $block;
}
break;
case AI_AUTOMATIC_INSERTION_BEFORE_PARAGRAPH:
case AI_AUTOMATIC_INSERTION_AFTER_PARAGRAPH:
case AI_AUTOMATIC_INSERTION_BEFORE_IMAGE:
case AI_AUTOMATIC_INSERTION_AFTER_IMAGE:
case AI_AUTOMATIC_INSERTION_BEFORE_CONTENT:
case AI_AUTOMATIC_INSERTION_AFTER_CONTENT:
foreach ($page_types as $block_page_type) $content_hook_blocks [$block_page_type][]= $block;
$content_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_BEFORE_EXCERPT:
case AI_AUTOMATIC_INSERTION_AFTER_EXCERPT:
foreach ($page_types as $block_page_type) $excerpt_hook_blocks [$block_page_type][]= $block;
$excerpt_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_BEFORE_POST:
foreach ($page_types as $block_page_type) $loop_start_hook_blocks [$block_page_type][]= $block;
$loop_start_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_AFTER_POST:
foreach ($page_types as $block_page_type) $loop_end_hook_blocks [$block_page_type][]= $block;
$loop_end_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_BETWEEN_POSTS:
foreach ($page_types as $block_page_type) $post_hook_blocks [$block_page_type][]= $block;
$post_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_BEFORE_COMMENTS:
foreach ($page_types as $block_page_type) $before_comments_hook_blocks [$block_page_type][]= $block;
$before_comments_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_BETWEEN_COMMENTS:
foreach ($page_types as $block_page_type) $between_comments_hook_blocks [$block_page_type][]= $block;
$between_comments_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_AFTER_COMMENTS:
foreach ($page_types as $block_page_type) $after_comments_hook_blocks [$block_page_type][]= $block;
$after_comments_hook_blocks [AI_PT_ANY][]= $block;
break;
case AI_AUTOMATIC_INSERTION_FOOTER:
foreach ($page_types as $block_page_type) $footer_hook_blocks [$block_page_type][]= $block;
$footer_hook_blocks [AI_PT_ANY][]= $block;
break;
default:
if ($automatic_insertion >= AI_AUTOMATIC_INSERTION_CUSTOM_HOOK && $automatic_insertion < AI_AUTOMATIC_INSERTION_CUSTOM_HOOK + 8) {
$hook_index = $automatic_insertion - AI_AUTOMATIC_INSERTION_CUSTOM_HOOK;
foreach ($page_types as $block_page_type) $custom_hook_blocks [$hook_index][$block_page_type][]= $block;
$custom_hook_blocks [$hook_index][AI_PT_ANY][]= $block;
}
break;
}
}
$automatic = $automatic_insertion != AI_AUTOMATIC_INSERTION_DISABLED;
$manual_widget = $obj->get_enable_widget() == AI_ENABLED;
$manual_shortcode = $obj->get_enable_manual() == AI_ENABLED;
$manual_php_function = $obj->get_enable_php_call() == AI_ENABLED;
if ($enabled_insertion && ($automatic || ($manual_widget && in_array ($block, $widget_blocks)) || $manual_shortcode || $manual_php_function)) {
$active_blocks []= $block;
$obj->extract_features ();
}
}
$extract [AI_EXTRACT_USED_BLOCKS] = serialize ($active_blocks);
if (isset ($settings [AI_HEADER_OPTION_NAME])) {
$obj->wp_options = $settings [AI_HEADER_OPTION_NAME];
if ($obj->get_enable_manual () && $obj->get_detection_server_side()) $ai_wp_data [AI_SERVER_SIDE_DETECTION] = true;
}
if (isset ($settings [AI_FOOTER_OPTION_NAME])) {
$obj->wp_options = $settings [AI_FOOTER_OPTION_NAME];
if ($obj->get_enable_manual () && $obj->get_detection_server_side()) $ai_wp_data [AI_SERVER_SIDE_DETECTION] = true;
}
$extract [AI_EXTRACT_FEATURES] = array (
AI_SERVER_SIDE_DETECTION => $ai_wp_data [AI_SERVER_SIDE_DETECTION],
AI_CLIENT_SIDE_DETECTION => $ai_wp_data [AI_CLIENT_SIDE_DETECTION],
AI_CLIENT_SIDE_INSERTION => $ai_wp_data [AI_CLIENT_SIDE_INSERTION],
AI_STICK_TO_THE_CONTENT => $ai_wp_data [AI_STICK_TO_THE_CONTENT],
AI_TRACKING => $ai_wp_data [AI_TRACKING],
AI_CLOSE_BUTTONS => $ai_wp_data [AI_CLOSE_BUTTONS],
AI_IFRAMES => $ai_wp_data [AI_IFRAMES],
AI_ANIMATION => $ai_wp_data [AI_ANIMATION],
AI_LAZY_LOADING => $ai_wp_data [AI_LAZY_LOADING],
AI_GEOLOCATION => $ai_wp_data [AI_GEOLOCATION]
);
$ai_wp_data = $temp_ai_wp_data;
if (defined ('AI_BUFFERING')) {
$extract [ABOVE_HEADER_HOOK_BLOCKS] = $above_header_hook_blocks;
$extract [HTML_ELEMENT_HOOK_BLOCKS] = $html_element_hook_blocks;
}
$extract [CONTENT_HOOK_BLOCKS] = $content_hook_blocks;
$extract [EXCERPT_HOOK_BLOCKS] = $excerpt_hook_blocks;
$extract [LOOP_START_HOOK_BLOCKS] = $loop_start_hook_blocks;
$extract [LOOP_END_HOOK_BLOCKS] = $loop_end_hook_blocks;
$extract [POST_HOOK_BLOCKS] = $post_hook_blocks;
$extract [BEFORE_COMMENTS_HOOK_BLOCKS] = $before_comments_hook_blocks;
$extract [BETWEEN_COMMENTS_HOOK_BLOCKS] = $between_comments_hook_blocks;
$extract [AFTER_COMMENTS_HOOK_BLOCKS] = $after_comments_hook_blocks;
$extract [FOOTER_HOOK_BLOCKS] = $footer_hook_blocks;
for ($custom_hook = 1; $custom_hook <= 8; $custom_hook ++) {
$action = get_hook_action ($custom_hook);
if (get_hook_enabled ($custom_hook) && get_hook_name ($custom_hook) != '' && $action != '') {
$custom_hook_extract_index = $action . CUSTOM_HOOK_BLOCKS;
if (isset ($extract [$custom_hook_extract_index])) {
// Custom hook on WP hook used by the plugin - merge blocks
foreach ($extract [$custom_hook_extract_index] as $page_type => $blocks) {
$extract [$custom_hook_extract_index][$page_type] = array_merge ($blocks, $custom_hook_blocks [$custom_hook - 1][$page_type]);
}
} else $extract [$custom_hook_extract_index] = $custom_hook_blocks [$custom_hook - 1];
}
}
$extract ['VERSION'] = $version_string . $subversion_string . '-' . '96';
$extract ['TIMESTAMP'] = time ();
return ($extract);
}
function ai_load_settings () {
global $ai_db_options, $block_object, $ai_wp_data, $version_string, $ai_custom_hooks;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) ai_log ("LOAD SETTINGS START");
ai_load_options ();
$extract_ok = ai_load_extract (false);
$ai_custom_hooks = array ();
for ($hook = 1; $hook <= 8; $hook ++) {
$name = get_hook_name ($hook);
$action = get_hook_action ($hook);
if (get_hook_enabled ($hook) && $name != '' && $action != '') {
$ai_custom_hooks [] = array ('index' => $hook, 'name' => $name, 'action' => $action, 'priority' => get_hook_priority ($hook));
}
}
$features_in_extract = $extract_ok && isset ($ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES]);
if (isset ($ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_USED_BLOCKS])) {
$used_blocks = @unserialize ($ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_USED_BLOCKS]);
} else $used_blocks = false;
$obj = new ai_Block (0); // translators: block name (block with default settings)
$obj->wp_options [AI_OPTION_BLOCK_NAME] = _x('Default', 'Block name', 'ad-inserter');
$block_object [0] = $obj;
for ($block = 1; $block <= 96; $block ++) {
$obj = new ai_Block ($block);
$obj->load_options ($block);
$block_object [$block] = $obj;
if (!$features_in_extract && (!is_array ($used_blocks) || in_array ($block, $used_blocks))) $obj->extract_features ();
}
$adH = new ai_AdH();
$adF = new ai_AdF();
$adH->load_options (AI_HEADER_OPTION_NAME);
$adF->load_options (AI_FOOTER_OPTION_NAME);
$block_object [AI_HEADER_OPTION_NAME] = $adH;
$block_object [AI_FOOTER_OPTION_NAME] = $adF;
if ($features_in_extract) {
$ai_wp_data [AI_SERVER_SIDE_DETECTION] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_SERVER_SIDE_DETECTION];
$ai_wp_data [AI_CLIENT_SIDE_DETECTION] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_CLIENT_SIDE_DETECTION];
$ai_wp_data [AI_CLIENT_SIDE_INSERTION] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_CLIENT_SIDE_INSERTION];
$ai_wp_data [AI_STICK_TO_THE_CONTENT] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_STICK_TO_THE_CONTENT];
$ai_wp_data [AI_TRACKING] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_TRACKING];
$ai_wp_data [AI_CLOSE_BUTTONS] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_CLOSE_BUTTONS];
$ai_wp_data [AI_IFRAMES] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_IFRAMES];
$ai_wp_data [AI_ANIMATION] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_ANIMATION];
$ai_wp_data [AI_LAZY_LOADING] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_LAZY_LOADING];
$ai_wp_data [AI_GEOLOCATION] = $ai_db_options [AI_OPTION_EXTRACT][AI_EXTRACT_FEATURES][AI_GEOLOCATION];
} else {
if ($adH->get_enable_manual () && $adH->get_detection_server_side()) $ai_wp_data [AI_SERVER_SIDE_DETECTION] = true;
if ($adF->get_enable_manual () && $adF->get_detection_server_side()) $ai_wp_data [AI_SERVER_SIDE_DETECTION] = true;
}
if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
$adA = new ai_AdA();
$adA->load_options (AI_ADB_MESSAGE_OPTION_NAME);
$block_object [AI_ADB_MESSAGE_OPTION_NAME] = $adA;
$ai_wp_data [AI_ADB_DETECTION] = $adA->get_enable_manual ();
}
if (($install_timestamp = get_option (AI_INSTALL_NAME)) !== false) {
$install = new DateTime (date('Y-m-d H:i:s', $install_timestamp));
$now = new DateTime (date('Y-m-d H:i:s', time()));
if (method_exists ($install, 'diff')) {
$ai_wp_data [AI_INSTALL_TIME_DIFFERENCE] = $install->diff ($now);
$ai_wp_data [AI_DAYS_SINCE_INSTAL] = $ai_wp_data [AI_INSTALL_TIME_DIFFERENCE]->days;
}
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) ai_log ("LOAD SETTINGS END");
}
function generate_viewport_css () {
$viewports = array ();
for ($viewport = 1; $viewport <= 6; $viewport ++) {
$viewport_name = get_viewport_name ($viewport);
$viewport_width = get_viewport_width ($viewport);
if ($viewport_name != '') {
$viewports []= array ('index' => $viewport, 'name' => $viewport_name, 'width' => $viewport_width);
}
}
$viewport_styles = '';
if (count ($viewports) != 0) {
foreach ($viewports as $index => $viewport) {
if ($viewport ['index'] == 1) {
foreach (array_reverse ($viewports) as $index2 => $viewport2) {
if ($viewport2 ['index'] != 1) {
$viewport_styles .= ".ai-viewport-" . $viewport2 ['index'] . " { display: none !important;}\n";
}
}
$viewport_styles .= ".ai-viewport-1 { display: inherit !important;}\n";
$viewport_styles .= ".ai-viewport-0 { display: none !important;}\n";
} else {
$viewport_styles .= "@media ";
if ($index != count ($viewports) - 1)
$viewport_styles .= "(min-width: " . $viewport ['width'] . "px) and ";
$viewport_styles .= "(max-width: " . ($viewports [$index - 1]['width'] - 1) . "px) {\n";
foreach ($viewports as $index2 => $viewport2) {
if ($viewport2 ['index'] == 1)
$viewport_styles .= ".ai-viewport-" . $viewport2 ['index'] . " { display: none !important;}\n";
elseif ($viewport ['index'] == $viewport2 ['index'])
$viewport_styles .= ".ai-viewport-" . $viewport2 ['index'] . " { display: inherit !important;}\n";
}
$viewport_styles .= "}\n";
}
}
}
return ($viewport_styles);
}
function get_main_alignment_css ($alt_styles_text) {
if (strpos ($alt_styles_text, "||") !== false) {
$styles = explode ("||", $alt_styles_text);
return $styles [0];
}
return $alt_styles_text;
}
function ai_change_css ($css, $property, $value) {
$styles = explode (';', $css);
$replaced = false;
foreach ($styles as $index => $style) {
if (strpos (trim ($style), $property) === 0) {
$styles [$index] = preg_replace ('/\:\s*(.+)/', ': ' . $value, $styles [$index]);
$replaced = true;
break;
}
}
$new_style = implode (';', $styles);
if (!$replaced) {
$new_style = rtrim ($new_style, '; ');
return $new_style . '; ' . $property . ': ' . $value . ';';
}
return $new_style;
}
function generate_alignment_css () {
global $ai_db_options_extract, $block_object;
$block_class_name = get_block_class_name (true) . '-';
$styles = array ();
$styles [AI_ALIGNMENT_DEFAULT] = array (AI_TEXT_ENG_DEFAULT, get_main_alignment_css (AI_ALIGNMENT_CSS_DEFAULT));
$styles [AI_ALIGNMENT_LEFT] = array (AI_TEXT_ENG_LEFT, get_main_alignment_css (AI_ALIGNMENT_CSS_LEFT));
$styles [AI_ALIGNMENT_RIGHT] = array (AI_TEXT_ENG_RIGHT, get_main_alignment_css (AI_ALIGNMENT_CSS_RIGHT));
$styles [AI_ALIGNMENT_CENTER] = array (AI_TEXT_ENG_CENTER, get_main_alignment_css (AI_ALIGNMENT_CSS_CENTER));
$styles [AI_ALIGNMENT_FLOAT_LEFT] = array (AI_TEXT_ENG_FLOAT_LEFT, get_main_alignment_css (AI_ALIGNMENT_CSS_FLOAT_LEFT));
$styles [AI_ALIGNMENT_FLOAT_RIGHT] = array (AI_TEXT_ENG_FLOAT_RIGHT, get_main_alignment_css (AI_ALIGNMENT_CSS_FLOAT_RIGHT));
if (function_exists ('generate_alignment_css_2')) $styles = array_replace ($styles, generate_alignment_css_2 ());
$alignment_css = '';
$alignments = array ();
$used_blocks = unserialize ($ai_db_options_extract [AI_EXTRACT_USED_BLOCKS]);
foreach ($used_blocks as $used_block) {
$obj = $block_object [$used_block];
$alignment_type = $obj->get_alignment_type ();
switch ($alignment_type) {
case AI_ALIGNMENT_DEFAULT:
case AI_ALIGNMENT_LEFT:
case AI_ALIGNMENT_RIGHT:
case AI_ALIGNMENT_CENTER:
case AI_ALIGNMENT_FLOAT_LEFT:
case AI_ALIGNMENT_FLOAT_RIGHT:
case AI_ALIGNMENT_STICKY_LEFT:
case AI_ALIGNMENT_STICKY_RIGHT:
case AI_ALIGNMENT_STICKY_TOP:
case AI_ALIGNMENT_STICKY_BOTTOM:
$alignment_name = strtolower ($styles [$alignment_type][0]);
if (!in_array ($alignment_name, $alignments)) {
$alignments []= $alignment_name;
$alignment_css .= '.' . $block_class_name . str_replace (' ', '-', $alignment_name) .' {' . $styles [$alignment_type][1] . "}\n";
}
break;
case AI_ALIGNMENT_STICKY:
$sticky_css = $obj->alignment_style ($alignment_type);
$alignment_name = strtolower (md5 ($sticky_css));
if (!in_array ($alignment_name, $alignments)) {
$alignments []= $alignment_name;
$alignment_css .= '.' . $block_class_name . str_replace (' ', '-', $alignment_name) .' {' . $sticky_css . "}\n";
}
break;
case AI_ALIGNMENT_CUSTOM_CSS:
$custom_css = $obj->get_custom_css ();
$alignment_name = strtolower (md5 ($custom_css));
if (!in_array ($alignment_name, $alignments)) {
$alignments []= $alignment_name;
$alignment_css .= '.' . $block_class_name . str_replace (' ', '-', $alignment_name) .' {' . str_replace (''', "'", $custom_css) . "}\n";
}
break;
}
}
return $alignment_css;
}
function generate_debug_css_base () {
?>
.ai-debug-block {padding: 0; margin: 0;}
.ai-debug-tags {font-weight: bold; color: white; padding: 2px;}
.ai-debug-positions {clear: both; text-align: center; padding: 10px 0; font-family: arial; font-weight: bold; line-height: 20px; border: 1px solid blue; color: blue; background: #eef;}
.ai-debug-positions.ai-images {border: 1px solid #444; color: #444; background: #fff9ab;}
.ai-debug-page-type {text-align: center; padding: 10px 0; font-family: arial; font-weight: bold; line-height: 20px; border: 1px solid #000; color: #000; background: #fff;}
.ai-debug-status {clear: both; text-align: center; padding: 10px 0; font-family: arial; font-weight: bold; line-height: 20px; border: 1px solid #eee; color: #666; background: #eee;}
.ai-debug-status.status-ok, .ai-debug-status.adb-off {border: 1px solid green; color: green; background: #efe;}
.ai-debug-status.status-error, .ai-debug-status.adb-on {border: 1px solid red; color: red; background: #fee;}
.ai-debug-adb {opacity: 0.85; cursor: pointer;}
.ai-debug-widget {margin: 0; padding: 0 5px; font-size: 10px; white-space: pre; overflow-x: auto; overflow-y: hidden;}
a.ai-debug-left {float: left; cursor: default; font-size: 10px; text-decoration: none; color: transparent; padding: 0px 10px 0 0; border: 0; box-shadow: none;}
a.ai-debug-right {float: right; cursor: default; font-size: 10px; text-decoration: none; color: #88f; padding: 0px 10px 0 0; border: 0; box-shadow: none;}
a.ai-debug-center {text-align: center; cursor: default; font-size: 10px; text-decoration: none; color: white; padding: 0px 10px 0 0; border: 0; box-shadow: none;}
.ai-debug-invisible {display: none;}
.ai-debug-content-hook-positions {color: blue;}
.ai-debug-removed-html-tags {color: red;}
.ai-debug-rnrn {background: #0ff; color: #000;}
.ai-debug-p {background: #0a0;}
.ai-debug-div {background: #46f;}
.ai-debug-h {background: #d4e;}
.ai-debug-img {background: #ee0; color: #000;}
.ai-debug-pre {background: #222;}
.ai-debug-span {background: #cff; color: #000;}
.ai-debug-special {background: #fb0; color: #000;}
.ai-debug-ad-overlay {position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: #8f8; opacity: 0.6; z-index: 999999990}
.ai-auto-ads {background-color: #84f;}
.ai-no-slot {background-color: #48f;}
.ai-debug-ad-info {position: absolute; top: 0; left: 0; overflow: hidden; width: auto; height: auto; font-family: arial; font-size: 11px; line-height: 11px; text-align: left; z-index: 999999991;}
.ai-info {display: inline-block; padding: 2px 4px;}
.ai-info-1 {background: #000; color: #fff;}
.ai-info-2 {background: #fff; color: #000;}
.ai-debug-block {outline: 1px solid;}
.ai-debug-code {margin: 0; padding: 0; border: 0; font-family: monospace, sans-serif; font-size: 12px; line-height: 13px; background: #fff; color: #000;}
.ai-debug-code.ai-code-org {float: left; max-width: 48%;}
.ai-debug-code.ai-code-inserted {float: right; max-width: 48%;}
.ai-debug-block.ai-debug-default {border-color: #e00; outline-color: #e00;}
.ai-debug-bar.ai-debug-default {background: #e00;}
.ai-debug-block.ai-debug-viewport-invisible {border-color: #00f; outline-color: #00f;}
.ai-debug-bar.ai-debug-viewport-invisible {background: #00f;}
.ai-debug-block.ai-debug-amp {border-color: #0c0; outline-color: #0c0;}
.ai-debug-bar.ai-debug-amp {background: #0c0;}
.ai-debug-block.ai-debug-fallback {border-color: #a0f; outline-color: #a0f;}
.ai-debug-bar.ai-debug-fallback {background: #a0f;}
.ai-debug-block.ai-debug-script {border-color: #00bae6; outline-color: #00bae6; background: #eee;}
.ai-debug-bar.ai-debug-script {background: #00bae6;}
.ai-debug-block.ai-debug-adb-status {border-color: #000; outline-color: #000;}
.ai-debug-bar.ai-debug-adb-status {background: #000;}
.ai-debug-block.ai-debug-adsense {border-color: #e0a; outline-color: #e0a;}
.ai-debug-bar.ai-debug-adsense {background: #e0a;}
.ai-debug-block.ai-debug-adsense.ai-adsense-auto-ads {position: absolute; top: -20px; width: 100%;}
.ai-debug-block.ai-debug-ajax {border-color: #ffd600; outline-color: #ffd600;}
.ai-debug-bar.ai-debug-ajax {background: #ffd600;}
.ai-debug-bar.ai-debug-ajax kbd {color: #000;}
.ai-debug-block.ai-debug-iframe {border-color: #ff9e38; outline-color: #ff9e38; line-height: 1px;}
.ai-debug-bar.ai-debug-iframe {background: #ff9e38;}
.ai-debug-bar.ai-debug-iframe kbd {color: #000;}
.ai-debug-block.ai-debug-iframe .ai-attributes {line-height: initial;}
.ai-debug-adb-status.on kbd {color: #f00;}
.ai-debug-adb-status.off kbd {color: #0f0;}
.ai-debug-block.ai-debug-lists {border-color: #00c5be; outline-color: #00c5be;}
.ai-debug-bar.ai-debug-lists {background: #00c5be;}
.ai-debug-adb-hidden {visibility: hidden; display: none;}
.ai-debug-adb-center {text-align: center; font-weight: bold; margin: 0; padding: 4px 0;}
.ai-debug-bar {margin: 0; padding: 1px 0 1px 5px; color: white; font-size: 12px; font-family: arial; font-weight: normal; line-height: 20px; text-align: center; overflow: hidden; word-break: break-word;}
.ai-debug-bar .ai-debug-text-left {float: left; text-align: left;}
.ai-debug-bar .ai-debug-text-right {float: right; padding-right: 3px;}
.ai-debug-bar .ai-debug-text-center {text-align: center;}
.ai-debug-message {text-align: center; font-weight: bold;}
.ai-debug-bar kbd {margin: 0; padding: 0; color: #fff; font-size: inherit; font-family: arial; background-color: transparent; text-shadow: none; border: 0; box-shadow: none;}
.ai-debug-block pre {margin: 0; padding: 2px 5px 2px; line-height: 14px;}
.ai-debug-visibility-hidden {visibility: hidden}
.ai-debug-display-none {display: none}
#ai-selector-data {
position: fixed;
top: 0;
z-index: 999999;
background: #fff;
width: 100%;
border: 1px solid #000;
}
#ai-selector-data kbd {
background-color: #fff;
box-shadow: none;
}
#ai-selector-data table {
width: 100%;
margin: 5px;
}
#ai-selector-data td {
padding: 5px 10px;
vertical-align: middle;
}
#ai-selector-data td button {
margin: 0 15px;
}
#ai-selector-data .ui-button-text-only .ui-button-text {
padding: 3px 10px;
}
#ai-selector-data td.data-name {
width: 100px;
}
#ai-selector-element, #ai-selector-path {
user-select: text;
}
#ai-selector {
width: 100%;
display: inline-block;
border-radius: 4px;
font-size: 12px;
font-family: Courier, 'Courier New', monospace;
font-weight: bold;
}
.ai-highlighted {
outline: 3px dashed #00f;
background: rgba(50, 140, 220, 0.2);
cursor: default;
}
.ai-selected {
outline: 3px dashed #f00;
background: rgba(255, 0, 0, 0.2);
}
.ai-highlighted.ai-selected {
}
.ai-html-element {
color: #00a;
cursor: pointer;
}
.ai-html-element:hover {
color: #00f;
}
96) $start = 1;
$end = $start + 15;
if ($end > 96) $end = 96;
$invalid_blocks = array ();
$import_switch_name = AI_OPTION_IMPORT . WP_FORM_FIELD_POSTFIX . '0';
if (isset ($_POST [$import_switch_name]) && $_POST [$import_switch_name] == "1") {
// Import Ad Inserter settings
$ai_options = @unserialize (base64_decode (str_replace (array ("\\\""), array ("\""), $_POST ["export_settings_0"])));
if ($ai_options === false) {
// Use saved settings
$ai_options = wp_slash ($ai_db_options);
$invalid_blocks []= 0;
} else $ai_options = wp_slash ($ai_options);
} else {
// Try to import individual settings
$ai_options = array ();
$default_block = new ai_Block (1);
for ($block = 1; $block <= 96; $block ++) {
if (isset ($ai_db_options [$block])) $saved_settings = wp_slash ($ai_db_options [$block]); else
$saved_settings = array ();
if ($block < $start || $block > $end) {
// Block not on the settings page
$ai_options [$block] = $saved_settings;
continue;
}
$import_switch_name = AI_OPTION_IMPORT . WP_FORM_FIELD_POSTFIX . $block;
$import_name_switch_name = AI_OPTION_IMPORT_NAME . WP_FORM_FIELD_POSTFIX . $block;
if (isset ($_POST [$import_switch_name]) && $_POST [$import_switch_name] == "1") {
// Try to import block settings
$exported_settings = @unserialize (base64_decode (str_replace (array ("\\\""), array ("\""), $_POST ["export_settings_" . $block])));
if ($exported_settings !== false) {
$exported_settings = wp_slash ($exported_settings);
foreach (array_keys ($default_block->wp_options) as $key){
if ($key == AI_OPTION_BLOCK_NAME && isset ($_POST [$import_name_switch_name]) && $_POST [$import_name_switch_name] != "1") {
$form_field_name = $key . WP_FORM_FIELD_POSTFIX . $block;
if (isset ($_POST [$form_field_name])){
$ai_options [$block][$key] = filter_option ($key, $_POST [$form_field_name]);
}
} else {
if (isset ($exported_settings [$key])) {
$ai_options [$block][$key] = filter_option ($key, $exported_settings [$key], false);
}
}
}
} else {
// Block import failed - use existing settings
$default_block->wp_options = $saved_settings;
$invalid_blocks []= $block;
}
} else {
// Process block settings
foreach (array_keys ($default_block->wp_options) as $key){
$form_field_name = $key . WP_FORM_FIELD_POSTFIX . $block;
if (isset ($_POST [$form_field_name])){
$field_value = $_POST [$form_field_name];
if ($key == AI_OPTION_CODE && strpos ($field_value, ':AI:') === 0) {
$field_value = wp_slash (base64_decode (substr ($field_value, 4)));
}
$ai_options [$block][$key] = filter_option ($key, $field_value);
}
}
}
delete_option (str_replace ("#", $block, AD_ADx_OPTIONS));
}
$default_block_H = new ai_AdH();
$wp_options = array ();
foreach(array_keys ($default_block_H->wp_options) as $key){
$form_field_name = $key . WP_FORM_FIELD_POSTFIX . AI_HEADER_OPTION_NAME;
if(isset ($_POST [$form_field_name])){
$field_value = $_POST [$form_field_name];
if ($key == AI_OPTION_CODE && strpos ($field_value, ':AI:') === 0) {
$field_value = wp_slash (base64_decode (substr ($field_value, 4)));
}
$wp_options [$key] = filter_option_hf ($key, $field_value);
}
}
$ai_options [AI_HEADER_OPTION_NAME] = $wp_options;
$default_block_F = new ai_AdF();
$wp_options = array ();
foreach(array_keys($default_block_F->wp_options) as $key){
$form_field_name = $key . WP_FORM_FIELD_POSTFIX . AI_FOOTER_OPTION_NAME;
if(isset ($_POST [$form_field_name])){
$field_value = $_POST [$form_field_name];
if ($key == AI_OPTION_CODE && strpos ($field_value, ':AI:') === 0) {
$field_value = wp_slash (base64_decode (substr ($field_value, 4)));
}
$wp_options [$key] = filter_option_hf ($key, $field_value);
}
}
$ai_options [AI_FOOTER_OPTION_NAME] = $wp_options;
if (defined ('AI_ADBLOCKING_DETECTION') && AI_ADBLOCKING_DETECTION) {
$default_block_A = new ai_AdA();
$wp_options = array ();
foreach(array_keys($default_block_A->wp_options) as $key){
$form_field_name = $key . WP_FORM_FIELD_POSTFIX . AI_ADB_MESSAGE_OPTION_NAME;
if(isset ($_POST [$form_field_name])){
$field_value = $_POST [$form_field_name];
if ($key == AI_OPTION_CODE && strpos ($field_value, ':AI:') === 0) {
$field_value = wp_slash (base64_decode (substr ($field_value, 4)));
}
$wp_options [$key] = filter_option_hf ($key, $field_value);
}
}
$ai_options [AI_ADB_MESSAGE_OPTION_NAME] = $wp_options;
}
$options = array ();
if (function_exists ('ai_filter_global_settings')) ai_filter_global_settings ($options);
if (isset ($_POST ['syntax-highlighter-theme'])) $options ['SYNTAX_HIGHLIGHTER_THEME'] = filter_string ($_POST ['syntax-highlighter-theme']);
if (isset ($_POST ['block-class-name'])) $options ['BLOCK_CLASS_NAME'] = filter_html_class ($_POST ['block-class-name']);
if (isset ($_POST ['block-class'])) $options ['BLOCK_CLASS'] = filter_option ('BLOCK_CLASS', $_POST ['block-class']);
if (isset ($_POST ['block-number-class'])) $options ['BLOCK_NUMBER_CLASS'] = filter_option ('BLOCK_NUMBER_CLASS', $_POST ['block-number-class']);
if (isset ($_POST ['inline-styles'])) $options ['INLINE_STYLES'] = filter_option ('INLINE_STYLES', $_POST ['inline-styles']);
if (isset ($_POST ['minimum-user-role'])) $options ['MINIMUM_USER_ROLE'] = filter_string ($_POST ['minimum-user-role']);
if (isset ($_POST ['sticky-widget-mode'])) $options ['STICKY_WIDGET_MODE'] = filter_option ('STICKY_WIDGET_MODE', $_POST ['sticky-widget-mode']);
if (isset ($_POST ['sticky-widget-margin'])) $options ['STICKY_WIDGET_MARGIN'] = filter_option ('STICKY_WIDGET_MARGIN', $_POST ['sticky-widget-margin']);
if (isset ($_POST ['lazy-loading-offset'])) $options ['LAZY_LOADING_OFFSET'] = filter_option ('LAZY_LOADING_OFFSET', $_POST ['lazy-loading-offset']);
if (isset ($_POST ['max-page-blocks'])) $options ['MAX_PAGE_BLOCKS'] = filter_option ('MAX_PAGE_BLOCKS', $_POST ['max-page-blocks']);
if (isset ($_POST ['plugin_priority'])) $options ['PLUGIN_PRIORITY'] = filter_option ('PLUGIN_PRIORITY', $_POST ['plugin_priority']);
if (isset ($_POST ['dynamic_blocks'])) $options ['DYNAMIC_BLOCKS'] = filter_option ('DYNAMIC_BLOCKS', $_POST ['dynamic_blocks']);
if (isset ($_POST ['paragraph_counting_functions'])) $options ['PARAGRAPH_COUNTING_FUNCTIONS'] = filter_option ('PARAGRAPH_COUNTING_FUNCTIONS', $_POST ['paragraph_counting_functions']);
if (isset ($_POST ['output-buffering'])) $options ['OUTPUT_BUFFERING'] = filter_option ('OUTPUT_BUFFERING', $_POST ['output-buffering']);
if (isset ($_POST ['disable-caching-admin'])) $options ['DISABLE_CACHING'] = filter_option ('DISABLE_CACHING', $_POST ['disable-caching-admin']);
if (isset ($_POST ['no-paragraph-counting-inside'])) $options ['NO_PARAGRAPH_COUNTING_INSIDE'] = filter_option ('NO_PARAGRAPH_COUNTING_INSIDE', $_POST ['no-paragraph-counting-inside']);
if (isset ($_POST ['ad-label'])) $options ['AD_LABEL'] = filter_option ('AD_LABEL', $_POST ['ad-label']);
if (isset ($_POST ['main-content-element'])) $options ['MAIN_CONTENT_ELEMENT'] = filter_option ('MAIN_CONTENT_ELEMENT', $_POST ['main-content-element']);
if (isset ($_POST [AI_OPTION_ADB_ACTION])) $options ['ADB_ACTION'] = filter_option ('ADB_ACTION', $_POST [AI_OPTION_ADB_ACTION]);
if (isset ($_POST [AI_OPTION_ADB_NO_ACTION])) $options ['ADB_NO_ACTION'] = filter_option ('ADB_NO_ACTION', $_POST [AI_OPTION_ADB_NO_ACTION]);
if (isset ($_POST [AI_OPTION_ADB_DELAY_ACTION])) $options ['ADB_DELAY_ACTION'] = filter_option ('ADB_DELAY_ACTION', $_POST [AI_OPTION_ADB_DELAY_ACTION]);
if (isset ($_POST [AI_OPTION_ADB_NO_ACTION_PERIOD])) $options ['ADB_NO_ACTION_PERIOD'] = filter_option ('ADB_NO_ACTION_PERIOD', $_POST [AI_OPTION_ADB_NO_ACTION_PERIOD]);
if (isset ($_POST [AI_OPTION_ADB_SELECTORS])) $options ['ADB_SELECTORS'] = filter_option ('ADB_SELECTORS', $_POST [AI_OPTION_ADB_SELECTORS]);
if (isset ($_POST [AI_OPTION_ADB_REDIRECTION_PAGE])) $options ['ADB_REDIRECTION_PAGE'] = filter_option ('ADB_REDIRECTION_PAGE', $_POST [AI_OPTION_ADB_REDIRECTION_PAGE]);
if (isset ($_POST [AI_OPTION_ADB_CUSTOM_REDIRECTION_URL])) $options ['ADB_CUSTOM_REDIRECTION_URL'] = filter_option ('ADB_CUSTOM_REDIRECTION_URL', $_POST [AI_OPTION_ADB_CUSTOM_REDIRECTION_URL]);
if (isset ($_POST [AI_OPTION_ADB_MESSAGE_CSS])) $options ['ADB_MESSAGE_CSS'] = filter_option ('ADB_MESSAGE_CSS', $_POST [AI_OPTION_ADB_MESSAGE_CSS]);
if (isset ($_POST [AI_OPTION_ADB_OVERLAY_CSS])) $options ['ADB_OVERLAY_CSS'] = filter_option ('ADB_OVERLAY_CSS', $_POST [AI_OPTION_ADB_OVERLAY_CSS]);
if (isset ($_POST [AI_OPTION_ADB_UNDISMISSIBLE_MESSAGE])) $options ['ADB_UNDISMISSIBLE_MESSAGE'] = filter_option ('ADB_UNDISMISSIBLE_MESSAGE', $_POST [AI_OPTION_ADB_UNDISMISSIBLE_MESSAGE]);
if (isset ($_POST [AI_OPTION_ADB_NO_UNDISMISSIBLE_MESSAGE]))$options ['ADB_NO_UNDISMISSIBLE_MESSAGE'] = filter_option ('ADB_NO_UNDISMISSIBLE_MESSAGE', $_POST [AI_OPTION_ADB_NO_UNDISMISSIBLE_MESSAGE]);
if (isset ($_POST ['force_admin_toolbar'])) $options ['FORCE_ADMIN_TOOLBAR'] = filter_option ('FORCE_ADMIN_TOOLBAR', $_POST ['force_admin_toolbar']);
if (isset ($_POST ['admin_toolbar_debugging'])) $options ['ADMIN_TOOLBAR_DEBUGGING'] = filter_option ('ADMIN_TOOLBAR_DEBUGGING', $_POST ['admin_toolbar_debugging']);
if (isset ($_POST ['admin_toolbar_mobile'])) $options ['ADMIN_TOOLBAR_MOBILE'] = filter_option ('ADMIN_TOOLBAR_MOBILE', $_POST ['admin_toolbar_mobile']);
if (isset ($_POST ['remote_debugging'])) $options ['REMOTE_DEBUGGING'] = filter_option ('REMOTE_DEBUGGING', $_POST ['remote_debugging']);
if (isset ($_POST ['disable_translation'])) $options ['DISABLE_TRANSLATION'] = filter_option ('DISABLE_TRANSLATION', $_POST ['disable_translation']);
if (isset ($_POST ['backend_js_debugging'])) $options ['BACKEND_JS_DEBUGGING'] = filter_option ('BACKEND_JS_DEBUGGING', $_POST ['backend_js_debugging']);
if (isset ($_POST ['frontend_js_debugging'])) $options ['FRONTEND_JS_DEBUGGING'] = filter_option ('FRONTEND_JS_DEBUGGING', $_POST ['frontend_js_debugging']);
if (isset ($_POST ['disable-blocks'])) $options ['DISABLE_BLOCK_INSERTIONS'] = filter_option ('DISABLE_BLOCK_INSERTIONS', $_POST ['disable-blocks']);
if (isset ($_POST ['disable-php-processing'])) $options ['DISABLE_PHP_PROCESSING'] = filter_option ('DISABLE_PHP_PROCESSING', $_POST ['disable-php-processing']);
if (isset ($_POST ['disable-css-code'])) $options ['DISABLE_CSS_CODE'] = filter_option ('DISABLE_CSS_CODE', $_POST ['disable-css-code']);
if (isset ($_POST ['disable-js-code'])) $options ['DISABLE_JS_CODE'] = filter_option ('DISABLE_JS_CODE', $_POST ['disable-js-code']);
if (isset ($_POST ['disable-footer-code'])) $options ['DISABLE_FOOTER_CODE'] = filter_option ('DISABLE_FOOTER_CODE', $_POST ['disable-footer-code']);
if (isset ($_POST ['disable-header-code'])) $options ['DISABLE_HEADER_CODE'] = filter_option ('DISABLE_HEADER_CODE', $_POST ['disable-header-code']);
for ($viewport = 1; $viewport <= 6; $viewport ++) {
if (isset ($_POST ['viewport-name-'.$viewport])) $options ['VIEWPORT_NAME_'.$viewport] = filter_string ($_POST ['viewport-name-'.$viewport]);
if (isset ($_POST ['viewport-width-'.$viewport])) $options ['VIEWPORT_WIDTH_'.$viewport] = filter_option ('viewport_width', $_POST ['viewport-width-'.$viewport]);
}
for ($hook = 1; $hook <= 8; $hook ++) {
if (isset ($_POST ['hook-enabled-'.$hook])) $options ['HOOK_ENABLED_'.$hook] = filter_option ('HOOK_ENABLED', $_POST ['hook-enabled-'.$hook]);
if (isset ($_POST ['hook-name-'.$hook])) $options ['HOOK_NAME_'.$hook] = filter_string_tags ($_POST ['hook-name-'.$hook]);
if (isset ($_POST ['hook-action-'.$hook])) $options ['HOOK_ACTION_'.$hook] = filter_string ($_POST ['hook-action-'.$hook]);
if (isset ($_POST ['hook-priority-'.$hook])) $options ['HOOK_PRIORITY_'.$hook] = filter_option ('HOOK_PRIORITY', $_POST ['hook-priority-'.$hook]);
}
// $options ['VIEWPORT_CSS'] = generate_viewport_css ();
// $options ['ALIGNMENT_CSS'] = generate_alignment_css ();
$ai_options [AI_OPTION_GLOBAL] = ai_check_plugin_options ($options);
}
if (!empty ($invalid_blocks)) {
if ($invalid_blocks [0] == 0) { // translators: %s: Ad Inserter
echo '
', sprintf (__('Error importing %s settings.', 'ad-inserter'), AD_INSERTER_NAME), '
';
} else echo '
', _n('Error importing settings for block', 'Error importing settings for blocks:', count ($invalid_blocks), 'ad-inserter') , ' ', implode (', ', $invalid_blocks), '.
';
}
// Generate and save extract
// Save new options as some function may need new settings
update_option (AI_OPTION_NAME, $ai_options);
ai_load_settings ();
$ai_options [AI_OPTION_EXTRACT] = ai_generate_extract ($ai_options);
$ai_db_options_extract = $ai_options [AI_OPTION_EXTRACT];
$ai_options [AI_OPTION_GLOBAL]['VIEWPORT_CSS'] = generate_viewport_css ();
$ai_options [AI_OPTION_GLOBAL]['ALIGNMENT_CSS'] = generate_alignment_css ();
$ai_options [AI_OPTION_GLOBAL]['TIMESTAMP'] = time ();
if (!get_option (AI_INSTALL_NAME)) {
update_option (AI_INSTALL_NAME, time ());
}
update_option (AI_OPTION_NAME, $ai_options);
update_option (AI_EXTRACT_NAME, $ai_db_options_extract);
// Multisite
if (is_multisite () && is_main_site ()) {
$options = array ();
if (function_exists ('ai_filter_multisite_settings')) ai_filter_multisite_settings ($options);
ai_check_multisite_options ($options);
update_site_option (AI_OPTION_NAME, $options);
}
ai_load_settings ();
if (function_exists ('ai_load_globals')) ai_load_globals ();
if (defined ('AI_PLUGIN_TRACKING') && AI_PLUGIN_TRACKING) {
if (isset ($_POST ['plugin-usage-tracking'])) {
global $ai_dst;
if (isset ($ai_dst) && is_object ($ai_dst)) {
$ai_dst->set_tracking ((bool) $_POST ['plugin-usage-tracking']);
}
}
}
delete_option (str_replace ("#", "Header", AD_ADx_OPTIONS));
delete_option (str_replace ("#", "Footer", AD_ADx_OPTIONS));
delete_option (AD_OPTIONS);
echo '
' . __('Settings saved.', 'ad-inserter') . '
';
} elseif (isset ($_POST [AI_FORM_CLEAR])) {
check_admin_referer ('save_adinserter_settings');
for ($block = 1; $block <= 96; $block ++) {
delete_option (str_replace ("#", $block, AD_ADx_OPTIONS));
}
delete_option (str_replace ("#", "Header", AD_ADx_OPTIONS));
delete_option (str_replace ("#", "Footer", AD_ADx_OPTIONS));
delete_option (AD_OPTIONS);
delete_option (AI_OPTION_NAME);
delete_option (AI_EXTRACT_NAME);
if (is_multisite () && is_main_site ()) {
delete_site_option (AI_OPTION_NAME);
}
delete_option (AI_ADSENSE_CLIENT_IDS);
delete_option (AI_ADSENSE_AUTH_CODE);
delete_option (AI_ADSENSE_OWN_IDS);
delete_transient (AI_TRANSIENT_ADSENSE_TOKEN);
delete_transient (AI_TRANSIENT_ADSENSE_ADS);
delete_transient ('ai-close');
if (function_exists ('ai_load_globals')) {
delete_option (WP_AD_INSERTER_PRO_LICENSE);
$wpdb->query ("DROP TABLE IF EXISTS " . AI_STATISTICS_DB_TABLE);
delete_transient (AI_TRANSIENT_ADB_CLASS_1);
delete_transient (AI_TRANSIENT_ADB_CLASS_2);
delete_transient (AI_TRANSIENT_ADB_CLASS_3);
delete_transient (AI_TRANSIENT_ADB_CLASS_4);
delete_transient (AI_TRANSIENT_ADB_CLASS_5);
delete_transient (AI_TRANSIENT_ADB_CLASS_6);
delete_transient (AI_TRANSIENT_ADB_FILES_VERSION);
}
if (ai_current_user_role_ok () && (!is_multisite() || is_main_site () || multisite_exceptions_enabled ())) {
$args = array (
'public' => true,
'_builtin' => false
);
$custom_post_types = get_post_types ($args, 'names', 'and');
$screens = array_values (array_merge (array ('post', 'page'), $custom_post_types));
$args = array (
'posts_per_page' => 100,
'offset' => 0,
'category' => '',
'category_name' => '',
'orderby' => 'type',
'order' => 'ASC',
'include' => '',
'exclude' => '',
'meta_key' => '_adinserter_block_exceptions',
'meta_value' => '',
'post_type' => $screens,
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'author_name' => '',
'post_status' => '',
'suppress_filters' => true
);
$posts_pages = get_posts ($args);
foreach ($posts_pages as $page) {
delete_post_meta ($page->ID, '_adinserter_block_exceptions');
}
}
ai_load_settings ();
// Generate extract
$ai_options [AI_OPTION_EXTRACT] = ai_generate_extract ($ai_options);
$ai_db_options_extract = $ai_options [AI_OPTION_EXTRACT];
if (function_exists ('ai_load_globals')) ai_load_globals ();
echo '
' . __('Settings cleared.', 'ad-inserter') . '
';
} elseif (isset ($_POST [AI_FORM_CLEAR_EXCEPTIONS])) {
if (ai_current_user_role_ok () && (!is_multisite() || is_main_site () || multisite_exceptions_enabled ())) {
$args = array (
'public' => true,
'_builtin' => false
);
$custom_post_types = get_post_types ($args, 'names', 'and');
$screens = array_values (array_merge (array ('post', 'page'), $custom_post_types));
$args = array (
'posts_per_page' => 100,
'offset' => 0,
'category' => '',
'category_name' => '',
'orderby' => 'type',
'order' => 'ASC',
'include' => '',
'exclude' => '',
'meta_key' => '_adinserter_block_exceptions',
'meta_value' => '',
'post_type' => $screens,
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'author_name' => '',
'post_status' => '',
'suppress_filters' => true
);
$posts_pages = get_posts ($args);
if ($_POST [AI_FORM_CLEAR_EXCEPTIONS] == "\xe2\x9d\x8c") {
foreach ($posts_pages as $page) {
delete_post_meta ($page->ID, '_adinserter_block_exceptions');
}
}
elseif (strpos ($_POST [AI_FORM_CLEAR_EXCEPTIONS], 'id=') === 0) {
$id = str_replace ('id=', '', $_POST [AI_FORM_CLEAR_EXCEPTIONS]);
if (is_numeric ($id)) {
delete_post_meta ($id, '_adinserter_block_exceptions');
}
}
elseif (is_numeric ($_POST [AI_FORM_CLEAR_EXCEPTIONS])) {
foreach ($posts_pages as $page) {
$post_meta = get_post_meta ($page->ID, '_adinserter_block_exceptions', true);
$selected_blocks = explode (",", $post_meta);
if (($key = array_search ($_POST [AI_FORM_CLEAR_EXCEPTIONS], $selected_blocks)) !== false) {
unset ($selected_blocks [$key]);
update_post_meta ($page->ID, '_adinserter_block_exceptions', implode (",", $selected_blocks));
}
}
}
}
} elseif (isset ($_POST [AI_FORM_CLEAR_STATISTICS]) && is_numeric ($_POST [AI_FORM_CLEAR_STATISTICS])) {
if ($_POST [AI_FORM_CLEAR_STATISTICS] != 0) {
$wpdb->query ("DELETE FROM " . AI_STATISTICS_DB_TABLE . " WHERE block = " . $_POST [AI_FORM_CLEAR_STATISTICS]);
} else $wpdb->query ("DROP TABLE IF EXISTS " . AI_STATISTICS_DB_TABLE);
}
generate_settings_form ();
}
function ai_adinserter ($ad_number = '', $ignore = ''){
global $block_object, $ad_inserter_globals, $ai_wp_data, $ai_last_check;
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
if ($ad_number == "") return "";
if (!is_numeric ($ad_number)) return "";
$ad_number = (int) $ad_number;
if ($ad_number < 1 || $ad_number > 96) return "";
$globals_name = AI_PHP_FUNCTION_CALL_COUNTER_NAME . $ad_number;
if (!isset ($ad_inserter_globals [$globals_name])) {
$ad_inserter_globals [$globals_name] = 1;
} else $ad_inserter_globals [$globals_name] ++;
if ($debug_processing) ai_log ("PHP FUNCTION CALL adinserter ($ad_number".($ignore == '' ? '' : (', \''.$ignore.'\'')).") [" . $ad_inserter_globals [$globals_name] . ']');
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_PHP_FUNCTION;
$ignore_array = array ();
if (trim ($ignore) != '') {
$ignore_array = explode (",", str_replace (" ", "", $ignore));
}
$obj = $block_object [$ad_number];
$obj->clear_code_cache ();
$ai_last_check = AI_CHECK_ENABLED_PHP;
if (!$obj->get_enable_php_call ()) return "";
if (!$obj->check_server_side_detection ()) return "";
if (!$obj->check_page_types_lists_users (in_array ("page-type", $ignore_array))) return "";
if (!$obj->check_filter ($ad_inserter_globals [$globals_name])) return "";
if (!$obj->check_number_of_words ()) return "";
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_POST || $ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_STATIC) {
$meta_value = get_post_meta (get_the_ID (), '_adinserter_block_exceptions', true);
$selected_blocks = explode (",", $meta_value);
if (!$obj->check_post_page_exceptions ($selected_blocks)) return "";
}
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) return "";
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') return "";
if ($obj->empty_code ()) return "";
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) return "";
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) return "";
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if ($obj->get_debug_disable_insertion ()) return "";
$code = $obj->get_code_for_serverside_insertion ();
// Must be after get_code_for_serverside_insertion ()
$ai_last_check = AI_CHECK_INSERTED;
return $code;
}
function adinserter ($block = '', $ignore = '') {
global $ai_last_check, $ai_wp_data, $ai_total_plugin_time;
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
if ($debug_processing) {
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
$ai_last_check = AI_CHECK_NONE;
$code = ai_adinserter ($block, $ignore);
if ($debug_processing) {
$ai_total_plugin_time += microtime (true) - $start_time;
if ($ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($block, $ai_last_check));
ai_log ("PHP FUNCTION CALL END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
return $code;
}
function ai_content_hook ($content = '') {
global $block_object, $ad_inserter_globals, $ai_db_options_extract, $ai_wp_data, $ai_last_check, $ai_total_plugin_time, $special_element_tags;
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_ADMIN) return $content;
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
$globals_name = AI_CONTENT_COUNTER_NAME;
$special_element_tags = explode (',', str_replace (' ', '', get_no_paragraph_counting_inside ()));
if (!isset ($ad_inserter_globals [$globals_name])) {
$ad_inserter_globals [$globals_name] = 1;
} else $ad_inserter_globals [$globals_name] ++;
if ($debug_processing) {
ai_log ("CONTENT HOOK START [" . $ad_inserter_globals [$globals_name] . (in_the_loop () ? ', IN THE LOOP' : ', NOT IN THE LOOP') . ']');
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_CONTENT;
$content_words = number_of_words ($content);
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$preview = $block_object [0];
$positions_inserted = false;
if ($ai_wp_data [AI_WP_DEBUG_BLOCK] == 0) {
$content = $preview->before_paragraph ($content, true);
$content = $preview->after_paragraph ($content, true);
$positions_inserted = true;
}
$content = $preview->before_paragraph ($content, true, true);
$content = $preview->after_paragraph ($content, true, true);
}
if ($ai_db_options_extract [CONTENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) {
if ($debug_processing) ai_log_content ($content);
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_POST || $ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_STATIC) {
$meta_value = get_post_meta (get_the_ID (), '_adinserter_block_exceptions', true);
$selected_blocks = explode (",", $meta_value);
} else $selected_blocks = array ();
$ai_last_check = AI_CHECK_NONE;
$current_block = 0;
$in_the_loop = in_the_loop ();
if (isset ($ai_db_options_extract [CONTENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
foreach ($ai_db_options_extract [CONTENT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] as $block) {
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (!isset ($block_object [$block])) continue;
$ai_last_check = AI_CHECK_NONE;
$current_block = $block;
$obj = $block_object [$block];
$obj->clear_code_cache ();
if ($in_the_loop || !$obj->get_only_in_the_loop ()) {
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0 && !$positions_inserted && $ai_wp_data [AI_WP_DEBUG_BLOCK] <= $block) {
$preview = $block_object [$ai_wp_data [AI_WP_DEBUG_BLOCK]];
$content = $preview->before_paragraph ($content, true);
$content = $preview->after_paragraph ($content, true);
$positions_inserted = true;
}
if (!$obj->check_server_side_detection ()) continue;
if (!$obj->check_page_types_lists_users ()) continue;
if (!$obj->check_post_page_exceptions ($selected_blocks)) continue;
if (!$obj->check_filter ($ad_inserter_globals [$globals_name])) continue;
if (!$obj->check_number_of_words ($content, $content_words)) continue;
// Deprecated
$ai_last_check = AI_CHECK_DISABLED_MANUALLY;
if ($obj->display_disabled ($content)) continue;
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) continue;
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') continue;
if ($obj->empty_code ()) continue;
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) continue;
}
// Last check before insertion
if (!$obj->check_block_counter ()) continue;
$automatic_insertion = $obj->get_automatic_insertion();
if ($automatic_insertion == AI_AUTOMATIC_INSERTION_BEFORE_PARAGRAPH) {
$ai_last_check = AI_CHECK_PARAGRAPH_COUNTING;
$content = $obj->before_paragraph ($content);
}
elseif ($automatic_insertion == AI_AUTOMATIC_INSERTION_AFTER_PARAGRAPH) {
$ai_last_check = AI_CHECK_PARAGRAPH_COUNTING;
$content = $obj->after_paragraph ($content);
}
if ($automatic_insertion == AI_AUTOMATIC_INSERTION_BEFORE_IMAGE) {
$ai_last_check = AI_CHECK_IMAGE_COUNTING;
$content = $obj->before_image ($content);
}
elseif ($automatic_insertion == AI_AUTOMATIC_INSERTION_AFTER_IMAGE) {
$ai_last_check = AI_CHECK_IMAGE_COUNTING;
$content = $obj->after_image ($content);
}
elseif ($automatic_insertion == AI_AUTOMATIC_INSERTION_BEFORE_CONTENT) {
$obj->increment_block_counter ();
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$content = $obj->get_code_for_serverside_insertion () . $content;
$ai_last_check = AI_CHECK_INSERTED;
}
}
elseif ($automatic_insertion == AI_AUTOMATIC_INSERTION_AFTER_CONTENT) {
$obj->increment_block_counter ();
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$content = $content . $obj->get_code_for_serverside_insertion ();
$ai_last_check = AI_CHECK_INSERTED;
}
}
}
}
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
}
if (function_exists ('ai_content')) ai_content ($content);
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_TAGS) != 0) {
$class = AI_DEBUG_TAGS_CLASS;
$content = preg_replace ("/\r\n\r\n/", "\r\n\r\n
\\r\\n\\r\\n ", $content);
// $content = preg_replace ("/
/i", "
<p> ", $content);
// $content = preg_replace ("/
]*?)>/i", "
<p$1> ", $content); // Full p tags
$content = preg_replace ("/
]*?)>/i", "
<p> ", $content);
// $content = preg_replace ("/
]*?)>/i", "
<div$1> ", $content); // Full div tags
$content = preg_replace ("/
]*?)>/i", "
<div> ", $content);
$content = preg_replace ("/
]*?)>/i", "<h$1> ", $content);
$content = preg_replace ("/ ]*?)>/i", "<img$1> ", $content);
$content = preg_replace ("/]*?)>/i", "<pre> ", $content);
$content = preg_replace ("/]*?)>/i", "<span> ", $content);
$content = preg_replace ("/<(?!section|ins|script|kbd|a|strong|pre|span|p|div|h[1-6]|img)([a-z0-9]+)([^>]*?)>/i", "<$1$2><$1$2> ", $content);
$content = preg_replace ("/<\/p>/i", "</p> ", $content);
$content = preg_replace ("/<\/div>/i", "</div> ", $content);
$content = preg_replace ("/<\/h([1-6])>/i", "
</h$1> ", $content);
$content = preg_replace ("/<\/pre>/i", "
</pre> ", $content);
$content = preg_replace ("/<\/span>/i", "
</span> ", $content);
$content = preg_replace ("/<\/(?!section|ins|script|kbd|a|strong|pre|span|p|div|h[1-6])([a-z0-9]+)>/i", "
</$1> $1>", $content);
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$class = AI_DEBUG_POSITIONS_CLASS;
if (!$positions_inserted) {
$preview = $block_object [$ai_wp_data [AI_WP_DEBUG_BLOCK]];
$content = $preview->before_paragraph ($content, true);
$content = $preview->after_paragraph ($content, true);
}
if (preg_match_all ("/\[\[AI_BP([\d]+?)=([\d]+?)\]\]/", $content, $matches)) {
foreach ($matches [0] as $index => $match) {
$content = str_replace ($match,
"
',
$content);
}
}
if (preg_match_all ("/\[\[AI_BI([\d]+?)=([\d]+?)\]\]/", $content, $matches)) {
foreach ($matches [0] as $index => $match) {
$content = str_replace ($match,
"
[(] ".'[)] ' .
($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_BEFORE_IMAGE) : strtoupper (AI_TEXT_BEFORE_IMAGE)) . ' ' . $matches [1][$index] .
"[(] " . '[)] ',
$content);
}
}
// $content = preg_replace ("/\[\[AI_BP([\d]+?)=([\d]+?)\]\]/", "
', $content);
$content = preg_replace ("/\[\[AI_AP([\d]+?)\]\]/", "
" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_AFTER_PARAGRAPH) : strtoupper (AI_TEXT_AFTER_PARAGRAPH)) . " $1 ", $content);
$content = preg_replace ("/\[\[AI_AI([\d]+?)\]\]/", "
" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_AFTER_IMAGE) : strtoupper (AI_TEXT_AFTER_IMAGE)) . " $1 ", $content);
$counter = $ad_inserter_globals [$globals_name];
if ($counter == 1) $counter = '';
$content = "
'. $content;
if ($ai_wp_data [AI_WP_AMP_PAGE]) {
$content = get_page_type_debug_info ('AMP ') . $content;
}
$content = $content . "
" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_AFTER_CONTENT) : strtoupper (AI_TEXT_AFTER_CONTENT)) . ' '.$counter." ";
if ($ai_wp_data [AI_WP_AMP_PAGE]) {
$content = $content . get_page_type_debug_info ('AMP ');
} else $content = $content . get_page_type_debug_info ('');
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_TAGS) != 0) {
$content = '
[' . __('HTML TAGS REMOVED', 'ad-inserter') . '] ' . $content;
}
if ($debug_processing) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("CONTENT HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
return $content;
}
// Process Before/After Excerpt postion
function ai_excerpt_hook ($content = '') {
global $ad_inserter_globals, $block_object, $ai_db_options_extract, $ai_wp_data, $ai_last_check, $ai_total_plugin_time;
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_ADMIN) return;
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
$globals_name = AI_EXCERPT_COUNTER_NAME;
if (!isset ($ad_inserter_globals [$globals_name])) {
$ad_inserter_globals [$globals_name] = 1;
} else $ad_inserter_globals [$globals_name] ++;
if ($debug_processing) {
ai_log ("EXCERPT HOOK START [" . $ad_inserter_globals [$globals_name] . ']');
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_EXCERPT;
$ai_last_check = AI_CHECK_NONE;
$current_block = 0;
if (isset ($ai_db_options_extract [EXCERPT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
foreach ($ai_db_options_extract [EXCERPT_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] as $block) {
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (!isset ($block_object [$block])) continue;
$current_block = $block;
$obj = $block_object [$block];
$obj->clear_code_cache ();
if (!$obj->check_server_side_detection ()) continue;
if (!$obj->check_page_types_lists_users ()) continue;
if (!$obj->check_filter ($ad_inserter_globals [$globals_name])) continue;
// Deprecated
$ai_last_check = AI_CHECK_DISABLED_MANUALLY;
if ($obj->display_disabled ($content)) continue;
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) continue;
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') continue;
if ($obj->empty_code ()) continue;
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) continue;
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) continue;
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$automatic_insertion = $obj->get_automatic_insertion ();
if ($automatic_insertion == AI_AUTOMATIC_INSERTION_BEFORE_EXCERPT)
$content = $obj->get_code_for_serverside_insertion () . $content; else
$content = $content . $obj->get_code_for_serverside_insertion ();
$ai_last_check = AI_CHECK_INSERTED;
}
}
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$class = AI_DEBUG_POSITIONS_CLASS;
$content = "
" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_BEFORE_EXCERPT) : strtoupper (AI_TEXT_BEFORE_EXCERPT)) . ' ' . $ad_inserter_globals [$globals_name]." ".
$content . "
" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_AFTER_EXCERPT) : strtoupper (AI_TEXT_AFTER_EXCERPT)) . ' ' .$ad_inserter_globals [$globals_name]." ";
// Remove word counts
$content = preg_replace ("/\[\(\](.+?)\[\)\]/", "", $content);
$content = preg_replace ("/\[\(\].*/", "", $content);
// Color positions from the content hook
// $content = preg_replace ("/((BEFORE|AFTER) (CONTENT|PARAGRAPH) ?[\d]*)/", "
[$1] ", $content);
$content = preg_replace ("/(" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_BEFORE_CONTENT) : strtoupper (AI_TEXT_BEFORE_CONTENT)) . " ?[\d]*)/", "
[$1] ", $content);
$content = preg_replace ("/(" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_AFTER_CONTENT) : strtoupper (AI_TEXT_AFTER_CONTENT)) . " ?[\d]*)/", "
[$1] ", $content);
$content = preg_replace ("/(" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_BEFORE_PARAGRAPH) : strtoupper (AI_TEXT_BEFORE_PARAGRAPH)) . " ?[\d]*)/", "
[$1] ", $content);
$content = preg_replace ("/(" . ($ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper (AI_TEXT_AFTER_PARAGRAPH) : strtoupper (AI_TEXT_AFTER_PARAGRAPH)) . " ?[\d]*)/", "
[$1] ", $content);
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_TAGS) != 0) {
// Remove marked tags from the content hook
$content = preg_replace ("/<(.+?)>/", "", $content);
// Color text to mark removed HTML tags
$content = str_replace ('[' . __('HTML TAGS REMOVED', 'ad-inserter') . ']', '
[' . __('HTML TAGS REMOVED', 'ad-inserter') . '] ', $content);
}
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_BLOCKS) != 0) {
// Remove block labels from the content hook
if (strpos ($content, '>[AI]<') === false)
$content = preg_replace ("/\[AI\](.+?)\[\/AI\]/", "", $content);
}
if ($debug_processing) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("EXCERPT HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
return $content;
}
function ai_comments_array ($comments , $post_id ){
global $ai_wp_data;
$thread_comments = get_option ('thread_comments');
$comment_counter = 0;
foreach ($comments as $comment) {
if (!$thread_comments || empty ($comment->comment_parent))
$comment_counter ++;
}
$ai_wp_data [AI_NUMBER_OF_COMMENTS] = $comment_counter;
return $comments;
}
function ai_wp_list_comments_args ($args) {
global $ai_wp_data;
// print_r ($args);
// $args['per_page'] = 3;
// $args['page'] = 2;
$ai_wp_data ['AI_COMMENTS_SAVED_CALLBACK'] = $args ['callback'];
$args ['callback'] = 'ai_comment_callback';
$ai_wp_data ['AI_COMMENTS_SAVED_END_CALLBACK'] = $args ['end-callback'];
$args ['end-callback'] = 'ai_comment_end_callback';
return $args;
}
// Process comments counter + Before Comments postion
function ai_comment_callback ($comment, $args, $depth) {
global $block_object, $ad_inserter_globals, $ai_db_options_extract, $ai_wp_data, $ai_last_check, $ai_total_plugin_time, $ai_walker;
if ($depth == 1) {
if (!isset ($ad_inserter_globals [AI_COMMENT_COUNTER_NAME])) {
$ad_inserter_globals [AI_COMMENT_COUNTER_NAME] = 1;
} else $ad_inserter_globals [AI_COMMENT_COUNTER_NAME] ++;
}
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
if ($debug_processing) {
ai_log ('COMMENT START HOOK START [' . $ad_inserter_globals [AI_COMMENT_COUNTER_NAME] . ':'. $depth . ']');
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
if ($depth == 1 && $ad_inserter_globals [AI_COMMENT_COUNTER_NAME] == 1) {
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_BEFORE_COMMENTS;
if ($args ['style'] == 'div') $tag = 'div'; else $tag = 'li';
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$class = AI_DEBUG_POSITIONS_CLASS;
echo "<$tag>\n";
echo "
" . __('BEFORE COMMENTS', 'ad-inserter') . ' ';
echo "$tag>\n";
}
$ad_code = "";
$ai_last_check = AI_CHECK_NONE;
$current_block = 0;
if (isset ($ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
foreach ($ai_db_options_extract [BEFORE_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] as $block) {
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (!isset ($block_object [$block])) continue;
$current_block = $block;
$obj = $block_object [$block];
$obj->clear_code_cache ();
if (!$obj->check_server_side_detection ()) continue;
if (!$obj->check_page_types_lists_users ()) continue;
// No filter check
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) continue;
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') continue;
if ($obj->empty_code ()) continue;
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) continue;
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) continue;
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$ad_code .= $obj->get_code_for_serverside_insertion ();
$ai_last_check = AI_CHECK_INSERTED;
}
}
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
echo "<$tag>\n";
echo $ad_code;
echo "$tag>\n";
}
if ($debug_processing) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("COMMENT START HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
if (!empty ($ai_wp_data ['AI_COMMENTS_SAVED_CALLBACK'])) {
echo call_user_func ($ai_wp_data ['AI_COMMENTS_SAVED_CALLBACK'], $comment, $args, $depth );
} else {
$ai_walker->comment_callback ($comment, $args, $depth);
}
}
// Process Between Comments postion
function ai_comment_end_callback ($comment, $args, $depth) {
global $block_object, $ad_inserter_globals, $ai_db_options_extract, $ai_wp_data, $ai_last_check, $ai_total_plugin_time;
if ($args ['style'] == 'div') $tag = 'div'; else $tag = 'li';
if (!empty ($ai_wp_data ['AI_COMMENTS_SAVED_END_CALLBACK'])) {
echo call_user_func ($ai_wp_data ['AI_COMMENTS_SAVED_END_CALLBACK'], $comment, $args, $depth);
} else echo "$tag>\n";
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
if ($debug_processing) {
ai_log ('COMMENT END HOOK START [' . $ad_inserter_globals [AI_COMMENT_COUNTER_NAME] . ':'. ($depth + 1) . ']');
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
if ($depth == 0) {
if (isset ($ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]) &&
$ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] != 0 &&
!empty ($args ['per_page']) && !empty ($args ['page'])) {
$number_of_comments_mod_per_page = $ai_wp_data [AI_NUMBER_OF_COMMENTS] % $args ['per_page'];
if ($number_of_comments_mod_per_page != 0) {
$last_page = (int) ($ai_wp_data [AI_NUMBER_OF_COMMENTS] / $args ['per_page']) + 1;
$last_comment_number = $args ['page'] == $last_page ? $number_of_comments_mod_per_page : $args ['per_page'];
} else $last_comment_number = $args ['per_page'];
} else $last_comment_number = $ai_wp_data [AI_NUMBER_OF_COMMENTS];
if ($ad_inserter_globals [AI_COMMENT_COUNTER_NAME] == $last_comment_number) {
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_AFTER_COMMENTS;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$class = AI_DEBUG_POSITIONS_CLASS;
echo "<$tag>\n";
echo "
" . __('AFTER COMMENTS', 'ad-inserter') . ' ';
echo "$tag>\n";
}
$ad_code = "";
$ai_last_check = AI_CHECK_NONE;
$current_block = 0;
if (isset ($ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
foreach ($ai_db_options_extract [AFTER_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] as $block) {
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (!isset ($block_object [$block])) continue;
$current_block = $block;
$obj = $block_object [$block];
$obj->clear_code_cache ();
if (!$obj->check_server_side_detection ()) continue;
if (!$obj->check_page_types_lists_users ()) continue;
// No filter check
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) continue;
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') continue;
if ($obj->empty_code ()) continue;
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) continue;
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) continue;
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$ad_code .= $obj->get_code_for_serverside_insertion ();
$ai_last_check = AI_CHECK_INSERTED;
}
}
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
echo "<$tag>\n";
echo $ad_code;
echo "$tag>\n";
} else {
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_BETWEEN_COMMENTS;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$class = AI_DEBUG_POSITIONS_CLASS;
echo "<$tag>\n";
echo "
" . __('BETWEEN COMMENTS', 'ad-inserter') . ' ' . $ad_inserter_globals [AI_COMMENT_COUNTER_NAME]." ";
echo "$tag>\n";
}
$ad_code = "";
$ai_last_check = AI_CHECK_NONE;
$current_block = 0;
if (isset ($ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
foreach ($ai_db_options_extract [BETWEEN_COMMENTS_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] as $block) {
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (!isset ($block_object [$block])) continue;
$current_block = $block;
$obj = $block_object [$block];
$obj->clear_code_cache ();
if (!$obj->check_server_side_detection ()) continue;
if (!$obj->check_page_types_lists_users ()) continue;
if (!$obj->check_filter ($ad_inserter_globals [AI_COMMENT_COUNTER_NAME])) continue;
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) continue;
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') continue;
if ($obj->empty_code ()) continue;
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) continue;
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) continue;
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$ad_code .= $obj->get_code_for_serverside_insertion ();
$ai_last_check = AI_CHECK_INSERTED;
}
}
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
echo "<$tag>\n";
echo $ad_code;
echo "$tag>\n";
}
}
if ($debug_processing) {
$ai_total_plugin_time += microtime (true) - $start_time;
ai_log ("COMMENT END HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
}
function ai_custom_hook ($action, $insertion_type, $name, $translated_name = '', $hook_parameter = null, $hook_check = null) {
global $block_object, $ad_inserter_globals, $ai_db_options_extract, $ai_wp_data, $ai_last_check, $ai_total_plugin_time;
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_ADMIN) return;
if (is_admin()) return;
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_NONE;
if (isset ($hook_check)) {
if (!call_user_func ($hook_check, $hook_parameter, $action)) return;
}
if ($debug_processing) {
$hook_name = $ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper ($name) : strtoupper ($name);
ai_log (str_replace (array ('<', '>'), array ('<', '>'), $hook_name) . " HOOK START");
$ai_wp_data [AI_PROCESSING_TIME] = true;
$start_time = microtime (true);
}
$globals_name = 'AI_' . strtoupper ($action) . '_COUNTER';
if (!isset ($ad_inserter_globals [$globals_name])) {
$ad_inserter_globals [$globals_name] = 1;
} else $ad_inserter_globals [$globals_name] ++;
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_POSITIONS) != 0) {
$counter = $ad_inserter_globals [$globals_name];
if ($counter == 1) $counter = '';
$class = AI_DEBUG_POSITIONS_CLASS;
if ($translated_name == '') $translated_name = $name;
$translated_hook_name = $ai_wp_data [AI_MBSTRING_LOADED] ? mb_strtoupper ($translated_name) : strtoupper ($translated_name);
echo "
".$translated_hook_name." ".$counter." ";
}
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_POST || $ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_STATIC) {
$meta_value = get_post_meta (get_the_ID (), '_adinserter_block_exceptions', true);
$selected_blocks = explode (",", $meta_value);
} else $selected_blocks = array ();
$ad_code = "";
$ai_last_check = AI_CHECK_NONE;
$current_block = 0;
if (isset ($ai_db_options_extract [$action . CUSTOM_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]]))
foreach ($ai_db_options_extract [$action . CUSTOM_HOOK_BLOCKS][$ai_wp_data [AI_WP_PAGE_TYPE]] as $block) {
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
if (!isset ($block_object [$block])) continue;
$current_block = $block;
$obj = $block_object [$block];
$obj->clear_code_cache ();
if (!$obj->check_server_side_detection ()) continue;
if (!$obj->check_page_types_lists_users ()) continue;
if (!$obj->check_post_page_exceptions ($selected_blocks)) continue;
if (!$obj->check_filter ($ad_inserter_globals [$globals_name])) continue;
if (!$obj->check_number_of_words ()) continue;
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) continue;
// Last check before counter check before insertion
if ($obj->empty_code ()) continue;
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) continue;
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) continue;
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
$ad_code .= $obj->get_code_for_serverside_insertion ();
$ai_last_check = AI_CHECK_INSERTED;
}
}
if ($debug_processing && $ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($current_block, $ai_last_check));
echo $ad_code;
if ($debug_processing) {
if (!$ai_wp_data [AI_PROCESSING_TIME]) {
$ai_total_plugin_time += microtime (true) - $start_time;
}
ai_log (str_replace (array ('<', '>'), array ('<', '>'), $hook_name) . " HOOK END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
$ai_wp_data [AI_PROCESSING_TIME] = false;
}
}
function ai_pre_do_shortcode_tag ($return, $tag, $attr, $m) {
global $ai_expand_only_rotate, $ai_wp_data;
// Array
//(
// [0] => [ADINSERTER ROTATE='1']
// [1] =>
// [2] => ADINSERTER
// [3] => ROTATE='1'
// [4] =>
// [5] =>
// [6] =>
if (strtolower ($tag) == 'adinserter') {
if ($ai_expand_only_rotate) {
// Expand only ROTATE / COUNT / CHECK
if (isset ($attr ['rotate']) || in_array ('ROTATE', $attr) || in_array ('rotate', $attr)) {
return false;
}
elseif (isset ($attr ['count']) || in_array ('COUNT', $attr) || in_array ('count', $attr)) {
return false;
}
elseif (isset ($attr ['check']) || in_array ('CHECK', $attr) || in_array ('check', $attr)) {
return false;
}
else return $m [0];
}
}
return $return;
}
function ai_process_shortcode (&$block, $atts) {
global $block_object, $ai_last_check, $ai_wp_data, $ad_inserter_globals;
if ($atts == '') return '';
$parameters = shortcode_atts (array (
"block" => "",
"code" => "",
"name" => "",
"group" => "",
"ignore" => "",
"check" => "",
"adb" => "",
"css" => "",
"text" => "",
"selectors" => "",
"amp" => "",
"head" => "",
"rotate" => "",
"count" => "",
"counter" => "",
"http" => "",
"custom-field" => "",
"data" => "",
"share" => "",
"time" => "",
"category" => "",
"tag" => "",
"taxonomy" => "",
"id" => "",
"url" => "",
"url-parameter" => "",
"referrer" => "",
"ip-address" => "",
"country" => "",
), $atts);
$output = "";
if (function_exists ('ai_shortcode')) {
$output = ai_shortcode ($parameters);
if ($output != '') return $output;
}
if (($adb = trim ($parameters ['adb'])) != '') {
// message html
// message css
// overlay css
// undismissible
// redirection page
// redirection url
switch (strtolower ($adb)) {
case 'message':
$ai_wp_data [AI_ADB_SHORTCODE_ACTION] = AI_ADB_ACTION_MESSAGE;
break;
case 'redirection':
$ai_wp_data [AI_ADB_SHORTCODE_ACTION] = AI_ADB_ACTION_REDIRECTION;
break;
case 'no-action':
$ai_wp_data [AI_ADB_SHORTCODE_ACTION] = AI_ADB_ACTION_NONE;
break;
case 'disabled':
$ai_wp_data [AI_ADB_SHORTCODE_DISABLED] = true;
break;
}
return "";
}
$block = - 1;
$code_only = false;
if ($parameters ['block'] == '' && $parameters ['code'] != '') {
$parameters ['block'] = $parameters ['code'];
$code_only = true;
}
if (is_numeric ($parameters ['block'])) {
$block = intval ($parameters ['block']);
} elseif ($parameters ['name'] != '' && !($parameters ['rotate'] != '' || in_array ('ROTATE', $atts) || in_array ('rotate', $atts))) {
$shortcode_name = strtolower ($parameters ['name']);
for ($counter = 1; $counter <= 96; $counter ++) {
$obj = $block_object [$counter];
$ad_name = strtolower (trim ($obj->get_ad_name()));
if ($shortcode_name == $ad_name && $obj->get_enable_manual ()) {
$block = $counter;
break;
}
}
}
if ($block == - 1) {
if (function_exists ('ai_check_separators')) {
if ($parameters ['check'] != '' || in_array ('CHECK', $atts) || in_array ('check', $atts)) {
if (!isset ($ai_wp_data [AI_SHORTCODES]['check'])) $ai_wp_data [AI_SHORTCODES]['check'] = array ();
$ai_wp_data [AI_SHORTCODES]['check'] []= $parameters;
return AD_CHECK_SEPARATOR;
}
}
if ($parameters ['count'] != '' || in_array ('COUNT', $atts) || in_array ('count', $atts)) {
if (!isset ($ai_wp_data [AI_SHORTCODES]['count'])) $ai_wp_data [AI_SHORTCODES]['count'] = array ();
$ai_wp_data [AI_SHORTCODES]['count'] []= $parameters;
// return AD_COUNT_SEPARATOR;
return '|count'. (count ($ai_wp_data [AI_SHORTCODES]['count']) - 1). '|';
}
if ($parameters ['rotate'] != '' || in_array ('ROTATE', $atts) || in_array ('rotate', $atts)) {
if (!isset ($ai_wp_data [AI_SHORTCODES]['rotate'])) $ai_wp_data [AI_SHORTCODES]['rotate'] = array ();
$ai_wp_data [AI_SHORTCODES]['rotate'] []= $parameters;
// return AD_ROTATE_SEPARATOR;
return '|rotate'. (count ($ai_wp_data [AI_SHORTCODES]['rotate']) - 1). '|';
}
if ($parameters ['amp'] != '' || in_array ('AMP', $atts) || in_array ('amp', $atts)) {
return AD_AMP_SEPARATOR;
}
if ($parameters ['head'] != '' || in_array ('HEAD', $atts) || in_array ('head', $atts)) {
if (!isset ($ai_wp_data [AI_SHORTCODES]['head'])) $ai_wp_data [AI_SHORTCODES]['head'] = array ();
$ai_wp_data [AI_SHORTCODES]['head'] []= $parameters;
return AD_HEAD_SEPARATOR;
}
if ($parameters ['http'] != '' || in_array ('HTTP', $atts) || in_array ('http', $atts)) {
return AD_HTTP_SEPARATOR;
}
if ($parameters ['group'] != '' || in_array ('GROUP', $atts) || in_array ('group', $atts)) {
if ($parameters ['group'] != '') {
$parameters ['group'] = mb_strtolower ($parameters ['group']);
if (strpos ($parameters ['group'], ',') !== false) {
$group_names = explode (',', $parameters ['group']);
foreach ($group_names as $index => $group_name) {
$group_names [$index] = trim ($group_names [$index]);
}
} else $group_names = array (trim ($parameters ['group']));
} else $group_names = array ();
return '
';
}
if ($parameters ['custom-field'] != '') {
$post_meta = get_post_meta (get_the_ID(), $parameters ['custom-field']);
if (is_array ($post_meta)) {
$post_meta = implode (', ', $post_meta);
}
return $post_meta;
}
if ($parameters ['data'] != '') {
return '{'.$parameters ['data'].'}';
}
if ($parameters ['counter'] != '') {
$counter_name = strtolower ($parameters ['counter']);
switch ($counter_name) {
case 'block':
if (isset ($ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']) && isset ($ad_inserter_globals [AI_BLOCK_COUNTER_NAME . $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']])) {
return $ad_inserter_globals [AI_BLOCK_COUNTER_NAME . $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']];
}
break;
case 'content':
if (isset ($ad_inserter_globals [AI_CONTENT_COUNTER_NAME])) {
return $ad_inserter_globals [AI_CONTENT_COUNTER_NAME];
}
break;
case 'excerpt':
if (isset ($ad_inserter_globals [AI_EXCERPT_COUNTER_NAME])) {
return $ad_inserter_globals [AI_EXCERPT_COUNTER_NAME];
}
break;
case 'before-post':
if (isset ($ad_inserter_globals [AI_LOOP_BEFORE_COUNTER_NAME])) {
return $ad_inserter_globals [AI_LOOP_BEFORE_COUNTER_NAME];
}
break;
case 'after-post':
if (isset ($ad_inserter_globals [AI_LOOP_AFTER_COUNTER_NAME])) {
return $ad_inserter_globals [AI_LOOP_AFTER_COUNTER_NAME];
}
break;
case 'widget':
if (isset ($ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']) && isset ($ad_inserter_globals [AI_WIDGET_COUNTER_NAME . $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']])) {
return $ad_inserter_globals [AI_WIDGET_COUNTER_NAME . $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']];
}
break;
case 'php':
if (isset ($ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']) && isset ($ad_inserter_globals [AI_PHP_FUNCTION_CALL_COUNTER_NAME . $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']])) {
return $ad_inserter_globals [AI_PHP_FUNCTION_CALL_COUNTER_NAME . $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']];
}
break;
}
return '';
}
if ($parameters ['name'] != '') {
$shortcode_name = strtolower ($parameters ['name']);
switch ($shortcode_name) {
case 'processing-log':
if (/*get_remote_debugging () ||*/ ($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0) {
ob_start ();
echo "
\n";
ai_write_debug_info ();
echo " ";
return ob_get_clean ();
}
return "";
case 'debugging-tools':
if (($ai_wp_data [AI_WP_USER] & AI_USER_ADMINISTRATOR) != 0 || defined ('AI_DEBUGGING_DEMO')) {
ob_start ();
ai_write_debugging_tools ();
return ob_get_clean ();
}
default:
if (defined ('AI_BUFFERING')) {
if (get_output_buffering () && !get_disable_header_code ()) {
return "";
}
}
return "";
}
}
}
$ai_last_check = AI_CHECK_SHORTCODE_ATTRIBUTES;
if ($block < 1 || $block > 96) return "";
if (($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0) ai_log ("SHORTCODE $block (".($parameters ['block'] != '' ? 'block="'.$parameters ['block'].'"' : '').($parameters ['name'] != '' ? 'name="'.$parameters ['name'].'"' : '').")");
// IGNORE SETTINGS
// page-type
// *block-counter
// CHECK SETTINGS
// exceptions
$ignore_array = array ();
if (trim ($parameters ['ignore']) != '') {
$ignore_array = explode (",", str_replace (" ", "", $parameters ['ignore']));
}
$check_array = array ();
if (trim ($parameters ['check']) != '') {
$check_array = explode (",", str_replace (" ", "", $parameters ['check']));
}
$ai_wp_data [AI_CONTEXT] = AI_CONTEXT_SHORTCODE;
$obj = $block_object [$block];
$obj->clear_code_cache ();
$ai_last_check = AI_CHECK_ENABLED_SHORTCODE;
if (!$obj->get_enable_manual ()) return "";
if (!$obj->check_server_side_detection ()) return "";
if (!$obj->check_page_types_lists_users (in_array ("page-type", $ignore_array))) return "";
if (in_array ("exceptions", $check_array)) {
if ($ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_POST || $ai_wp_data [AI_WP_PAGE_TYPE] == AI_PT_STATIC) {
$meta_value = get_post_meta (get_the_ID (), '_adinserter_block_exceptions', true);
$selected_blocks = explode (",", $meta_value);
if (!$obj->check_post_page_exceptions ($selected_blocks)) return "";
}
}
$ai_last_check = AI_CHECK_INSERTION_NOT_DISABLED;
if ($obj->get_disable_insertion () || get_disable_block_insertions ()) return "";
// Last check before counter check before insertion
// $ai_last_check = AI_CHECK_CODE;
// if ($obj->ai_getCode () == '') return "";
if ($obj->empty_code ()) return "";
$max_page_blocks_enabled = $obj->get_max_page_blocks_enabled ();
if ($max_page_blocks_enabled) {
$ai_last_check = AI_CHECK_MAX_PAGE_BLOCKS;
if ($ai_wp_data [AI_PAGE_BLOCKS] >= get_max_page_blocks ()) return "";
}
// Last check before insertion
if (!$obj->check_and_increment_block_counter ()) return "";
// Increment page block counter
if ($max_page_blocks_enabled) $ai_wp_data [AI_PAGE_BLOCKS] ++;
$ai_last_check = AI_CHECK_DEBUG_NO_INSERTION;
if (!$obj->get_debug_disable_insertion ()) {
if (isset ($ai_wp_data [AI_SHORTCODES]['force_serverside'])) {
$saved_force_serverside = $ai_wp_data [AI_SHORTCODES]['force_serverside'];
}
if (isset ($ai_wp_data [AI_SHORTCODES]['check'])) {
$saved_check = $ai_wp_data [AI_SHORTCODES]['check'];
}
if (isset ($ai_wp_data [AI_SHORTCODES]['count'])) {
$saved_count = $ai_wp_data [AI_SHORTCODES]['count'];
}
if (isset ($ai_wp_data [AI_SHORTCODES]['rotate'])) {
$saved_rotate = $ai_wp_data [AI_SHORTCODES]['rotate'];
}
if (isset ($ai_wp_data [AI_SHORTCODES]['head'])) {
$saved_head = $ai_wp_data [AI_SHORTCODES]['head'];
}
if (isset ($ai_wp_data ['AI_CURRENT_BLOCK_NUMBER'])) {
$saved_block_number = $ai_wp_data ['AI_CURRENT_BLOCK_NUMBER'];
}
$code = $obj->get_code_for_serverside_insertion (true, false, $code_only);
if (isset ($saved_force_serverside)) {
$ai_wp_data [AI_SHORTCODES]['force_serverside'] = $saved_force_serverside;
} else unset ($ai_wp_data [AI_SHORTCODES]['force_serverside']);
if (isset ($saved_check)) {
$ai_wp_data [AI_SHORTCODES]['check'] = $saved_check;
} else unset ($ai_wp_data [AI_SHORTCODES]['check']);
if (isset ($saved_count)) {
$ai_wp_data [AI_SHORTCODES]['count'] = $saved_count;
} else unset ($ai_wp_data [AI_SHORTCODES]['count']);
if (isset ($saved_rotate)) {
$ai_wp_data [AI_SHORTCODES]['rotate'] = $saved_rotate;
} else unset ($ai_wp_data [AI_SHORTCODES]['rotate']);
if (isset ($saved_head)) {
$ai_wp_data [AI_SHORTCODES]['head'] = $saved_head;
} else unset ($ai_wp_data [AI_SHORTCODES]['head']);
if (isset ($saved_block_number)) {
$ai_wp_data ['AI_CURRENT_BLOCK_NUMBER'] = $saved_block_number;
} else unset ($ai_wp_data ['AI_CURRENT_BLOCK_NUMBER']);
// Must be after get_code_for_serverside_insertion ()
$ai_last_check = AI_CHECK_INSERTED;
return $code;
}
}
function ai_process_shortcodes ($atts, $content, $tag) {
global $ai_last_check, $ai_wp_data, $ai_total_plugin_time;
$debug_processing = ($ai_wp_data [AI_WP_DEBUGGING] & AI_DEBUG_PROCESSING) != 0;
if ($debug_processing) {
$atts_string = '';
if (is_array ($atts))
foreach ($atts as $index => $att) {
if (is_numeric ($index))
$atts_string .= $att.' '; else
$atts_string .= $index.("='".$att."'").' ';
}
ai_log ("PROCESS SHORTCODES [$tag ".trim ($atts_string).']');
$start_time = microtime (true);
}
$ai_last_check = AI_CHECK_NONE;
$block = - 1;
$shortcode = ai_process_shortcode ($block, $atts);
if ($debug_processing) {
if ($block == - 1) {
if (strlen ($shortcode) < 100) ai_log ('SHORTCODE TEXT: "' . ai_log_filter_content ($shortcode) . '"'); else
ai_log ('SHORTCODE TEXT: "' . ai_log_filter_content (html_entity_decode (substr ($shortcode, 0, 60))) . ' ... ' . ai_log_filter_content (html_entity_decode (substr ($shortcode, - 60))) . '"');
}
elseif ($ai_last_check != AI_CHECK_NONE) ai_log (ai_log_block_status ($block, $ai_last_check));
if (!$ai_wp_data [AI_PROCESSING_TIME]) {
$ai_total_plugin_time += microtime (true) - $start_time;
}
ai_log ("SHORTCODE END: ". number_format (1000 * (microtime (true) - $start_time), 2)." ms\n");
}
return $shortcode;
}
function ai_add_attr_data (&$tag, $attr, $new_data) {
if (trim ($tag) != '' && strpos ($tag, '