'.__('Settings').'';
return $links;
}
/**
* The code that runs during plugin activation.
* This action is documented in includes/class-ad-back-activator.php
*/
function activate_ad_back($networkwide) {
if (!current_user_can( 'activate_plugins' ) )
return;
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-activator.php';
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-updator.php';
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-get.php';
Ad_Back_Activator::activate($networkwide);
Ad_Back_Updator::update();
adback_plugin_rules();
flush_rewrite_rules();
}
/**
* The code that runs during plugin deactivation.
* This action is documented in includes/class-ad-back-deactivator.php
*/
function deactivate_ad_back() {
if (!current_user_can( 'activate_plugins' ) )
return;
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-deactivator.php';
Ad_Back_Deactivator::deactivate();
}
function adback_admin_notices() {
if ($notices= get_option('adback_deferred_admin_notices')) {
foreach ($notices as $notice) {
echo "
";
}
delete_option('adback_deferred_admin_notices');
}
}
function adback_plugins_loaded() {
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-updator.php';
Ad_Back_Updator::onUpdateFromOldVersion();
Ad_Back_Updator::update();
}
function adback_plugin_rules() {
global $wpdb;
$table_name_end_point = $wpdb->prefix . 'adback_end_point';
$endPoints = $wpdb->get_row("SELECT * FROM " . $table_name_end_point . " WHERE id = ".get_current_blog_id());
if (null !== $endPoints) {
if ('' != $endPoints->old_end_point) {
add_rewrite_rule($endPoints->old_end_point . '/?(.*)', 'index.php?pagename=adback_proxy&adback_request=$matches[1]', 'top');
}
if ('' != $endPoints->end_point) {
add_rewrite_rule($endPoints->end_point . '/?(.*)', 'index.php?pagename=adback_proxy&adback_request=$matches[1]', 'top');
}
if ('' != $endPoints->next_end_point) {
add_rewrite_rule($endPoints->next_end_point . '/?(.*)', 'index.php?pagename=adback_proxy&adback_request=$matches[1]', 'top');
}
}
$table_name_token = $wpdb->prefix . 'adback_token';
$token = $wpdb->get_row("SELECT * FROM " . $table_name_token . " WHERE id = ".get_current_blog_id());
if (is_array($token)) {
$token = (object)$token;
}
add_rewrite_rule($token->access_token.'/update', 'index.php?pagename=adback_update', 'top');
}
function adback_plugin_query_vars($vars) {
$vars[] = 'adback_request';
return $vars;
}
function adback_plugin_display() {
$adback_page_name = get_query_var('pagename');
if ('adback_proxy' == $adback_page_name):
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-proxy.php';
$adback_request = get_query_var('adback_request');
Ad_Back_Proxy::execute($adback_request);
exit;
endif;
if ('adback_update' == $adback_page_name):
global $wpdb;
$table_name = $wpdb->prefix . 'adback_full_tag';
$blogId = get_current_blog_id();
$wpdb->query('DELETE FROM ' . $table_name . " WHERE blog_id = ". $blogId);
echo "Refreshed";
exit;
endif;
}
function adback_new_blog($blogId) {
if (is_plugin_active_for_network( 'adback-solution-to-adblock/ad-back.php') ) {
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-activator.php';
switch_to_blog($blogId);
Ad_Back_Activator::initializeBlog();
restore_current_blog();
}
}
function adback_delete_blog($tables) {
require_once plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-deactivator.php';
Ad_Back_Deactivator::deleteBlog($tables);
}
function addToRobotsTxt($robotsTxt) {
global $wpdb;
$additions = '
# Added by AdBack plugin
Disallow: /components/
Disallow: /modules/
';
$table_name = $wpdb->prefix . 'adback_end_point';
$rows = $wpdb->get_results('SELECT * FROM ' . $table_name);
foreach ($rows as $row) {
$row->old_end_point and $additions .= 'Disallow: /' . $row->old_end_point . '/' . "\n";
$row->end_point and $additions .= 'Disallow: /' . $row->end_point . '/' . "\n";
$row->next_end_point and $additions .= 'Disallow: /' . $row->next_end_point . '/' . "\n";
}
return $robotsTxt . $additions;
}
add_action('admin_notices', 'adback_admin_notices');
add_action('wpmu_new_blog', 'adback_new_blog');
add_action('plugins_loaded', 'adback_plugins_loaded');
add_filter('wpmu_drop_tables', 'adback_delete_blog' );
register_activation_hook( __FILE__, 'activate_ad_back' );
register_deactivation_hook( __FILE__, 'deactivate_ad_back' );
//add rewrite rules in case another plugin flushes rules
add_action('init', 'adback_plugin_rules');
//add plugin query vars (product_id) to wordpress
add_filter('query_vars', 'adback_plugin_query_vars');
//register plugin custom pages display
add_filter('template_redirect', 'adback_plugin_display');
//refresh robot.txt
add_filter('robots_txt', 'addToRobotsTxt');
/**
* The core plugin class that is used to define internationalization,
* admin-specific hooks, and public-facing site hooks.
*/
require plugin_dir_path( __FILE__ ) . 'includes/class-ad-back.php';
require plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-get.php';
require plugin_dir_path( __FILE__ ) . 'includes/class-ad-back-post.php';
/**
* Begins execution of the plugin.
*
* Since everything within the plugin is registered via hooks,
* then kicking off the plugin from this point in the file does
* not affect the page life cycle.
*
* @since 1.0.0
*/
function run_ad_back() {
$plugin = new Ad_Back();
$plugin->run();
}
run_ad_back();