참조 : https://xetown.com/qna/574881

 

최근게시물 위젯에서 작성자 프로필 사진을 띄우는 방법입니다.

참조의 url은 게시글의 코멘트 작성자의 프로필 사진을 띄우는 방법입니다. 위 팁을 참조해서 수정해보았습니다.

 

프로필 이미지를 띄우고자 하는 곳에 다음 코드를 입력해주세요.

참고로 아래 코드는 기존에는 게시물의 첨부파일을 띄우는 코드였습니다.

[!--@if($item->getThumbnail())--]
    <img src="{$item->getThumbnail()}" style="width:{$widget_info->thumbnail_width}px;height:{$widget_info->thumbnail_height}px" />
[!--@else--]
    <span class="imgNone">{$lang->none_image}1</span>
[!--@end--]

위 코드 대신에 아래 내용을 입력해주었습니다.

{@
//프로필이미지
$oMemberModel = &getModel('member');
$member_info = $oMemberModel->getMemberInfoByMemberSrl($item->getMemberSrl());
$profile_image = $member_info->profile_image;
}
<!--@if($profile_image->src)-->
<img src="{$profile_image->src}" alt="{cut_str($comment->nick_name,$widget_info->nickname_cut_size,'...')}">
<!--@else-->
<img src="./img/profile.png" alt="{cut_str($comment->nick_name,$widget_info->nickname_cut_size,'...')}">
<!--@end-->

작성글의 멤버번호를 가져와서, 해당 멤버의 프로필이미지를 띄우는 코드입니다.

프로필 이미지가 있으면 프로필 이미지를 띄우고 없으면 기본 프로필 사진을 출력합니다.

profile.png

기본 프로필 사진은 위 이미지입니다.

 

이온디

profile
이온디는 라이믹스를 비롯한 다양한 CMS의 시드뱅크를 꿈꿉니다. 여러분들이 사랑하는 웹소스를 언제든지 사용할 수 있게 하기 위해 이온디는 매일 소스코드를 유지보수하고 있으며, 언제든지 다운로드할 수 있는 소스마켓을 운영하고 있습니다.

#XE마켓 - 이온디스토어
https://eond.com/xemarket/

# XE/라이믹스 단톡방을 운영 중입니다. (비번: 2022)
https://open.kakao.com/o/giaKKnl

# XE/라이믹스 생활코딩 모듈 강좌입니다.
https://opentutorials.org/module/3774
  • profile
    그거보다 더 간단한 프로필전용 함수도있습니다.

    {@
    $oMemberModel = getModel('member');
    $profile_image = $oMemberModel->getProfileImage($item->getMemberSrl());
    }
  • profile profile
    감사합니다.
    이런건 있는지 어떻게 알아볼 수 있나요?;
  • profile profile
    XE 에서 getModel 이라는건 ('') 갈호안에 있는 모듈의 model.php 파일을 찾는겁니다.

    즉, getModel('member') 라고 하면 member.model.php 파일이고, 이 파일의 클래스형태로 불러옵니다.(클래스라는 단어를 잘 몰르셔도됩니다.)

    클래스형태로 불러오게된다면 안에있는 function 으로 시작되는 모든 메서드를 사용할 수 있게 되고,
    function 으로 시작되는 메서드중에서 getProfileImage 가 있으니 그 함수의 작동방식을 확인해보시고 사용하기 좋다면 쓰면되는거에요.
  • profile ?

    model을 불러오면 function을 새로 작성할 필요 없이 불러온 model에서 그냥 사용할 수 있다는 말씀인거죠?

     

    와우 쉽게 이해했어요:)

  • ? profile

    네 modules폴더 안에 잇는 폴더 이름 + getModel함수 쓰시면되요.(자체함수입니다.)
    즉, getController('point') 하면 point 모듈에 있는 point.controller.php 이파일의 클래스를 가져오는것이죠. 이렇게 각각 클래스를 가져오는 함수로 getModule 함수가 쓰이고있어요

    이렇게 사용이 될 수 있어요
    $profile_image = getModule('member', 'model')->getProfileImage($item->getMemberSrl());

     

    더자세한건 https://github.com/xpressengine/xe-core/blob/master/config/func.inc.php#L79 이 아래의 코드와 아래 펑션들의 네이밍 함수들을 확인해보세요.

     

  • ?
    감사합니다