웹마스터 팁
회원 확장 변수(extra_vars) 출력하는 방법
2008.05.23 08:48
제가 올린 팁은 회원리스트를 출력하는데 필요한 부분입니다.
회원의 기본정보 외에 추가로 입력한 정보를 추출하는데 extra_vars라는 부분만 선택하면
추가정보가 한꺼번에 복잡하게 출력되어 원래 설정한 부분부분을 정리하여 추출하는 방식입니다.
수정할 파일은 아래와 같습니다.
내용 : 관리형모듈>위젯>특정 그룹 회원 출력 위젯(member_group)
파일위치 : widgets>member_group>skins>default>list.html
회원 확장값(추가정보) 중에서 휴대전화를 출력하는 것만 예를 들어 만들어 봤습니다.
여기에 쓰인 변수값은 임의한 것이니까 적당하게 지정하세요.
저도 하다보니 답답하여 찾았는데 무식한 방법이지만 쓸만하네요.
빨간색 부분만 입력하면 됩니다.
조금이나 도움이 되었으면 하네요.
////extra_vars의 출력값/////////
O:8:"stdClass":14:{s:10:
"joinadd";s:0:"";s:12:"open_joinadd";s:0:"";s:7:
"mobile";s:16:"010|@|2002|@|2002";s:15:"open_joinmobile";s:1:"Y";s:11: ......;}
//////원하는 위치에 입력 ////////
{@$ev=($val->extra_vars);}
{@$ev_1='";s:';}
{@$ev_2='';} {@$ev=str_replace($ev_1,$ev_2,$ev);} ///// ";s:' 값 제거
{@$s2=strpos($ev,mobile); $e2=strpos($ev,open_mobile); $d2=$e2-$s2;} ////휴대전화의 값 위치
{@$ev_s2=substr($ev,$s2,$d2);}
{@$s2_1=strpos($ev_s2,':"');}
{@$e2_1=strpos($ev_s2,'11:"');} //11:"은 값마다 다름(010|@|2002|@|2002";s:11:")
{@$d2_1=$e2_1-$s2_1;} {@$ev_s2_2=substr($ev_s2,$s2_1,$d2_1);} {@$ev_s2_3=str_replace(':"','',$ev_s2_2);} ////문자 제거 {@$ev_s2_4=str_replace('|@|','-',$ev_s2_3);} ////문자제거
{($ev_s2_4)} //마지막 출력부분
출력 예)------------------------------------------------------------------------------------
댓글 15
-
김병곤117
2008.05.23 11:14
-
띵야
2008.05.23 12:07
고맙습니다. 그리 중요한 문제는 아니었지만 꼭 해 보고 싶은 거였는데... 성공하였습니다.
유용한 팁을 알려주신 '+ '+ '척~'님(정말로 답을 척~ 내놓으시네요...^^)과 도움주신 '김병곤117'님께 감사드립니다. -
guny
2008.05.24 00:12
좋은 팁인듯 한테...무슨 얘기들 나누는지 알수가 없군요..
초보자들을 위해 어떤 파일에서 어떻게 테스트 한다는 설명을 추가해줬으면 고맙겟습니다... -
척~
2008.05.24 13:06
제가 올린 팁이 사용처나 보시는데 조금이나마 불편하셨다면 죄송합니다.
내용을 다시 수정하여 올렸으니 참고하시기 바라며, 추가적인 부분이 있으면 보충하도록 하겠습니다. -
카카달려
2008.05.25 02:13
글 내용하고는 관련이 없는데...
이글 불여우에서 보니까 게시판 리스트가 본문이랑 겹쳐서 나오는데 왜 그러는지 -_-; -
SMaker
2008.05.25 16:34
저도 카카달려와 똑같은 현상이네요.
뭐 때문인지 모르겠네요. -
에띠안베레
2008.05.26 11:04
움 저두 같은 현상이;;;물론 ie7.0에서는 잘나옵니당
-
Narzib
2008.06.16 23:25
특정그룹 회원 출력 위젯(member_group)에서 확장변수를 출력하시려면
위젯 스킨 속의 list.html 에서
<!--@foreach($widget_info->member_list as $key => $val)-->
아래부분에
{@$extravs = unserialize($val->extra_vars)}
위와 같이 입력해서 배열된 변수를 풀어주고,
확장변수 출력을 원하는 곳에
{($extravs->job)}
와 같이 넣어주시면 됩니다 (위의 예시는 확장변수명(항목이름)이 'job' 인 경우) -
느까끼
2008.06.22 12:55
설명 굿.
한방에 적용 끝^^
회원목록에 추가할 때의 방법도 좀 알려주세요. -
khongchi
2009.07.26 01:59
더 간단하게
unserialize($val->extra_vars)->job
이렇게 써주면 되겠네요^^
-
qorhqorh
2009.11.30 04:54
우와!!! 감사합니다.
-
포유
2009.08.01 03:56
고마우신 팁으로 회원명부에서 주소만을 추출하는데 성공 하였습니다...^^
감사드립니다~~그런데 주소가 공란인 회원자리에는 아래 주소가 올라옵니다.
주소가 없는 회원의 자리는 빈공란으로 만드는 수가 있을것 같은데.....
넓으신 아량으로 한수 가르침을 부탁드립니다.
거듭 감사드립니다..*^^*
-
무대포2
2010.02.22 15:17
{unserialize($val->extra_vars)->job} 딱 한줄로 많은 것을 해결하는군요. 넘 감사합니다. 이것 때문에 고생했는데
-
으니V
2010.09.02 16:00
전 왜 안될까요?? userialize() 사용하니까 syntax error, unexpected T_OBJECT_OPERATOR 에러 나는데... 뭐가 문제일까요? -
으니V
2010.09.02 16:09
검색해보니 답을 찾았어요 제 PHP버젼이 낮아서 그런거였어요 ㅠㅠ
감사합니다.