Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Аватар в зависимости от поля в userinfo

Аватар в зависимости от поля в userinfo


     13.10.2012    Общие вопросы    2640

вопрос
Доброго времени суток. Вот возникла идея такого плана и прошу у Вас помощи.
Хотелось бы что бы у пользователей без аватарки выставлялся noavatar в зависимости от поля в userinfo, например, пол. Я себе это представляю так:
Создаем дополнительное поле "gender" типа "список" в юзеринфо, добавляем там 2 варианта и используя [xfgiven_gender] [xfvalue_gender] [/xfgiven_gender] как-то создать условие выбора одной из 2ух картинок. Подтолкните в правильную сторону. Благодарю

Ответил: Sander


Аватарку выводим кодом:
<img src="{foto}" alt="" data-gender="[xfvalue_gender]"/>


Пишем JS скрипт:
$(function(){
  $("img[data-gender]").each(function(){
    if($(this).data('gender')){
      $(this).attr('src',"/templates/"+dle_skin+"/images/noava_"+$(this).data('gender')+".png");
    }
  });
})


В папке images шаблона создаем 3 файла:
noavatar.png - для гостей и неопределившихся
noava_male.png - муж.
noava_female.png - жен.

Комментарии пользователей (5)

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 14 октября 2012 13:31 - Админ

попробуйте на jquery это реализовать. Суть в том, чтобы проверять атрибут src у картинки и если он равен site.ru/templates/THEME/images.noavatar.png и если есть значение поля gender раdное к примеру male - заменять src картинки на соответствующий условию.

Каков вопрос - таков и ответ. Просто помните об этом.

Sobak
18 | 18

Sobak - 14 октября 2012 18:43 - Юзер

Спасибо за ответ. Но есть еще небольшой вопрос. Как я вижу, скрипт будет получать значение поля gender и прибавлять его к "noava_". Стало быть необходимо при регистрации указывать male/female. А есть возможность как-то с русским подружиться, чтобы пользователь выбирал Мужской/Женский?

Sobak
18 | 18

Sobak - 14 октября 2012 19:04 - Юзер

хм, еще одна проблема возникла - в панели управления висит заглушка вместо аватары, даже не ноаватар, а заглушка "нет картинки". Судя по коду значение из доп. поля получить не выходит. Даже если установишь аватарку, все равно ничего не изменится. В комментариях все хорошо

ПафНутиЙ
1065

3396 | 2434

ПафНутиЙ - 14 октября 2012 19:40 - Админ

блин, пока код писал, ответ уже дали )))
// HTML
// <div class="avatar">
//     <img src="{foto}" alt="">
//     <div class="gender">[xfvalue_gender]</div>
// </div>

jQuery(function($) {
    $(".avatar").each(function (i) { //.avatar - div, внутри которого выводится картинка и допполе (можно его скрыть)
        avaImg = $(".avatar img").eq(i).attr("src");
        genderVal = $(".avatar .gender").eq(i).text(); //.gender - элемент, внутри которого выводится значение допполя
        if(avaImg == "http://site.ru/templates/THEME/images/noavatar.png") {
            if (genderVal == "мужик") {
                avaImg = "http://site.ru/templates/THEME/images/man.png"
            } else if (genderVal == "баба"){
                avaImg = "http://site.ru/templates/THEME/images/woman.png"
            };
        }
    });
});

Для тех кто незнаком с атрибутом data-*

Каков вопрос - таков и ответ. Просто помните об этом.

Sobak
18 | 18

Sobak - 14 октября 2012 19:56 - Юзер

о, благодарю. Вроде бы все ясно

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы