. */ if (!defined('LACONICA')) { exit(1); } require_once(INSTALLDIR.'/lib/settingsaction.php'); class AvatarAction extends SettingsAction { function show_form($msg=NULL, $success=false) { common_show_header(_t('Avatar'), NULL, NULL, array($this, 'settings_menu')); if ($msg) { $this->message($msg, $success); } else { common_element('div', 'instructions', _t('You can upload a new "avatar" (user picture) here. ' . 'You can\'t edit the picture after you upload it, so you should ' . 'edit it in your desktop image-manipulation software first. ' . 'Everything works best if your picture is more or less square. ' . 'And remember: your image will be released under the site license, ' . 'So don\'t upload images that don\'t belong to you or that you don\'t ' . 'want to share.')); } $user = common_current_user(); $profile = $user->getProfile(); $original = $profile->getOriginalAvatar(); if ($original) { common_element('img', array('src' => $original->url, 'class' => 'avatar original', 'width' => $original->width, 'height' => $original->height, 'alt' => $user->nickname)); } $avatar = $profile->getAvatar(AVATAR_PROFILE_SIZE); if ($avatar) { common_element('img', array('src' => $avatar->url, 'class' => 'avatar profile', 'width' => AVATAR_PROFILE_SIZE, 'height' => AVATAR_PROFILE_SIZE, 'alt' => $user->nickname)); } common_element_start('form', array('enctype' => 'multipart/form-data', 'method' => 'POST', 'id' => 'avatar', 'action' => common_local_url('avatar'))); common_element('input', array('name' => 'MAX_FILE_SIZE', 'type' => 'hidden', 'id' => 'MAX_FILE_SIZE', 'value' => MAX_AVATAR_SIZE)); common_element('input', array('name' => 'avatarfile', 'type' => 'file', 'id' => 'avatarfile')); common_submit('submit', _t('Upload')); common_element_end('form'); common_show_footer(); } function handle_post() { switch ($_FILES['avatarfile']['error']) { case UPLOAD_ERR_OK: # success, jump out break; case UPLOAD_ERR_INI_SIZE: case UPLOAD_ERR_FORM_SIZE: $this->show_form(_t('That file is too big.')); return; case UPLOAD_ERR_PARTIAL: @unlink($_FILES['avatarfile']['tmp_name']); $this->show_form(_t('Partial upload.')); return; default: $this->show_form(_t('System error uploading file.')); return; } $info = @getimagesize($_FILES['avatarfile']['tmp_name']); if (!$info) { @unlink($_FILES['avatarfile']['tmp_name']); $this->show_form(_t('Not an image or corrupt file.')); return; } switch ($info[2]) { case IMAGETYPE_GIF: case IMAGETYPE_JPEG: case IMAGETYPE_PNG: break; default: $this->show_form(_t('Unsupported image file format.')); return; } $user = common_current_user(); $profile = $user->getProfile(); if ($profile->setOriginal($_FILES['avatarfile']['tmp_name'])) { $this->show_form(_t('Avatar updated.'), true); } else { $this->show_form(_t('Failed updating avatar.')); } @unlink($_FILES['avatarfile']['tmp_name']); } }