Блок пользователя
Регистрация на нашем сайте позволит вам общаться на форумах и получить доступ к другому полезному функционалу
Вы вошли как Гость

Назначаем класс аватару пользователя

  • 204 просмотра
  • 16 сентября, 2023
  • Обновлено: 16 сентября, 2023
  • admin
  • Время чтения: 1 минута

Неожиданно возникла задача изменить класс картинке с аватаром пользователя. Вроде задача простая, однако, как оказалось, это не совсем так. Дело в том, что ресурсные строки, в которых определяется класс и другие атрибуты (src и alt), не используются сами по себе. Их использует функция cot_userimages_build() из состава "коробочного" плагина Userimages.

В свою очередь, cot_userimages_build() используется в фунции cot_build_usertags(). Здесь мы уже видим хуки usertags.first и usertags.main. Нас интересует последний. Он позволит изменить значение элемента AVATAR массива $temp_array[]. Но вначале добавим необходимые условия. В дополнение к уже используемым добавим проверку на заполнение поля user_avatar в базе данных:

if (is_array($user_data) && !empty($user_data['user_id']) && !empty($user_data['user_name']) && !empty($user_data['user_avatar'])) {
 $isrc = $user_data['user_avatar'];
} else {
 $isrc = 'datas/defaultav/' . \Cot::$cfg['plugin']['customavatar']['blank'];
}

Как видите, я изменил также и имя файла дефолтного аватара – опять же, для того, чтобы иметь возможность переназначить установленный по умолчанию. Теперь можно переопределять необходимый нам элемент массива:

$temp_array['AVATAR'] = cot_rc('userimg_img', array('src' => $isrc, 'alt' => \Cot::$L['Avatar'], 'class' => \Cot::$cfg['plugin']['customavatar']['class']));

Как видим, все не так сложно, как казалось. Наш код теперь можно оформить в виде плагина Customavatar.

Новый комментарий

Имя:
Для редактирования комментария осталось 10 минут
Комментарии отсутствуют