0.2 업데이트 (2018-07-17)

ap_member_intro.0.2.zip

 

1) 위젯 수정

  • info.xml과 lang.xml 의 오타 수정
  • 위젯 설정의 변수 범주를 약간 수정
  • 상단의 회원그룹 탭 메뉴 및 하단의 페이지 내비게이션 출력 옵션 추가 (skyo님)
  • 프로필 이미지 사이즈 기능 작동(max-width와 max-height) (skyo님, 달콤한인생님, 미이라님)
  • 페이지 내비게이션 변수 이름 변경 $page_navigation -> $member_page

 

2) 스킨 수정

  • 상단 탭 메뉴와 하단 페이지 내비게이션의 선택적 출력
  • 프로필 이미지에 별도의 클래스 추가(ap_member_intro_img_profile)로 다른 이미지 아이콘에 영향 최소화

 

 

0.1 최초 배포 (2018-07-16)

ap_member_intro.0.1.zip

 

주말에 잠깐 언급했던, 죽은 자료도 다시 살려보자는 마음으로 만들어본 멤버 소개 위젯입니다. https://xetown.com/resources/1019561 그룹별로 회원을 불러와 회원정보 및 서명, 기타 사용자정의 확장변수 등을 보여줍니다.

 

관심 있으신 분들 테스트해보시고 코멘트 부탁드릴게요. 동봉한 스킨은 구리니까 그냥 참조용으로만 봐주세용~

 

 

1) 헤더 설정

0.png

- 위젯 페이지를 풀페이지로 사용할 경우에 대비해서 상단에 제목과 설명을 넣을 수 있도록 했습니다.

- 물론 입력값이 없으면 출력되지 않구요.

 

... 그러면 요런 모양으로 나옵니다. (아시는 분은 아시겠지만 스케치북의 블로그 제목 스타일ㅋ)

3.png

 

 

2) 목록 설정

1.png

- 목록은 자유롭게 최대한 조절이 가능하도록 했습니다.

- 정렬방법은 이름, 가입순서, 최근 로그인, 무작위(랜덤) 등을 기준으로 오름차순 또는 내림차순으로 할 수 있습니다.

- 다만 '이름'의 경우, '닉네임', 'ID', '사용자이름' 중 하나만 선택해서 출력하도록 했습니다. (내가 왜 그랬지..?)

 

... 그러면 페이지네이션이 요렇게 뜹니다요.

4.png

 

 

3) 출력 및 작동

2.png

- 출력 대상 회원 그룹 : 복수로 선택할 수 있습니다.

- 표시 항목 및 순서 : 스킨에서의 항목별 출력 순서를 조절할 수 있습니다. 프로필 이미지, 이름, 최근 글, 최근 댓글, 이메일 주소, 회원 서명, 홈페이지, 블로그, 생일, 회원 가입일, 최근 로그인 날짜, 소속된 회원 그룹, 팔로우(회원->친구), 팔로워(친구->회원), 기타 확장정보 등이 표시 가능 옵션에 있습니다.

- 이름 유형 : 2번에서 말씀 드렸듯, 닉네임, ID, 회원이름 중 하나를 선택합니다.

- 프로필 이미지 크기 조정 옵션을 넣었는데... 아 이건 이번 베타 버전에선 적용이 안 될 겁니다. (작업중 작업중)

- 출력할 회원 확장 정보 : 쉼표 단위로 사용자정의 회원 정보의 '입력항목 ID'를 넣으면 그에 준해서 스킨에서 확장정보를 출력해줄 겁니다.

- AJAX 사용 : 회원그룹 링크와 페이지 링크 클릭시 AJAX 호출을 합니다.

 

... 회원 그룹이 카테고리처럼 적용돼요ㅋ

5.png

... 리스트는 이렇게 되구요. 운영 중인 사이트에서 회원정보를 불러와 테스트해본 것이어서 스킨 스샷은 이 정도로 생략할게요. 민감민감

6.png

 

 

암튼 대강 이런 식인데요. 설명이 장황해서 도움이 됐으려나 모르겠습니다.

그치만 테스트해보시면 금방 아실 수 있을 거예요.

적용해보시고 쓸 만하다 싶으시면 코멘트 부탁드리겠습니다!

윤삼

profile
아무래도 중급 초반 수준의 코딩 오타쿠인 것 같습니다.
  • profile
    원래는 이거를 좀 더 창의적으로 응용해서 구성원 소개, 필진 소개 등의 위젯으로 하려고 했는데요. 만들고 보니 멤버 '현황' 위젯처럼 되어버렸습니다. 힝
  • profile
    조금있다가 써보고올깨요 +__+
  • ?

    이런 위젯이구나..너무 좋은데요. ^ㅆ^ 활용도가 무궁무진 하겠습니다.

    버그 리포트 하자면

    1. 그룹아이콘/포인트 아이콘이 회원의 경우 출력시에 아이콘들 사이즈가 틀어집니다. 
    2. 저는 페이징이 안먹히네요.^^ ajax 호출을 하면 안먹히고, ajax 로 호출을 안하면 잘못된 요청 오류가 납니다.
    [Error] Failed to load resource: the server responded with a status of 403 () (index.php, line 0) 
    procWidgetGenerateCodeInPage&module=widget&target_group=2055460

     

    근데.. 너무 이쁘네요. 동봉스킨 말이죠^^

  • ?

    .ap_member_intro_list li img { display: block; margin: 0 auto; width: 120px; height: 120px; border-radius: 50%; }

    여기에 img 파일 전체에 width 가 걸려 있어서 그렇네요. 

     

    그리고 아래와같이 포인트 아이콘 정렬 문제는 display:block 을 제거하면 되긴 하는데 프로필 이미지 가운데 정렬이 풀리네요.^^

     

    스크린샷 2018-07-16 오후 3.33.53.png

  • ? profile
    앗 버그 치명적;;;

    1. 근데 아이콘이 뜨나요? 회원 관련해서는 이미지 네임이라든가 아이콘 같은 것을 써본 적이 없어서 하나도 개념이 안 잡힙니다ㅜ

    2. 페이징이 왜 안 먹힐까요ㅜㅠ 연구를 해야겠어요!

    결론... 아, 치명적ㅠㅠ
  • ? profile
    아하, 프로필 이미지에 별도로 클래스 지정하는 게 좋겠다는 말씀이신 거죠?
  • profile ?
    네.^^
  • profile ?

    네...이건 좀 치명적이긴 합니다. 일단 페이징을 제거하고 쓸려고 하긴 하는데...

    상단의 회원 그룹 탭은 제거를 할수가 없어서... 제거할려니 위젯을 그룹별로 생성해야 해서..T.T

  • ? profile
    - 페이지내비게이션 변수가 게시판 등의 변수를 덮어써버려서 생기는 문제 같기도 한데요. 변수 이름을 바꿔서 저도 테스트를 해보겠습니다.
    - 그룹 탭과 페이지 내비게이션 출력 옵션도 둬야겠네요.

    테스트 감사드려요!
    근데 팔로우는 커뮤니케이션 모듈의 친구 기능을 응용해서 멋대로 이름 붙인 건데요. 이게 기존의 구독모듈? 썸띵모듈?의 팔로우 리스트와 일치하진 않겠죠?
  • profile ?
    아..팔로우가 친구 기능이었어요? 저는 구독모듈과 연동된줄 알았네요. 네 그렇다면 일치하지 않습니다.^^
  • ? profile
    역시.. 그렇다면 없애버려야겠어요.
  • ? profile
    말씀하신 상황이 재연이 안 돼요ㅜ https://bit.ly/2IECAeU
    다른 분들도 페이지네이션 문제 있는지 확인해봐야겠어요;;;
  • profile
    이걸 이렇게 빨리 올리실 줄이야 ㄷ
  • profile profile
    제 자신이 확신이 별로기도 하고 해서 일단 초안 비스무리하게 올려놓고 집단지성의 힘을 믿으려구요 ^^/
  • profile
    바로 사용하러 갑니다요~
  • profile
    레벨 아이콘, 아이템샵 관련 아이콘이 프로필 이미지와 맞먹는 크기로 출력됩니다. 옵션이 필요할거 같아요. 그리고 프로필 크기가 고정됐어요. 줄여도 소용없이 그대로 입니다. 라고 섰는데 위에 이미 나온 내용이네요ㅋ
  • profile profile
    ㅋㅋㅋㅋ 고것은 스킨 파일이랑 css 수정해보도록 할게요.
    회원그룹 탭이랑 페이지 내비게이션 링크 이동에는 문제가 없나요?
  • profile profile
    그룹 탭 미작동이고요. 링크는 아직요. 이렇게 저렇게 해보고 있던 중이었어요ㅋㅋ
  • profile profile
    상단 그룹탭은 회원그룹을 두 개 이상 불러올 때 뜨는 건데요. 그게 링크 작동이 안 되나요?
    아 뭐가 문젤까 뭣이 문젤까...
  • profile profile
    네 6개 띄워봤어요, 저희가 그룹이 여섯이다보니ㅠ
  • profile

    수고하셨습니다.
    위젯 만들려면 이리저리 손이가서 쉬운 작업이 아닌데 공개 하셨군요.

    "별이 등이 이 회원님을 팔로우하고 있습니다." 이부분 친구 부분이죠? 삭제하신다고 하시는데 그냥 놔두세요.

    위젯의 버전이 올라가고 베타가 아닌 정식 버전이 되면..
    시간날때 구독 모듈이 설치되어 있을 경우 구독 모듈 정보가 나오도록 추가 작업을 해볼깨요.
    물론 윤삼님이 허락 해주셔야 가능하겠지만요 ㅎ

  • profile profile
    앗, 그러면 안심하고 현행대로 놔둘게요.
    말씀하신대로 구독 모듈 설치 여부에 따라 팔로우/팔로워 출력이 달라지면 좋을 것 같습니다!
  • profile
    우와....! 진짜 원하던 위젯을 찾은 느낌!! >_<
  • profile profile
    그 값을 해야 할 텐데요ㅎㅎ
  • ?

    좋은 위젯 감사합니다.

    프로필이미지 크기와 레벨 아이콘 크기가 같이 나오는 부분은 class로 해결이 되네요.

    [intro.html - 21~22줄]
    <div class="ap_member_intro_img" cond="$option === 'profile_image'">
    <img class="pro" src="{$item->profile_info->src}" cond="$item->profile_info" />
    <img class="pro" src="/images/no_profile.png" cond="!$item->profile_info" />
    </div>

    [default.css - 22줄]
    .ap_member_intro_list .pro { display: block; margin: 0 auto; width: 120px; height: 120px; border-radius: 50%; }

    그리고 저 같은 경우는 페이지도 잘 넘어가고 상단탭도 문제가 없습니다.

    라이믹스 최신버전입니다.

  • ? profile
    테스트 감사합니다!
    위젯 페이지네이션이 서버 영향을 받는 건지 더 조사를 해봐야겠어요ㅜ
  • profile

    메인에 신규회원을 소개하려고 새로 추가를 했습니다. 기존에는 페이지네이션을 사용할 필요가 없어 몰랐는데요.

    오늘 확인하니 하단에 페이지네이션 출력이 안됩니다.

    {$member_intro->view_page_navigation} {$member_page->total_page}

    이렇게해서 확인을 하면 Y 로 출력은 되지만 두번째 항목은 출력되지 않네요.


    위젯 코드 상단에
    $page_count = $args->page_count ? (int)$args->page_count : 5;

    이 값이 위젯 설정에 입력한 페이지 수를 가져오는 것 같습니다.

    $member_page->total_page 이게 어디서 가져오는건지 살펴봐도 잘 모르겠네요.

     

     

    또 실제 쿼리 하는 부분에서는

                $obj->list_count = $list_count;
                $obj->page_count = $page_count;
                $obj->page = Context::get('mpage') ? abs(Context::get('mpage')) : 1;

     

    이렇게 되어 있구요. 

     

     

    그리고 약간 의아한게요..

    5개목록 / 페이지 2 

    설정하면 하단에 네이비게이션 출력은 안되더라도 화면에 10개가 나와야 하는건 아닌지 그것도 궁금합니다.

     

    보통 페이지를 사용하는 경우 전체 목록수를 가져와수 1페이지/2페이지 나눠서 보여주는 거라서....

  • profile profile
    변수 관련해서는 직접 뜯어봐야 알 것 같은데 (제가 요즘 정신이 하나도 없어서 다른 분이라도..ㅜ) 위젯캐시를 0으로 해도 total_page가 안 찍히던가요?

    목록수와 페이지수는 일반 컨텐츠 위젯의 작동방식보다는 게시판처럼 생각하시면 됩니다. 10개를 다 가져와서 5개 감춘 뒤 보여주는 게 아니라, 파라미터 값에 따라 해당 쪽의 라스트만 가져오게 돼 있어요.
    일단 만들 땐 (회원검색 위젯을 염두에 두다보니) 게시판 페이지네이션을 차용했는데, 컨텐츠 위젯처럼 하려면 위젯 구조를 많이 손봐야 할 것 같습니다.
  • profile profile

    어.. 캐시 시간을 비워서 0으로 적용되게 했더니 나옵니다. 그런데 문제가 하나 더 있네요. 2페이지인데 전체페이지의 마지막 223 페이지 버튼이 노출되어 이동이 되어 버리는 상황이네요.

    물론 캐시 시간을 사용해야 하는 것은 어쩔 수 없는 상황이구요.

    위젯에서 어쩔수 없이 캐시시간을 0으로 사용해야 하는 구조라면 그냥 0으로 쓰겠습니다.

  • profile profile
    말씀 하신대로 직접 해당 리스트를 클릭시 가져오게 되어 있네요. ajax를 사용하지 않는다면 새로고침되어 사용이 어려울 수 있어 ajax 필수로 사용해야 할 것 같습니다. 이건 다른 분들께 참고가 될까 해서 달아보았습니다.
  • profile profile
    위젯캐시가 적용되면 파라미터값이 반영이 되지 않으니까요.
    암튼 위젯캐시, 페이지네이션, ajax 사이에 이런저런 상관관계가 있었던 것으로 기억합니다.
  • profile profile
    그렇군요. 현재 위젯에서 구현하신 페이지네이션 방식으로는 위젯캐시 적용을 하면 안되는 것이겠네요. 일단 그렇게 써야 겠습니다. 심한 쿼리는 아닌듯 해서요.

    마지막 페이지 나오는 부분은 왜 나오는지 모르지만
    ... 마지막페이지 출력 코드를 지워벼렸습니다 ㅡㅡ;
  • profile profile
    아.. .... 마지막 버튼이 노출되는 것은 게시판 목록에서 그대로 차용하신 거군요.

    일단 저희는 신입회원을 출력하다보니 그부분을 제거해서 가장 최근 가입회원부터 하나씩 다음페이지로 넘어가는게 더 자연스러워 빼는게 더 좋네요. 이건 오류가 아니었군요!