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

페이지 정보

shadow2fox 2,389 2 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을 열어 다음과 같이 수정한다.

수정 전

<!--{? eyoomer.photo}--><!--{:}--><!--{/}-->
수정 후

<!--{? eyoomer.photo}--><!--{:}--><!--{/}-->
회원 사진 변경시 기존 사진을 강제로 삭제하도록 체크박스를 선택한다.

하단 스크립트 라인 끝 바로 윗쪽에 아래 스크립트를 추가한다.

$("#del_photo").on("click", function (e) {
    var checkbox = $(this);
    if (!(checkbox.is(":checked"))) {
        // do the confirmation thing here
        e.preventDefault();
        return false;
    }
});
회원 임의로 체크박스를 해제하지 못하도록 한다.
추천인
  • 추천해 주세요
10
shadow2fox - 회원등급 : 자연/Level 142 - 포인트 : 2,539,737
레벨 142
경험치 3,032,959

Progress Bar 70%

- 가입일 : 2015-03-10 12:21:44
- 서명 : 인간에게 가장 큰 선물은 자기 자신에게 기회를 주는 것이다. - 크리스 가드너, Chris Gardner -
- 자기소개 : There's never a shortcut to happiness.

댓글2

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 = '';
			}
		} else {
			foreach($permit as $val) {
				$photo_name = $mb_id.'.'.$val;
				$photo_file = $dest_path.$photo_name;

				// 사진이 있다면 변수 넘김
				if(file_exists($photo_file)) {
					$photo = '';
					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 = '';
				$photo = '';		// 회원 프로필 사진 갱신용
			}
		} 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 = '';
					$photo = '';		// 회원 프로필 사진 갱신용
					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 = '';
		} else {
			$profile_photo = '';
		}
수정 후

		// 프로필 사진 정보
		$_photo = G5_DATA_PATH."/member/profile/".$eyoomer['photo'];
		if(file_exists($_photo) && $eyoomer['photo']) {
			$_photo_time = filemtime($_photo);		// 회원 프로필 사진 갱신용
			//$profile_photo = '';
			$profile_photo = '';		// 회원 프로필 사진 갱신용
		} else {
			$profile_photo = '';
		}

축하합니다. 행운의 8경험치를 획득하였습니다.

shadow2fox님의 댓글

shadow2fox 글쓴이 2018.12.04 18:18

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

축하합니다. 지뢰폭탄 제거로 26경험치를 획득하였습니다.