this is also a problem on our site which is also using 2.24
users cannot change thier avatars though the process seems to go through when you select a system avatar.
i have gone over the edituser.php and the change avatar php looks ok to me but maybe there is something i am missing?
if ($op == 'avatarform') {
include XOOPS_ROOT_PATH.'/header.php';
echo '<a href="userinfo.php?uid='.$xoopsUser->getVar('uid').'">'. _PROFILE_MA_PROFILE .'</a> <span style="font-weight:bold;">»»</span> '. _PROFILE_MA_UPLOADMYAVATAR .'<br /><br />';
$oldavatar = $xoopsUser->getVar('user_avatar');
if (!empty($oldavatar) && $oldavatar != 'blank.gif') {
echo '<div style="text-align:center;"><h4 style="color:#ff0000; font-weight:bold;">'._PROFILE_MA_OLDDELETED.'</h4>';
echo '<img src="'.XOOPS_UPLOAD_URL.'/'.$oldavatar.'" alt="" /></div>';
}
if ($xoopsModuleConfig['avatar_allow_upload'] == 1 && $xoopsUser->getVar('posts') >= $xoopsModuleConfig['avatar_minposts']) {
include_once XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
$form = new XoopsThemeForm(_PROFILE_MA_UPLOADMYAVATAR, 'uploadavatar', 'edituser.php', 'post', true);
$form->setExtra('enctype="multipart/form-data"');
$form->addElement(new XoopsFormLabel(_PROFILE_MA_MAXPIXEL, $xoopsModuleConfig['avatar_width'].' x '.$xoopsModuleConfig['avatar_height']));
$form->addElement(new XoopsFormLabel(_PROFILE_MA_MAXIMGSZ, $xoopsModuleConfig['avatar_maxsize']));
$form->addElement(new XoopsFormFile(_PROFILE_MA_SELFILE, 'avatarfile', $xoopsModuleConfig['avatar_maxsize']), true);
$form->addElement(new XoopsFormHidden('op', 'avatarupload'));
$form->addElement(new XoopsFormHidden('uid', $xoopsUser->getVar('uid')));
$form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
$form->display();
}
$avatar_handler =& xoops_gethandler('avatar');
$form2 = new XoopsThemeForm(_PROFILE_MA_CHOOSEAVT, 'uploadavatar', 'edituser.php', 'post', true);
$avatar_select = new XoopsFormSelect('', 'user_avatar', $xoopsUser->getVar('user_avatar'));
$avatar_select->addOptionArray($avatar_handler->getList('S'));
$avatar_select->setExtra("onchange='showImgSelected("avatar", "user_avatar", "uploads", "", "".XOOPS_URL."")'");
$avatar_tray = new XoopsFormElementTray(_PROFILE_MA_AVATAR, ' ');
$avatar_tray->addElement($avatar_select);
$avatar_tray->addElement(new XoopsFormLabel('', "<img src='".XOOPS_UPLOAD_URL."/".$xoopsUser->getVar("user_avatar", "E")."' name='avatar' id='avatar' alt='' /> <a href="javascript:openWithSelfMain('".XOOPS_URL."/misc.php?action=showpopups&type=avatars','avatars',600,400);">"._LIST."</a>"));
$form2->addElement($avatar_tray);
$form2->addElement(new XoopsFormHidden('uid', $xoopsUser->getVar('uid')));
$form2->addElement(new XoopsFormHidden('op', 'avatarchoose'));
$form2->addElement(new XoopsFormButton('', 'submit2', _SUBMIT, 'submit'));
$form2->display();
}
if ($op == 'avatarupload') {
if (!$GLOBALS['xoopsSecurity']->check()) {
redirect_header('index.php',3,_PROFILE_MA_NOEDITRIGHT."<br />".implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
exit;
}
$xoops_upload_file = array();
$uid = 0;
if (!empty($_POST['xoops_upload_file']) && is_array($_POST['xoops_upload_file'])){
$xoops_upload_file = $_POST['xoops_upload_file'];
}
if (!empty($_POST['uid'])) {
$uid = intval($_POST['uid']);
}
if (empty($uid) || $xoopsUser->getVar('uid') != $uid ) {
redirect_header('index.php',3,_PROFILE_MA_NOEDITRIGHT);
exit();
}
if ($xoopsModuleConfig['avatar_allow_upload'] == 1 && $xoopsUser->getVar('posts') >= $xoopsModuleConfig['avatar_minposts']) {
include_once XOOPS_ROOT_PATH.'/class/uploader.php';
$uploader = new XoopsMediaUploader(XOOPS_UPLOAD_PATH, array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png'), $xoopsModuleConfig['avatar_maxsize'], $xoopsModuleConfig['avatar_width'], $xoopsModuleConfig['avatar_height']);
if ($uploader->fetchMedia($_POST['xoops_upload_file'][0])) {
$uploader->setPrefix('cavt');
if ($uploader->upload()) {
$avt_handler =& xoops_gethandler('avatar');
$avatar =& $avt_handler->create();
$avatar->setVar('avatar_file', $uploader->getSavedFileName());
$avatar->setVar('avatar_name', $xoopsUser->getVar('uname'));
$avatar->setVar('avatar_mimetype', $uploader->getMediaType());
$avatar->setVar('avatar_display', 1);
$avatar->setVar('avatar_type', 'C');
if (!$avt_handler->insert($avatar)) {
@unlink($uploader->getSavedDestination());
} else {
$oldavatar = $xoopsUser->getVar('user_avatar');
if (!empty($oldavatar) && $oldavatar != 'blank.gif' && !preg_match("/^savt/", strtolower($oldavatar))) {
$avatars =& $avt_handler->getObjects(new Criteria('avatar_file', $oldavatar));
$avt_handler->delete($avatars[0]);
$oldavatar_path = str_replace("\", "/", realpath(XOOPS_UPLOAD_PATH.'/'.$oldavatar));
if (0 === strpos($oldavatar_path, XOOPS_UPLOAD_PATH) && is_file($oldavatar_path)) {
unlink($oldavatar_path);
}
}
$sql = sprintf("UPDATE %s SET user_avatar = %s WHERE uid = %u", $xoopsDB->prefix('users'), $xoopsDB->quoteString($uploader->getSavedFileName()), $xoopsUser->getVar('uid'));
$xoopsDB->query($sql);
$avt_handler->addUser($avatar->getVar('avatar_id'), $xoopsUser->getVar('uid'));