Skip to content
Browse files


  • Loading branch information...
rahul286 committed Mar 21, 2012
0 parents commit f1bffb7be1c1e46aa05a5aca2b108dfdf5d4470a
@@ -0,0 +1,260 @@
Plugin Name: Blogger To Wordpress Redirection
Plugin URI:
Description: This plugin is useful for setting up 1-to-1 mapping between blog posts and WordPress blog posts. This works nicely for blogs with old subdomain address (e.g. which are moved to new custom domain (e.g.
Version: 2.0.4
Author: rtCamp
Author URI:
define('RT_B2WR_PLUGIN_URL', WP_PLUGIN_URL .'/'. basename(dirname(__FILE__)));
/* Add option to Tools Menu - Begin (RT) */
add_action('admin_menu', 'rt_Blogger_to_Wordpress_add_option');
function rt_Blogger_to_Wordpress_add_option() {
add_management_page('Blogger To Wordpress Redirection', 'Blogger To WordPress Redirection', 'administrator', 'rt-blogger-to-wordpress-redirection', 'rt_Blogger_to_Wordpress_Administrative_Page');
wp_enqueue_script('rt-blogger-to-wordpress-redirection-js', (RT_B2WR_PLUGIN_URL .'/js/b2w-redirection-ajax.js'), array('jquery','postbox'), '', true );
wp_enqueue_script('rt-fb-share', (''),'', '', true );
wp_enqueue_style('rt-blogger-to-wordpress-redirection-css', (RT_B2WR_PLUGIN_URL.'/css/b2w-redirection.css'));
if (isset($_GET['page']) && $_GET['page'] == 'rt-blogger-to-wordpress-redirection'){ wp_enqueue_script('dashboard'); wp_enqueue_style('dashboard');}
/* Add option to Tools Menu - End (RT) */
/* Administrative Page - Begin (RT) */
function rt_Blogger_to_Wordpress_Administrative_Page() {
<div class="wrap">
<img id="btowp_img" alt="B2W-Redirection" src="<?php echo RT_B2WR_PLUGIN_URL; ?>/images/btowp_img.png" />
<h2 id="btowp_h2"><?php _e('Blogger to Wordpress Redirection'); ?></h2>
<p class="clear"></p>

<div id="content_block" class="align_left">
<p class="description">This plugin is useful for setting up 1-to-1 mapping between blog posts and WordPress blog posts. This works nicely for blogs with old subdomain address <code>(e.g.</code> which are moved to new custom domain <code>(e.g.</code></p>
<h3><u>Start Configuration</u></h3>
<h4>Press "Start Configuration" button to generate code for blog</h4>
<p>Plugin will automatically detect blog from where you have imported.</p>
<input type="submit" class="button-primary" name="start" id ="start_config" value="Start Configuration" onclick="rt_start_config()" />
<p id ="get_config" class="clear"></p>

<div id="ads_block" class="metabox-holder align_left">
<div class="postbox-container">
<div class="meta-box-sortables ui-sortable">
<div class="postbox" id="social">
<div title="Click to toggle" class="handlediv"><br></div>
<h3 class="hndle"><span><strong class="red">Getting Social is Good</strong></span></h3>
<div class="inside" style="text-align:center;">
<a href="" target="_blank" title="Become a fan on Facebook"><img src="<?php echo RT_B2WR_PLUGIN_URL; ?>/images/facebook.png" alt="Twitter" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="" target="_blank" title="Follow us on Twitter"><img src="<?php echo RT_B2WR_PLUGIN_URL; ?>/images/twitter.png" alt="Facebook" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="" target="_blank" title="Subscribe to our feeds"><img src="<?php echo RT_B2WR_PLUGIN_URL; ?>/images/rss.png" alt="RSS Feeds" /></a>

<div class="postbox" id="joinfb">
<div title="Click to toggle" class="handlediv"><br></div>
<h3 class="hndle"><span><strong class="red">Join Us on FaceBook</strong></span></h3>
<div class="inside" style="text-align:center;">
<iframe src=";width=251&amp;height=178&amp;connections=4&amp;stream=false&amp;header=false" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:251px; height:178px"></iframe>

<div class="postbox" id="donations">
<div title="Click to toggle" class="handlediv"><br></div>
<h3 class="hndle"><span><strong class="red">Promote, Donate, Share...</strong></span></h3>
<div class="inside">
A lot of time and effort goes into the development of this plugin. If you find it useful, please consider making a donation, or a review on your blog or sharing this with your friends to help us.<br/><br/>
<div class="rt-paypal" style="text-align:center">
<form action="" method="post">
<input type="hidden" name="cmd" value="_donations">
<input type="hidden" name="business" value="">
<input type="hidden" name="lc" value="US">
<input type="hidden" name="item_name" value="Blogger To WordPress Migration">
<input type="hidden" name="no_note" value="0">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="bn" value="PP-DonationsBF:btn_donateCC_LG.gif:NonHostedGuest">
<input type="image" src="" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img alt="" border="0" src="" width="1" height="1">
<div class="rt-social-share" style="text-align:center; width: 127px; margin: 2px auto">
<div class="rt-facebook" style="float:left; margin-right:5px;">
<a style=" text-align:center;" name="fb_share" type="box_count" share_url=""></a>
<div class="rt-twitter" style="">
<a href="" class="twitter-share-button" data-text="Blogger to WordPress Redirection Plugin" data-url="" data-count="vertical" data-via="bloggertowp">Tweet</a>
<script type="text/javascript" src=""></script>
<div class="clear"></div>
</div><!-- end of .inside -->

<div class="postbox" id="support">
<div title="Click to toggle" class="handlediv"><br></div>
<h3 class="hndle"><span><strong class="red">Free Support</strong></span></h3>
<div class="inside">
If you have any problems with this plugin or good ideas for improvements, please talk about them in the <a href="" target="_blank">Support forums</a>.

<div class="postbox" id="latest_news">
<div title="Click to toggle" class="handlediv"><br></div>
<h3 class="hndle"><span><strong class="red">Latest News from Our Blog</strong></span></h3>
<div class="inside">
<?php rt_Get_Feeds_From_Blogger2WP(); ?>
/* Administrative Page - End (RT) */
/* Get Configuration, called via AJAX - Begin (RT) */
add_action('wp_ajax_rt_b2wr_get_config', 'rt_b2wr_get_config');
function rt_b2wr_get_config(){
global $wpdb;
//get all blogger domains, if avaliable
$sql = "SELECT DISTINCT meta_value FROM {$wpdb->postmeta} where meta_key = 'blogger_blog'";
$results = $wpdb->get_results($sql);
$err_str = '<p id="error_msg">Sorry… No posts found that were imported from a blog</p>';
$err_str .= '<strong><a href="'. get_bloginfo('url').'/wp-admin/admin.php?import=blogger">Import from</a></strong> first and then "Start Configuration"';
echo $err_str;
$html = '<br/>';
$html .= '<h3><u>List of Blogs</u></h3>';
$html .= 'We found posts from following Blogger Blog(s) in your current WordPress installation. Click on <b>Get Code</b> button to generate the redirection code for the chosen Blogger blog<br /><br />';
$html .= '<table width="350px">';
foreach($results as $result){
$html .= '<tr>';
$html .= '<td width="15px">'.$i.'</td>';
$html .= '<td><b>'.$result->meta_value.'</b></td>';
$html .= '<td align="left" width="75px"><input type="submit" class="button" onclick = "generate_code(\''.$i.'\',\''.$result->meta_value.'\', \''.get_bloginfo('url').'\');" name="start" value="Get Code"/></td>';
$html .= '</tr>';
$html .= '</table>';
$html .= '<div id ="code_here"></div>';
/* Get Configuration, called via AJAX - End (RT) */
/* Redirection Function (!important) - Begin (RT) */
function rt_Blogger_To_Wordpress_Redirection() {
$b2w = (isset($_GET['b2w']))?$_GET['b2w']:false;
if ($b2w) {
global $wpdb;
$sql = "SELECT DISTINCT meta_value FROM {$wpdb->postmeta} where meta_key = 'blogger_blog'";
$results = $wpdb->get_results($sql);
foreach ($results as $result){
if (strstr($b2w, $result->meta_value) !== false) {
$b2w_temp = explode($result->meta_value, $b2w);
$b2w = $b2w_temp[1];
$sqlstr = "SELECT wposts.ID, wposts.guid
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'blogger_permalink'
AND wpostmeta.meta_value = '".$b2w."'";
$wpurl = $wpdb->get_results($sqlstr, ARRAY_N);
if ($wpurl){
header( 'Location: '.get_permalink($wpurl[0][0]).' ') ;
} else {
header("Status: 301 Moved Permanently");
/* Redirection Function (!important) - End (RT) */
/* Verify Configuration - Begin (RT) */
add_action('wp_ajax_rt_b2wr_verify_config', 'rt_b2wr_verify_config');
function rt_b2wr_verify_config() {
global $wpdb;
$domain_name = $_POST['dname'];
$sql = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key = 'blogger_blog' AND meta_value = '{$domain_name}' ORDER BY rand() LIMIT 1";
$rand_col = $wpdb->get_results($sql);
$rand_post_id = $rand_col[0]->post_id;
$sql1 = "SELECT post_id, meta_value FROM {$wpdb->postmeta} WHERE post_id = {$rand_post_id} AND meta_key = 'blogger_permalink' ORDER BY rand() LIMIT 1";
$rand_col2 = $wpdb->get_results($sql1);
$blogger_url = 'http://'.$domain_name.$rand_col2[0]->meta_value;
$blogger_link = '<a href = "'.$blogger_url.'" target = "_blank">'.$blogger_url.'</a> ';
$local_url = get_permalink($rand_post_id);
$local_link = '<a href = "'.$local_url.'" target = "_blank">'.$local_url.'</a> ';
echo '<h3><u>Test Case</u></h3><pre>Clicking this link &raquo; <b>'.$blogger_link.'</b><br/>Should redirect to &raquo; <b>'.$local_link.'</b></pre>';
die('<p><b>If you are stuck, you can use our <a href="" target="_blank">free support forum</a> or <a href="" target="_blank">hire us</a>.<br /><br />');
/* Verify Configuration - End (RT) */
/* Get Latest Feeds from - Begin (RT) */
function rt_Get_Feeds_From_Blogger2WP() {
// Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');
// Get a SimplePie feed object from the specified feed source.
$rss = fetch_feed('');
if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly
// Figure out how many total items there are, but limit it to 5.
$maxitems = $rss->get_item_quantity(5);
// Build an array of all the items, starting with element 0 (first element).
$rss_items = $rss->get_items(0, $maxitems);

<?php if ($maxitems == 0) echo '<li>No items.</li>';
// Loop through each feed item and display each item as a hyperlink.
foreach ( $rss_items as $item ) : ?>
<a href='<?php echo $item->get_permalink(); ?>'
title='<?php echo 'Posted '.$item->get_date('j F Y | g:i a'); ?>'>
<?php echo $item->get_title(); ?></a>
<?php endforeach; ?>
/* Get Latest Feeds from - End (RT) */
/* Update Notice - Begin (RT) */
function rt_Blogger_to_Wordpress_Update_Notice() {
if(!get_option('rtb2wr204') || get_option('rtb2wr204') == '') {
echo '<div id="b2wr_notice_block" class="error"><p>Blogger to WordPress Redirection plugin has been updated recently. Please <a href="'.get_admin_url().'tools.php?page=rt-blogger-to-wordpress-redirection">Run Configuration Wizard</a> to activate new redirection codes. <a class="blue_color" href="" target="_blank" title="Read more details about this update at Our Blog">(Read More…)</a><span><input type="button" id="hide_b2wr_notice_block" value="Hide this message!" class="button"></span></p></div>';
add_action('admin_notices', 'rt_Blogger_to_Wordpress_Update_Notice', 5);
add_action('wp_ajax_rt_b2wr_hide_notice_block', 'rt_b2wr_hide_notice_block');
function rt_b2wr_hide_notice_block(){
/* Update Notice - End (RT) */
@@ -0,0 +1,10 @@
#btowp_img{margin:18px 8px 0 0;float:left;vertical-align:bottom;display:inline-block}
#ads_block{width:30%} #ads_block > div {width:80%}
.inside {font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;line-height:1.2}
.inside span{font-style:italic;font-weight:bold}
.align_left{float:left} #error_msg{color:#c00}
#b2wr_notice_block > p{font-size:12px;font-weight:bold;letter-spacing:0.9px;padding:0px}
#b2wr_notice_block span{padding-left:6px}
.blue_color{color:#21759B !important}
BIN +3.94 KB images/btowp_img.png
Binary file not shown.
BIN +888 Bytes images/facebook.png
Binary file not shown.
BIN +1.4 KB images/rss.png
Binary file not shown.
BIN +1.06 KB images/twitter.png
Binary file not shown.
@@ -0,0 +1,69 @@
function rt_start_config(){
if(jQuery('#get_config').html()!=''){ jQuery('#get_config').html(''); }

type: 'POST',
data: 'action=rt_b2wr_get_config',
success: function(result){

function generate_code(num, domain_name, curr_domain){
jQuery('#code_here').html('<br/><h3><u>Generated Code</u></h3><div id ="re_code"><strong>Redirection code for <a href="http://'+domain_name+ '">'+domain_name+ '</a></strong><br/>\n\
Copy template code generated below and paste them in your template. (<a href="" target="_blank">How to do this?</a>)<br/>\n\
<span class="description">(<strong>Important:</strong> Do NOT forget to take a backup of old template code.)</span>\n\
<p><textarea onclick="" cols="55" rows="12">\n\
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "">\n\
<html xmlns="" xml:lang="en" lang="en" dir="<$BlogLanguageDirection$>">\n\
<script type="text/javascript">\n\
<MainPage><link rel="canonical" href="'+ curr_domain +'/" /><meta http-equiv="refresh" content="0;url='+ curr_domain +'/" ></MainPage>\n\
<Blogger><ItemPage><link rel="canonical" href="'+ curr_domain +'/?b2w=<$BlogItemPermalinkURL$>" /><meta http-equiv="refresh" content="0;url='+ curr_domain +'/?b2w=<$BlogItemPermalinkURL$>" ></ItemPage></Blogger>\n\
<div style="text-align:center">\n\
<h1>This Page</h1>\n\
<p>has been moved to new address</p>\n\
<MainOrArchivePage><a href="'+ curr_domain +'/"><$BlogTitle$></a></MainOrArchivePage>\n\
<Blogger><ItemPage><a href="'+ curr_domain +'/?b2w=<$BlogItemPermalinkURL$>"><$BlogItemTitle$></a>\n\
<p>Sorry for inconvenience... </p>\n\
Redirection provided by <a href="" title="Blogger to WordPress Migration Service">Blogger to WordPress Migration Service</a>\n\
After the redirection setup press <b>"Verify Configuration"</b> button below to test your configuration. <br />When you press the button it will generate a random link for a post on <b>'+ domain_name +'</b><div class="submit" style="padding-bottom: 0.5em !important"><input type="submit" class="button-primary" onclick = "check_configuration(\''+domain_name+'\')" name="start" id ="check_config" value="Verify Configuration"/><br /></div><div id ="verify_config"></div>');

function check_configuration(domain_name){
if(jQuery('#verify_config').html()!=''){ jQuery('#verify_config').html(''); }
type: 'POST',
data: 'action=rt_b2wr_verify_config&dname='+domain_name,
success: function(result){

jQuery('#hide_b2wr_notice_block').click(function() {
type: 'POST',
data: 'action=rt_b2wr_hide_notice_block',
success: function(result){

0 comments on commit f1bffb7

Please sign in to comment.
You can’t perform that action at this time.