본문 바로가기
디자인원엑스커뮤니티의 새로운 기본
홈 고객센터
Latest Version
DXCMS v10.3.82026.06.15 배포 D+132일 (4개월)
  • 169다운로드
  • 0테마
  • 62플러그인
  • 7스킨

DX 글쓴이 프로필 (dx-author-profile)

D DX관리자
2026.10.25 03:00(수정됨) 7 0 1



DX 글쓴이 프로필 (dx-author-profile) 설명서

버전 1.3.2 · DXCMS 플러그인 · PHP 5.6 이상 · DesignOneX License 1.0

게시글 본문과 이전/다음글 목록 사이에 글쓴이의 프로필 카드를 보여주는 플러그인입니다. 카드에는 레벨과 경험치 진행률, 게시글·댓글 수, 포인트, 자기소개, 가입일, 최근 접속, 같은 회원의 최근 글과 최근 댓글(탭), 웹사이트와 SNS 링크가 표시됩니다. 카드 색은 라이트 · 다크 · 투명 모드로 바꿀 수 있고, 방문자가 [모드] 버튼으로 직접 고를 수도 있습니다. 테마와 게시판 스킨 파일은 수정하지 않습니다.



1. 설치

  1. dx-author-profile_v1.3.2.zip을 사이트 루트에 풉니다. 압축 안의 경로가 plugins/dx-author-profile/…로 되어 있어 그대로 덮어쓰면 됩니다.
  2. 관리자 > 플러그인에서 DX 글쓴이 프로필을 활성화합니다.
  3. 회원이 쓴 게시글 하나를 열어 본문 아래에 카드가 나오는지 확인합니다.

별도의 DB 테이블을 만들지 않으므로 migrate.php 실행은 필요 없습니다. 설정값은 코어의 dx_settings 테이블에 저장됩니다.



2. 카드 구성

영역 내용
아바타 프로필 이미지(없으면 이름 첫 글자). 둘레의 링이 다음 레벨까지의 진행률을 레벨 색으로 표시하고, 오른쪽 아래에 레벨 아이콘이 붙습니다.
이름 · 레벨 칩 회원 이름과 Lv.8 전문가 형태의 레벨 표시
버튼 모드: 카드 색 고르기(라이트·다크·투명) / 프로필: 코어 프로필 모달 열기 / 작성글 보기: 코어 작성글 검색 열기
자기소개 회원이 마이페이지에 작성한 소개글
가입 · 접속 가입일과 가입 후 경과일, 최근 접속 시각
활동 수 게시글 · 댓글 · 포인트 · 경험치
경험치 바 다음 레벨 이름, 남은 경험치, 진행률(%). 최고 레벨이면 "최고 레벨에 도달했습니다"
최근 글 / 최근 댓글 탭 같은 회원의 최근 글(게시판 이름, 날짜)과 최근 댓글(댓글 요약, 원글 제목, 날짜). 댓글을 누르면 원글의 해당 댓글 위치로 이동합니다.
링크 웹사이트 · 블로그 · GitHub · YouTube · Instagram · X · Facebook


표시되지 않는 경우

  • 비회원이 쓴 글
  • 탈퇴했거나 이용이 정지된 회원(status가 1이 아닌 회원)의 글
  • 관리자 설정에서 프로필 카드 표시를 끈 경우
  • 적용 게시판을 지정했는데 현재 게시판이 목록에 없는 경우


3. 관리자 설정

관리자 사이드바의 게시판 확장 > 글쓴이 프로필, 또는 주소 /admin/author-profile로 들어갑니다.


프로필 카드 표시

끄면 모든 게시판에서 카드를 숨깁니다. 플러그인 자체는 켜진 상태로 유지되므로 설정을 잃지 않고 잠시 숨길 때 사용합니다.


표시할 항목

항목 끄면 사라지는 부분
레벨과 경험치 아바타 링, 레벨 아이콘, 레벨 칩, 경험치 수, 경험치 바
활동 수 게시글 · 댓글 · 포인트 · 경험치 숫자 줄 전체
포인트 활동 수 줄의 포인트 칸
자기소개 소개글
최근 글 하단의 최근 글 탭
최근 댓글 하단의 최근 댓글 탭
링크 하단 링크 아이콘


목록 개수는 1~5개 중에서 고르며, 최근 글과 최근 댓글에 똑같이 적용됩니다.

최근 글과 최근 댓글이 둘 다 있으면 탭으로 나뉘어 표시되고, 한쪽만 있으면 탭 없이 제목과 목록만 나옵니다. 둘 다 없으면 하단 영역이 링크만 남거나 사라집니다.


카드 모드

테마와 관계없이 이 카드만의 색을 정합니다. 사이트 전체 다크모드와는 별개입니다.

모드 모양
테마 따라가기 (기본) 사이트 테마의 색과 다크모드를 그대로 따릅니다
라이트 테마가 어두워도 항상 밝은 카드
다크 테마가 밝아도 항상 어두운 카드
투명 배경 없이 얇은 선만. 글자색은 주변 글자색을 따라가 어떤 배경 위에서도 어울립니다
  • 기본 모드: 방문자가 아직 고르지 않았을 때 보이는 모드입니다. 관리자 설정의 라디오 버튼에서 고릅니다.
  • 카드에 [모드] 버튼 표시: 켜면 카드의 버튼 줄에 [모드] 버튼이 나오고, 방문자가 목록에서 라이트 · 다크 · 투명 · 테마 따라가기를 직접 고릅니다. 선택은 그 방문자의 브라우저(localStorage, 키 dxap-mode)에 저장되어 다음 방문에도 유지되고, 열려 있는 다른 탭에서도 따라 바뀝니다. 끄면 버튼이 사라지고 저장된 선택은 무시한 채 기본 모드로 고정됩니다.
  • 투명 모드의 목록은 배경이 비치면 읽기 어려우므로 항상 불투명한 밝은 색으로 표시합니다.
  • 키보드: 목록에서 방향키 · Home · End로 이동, Esc로 닫기.


모드 목록 위치 (모바일)

PC에서는 [모드] 버튼이 카드 위쪽 오른쪽에 있어 목록이 아래로 열립니다. 모바일(560px 이하)에서는 버튼이 카드 맨 아래 줄로 내려가므로, 목록이 카드 밖으로 잘리지 않게 공간을 재서 위로 열립니다(v1.3.2). 화면 크기를 바꾸면 다시 계산합니다.


적용할 게시판

  • 모든 게시판: 게시글 보기 화면 전체에 표시
  • 선택한 게시판만: 체크한 게시판에서만 표시


미리보기

설정 화면 오른쪽에 지금 로그인한 관리자 본인의 프로필로 카드가 표시됩니다. 저장된 설정 기준이므로, 항목을 바꾼 뒤에는 설정 저장을 눌러야 미리보기에 반영됩니다.



4. 데이터 출처

표시 항목 출처
이름, 프로필 이미지, 자기소개, 가입일, 최근 접속, 포인트, 경험치, 링크 dx_members
레벨 번호 · 이름 · 아이콘 · 색상, 레벨별 필요 경험치 코어 DxPoint + dx_level_config
게시글 수 dx_posts (status = 1)
댓글 수 dx_comments (status = 1)
최근 글 dx_posts + dx_boards
최근 댓글 dx_comments + dx_posts + dx_boards


레벨 계산

레벨은 회원의 누적 경험치를 코어의 DxPoint::calcLevel()로 계산한 값입니다. 경험치를 줄 때 코어가 쓰는 계산과 같으므로 다른 화면의 레벨 표시와 일치합니다.

레벨 이름, 아이콘, 색상, 필요 경험치를 바꾸려면 관리자 > 레벨 설정(/admin/levels)에서 수정합니다. 카드의 링 · 칩 · 경험치 바 색이 함께 바뀝니다. 레벨 색이 노랑이나 연두처럼 밝으면 칩의 글자색을 자동으로 어둡게 바꿔 읽기 쉽게 합니다.


최근 글에 나오는 글

다음 조건을 모두 만족하는 글만 나옵니다. 비공개 정보가 노출되지 않도록 기본값을 보수적으로 잡았습니다.

  • 게시 상태인 글 (status = 1)
  • 비밀글이 아닌 글 (is_secret = 0)
  • 사용 중이면서 누구나 읽을 수 있는 게시판의 글 (read_level = 0)
  • 지금 보고 있는 글은 제외


최근 댓글에 나오는 댓글

  • 게시 상태이면서 비밀댓글이 아닌 댓글 (status = 1, is_secret = 0)
  • 원글이 게시 상태이고 비밀글이 아닌 댓글
  • 누구나 읽을 수 있는 게시판의 댓글 (read_level = 0)
  • 본문은 HTML 태그를 지우고 80자까지 요약해서 보여주며, 긴 댓글은 두 줄에서 줄임표로 자릅니다. 이미지나 이모티콘만 있어 글자가 없는 댓글은 건너뜁니다.


링크

회원 정보의 웹사이트, 블로그, SNS 주소 중 값이 있는 것만 표시합니다. http:// 또는 https:// 주소만 허용하며, 주소에 프로토콜이 없으면 https://를 붙입니다. 링크는 새 창으로 열리고 rel="noopener nofollow ugc"가 붙습니다.



5. 캐시

회원 정보, 게시글 수, 댓글 수, 최근 글, 최근 댓글은 회원별로 3분 동안 DxCache에 저장됩니다. 새 글을 쓰거나 프로필을 수정한 뒤 최대 3분 동안은 이전 값이 보일 수 있습니다.

관리자 설정을 저장하면 이 플러그인의 캐시(dxap: 키)가 바로 비워집니다.



6. 동작 방식

시점 훅 하는 일
게시글 보기 준비 dx_board_view_context 글쓴이 확인, 표시 대상 여부 판단, 프로필 데이터 준비
<head> dx_head (20) assets/profile.css 로드 — 카드를 표시할 때만
body 하단 dx_body_bottom (20) 카드 마크업 출력 (hidden 상태)
body 하단 dx_body_bottom (21) assets/profile.js 로드
관리자 dx_admin_top (1) 사이드바 링크 추가, /admin/author-profile 설정 화면


카드 위치

스킨에는 본문과 이전/다음글 사이에 훅이 없기 때문에, 카드를 body 하단에 숨긴 상태로 출력한 뒤 profile.js가 제자리로 옮깁니다.

  1. 본문 카드(.dx-view-card)를 찾습니다.
  2. 바로 뒤에 설문 블록이 있으면 설문 다음을 기준점으로 삼습니다.
  3. 기준점 바로 다음(이전/다음글 목록 앞)에 카드를 넣고 표시합니다.

basic · gallery · category 스킨 모두 본문 카드에 .dx-view-card를 쓰므로 공통으로 동작합니다. 본문 카드를 찾지 못하는 스킨에서는 카드가 숨겨진 채로 남아 화면이 깨지지 않습니다.


테마 호환

  • 테마에 dx_head 훅이 없으면 카드 마크업 바로 앞에서 CSS를 출력합니다.
  • 테마에 코어 프로필 모달(dxOpenProfile)이 없으면 프로필 · 작성글 보기 버튼을 자동으로 숨깁니다.


7. 플러그인 활성/비활성

  • DXCMS 10.1.1 이상 (코어 플러그인 상태 필터 적용): 비활성 플러그인은 코어가 아예 로드하지 않습니다. 플러그인 자체 검사는 건너뜁니다.
  • 그 이전 코어: plugin.php 첫머리에서 dx_plugins.status를 직접 확인하고, 비활성이면 훅을 하나도 등록하지 않습니다.


8. 디자인과 다크모드

"테마 따라가기" 모드에서는 색을 모두 테마 변수로 쓰므로 다크모드 엔진이 별도 설정 없이 인식합니다. 라이트 · 다크 · 투명 모드는 카드 안의 색 변수(--dxap-bg, --dxap-line, --dxap-ink, --dxap-mute)를 고정값으로 바꿔 테마와 관계없이 보이게 합니다.

변수 쓰는 곳
--bg-card 카드 배경
--border 테두리, 구분선, 링 · 경험치 바의 빈 부분
--text-main 이름, 본문 글자, 숫자
--text-muted 라벨, 날짜, 보조 문구
--hover-row 최근 글 · 최근 댓글 목록의 마우스 오버
--p 버튼 오버, 키보드 포커스 표시
--font-head 숫자 (Space Grotesk, 고정폭 숫자)

회원 레벨 색(--dxap-lv)은 링, 레벨 칩, 경험치 바, 선택된 탭의 밑줄, 링크 오버에만 씁니다.

  • 카드가 화면에 들어올 때 링과 경험치 바가 한 번 채워집니다. 브라우저의 "동작 줄이기" 설정이 켜져 있으면 애니메이션 없이 바로 표시합니다.
  • 640px 이하 화면에서는 아바타와 이름을 한 줄에 두고, 나머지 내용은 카드 전체 폭으로 펼칩니다.


테마에 맞춰 바꾸기

카드 모양을 사이트에 맞게 조정하려면 테마 CSS에서 .dxap 클래스를 덮어씁니다. 플러그인 파일을 직접 고치면 업데이트할 때 변경 내용이 사라집니다.

/* 예: 카드 모서리와 여백 조정 */
.dxap { border-radius: 12px; }
.dxap-main { padding: 20px 24px; }

/* 예: 포인트 숫자 색 */
.dxap-stats dd { color: var(--p); }


9. 파일 구조

plugins/dx-author-profile/
├── manifest.php          플러그인 정보
├── plugin.php            활성 확인, 훅 등록
├── core/
│   └── data.php          설정 조회·저장, 레벨 계산, 프로필 데이터
├── views/
│   └── card.php          카드 마크업
├── assets/
│   ├── profile.css       카드 스타일
│   └── profile.js        카드 위치 이동, 카드 모드, 진행률 애니메이션, 버튼, 탭
└── admin/
    ├── index.php         설정 화면
    ├── admin.css
    ├── admin.js
    └── sidebar.js        관리자 사이드바 링크

인라인 <style> · <script>와 인라인 이벤트 속성(onclick 등)은 사용하지 않습니다.


저장되는 설정 (dx_settings, setting_group = dx-author-profile)

키 기본값 설명
dxap_enabled 1 카드 표시
dxap_boards (빈 값) 적용 게시판 키, 쉼표 구분. 비우면 전체
dxap_show_level 1 레벨과 경험치
dxap_show_stats 1 활동 수
dxap_show_point 1 포인트
dxap_show_bio 1 자기소개
dxap_show_recent 1 최근 글
dxap_show_comments 1 최근 댓글
dxap_show_links 1 링크
dxap_recent_count 3 최근 글 · 최근 댓글 개수 (1~5)
dxap_picker 1 카드에 방문자용 [모드] 버튼 표시
dxap_mode auto 기본 카드 모드 (auto · light · dark · transparent)


10. 문제 해결

카드가 나오지 않습니다. 관리자 > 플러그인에서 활성 상태인지, 설정 화면에서 프로필 카드 표시가 켜져 있는지, 적용 게시판에 현재 게시판이 포함되는지 확인합니다. 비회원 글이나 탈퇴 회원의 글에는 표시되지 않습니다.

카드가 댓글 아래나 페이지 맨 아래에 보입니다. 사용 중인 스킨의 본문 영역에 dx-view-card 클래스가 없는 경우입니다. 스킨 본문 <article>에 dx-view-card 클래스를 추가하면 제자리에 들어갑니다.

숫자가 바로 바뀌지 않습니다. 3분 캐시 때문입니다. 즉시 확인하려면 관리자 설정 화면에서 설정 저장을 한 번 누르면 캐시가 비워집니다.

레벨이 다른 화면과 다르게 보입니다. 카드는 누적 경험치로 레벨을 다시 계산합니다. 관리자가 회원 레벨 숫자만 직접 바꾸고 경험치는 그대로 두었다면 차이가 날 수 있습니다. 회원의 경험치를 해당 레벨의 필요 경험치 이상으로 맞추면 일치합니다.

최근 글이나 최근 댓글에 특정 게시판의 내용이 나오지 않습니다. 읽기 권한이 설정된 게시판(read_level이 0이 아닌 게시판), 비밀글, 비밀댓글은 목록에서 제외됩니다.

모바일에서 [모드] 목록이 안 보입니다. v1.3.1 이하에서는 모바일에서 목록이 카드 아래로 열려 카드 밖으로 잘렸습니다. v1.3.2 이상으로 올리면 위로 열립니다. 올린 뒤에도 그대로라면 브라우저 캐시를 지우거나 새로고침해 주세요(CSS · JS 주소에 버전이 붙어 있어 보통은 자동으로 갱신됩니다).

방문자가 고른 모드가 적용되지 않습니다. 관리자 설정에서 카드에 [모드] 버튼 표시가 꺼져 있으면 방문자의 선택은 무시되고 기본 모드로 고정됩니다. 브라우저의 사이트 데이터(localStorage) 저장이 막혀 있어도 선택이 유지되지 않습니다.

프로필 · 작성글 보기 버튼이 없습니다. 사용 중인 테마에 코어 프로필 모달이 포함되어 있지 않아 버튼을 자동으로 숨긴 것입니다.



11. 삭제

관리자 > 플러그인에서 삭제합니다. 이 플러그인은 자체 테이블이 없으므로 "파일만 삭제"로 충분합니다. dx_settings에 남은 dxap_ 설정값은 다시 설치하면 그대로 이어서 쓰입니다.


 

라이선스

Copyright © DesignOneX — designonex.com · All Rights Reserved.

DesignOneX License 1.0 — https://designonex.com/notice/view/1787577858493247

무료로 사용하고 수정할 수 있으며 고객사 프로젝트에 설치해 운영할 수 있습니다. 재배포와 판매는 금지됩니다. 소스코드의 저작권·라이선스 표시는 삭제하거나 바꾸지 마세요.

첨부파일 1개 회원전용

댓글1

디
디엑스AI 2026.10.25 03:01

관리자님, 설명서와 캡처를 함께 읽었습니다. 캡처는 관리자님 계정으로 본 카드로 보이고 어두운 배경입니다. 이 어두운 색이 다크 모드 선택 때문인지 테마를 따른 것인지는 화면만으로는 알 수 없습니다.

설명서와 맞는 부분부터 적습니다. 아바타 둘레에 빨간 링이 있고 오른쪽 아래에 작은 레벨 아이콘이 붙어 있습니다. 이름 옆 "Lv.14 신화" 칩과 모드, 프로필, 작성글 보기 버튼 세 개도 설명서 그대로입니다. 가입일은 2026년 3월 22일에 217일째, 최근 접속은 12분 전으로 나옵니다. 게시글 1,070, 댓글 2,040, 포인트 22,346, 경험치 41,076 줄이 있고, 아래에 "다음 레벨 전설왕까지 8,924 남음 36%" 바도 있습니다.

숫자도 확인해 봤습니다. 매뉴얼의 기본 레벨표에서 전설왕은 50,000이라 50,000에서 41,076을 빼면 8,924가 맞습니다. 신화 36,000부터 전설왕까지 14,000 구간에서 5,076을 채웠으니 약 36%로 바 표시와 같습니다. 가입 후 경과일도 달력으로 세어 보니 217일이 맞았습니다. 다만 이 레벨 구성이 기본값인지 레벨 설정에서 바꾼 값인지는 제가 알 수 없고, 계산이 맞아 보인다는 점만 확인했습니다.

하단에는 "최근 글 / 최근 댓글" 탭이 있고 최근 글 3개가 게시판 이름과 날짜와 함께 보입니다. 자유게시판과 공지사항 글이 섞여 나오는데, 설명서의 "누구나 읽을 수 있는 게시판" 조건과 어긋나지 않습니다. 이 캡처의 3개가 목록 개수 설정 때문인지 글이 3개뿐이라서인지는 구분되지 않습니다.

이 캡처에서 읽히지 않는 부분도 있습니다. 자기소개와 웹사이트, SNS 링크 아이콘은 보이지 않습니다. 설정에서 끄셨거나 해당 정보를 입력하지 않으신 것일 수 있습니다. 최근 댓글 탭의 내용과 모드 목록이 열린 모습, 모바일에서 위로 열리는 동작도 정지 화면이라 확인하지 못했습니다. 설명서 본문도 최근 댓글 항목 중간에서 끊겨 있어 그 뒤는 읽지 못했습니다.

글에 걸린 라이선스 링크는 열렸고, 수정과 상업적 사용은 허용하되 재배포와 판매는 금지한다는 내용이었습니다. 설명서 머리의 DesignOneX License 1.0 표기와 같습니다. 다른 링크 하나는 주소가 비어 있어 열지 못했습니다.

모바일 캡처나 투명 모드 화면을 올려 주시면 그 화면 기준으로 이어서 읽겠습니다.

※ AI가 자동으로 작성한 댓글입니다. 참고용으로만 봐주세요.

로그인 후 댓글을 작성할 수 있습니다.
Plugin TOTAL 62
내 플레이리스트
플레이리스트가 비어있습니다
스튜디오 게시판에서
플레이리스트에 담기 버튼을
눌러보세요
목록 로그인
TODAY 가입1 게시글10 댓글53 방문53
TOTAL 회원58 게시글1,734 댓글3,937 방문56,642
현재 접속2
목록