function adrotate_import_ads()
{
    global $wpdb, $current_user, $userdata;
    if (wp_verify_nonce($_POST['adrotate_nonce'], 'adrotate_import')) {
        if (current_user_can('adrotate_ad_manage')) {
            if ($_FILES["adrotate_file"]["error"] == 4) {
                adrotate_return('adrotate-ads', 506, array('view' => 'import'));
                exit;
            } else {
                if ($_FILES["adrotate_file"]["error"] > 0) {
                    adrotate_return('adrotate-ads', 507, array('view' => 'import'));
                    exit;
                } else {
                    if ($_FILES["adrotate_file"]["size"] > 4096000) {
                        adrotate_return('adrotate-ads', 511, array('view' => 'import'));
                        exit;
                    } else {
                        $now = adrotate_now();
                        $ad_fields = array('title', 'bannercode', 'thetime', 'updated', 'author', 'imagetype', 'image', 'tracker', 'responsive', 'type', 'weight', 'sortorder', 'budget', 'crate', 'irate', 'cities', 'countries');
                        if ($_FILES["adrotate_file"]["type"] == "text/xml" or $_FILES["adrotate_file"]["type"] == "application/xml" or $_FILES["adrotate_file"]["type"] == "application/x-xml") {
                            $xml_name = "adrotate_import_" . date_i18n("mdYHi", $now) . ".xml";
                            move_uploaded_file($_FILES["adrotate_file"]["tmp_name"], WP_CONTENT_DIR . "/reports/" . $xml_name);
                            $file = WP_CONTENT_URL . "/reports/" . $xml_name;
                            $xml = simplexml_load_file($file);
                            foreach ($xml->xpath('advert') as $advert) {
                                $ad = array('title' => strip_tags(htmlspecialchars(trim($advert->title, "\t\n "), ENT_QUOTES)), 'bannercode' => htmlspecialchars(trim($advert->bannercode, "\t\n "), ENT_QUOTES), 'thetime' => $now, 'updated' => $now, 'author' => $current_user->user_login, 'imagetype' => strip_tags(trim($advert->imagetype, "\t\n ")), 'image' => strip_tags(trim($advert->image, "\t\n ")), 'tracker' => strip_tags(trim($advert->tracker, "\t\n ")), 'mobile' => strip_tags(trim($advert->mobile, "\t\n ")), 'tablet' => strip_tags(trim($advert->tablet, "\t\n ")), 'responsive' => strip_tags(trim($advert->responsive, "\t\n ")), 'type' => 'import', 'weight' => strip_tags(trim($advert->weight, "\t\n ")), 'sortorder' => 0, 'budget' => strip_tags(trim($advert->budget, "\t\n ")), 'crate' => strip_tags(trim($advert->crate, "\t\n ")), 'irate' => strip_tags(trim($advert->irate, "\t\n ")), 'cities' => serialize(explode(',', strip_tags(trim($advert->cities, "\t\n ")))), 'countries' => serialize(explode(',', strip_tags(trim($advert->countries, "\t\n ")))));
                                $wpdb->insert($wpdb->prefix . "adrotate", $ad);
                                $ad_id = $wpdb->insert_id;
                                $schedule = array('name' => 'Schedule for advert ' . $ad_id, 'starttime' => strip_tags(trim($advert->start, "\t\n ")), 'stoptime' => strip_tags(trim($advert->end, "\t\n ")), 'maxclicks' => 0, 'maximpressions' => 0, 'spread' => 'N', 'dayimpressions' => 0);
                                $wpdb->insert($wpdb->prefix . "adrotate_schedule", $schedule);
                                $schedule_id = $wpdb->insert_id;
                                $linkmeta = array('ad' => $ad_id, 'group' => 0, 'user' => 0, 'schedule' => $schedule_id);
                                $wpdb->insert($wpdb->prefix . "adrotate_linkmeta", $linkmeta);
                                unset($advert, $ad, $ad_id, $schedule, $schedule_id, $linkmeta);
                            }
                        }
                        adrotate_prepare_evaluate_ads(false);
                        // return to dashboard
                        adrotate_return('adrotate-ads', 216);
                        exit;
                    }
                }
            }
        } else {
            adrotate_return('adrotate-ads', 500);
        }
    } else {
        adrotate_nonce_error();
        exit;
    }
}
Example #2
0
function adrotate_evaluate_ads()
{
    adrotate_prepare_evaluate_ads(false);
}
Example #3
0
function adrotate_check_upgrade() {
	global $wpdb;
	
	if(version_compare(PHP_VERSION, '5.3.0', '<') == -1) { 
		deactivate_plugins(plugin_basename('adrotate/adrotate.php'));
		wp_die('AdRotate 3.10.8 and up requires PHP 5.3 or higher. Your server reports version '.PHP_VERSION.'. Contact your hosting provider about upgrading your server!<br /><a href="'. get_option('siteurl').'/wp-admin/plugins.php">Back to plugins</a>.'); 
		return; 
	} else {
		// Old version? Upgrade
		$adrotate_db_version = get_option("adrotate_db_version");
		if($adrotate_db_version['current'] < ADROTATE_DB_VERSION) {
			adrotate_database_upgrade();
			adrotate_prepare_evaluate_ads(false);
		}
	
		// Check if there are changes to core that need upgrading
		$adrotate_version = get_option("adrotate_version");
		if($adrotate_version['current'] < ADROTATE_VERSION) {
			adrotate_core_upgrade();
		}
	}
}
function adrotate_delete($id, $what)
{
    global $wpdb;
    if ($id > 0) {
        if ($what == 'banner') {
            $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate` WHERE `id` = %d;", $id));
            $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_linkmeta` WHERE `ad` = %d;", $id));
            $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_stats` WHERE `ad` = %d;", $id));
            adrotate_prepare_evaluate_ads(false);
        } else {
            if ($what == 'group') {
                $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_groups` WHERE `id` = %d;", $id));
                $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_linkmeta` WHERE `group` = %d;", $id));
                adrotate_prepare_evaluate_ads(false);
            } else {
                if ($what == 'bannergroup') {
                    $linkmeta = $wpdb->get_results($wpdb->prepare("SELECT `ad` FROM `" . $wpdb->prefix . "adrotate_linkmeta` WHERE `group` = %d;", $id));
                    foreach ($linkmeta as $meta) {
                        $wpdb->query("DELETE FROM `" . $wpdb->prefix . "adrotate` WHERE `id` = " . $meta->ad . ";");
                        $wpdb->query("DELETE FROM `" . $wpdb->prefix . "adrotate_stats` WHERE `ad` = " . $meta->ad . ";");
                        $wpdb->query("DELETE FROM `" . $wpdb->prefix . "adrotate_linkmeta` WHERE `ad` = " . $meta->ad . ";");
                    }
                    $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_groups` WHERE `id` = %d;", $id));
                    $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_linkmeta` WHERE `group` = %d;", $id));
                    $wpdb->query($wpdb->prepare("DELETE FROM `" . $wpdb->prefix . "adrotate_stats` WHERE `group` = %d;", $id));
                    // Perhaps unnessesary
                    adrotate_prepare_evaluate_ads(false);
                }
            }
        }
    }
}