[이윰] 회원 프로필 사진 변경시 바로 갱신하여 보여 주기

페이지 정보

shadow2fox 2 67 0
2018.12.04 15:44

평점

본문

 회원 프로필 사진 변경시 바로 갱신하여 보여 주기(댓글을 확인)
기본 이윰빌더는 회원 자신의 프로필 사진을 변경할 경우 브라우저 캐시 삭제, 서버 상 이미지 캐시 초기화가 이루어지기 전까지는 갱신이 즉각적으로 되지 않아 수정해 보았다.

1. 그누보드5/eyoom/core/member/photo_update.php를 열어 // 썸네일 파일명을 회원아이디로 치환을 검색하여 다음과 같이 수정한다.

수정 전
// 썸네일 파일명을 회원아이디로 치환
$thumb_file = $res['t_file'];
$rename = $member['mb_id'].'.'.$res['ext'];
수정 후
// 썸네일 파일명을 회원아이디로 치환
$thumb_file = $res['t_file'];
$date = date_create();
$rename = $member['mb_id'].'_'.date_timestamp_get($date).'.'.$res['ext'];
기존 이윰빌더 기본값은 회원 아이디.이미지 확장자이고 회원 아이디_현 시각의 타임스탬프.이미지 확장자로 변경하였다.

2. 그누보드5/eyoom/theme/설치된 테마/skin_bs/outlogin/스킨명/outlogin.skin.2.html을 열어 다음과 같이 수정한다.

수정 전

수정 후

회원 사진 변경시 기존 사진을 강제로 삭제하도록 체크박스를 선택한다.

하단 스크립트 라인 끝 바로 윗쪽에 아래 스크립트를 추가한다.
$("#del_photo").on("click", function (e) {
    var checkbox = $(this);
    if (!(checkbox.is(":checked"))) {
        // do the confirmation thing here
        e.preventDefault();
        return false;
    }
});
회원 임의로 체크박스를 해제하지 못하도록 한다.

댓글2

shadow2fox님의 댓글

shadow2fox 글쓴이 2018.12.04 18:18

이윰빌더 eyoom.class.php에 정의된 mb_photo엔 반영이 되질 않아 보완이 필요하다

축하합니다. 지뢰폭탄 포인트 26포인트를 획득하였습니다.

shadow2fox님의 댓글

shadow2fox 글쓴이 2018.12.04 19:15

1. 그누보드5/eyoom/classes/eyoom.class.php를 열어 // 회원 프로필을 사진 검색한다.

수정 전

	// 회원 프로필 사진
	public function mb_photo($mb_id,$photo_filename='') {
		$photo = '';
		$dest_path = G5_DATA_PATH.'/member/profile/';
		$dest_url = G5_DATA_URL.'/member/profile/';
		$permit = array('jpg','gif','png');
		if($photo_filename) {
			$photo_file = $dest_path.$photo_filename;
			if(file_exists($photo_file)) {
				$photo = '<img class="user-photo" src="'.$dest_url.$photo_filename.'">';
			}
		} else {
			foreach($permit as $val) {
				$photo_name = $mb_id.'.'.$val;
				$photo_file = $dest_path.$photo_name;

				// 사진이 있다면 변수 넘김
				if(file_exists($photo_file)) {
					$photo = '<img class="user-photo" src="'.$dest_url.$photo_name.'">';
					break;
				}
			}
		}
		return $photo;
	}
수정 후
	// 회원 프로필 사진
	public function mb_photo($mb_id,$photo_filename='') {
		$photo = '';
		$dest_path = G5_DATA_PATH.'/member/profile/';
		$dest_url = G5_DATA_URL.'/member/profile/';
		$permit = array('jpg','jpeg','gif','png');
		if($photo_filename) {
			$photo_file = $dest_path.$photo_filename;
			if(file_exists($photo_file)) {
				$photo_file_time = filemtime($photo_file);		// 회원 프로필 사진 갱신용
				//$photo = '<img class="user-photo" src="'.$dest_url.$photo_filename.'">';
				$photo = '<img class="user-photo" src="'.$dest_url.$photo_filename.'?'.$photo_file_time.'">';		// 회원 프로필 사진 갱신용
			}
		} else {
			foreach($permit as $val) {
				$photo_name = $mb_id.'.'.$val;
				$photo_file = $dest_path.$photo_name;

				// 사진이 있다면 변수 넘김
				if(file_exists($photo_file)) {
					$photo_file_time = filemtime($photo_file);		// 회원 프로필 사진 갱신용
					//$photo = '<img class="user-photo" src="'.$dest_url.$photo_name.'">';
					$photo = '<img class="user-photo" src="'.$dest_url.$photo_name.'?'.$photo_file_time.'">';		// 회원 프로필 사진 갱신용
					break;
				}
			}
		}
		return $photo;
	}

2. 그누보드5/eyoom/classes/Template_/tpl_plugin/function.eb_outlogin.php를 열어 // 프로필 사진 정보를 검색한다

수정 전
		// 프로필 사진 정보
		$_photo = G5_DATA_PATH."/member/profile/".$eyoomer['photo'];
		if(file_exists($_photo) && $eyoomer['photo']) {
			$profile_photo = '<img src="'.G5_DATA_URL.'/member/profile/'.$eyoomer['photo'].'">';
		} else {
			$profile_photo = '<i class="fa fa-user"></i>';
		}
수정 후
		// 프로필 사진 정보
		$_photo = G5_DATA_PATH."/member/profile/".$eyoomer['photo'];
		if(file_exists($_photo) && $eyoomer['photo']) {
			$_photo_time = filemtime($_photo);		// 회원 프로필 사진 갱신용
			//$profile_photo = '<img src="'.G5_DATA_URL.'/member/profile/'.$eyoomer['photo'].'">';
			$profile_photo = '<img src="'.G5_DATA_URL.'/member/profile/'.$eyoomer['photo'].'?'.$_photo_time.'">';		// 회원 프로필 사진 갱신용
		} else {
			$profile_photo = '<i class="fa fa-user"></i>';
		}

축하합니다. 행운의 포인트 8포인트를 획득하였습니다.