Your IP : 3.17.187.193


Current Path : /home/sudancam/.trash/related-posts-by-zemanta.1/
Upload File :
Current File : /home/sudancam/.trash/related-posts-by-zemanta.1/settings.php

<?php

include_once(dirname(__FILE__) . '/uploader.php');

/**
* Add settings link to installed plugins list
**/
function zem_rp_add_link_to_settings($links) {
	return array_merge( array(
		'<a href="' . admin_url('admin.php?page=zemanta-related-posts') . '">' . __('Settings', 'zemanta_related_posts') . '</a>',
	), $links);
}
add_filter('plugin_action_links_' . ZEM_RP_PLUGIN_FILE, 'zem_rp_add_link_to_settings', 10, 2);

/**
* Place menu icons at admin head
**/
add_action('admin_head', 'zem_rp_admin_head');
function zem_rp_admin_head() {
	$menu_icon = get_template_directory_uri() . '/plugins/related-posts-by-zemanta/static/img/menu_icon.png';
	$menu_icon_retina = get_template_directory_uri() . '/plugins/related-posts-by-zemanta/static/img/menu_icon_2x.png';
?>
<style type="text/css">
#toplevel_page_zemanta-related-posts .wp-menu-image {
	background: url('<?php echo $menu_icon; ?>') 7px 6px no-repeat;
}
@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
	#toplevel_page_zemanta-related-posts .wp-menu-image {
		background-image: url('<?php echo $menu_icon_retina; ?>');
		background-size: 16px 17px;
	}
}
</style>
<?php
}


/**
* Settings
**/

add_action('admin_menu', 'zem_rp_settings_admin_menu');

function zem_rp_settings_admin_menu() {
	if (!current_user_can('delete_users')) {
		return;
	}

	$title = __('Related Posts by Zemanta', 'zemanta_related_posts');

	$page = add_options_page(__('Related Posts by Zemanta', 'zemanta_related_posts'), $title, 
							'manage_options', 'zemanta-related-posts', 'zem_rp_settings_page');
	add_action('admin_print_scripts-' . $page, 'zem_rp_settings_scripts');
}

function zem_rp_settings_scripts() {
	wp_enqueue_script('zem_rp_themes_script', get_template_directory_uri() . '/plugins/related-posts-by-zemanta/static/js/themes.js', array('jquery'), ZEM_RP_VERSION);
	wp_enqueue_script("zem_rp_dashboard_script", get_template_directory_uri() . '/plugins/related-posts-by-zemanta/static/js/dashboard.js', array('jquery'), ZEM_RP_VERSION);
	wp_enqueue_script("zem_rp_extras_script", get_template_directory_uri() . '/plugins/related-posts-by-zemanta/static/js/extras.js', array('jquery'), ZEM_RP_VERSION);
}
function zem_rp_settings_styles() {
	wp_enqueue_style("zem_rp_dashaboard_style", get_template_directory_uri() . "/plugins/related-posts-by-zemanta/static/css/dashboard.css", array(), ZEM_RP_VERSION);
}

function zem_rp_get_blog_email() {
	$meta = zem_rp_get_meta();
	if($meta['email']) return $meta["email"];
	return false;
}

function zem_rp_get_api_key() {
	$meta = zem_rp_get_meta();
	if($meta['zemanta_api_key']) return $meta['zemanta_api_key'];

	$zemanta_options = get_option('zemanta_options');
	if ($zemanta_options && !empty($zemanta_options['api_key'])) {
		$meta['zemanta_api_key'] = $zemanta_options['api_key'];
		zem_rp_update_meta($meta);
		return $meta['zemanta_api_key'];
	}
	return false;
}

function zem_rp_subscribe($email_or_unsubscribe, $subscription_types) {
    $meta = zem_rp_get_meta();
	$options = zem_rp_get_options();
	if (! $subscription_types) {
		if ($email_or_unsubscribe) { return false; }
		$subscription_types = "activityreport,newsletter";
	}

	if (! $meta['subscribed'] && $meta['email'] && !$email_or_unsubscribe) {
		// Not processed yet
		$meta['email'] = false;
		$options['subscription_types'] = false;
		zem_rp_update_meta($meta);
		zem_rp_update_options($options);
		return true;
	}
	
	if($meta['zemanta_api_key']) {
		$post = array(
			'api_key' => $meta['zemanta_api_key'],
			'platform' => 'wordpress-zem',
			'url' => get_site_url(),
			'subscriptions' => $subscription_types
		);

		if ($email_or_unsubscribe) {
			$post['email'] = $email_or_unsubscribe;
		}
		$response = wp_remote_post(ZEM_RP_ZEMANTA_SUBSCRIPTION_URL . 'subscribe/', array(
			'body' => $post,
			'timeout' => 30
		));
		if (wp_remote_retrieve_response_code($response) == 200) {
			$body = wp_remote_retrieve_body($response);
			if ($body) {
				$response_json = json_decode($body);
				
				if ($response_json->status !== 'ok') {
					$waiting = $response_json->reason == 'user-missing';
					if ($email_or_unsubscribe && $waiting) {
						$meta['email'] = $email_or_unsubscribe;
						$meta['subscribed'] = false;
						$options['subscription_types'] = $subscription_types;
						zem_rp_update_meta($meta);
						zem_rp_update_options($options);
						return true;
// We will try again when 
					}
					return false;
				}
				$meta['email'] = $email_or_unsubscribe;
				$meta['subscribed'] = (int) !!$email_or_unsubscribe;
				$options['subscription_types'] = $subscription_types;
				zem_rp_update_meta($meta);
				zem_rp_update_options($options);
				return true; // don't subscribe to bf if zem succeeds
			}
		}
	}
	return false;
}

function zem_rp_ajax_subscribe_callback () {
	check_ajax_referer('zem_rp_ajax_nonce');
	$email = (!empty($_POST['email']) && $_POST['email'] !== '0') ? $_POST['email'] : false;
	$types = empty($_POST['subscription']) ? array() : explode(",", $_POST['subscription']);
	$valid_types = array();
	foreach($types as $tp) {
		if ($tp && in_array($tp, array('activityreport', 'newsletter'))) {
			$valid_types[] = $tp;
		}
	}
	$valid_types = $valid_types ? implode(',', $valid_types) : false;
	if (zem_rp_subscribe($email, $valid_types)) {
		print "1";
	}
	else {
		print "0";
	}
	die();
}

add_action('wp_ajax_zem_subscribe', 'zem_rp_ajax_subscribe_callback');
  

function zem_rp_ajax_dismiss_notification_callback() {
	check_ajax_referer('zem_rp_ajax_nonce');

	if(isset($_REQUEST['id'])) {
		zem_rp_dismiss_notification((int)$_REQUEST['id']);
	}
	if(isset($_REQUEST['noredirect'])) {
		die('ok');
	}
	wp_redirect(admin_url('admin.php?page=wordpress-related-posts'));
}

add_action('wp_ajax_rp_dismiss_notification', 'zem_rp_ajax_dismiss_notification_callback');


function zem_rp_register() {
	$meta = zem_rp_get_meta();
	if ($meta['registered']) {
		return;
	}

	$url = urlencode(get_bloginfo('wpurl'));

	zem_rp_update_meta($meta);
	return $meta['registered'];
}

function zem_rp_settings_page() {
	if (!current_user_can('delete_users')) {
		die('Sorry, you don\'t have permissions to access this page.');
	}
	zem_rp_register();

	$options = zem_rp_get_options();
	$meta = zem_rp_get_meta();

	if ($meta['email'] && !$meta['subscribed']) {
		$sub_types = "activityreport,newsletter";
		if (!empty($options['subscription_types'])) {
			$sub_types = $options['subscription_types']; 
		}
		zem_rp_subscribe($meta['email'], $sub_types);
	}

	$articles_count = zem_rp_article_count($meta['zemanta_api_key']);
	$articles_uploaded = false;
	if (isset( $_GET['zem_upload_articles'] ) && !empty($meta['zemanta_api_key'])) {
		$articles_uploaded = zem_rp_upload_articles($meta['zemanta_api_key']);
	}
	
	if (isset( $_GET['zem_global_notice'] ) && $_GET['zem_global_notice'] === '0') {
		$meta['global_notice'] = null;
		zem_rp_update_meta($meta);
	}
	
	$postdata = stripslashes_deep($_POST);

	if(sizeof($_POST)) {
		if (!isset($_POST['_zem_rp_nonce']) || !wp_verify_nonce($_POST['_zem_rp_nonce'], 'zem_rp_settings') ) {
			die('Sorry, your nonce did not verify.');
		}

		$old_options = $options;

		$new_options = array(
			'on_single_post' => isset($postdata['zem_rp_on_single_post']),
			'max_related_posts' => (isset($postdata['zem_rp_max_related_posts']) && is_numeric(trim($postdata['zem_rp_max_related_posts']))) ? intval(trim($postdata['zem_rp_max_related_posts'])) : 5,
			'on_rss' => isset($postdata['zem_rp_on_rss']),
			'related_posts_title' => isset($postdata['zem_rp_related_posts_title']) ? trim($postdata['zem_rp_related_posts_title']) : '',
			'max_related_post_age_in_days' => (isset($postdata['zem_rp_max_related_post_age_in_days']) && is_numeric(trim($postdata['zem_rp_max_related_post_age_in_days']))) ? intval(trim($postdata['zem_rp_max_related_post_age_in_days'])) : 0,
			'custom_size_thumbnail_enabled' => isset($postdata['zem_rp_custom_size_thumbnail_enabled']) && $postdata['zem_rp_custom_size_thumbnail_enabled'] === 'yes',
			'custom_thumbnail_width' => isset($postdata['zem_rp_custom_thumbnail_width']) ? intval(trim($postdata['zem_rp_custom_thumbnail_width'])) : ZEM_RP_CUSTOM_THUMBNAILS_WIDTH ,
			'custom_thumbnail_height' => isset($postdata['zem_rp_custom_thumbnail_height']) ? intval(trim($postdata['zem_rp_custom_thumbnail_height'])) : ZEM_RP_CUSTOM_THUMBNAILS_HEIGHT,

			'thumbnail_use_custom' => isset($postdata['zem_rp_thumbnail_use_custom']),
			'thumbnail_custom_field' => isset($postdata['zem_rp_thumbnail_custom_field']) ? trim($postdata['zem_rp_thumbnail_custom_field']) : '',
			'display_zemanta_linky' => isset($postdata['zem_rp_display_zemanta_linky']),
			'only_admins_can_edit_related_posts' => !empty($postdata['zem_rp_only_admins_can_edit_related_posts']),
			'desktop' => array(
				'display_thumbnail' => isset($postdata['zem_rp_desktop_display_thumbnail']),
				'display_comment_count' => isset($postdata['zem_rp_desktop_display_comment_count']),
				'display_publish_date' => isset($postdata['zem_rp_desktop_display_publish_date']),
				'display_excerpt' => isset($postdata['zem_rp_desktop_display_excerpt']),
				'display_category' => isset($postdata['zem_rp_desktop_display_category']),
				'excerpt_max_length' => (isset($postdata['zem_rp_desktop_excerpt_max_length']) && is_numeric(trim($postdata['zem_rp_desktop_excerpt_max_length']))) ? intval(trim($postdata['zem_rp_desktop_excerpt_max_length'])) : 200,
				'custom_theme_enabled' => isset($postdata['zem_rp_desktop_custom_theme_enabled'])
			)
		);

		if(!isset($postdata['zem_rp_exclude_categories'])) {
			$new_options['exclude_categories'] = '';
		} else if(is_array($postdata['zem_rp_exclude_categories'])) {
			$new_options['exclude_categories'] = join(',', $postdata['zem_rp_exclude_categories']);
		} else {
			$new_options['exclude_categories'] = trim($postdata['zem_rp_exclude_categories']);
		}

		foreach (array('desktop') as $platform) {
			if(isset($postdata['zem_rp_' . $platform . '_theme_name'])) {		// If this isn't set, maybe the AJAX didn't load...
				$new_options[$platform]['theme_name'] = trim($postdata['zem_rp_' . $platform . '_theme_name']);

				if(isset($postdata['zem_rp_' . $platform . '_theme_custom_css'])) {
					$new_options[$platform]['theme_custom_css'] = $postdata['zem_rp_' . $platform . '_theme_custom_css'];
				} else {
					$new_options[$platform]['theme_custom_css'] = '';
				}
			} else {
				$new_options[$platform]['theme_name'] = $old_options[$platform]['theme_name'];
				$new_options[$platform]['theme_custom_css'] = $old_options[$platform]['theme_custom_css'];
			}
		}

		if (isset($postdata['zem_classic_state'])) {
			$meta['classic_user'] = true;
		} else {
			$meta['classic_user'] = false;
		}
		zem_rp_update_meta($meta);

		$default_thumbnail_path = zem_rp_upload_default_thumbnail_file();

		if($default_thumbnail_path === false) { // no file uploaded
			if(isset($postdata['zem_rp_default_thumbnail_remove'])) {
				$new_options['default_thumbnail_path'] = false;
			} else {
				$new_options['default_thumbnail_path'] = $old_options['default_thumbnail_path'];
			}
		} else if(is_wp_error($default_thumbnail_path)) { // error while upload
			$new_options['default_thumbnail_path'] = $old_options['default_thumbnail_path'];
			zem_rp_add_admin_notice('error', $default_thumbnail_path->get_error_message());
		} else { // file successfully uploaded
			$new_options['default_thumbnail_path'] = $default_thumbnail_path;
		}

		if (((array) $old_options) != $new_options) {
			if(!zem_rp_update_options($new_options)) {
				zem_rp_add_admin_notice('error', __('Failed to save settings.', 'zemanta_related_posts'));
			} else {
				zem_rp_add_admin_notice('updated', __('Settings saved.', 'zemanta_related_posts'));
			}
		} else {
			// I should duplicate success message here
			zem_rp_add_admin_notice('updated', __('Settings saved.', 'zemanta_related_posts'));
		}
	}

	$settings_file = __FILE__;
	$blog_url = get_site_url();
	
	include zem_rp_get_template('settings');
}