How to change the position of a block in a particular page? I have a Drupal's default User Login block in Side bar first region at the last position. Reference page: http://indiansnakes.org/snakes

The proposed home page has been redesigned and the User Login block has to be displayed in the Footer Fourth region. Reference Page: http://indiansnakes.org/homepage

So, the User Login block should appear in footer fourth only for this new homepage but for the rest of the pages in websites it has to continue to stay in the Side bar first region. In normal scenarios if it was a custom block, then I can create a clone of the same block and change the visibility per page / set of pages. But User Login block is system defined and it does not allow me to clone or duplicate it.

I tried searching if someone has already addressed this issue but it seems like not. Looking forward for thoughts.

Edit:
Nearest I could find is this: Change block location on page by page basis?. But the solution there was to create multiple blocks from same view, unfortunately User Login is not based out of views for me.
You can place the default User Login block in Sidebar first region at the last position. You can exclude this block from being shown in Homepage using 'Visibility settings' which is available in the block edit page.



Then you can use front page template page--front.tpl.php and render the block manually by passing the block markup through hook_preprocess_page().

function THEME_NAME_preprocess_page(&amp;$vars, $hook) {
  $front_page = drupal_is_front_page();
  if ($front_page) {
    $user_login= block_load('user', 'login');
    $vars['user_login'] = _block_get_renderable_array(_block_render_blocks(array($user_login)));
  }
}


Then you should print the $user_login variable in the front page template inside the Footer Fourth region.