Назначаем класс аватару пользователя
- 312 просмотров
- 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.
Новый комментарий