Адреса пользователей и модулей как вконтакте
С данным скриптом ссылка на профиль пользователя будет выглядеть так:
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
}
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
})();
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>
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
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...