Сейчас мы добавим на главную вашего форума аватарки пользователей в колонку последних сообщений. Код серьёзно отличается от тех, что есть на форумах поддержки - он более скоростной и не жрёт так много пользовательского трафика. А выглядят эти авки вот так:
Для начала нам надо будет зайти в админпанель - оформление - цвета - вкладка "каскадная таблица стилей CSS" и вставить вот такой кусочек кода:
Далее идём в админпанель - модули - управление скриптами яваскрипт (в самом низу) и создаём скрипт с вот таким содержанием:
Чтобы аватарки стабильно показывались у всех посетителей, нужно будет зайти в админпанель - пользователи и группы - особые права доступа и напротив графы "пользователи" поставить уровень доступа "Гости".
Всё
Для начала нам надо будет зайти в админпанель - оформление - цвета - вкладка "каскадная таблица стилей CSS" и вставить вот такой кусочек кода:
- Код:
.avka {
background: #FFFFFF;
float: left;
margin-right: 0.5em;
padding: 2px;
vertical-align: middle;
width: 48px;
}
Далее идём в админпанель - модули - управление скриптами яваскрипт (в самом низу) и создаём скрипт с вот таким содержанием:
- Код:
var users_on_pages = 30,
max_pages = 3;
default_avatar = 'http://i55.servimg.com/u/f55/16/50/61/52/16087710.gif';
copyrightnotice = 'Скрипт от your.roll.tv . Распространение и использование разрешено только с прикреплением этой строки.';
function getCookie(e){var t=document.cookie.match(new RegExp("(?:^|; )"+e.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,"\\$1")+"=([^;]*)"));return t?decodeURIComponent(t[1]):undefined}function setCookie(e,t,n){n=n||{};var r=n.expires;if(typeof r=="number"&&r){var i=new Date;i.setTime(i.getTime()+r*1e3);r=n.expires=i}if(r&&r.toUTCString){n.expires=r.toUTCString()}t=encodeURIComponent(t);var s=e+"="+t;for(var o in n){s+="; "+o;var u=n[o];if(u!==true){s+="="+u}}document.cookie=s}function deleteCookie(e){setCookie(e,"",{expires:-1})}
$(function() {
if (window.localStorage) {
if (localStorage.forum_avatars) forum_avatars = JSON.parse(localStorage.forum_avatars); else forum_avatars = {};
if (!localStorage.forum_avatars || Date(localStorage.forum_avatars_time) < (new Date()).valueOf() - 72000000 * 0.5) {
var users = $('#stats p:eq(1) strong').text(),
pages = Math.min(Math.ceil(users / users_on_pages), max_pages);
ararar = {};
for (var i = 0; i < pages; i++) {
$.get('/memberlist' + (i > 0 ? ('?mode=lastvisit&order=DESC&start=' + (i*30) +'&username') : ''), function (a,b) {
if (b == 'success') {
$(a).find('.avatar-mini a').each(function () {
ararar[/[0-9]+/.exec($(this).attr('href'))[0]] = $(this).find('img').attr('src');
});
localStorage.forum_avatars = JSON.stringify(ararar);
localStorage.forum_avatars_time = (new Date()).toJSON();
forum_avatars = ararar;
update_avatars();
}
});
}
}
} else {
forum_avatars = eval('('+getCookie('forum_avatars')+')');
if (!forum_avatars) {
var users = $('#stats p:eq(1) strong').text(),
pages = Math.min(Math.ceil(users / users_on_pages), max_pages);
ararar = {};
for (var i = 0; i < pages; i++) {
$.get('/memberlist' + (i > 0 ? ('?mode=lastvisit&order=DESC&start=' + (i*30) +'&username') : ''), function (a,b) {
if (b == 'success') {
$(a).find('.avatar-mini a').each(function () {
ararar[/[0-9]+/.exec($(this).attr('href'))[0]] = $(this).find('img').attr('src');
});
var str = '{';
for (var i in ararar) {
str += i + ': "' + ararar[i] + '",';
}
str = str.slice(-1) + '}';
setCookie('forum_avatars', str, {expires: 60*60*12, path: '/'});
forum_avatars = ararar;
update_avatars();
}
});
}
}
}
update_avatars();
});
function update_avatars() {
if (location.href.indexOf('/f') > 0 || location.href.lastIndexOf('/') == location.href.length - 1) $('.statused .tcr').each(function () {
if ($(this).find('strong a').length > 0) {
var user = $(this).find('strong a').attr('href').split('/u')[1];
$(this).find('.avka').remove();
$(this).prepend('<img src="' + (forum_avatars[user] ? forum_avatars[user] : default_avatar) + '" class="avka" />');
} else {
$(this).find('.avka').remove();
$(this).prepend('<img src="'+ default_avatar +'" class="avka" />');
}
});
}
Называем скрипт как душе угодно, включаем на всех страницах.var users_on_pages = 30, /* Это количество тем на странице - можно узнать в админке - основное - сообщения. */
max_pages = 3; /* Сколько максимум загружать страниц с авками. Если у вас очень активный форум и некоторые авки не отображаются, возможно, придётся увеличить этот параметр. */
default_avatar = 'https://i.servimg.com/u/f55/16/50/61/52/16087710.gif'; /* авка по умолчанию - для гостей, удалённых и просто юзеров без авок. По умолчанию радужная поняшка. */
Чтобы аватарки стабильно показывались у всех посетителей, нужно будет зайти в админпанель - пользователи и группы - особые права доступа и напротив графы "пользователи" поставить уровень доступа "Гости".
Всё
Кстати, этот скрипт публикует все авки в глобальную переменную forum_avatars. Если вы любите покодить, это может вам пригодиться.
Последний раз редактировалось: Космо (30.03.14 3:28), всего редактировалось 2 раз(а)