Адреса пользователей и модулей как вконтакте

С данным скриптом ссылка на профиль пользователя будет выглядеть так: 
http://вашсайт.ru/fallen

Так же добавлены новые адреса для "Личных сообщений", "Настроек" и "Пользователей сайта".
Адреса:
http://вашсайт.ru/im
http://вашсайт.ru/settings
http://вашсайт.ru/people

Для установки скрипта достаточно лишь сделать следующие пункты.

1) Качаем архив. Распаковываем.
2) Устанавливаем в файле js-name.js ссылку на свой сайт и загружаем в корень сайта.
3) Загружаем файл 404.htm так же в корень сайт.

Готово!

Что нового?
Удобная настройка новых быстрых url

Code
var links = {  
  02  
  'im':{ // http://site.ucoz.ru/im -> http://site.ucoz.ru/index/14  
  03  
  'url':'/index/14',  
  04  
  'title':'Сообщения'  
  05  
  },  
  06  
  'settings':{ // http://site.ucoz.ru/settings -> http://site.ucoz.ru/index/11  
  07  
  'url':'/index/11',  
  08  
  'title':'Настройки'  
  09  
  },  
  10  
  'people':{ // http://site.ucoz.ru/people -> http://site.ucoz.ru/index/15  
  11  
  'url':'/index/15',  
  12  
  'title':'Люди'  
  13  
  }  
  14  
  }


Ускорение загрузки (что очень важно для подобных хаков).
Оригинальный скрипт: 37ms, Данный скрипт: 30ms
UPD2:
AJAX загрузка снесена из-за проблем с JS. Версия с iframe пофикшена и теперь тоже меняет адрес браузера

Несжатый код с комментариями:

Code
(function(){ //Защита от захламления и конфликтов глобального пространства имен  
  02  
  var links = {  
  03  
  'im':{ // http://site.ucoz.ru/im перенаправит http://site.ucoz.ru/index/14  
  04  
  'url':'/index/14',  
  05  
  'title':'Сообщения'  
  06  
  },  
  07  
  'settings':{  
  08  
  'url':'/index/11',  
  09  
  'title':'Настройки'  
  10  
  },  
  11  
  'people':{  
  12  
  'url':'/index/15',  
  13  
  'title':'Люди'  
  14  
  },  
  15  
  'signup':{  
  16  
  'url':'/index/3',  
  17  
  'title':'Регистрация'  
  18  
  }  
  19  
  }  
  20  
  var path = title = '',  
  21  
  url = document.location.pathname;  
  22  
   
  23  
  $.each(links, function(i, obj){ // Ищем возможные быстрые ссылки  
  24  
  if(url.match(new RegExp(i,"g")) != null){ // Ссылка в объекте настроек найдена  
  25  
  path = obj.url; // Сохранение адреса страницы для отображения  
  26  
  title = obj.title; // Сохранение title страницы  
  27  
  return false; // Возврат false, который прервет цикл, а значит съекономит пару мс  
  28  
  }  
  29  
  });  
  30  
  if(path == '' && url.match(/\//g).length == 1){ // Быстрая ссылка не найдена. Может юзер?  
  31  
  path = '/index/8-0-'+url.substr(1).replace(/-/g, '~')+'/';  
  32  
  title = 'Профиль пользователя '+url.substr(1);  
  33  
  }  
  34  
  if(path != '' && title != ''){ // Ссылка найдена или url является логином  
  35  
  document.title = title;  
  36  
  $(function(){  
  37  
  $('body').html('<iframe id="parent-iframe" src="'+path+'" style="width:100%;height:100%" frameborder="0"><\/iframe>');  
  38  
  $('#parent-iframe').load(function(){  
  39  
  $(this).contents().find('a').attr('target', '_top');  
  40  
  });  
  41  
  });  
  42  
  } else {  
  43  
  $(function(){  
  44  
  document.title = 'Ошибка 404. Запрашиваемая страница не найдена.';  
  45  
  $('#content-404').show();  
  46  
  });  
  47  
  }  
  48  
  })();


404:

Code
<html>  
  02  
  <head>  
  03  
  <title>Загрузка...</title>  
  04  
  <script type="text/javascript" src="http://s28.ucoz.net/src/jquery-1.6.1.js"></script>  
  05  
  <script src="/ucoz-furl.js"></script>  
  06  
  </head>  
  07  
  <body style="padding:0px;margin:0px;">  
  08  
  <div id="content-404" style="display:none">  
  09  
  <!-- КОД СТРАНИЦЫ 404 -->  
  10  
   
  11  
  <div style="text-align:center">  
  12  
  <div style="font-family: tahoma;font-size: 105pt;font-weight: bold;color: #2B587A;margin: 62px 0 0 0;">404</div>  
  13  
  <div>Запрашиваемая страница не найдена!</div>  
  14  
  </div>  
  15  
   
  16  
  <!-- / КОД СТРАНИЦЫ 404 -->  
  17  
  18  
  </div>  
  19  
  </body>  
  20  
  </html>

  • FalleN

  • 728

  • 1

  • 190

Ссылки на статью:

Похожие статьи: