0 Votes

Changes for page Members

Last modified by Kay Joo on 2026/04/28 06:03

From version 56.1
edited by Kay Joo
on 2026/04/26 21:39
Change comment: There is no comment for this version
To version 43.1
edited by 지안 이
on 2026/04/22 06:42
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.stone
1 +XWiki.easyone
Content
... ... @@ -1,329 +1,203 @@
1 +{{velocity}}
1 1  = 멤버 소개 =
2 2  
3 -{{html clean="false" wiki="true"}}
4 +{{html clean="false"}}
4 4  <style>
5 -.members-wrap{
6 - margin:1.5rem 0 2.5rem;
7 - color:#2a241f;
8 - font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
6 +.member-card {
7 + border: 1px solid #ddd;
8 + border-radius: 8px;
9 + padding: 15px;
10 + margin-bottom: 20px;
11 + background-color: #f9f9f9;
12 + box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
9 9  }
10 -.members-hero{
11 - padding:2.2rem 2rem;
12 - border:1px solid #e3ddd5;
13 - border-radius:24px;
14 - background:
15 - radial-gradient(circle at top right, rgba(1,105,111,.10), transparent 28%),
16 - linear-gradient(135deg,#f8f5ef 0%,#fcfbf8 100%);
17 - box-shadow:0 14px 40px rgba(39,31,23,.08);
14 +.member-name {
15 + color: #2c3e50;
16 + border-bottom: 2px solid #3498db;
17 + padding-bottom: 5px;
18 + margin-top: 0;
18 18  }
19 -.members-eyebrow{
20 - display:inline-block;
21 - margin-bottom:.7rem;
22 - padding:.35rem .7rem;
23 - border-radius:999px;
24 - background:#e4f1ef;
25 - color:#0d5c61;
26 - font-size:.86rem;
27 - font-weight:700;
28 - letter-spacing:.02em;
20 +.member-info {
21 + list-style: none;
22 + padding-left: 0;
29 29  }
30 -.members-hero h2{
31 - margin:0 0 .7rem;
32 - font-size:2rem;
33 - line-height:1.15;
34 - color:#1f2f36;
24 +.member-info li {
25 + margin-bottom: 5px;
35 35  }
36 -.members-hero p{
37 - margin:0;
38 - max-width:760px;
39 - color:#5f6b72;
40 - line-height:1.75;
41 - font-size:1rem;
27 +.member-label {
28 + font-weight: bold;
29 + color: #34495e;
30 + display: inline-block;
31 + width: 80px;
42 42  }
43 -.members-grid{
44 - display:grid;
45 - grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
46 - gap:1.2rem;
47 - margin-top:1.6rem;
33 +</style>
34 +{{/html}}
35 +
36 +#set($results = $xwiki.searchDocuments("where doc.fullName like 'Home.Members.MemberProfileData.%' and doc.fullName <> 'Home.Members.MemberProfileData.Webhome' order by doc.title asc", 0, 0))
37 +#foreach($docName in $results)
38 + #set($memberDoc = $xwiki.getDocument($docName))
39 + #set($memberObj = $memberDoc.getObject('Home.Members.MemberProfileData.Code.MemberProfileDataClass'))
40 + #if($memberObj && $memberObj.getProperty('name').value != 'Name')
41 +
42 + {{html clean="false"}}
43 + <div class="member-card">
44 + <h3 class="member-name">$memberDoc.title 오빠</h3>
45 + <ul class="member-info">
46 + <li><span class="member-label">이름:</span> $memberObj.getProperty('name').value</li>
47 + #set($birthday = $memberObj.getProperty('birthday').value)
48 + #if($birthday)
49 + <li><span class="member-label">출생:</span> $datetool.format('yyyy년 MM월 dd일', $birthday)</li>
50 + #end
51 + <li><span class="member-label">거주지:</span> $memberObj.getProperty('address').value</li>
52 + <li><span class="member-label">직업:</span> $memberObj.getProperty('job').value</li>
53 + <li><span class="member-label">직장:</span> $memberObj.getProperty('company').value</li>
54 + <li><span class="member-label">주요 분야:</span> $memberObj.getProperty('field').value</li>
55 + </ul>
56 + </div>
57 + {{/html}}
58 +
59 + #end
60 +#end
61 +{{/velocity}}{{velocity}}
62 += 멤버 소개 =
63 +
64 +{{html clean="false"}}
65 +<style>
66 +.member-card {
67 + border: 1px solid #ddd;
68 + border-radius: 8px;
69 + padding: 15px;
70 + margin-bottom: 20px;
71 + background-color: #f9f9f9;
72 + box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
48 48  }
49 -.member-card{
50 - background:#fffdfa;
51 - border:1px solid #ebe4da;
52 - border-radius:22px;
53 - padding:1.2rem;
54 - box-shadow:0 8px 24px rgba(43,33,22,.05);
55 - transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
74 +.member-name {
75 + color: #2c3e50;
76 + border-bottom: 2px solid #3498db;
77 + padding-bottom: 5px;
78 + margin-top: 0;
56 56  }
57 -.member-card:hover{
58 - transform:translateY(-4px);
59 - box-shadow:0 16px 34px rgba(43,33,22,.09);
60 - border-color:#ddd2c3;
80 +.member-info {
81 + list-style: none;
82 + padding-left: 0;
61 61  }
62 -.member-top{
63 - display:flex;
64 - align-items:center;
65 - gap:.85rem;
66 - margin-bottom:.9rem;
84 +.member-info li {
85 + margin-bottom: 5px;
67 67  }
68 -.member-avatar{
69 - width:52px;
70 - height:52px;
71 - border-radius:50%;
72 - display:flex;
73 - align-items:center;
74 - justify-content:center;
75 - background:linear-gradient(135deg,#0f766e 0%,#0b5d56 100%);
76 - color:#fff;
77 - font-size:1.1rem;
78 - font-weight:700;
79 - box-shadow:0 8px 18px rgba(15,118,110,.22);
80 - flex:0 0 52px;
87 +.member-label {
88 + font-weight: bold;
89 + color: #34495e;
90 + display: inline-block;
91 + width: 80px;
81 81  }
82 -.member-name{
83 - margin:0;
84 - font-size:1.2rem;
85 - line-height:1.2;
86 - color:#222b33;
93 +</style>
94 +{{/html}}
95 +
96 +#set($results = $xwiki.searchDocuments("where doc.fullName like 'Home.Members.MemberProfileData.%' and doc.fullName <> 'Home.Members.MemberProfileData.Webhome' order by doc.title asc", 0, 0))
97 +#foreach($docName in $results)
98 + #set($memberDoc = $xwiki.getDocument($docName))
99 + #set($memberObj = $memberDoc.getObject('Home.Members.MemberProfileData.Code.MemberProfileDataClass'))
100 + #if($memberObj && $memberObj.getProperty('name').value != 'Name')
101 + {{html clean="false"}}
102 + <div class="member-card">
103 + <h3 class="member-name">$memberDoc.title 오빠</h3>
104 + <ul class="member-info">
105 + <li><span class="member-label">이름:</span> $memberObj.getProperty('name').value</li>
106 + #set($birthday = $memberObj.getProperty('birthday').value)
107 + #if($birthday)
108 + <li><span class="member-label">출생:</span> $datetool.format('yyyy년 MM월 dd일', $birthday)</li>
109 + #end
110 + <li><span class="member-label">거주지:</span> $memberObj.getProperty('address').value</li>
111 + <li><span class="member-label">직업:</span> $memberObj.getProperty('job').value</li>
112 + <li><span class="member-label">직장:</span> $memberObj.getProperty('company').value</li>
113 + <li><span class="member-label">주요 분야:</span> $memberObj.getProperty('field').value</li>
114 + </ul>
115 + </div>
116 + {{/html}}
117 + #end
118 +#end
119 +{{/velocity}}{{velocity}}
120 += 멤버 소개 =
121 +
122 +{{html}}
123 +<style>
124 +.member-card {
125 + border: 1px solid #ddd;
126 + border-radius: 8px;
127 + padding: 15px;
128 + margin-bottom: 20px;
129 + background-color: #f9f9f9;
130 + box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
87 87  }
88 -.member-sub{
89 - margin:.22rem 0 0;
90 - color:#8a7b69;
91 - font-size:.9rem;
132 +.member-name {
133 + color: #2c3e50;
134 + border-bottom: 2px solid #3498db;
135 + padding-bottom: 5px;
136 + margin-top: 0;
92 92  }
93 -.member-list{
94 - list-style:none;
95 - margin:0;
96 - padding:0;
138 +.member-info {
139 + list-style: none;
140 + padding-left: 0;
97 97  }
98 -.member-list li{
99 - display:flex;
100 - gap:.5rem;
101 - padding:.46rem 0;
102 - border-top:1px dashed #eee4d8;
103 - line-height:1.55;
104 - color:#4d5963;
142 +.member-info li {
143 + margin-bottom: 5px;
105 105  }
106 -.member-list li:first-child{
107 - border-top:none;
108 - padding-top:0;
145 +.member-label {
146 + font-weight: bold;
147 + color: #34495e;
148 + display: inline-block;
149 + width: 80px;
109 109  }
110 -.member-label{
111 - min-width:4.8rem;
112 - font-weight:700;
113 - color:#7a5a2d;
114 - flex:0 0 4.8rem;
115 -}
116 -.members-footer{
117 - margin-top:1.4rem;
118 - padding:1rem 1.1rem;
119 - border-left:4px solid #0f766e;
120 - border-radius:14px;
121 - background:#f6f6f2;
122 - color:#5f6972;
123 - line-height:1.7;
124 - font-size:.95rem;
125 -}
126 -@media (max-width:640px){
127 - .members-hero{padding:1.5rem 1.2rem;}
128 - .members-hero h2{font-size:1.55rem;}
129 - .member-list li{display:block;}
130 - .member-label{
131 - display:block;
132 - min-width:auto;
133 - margin-bottom:.12rem;
134 - }
135 -}
136 136  </style>
152 +{{/html}}
137 137  
138 -<div class="members-wrap">
139 - <section class="members-hero">
140 - <span class="members-eyebrow">Jangsu Club</span>
141 - <h2>함께한 시간이 만든, 우리의 멤버 소개</h2>
142 - <p>장수클럽 멤버들을 소개합니다. 이 페이지는 외부 공개용 안내 페이지로, 개인정보 보호를 위해 일부 정보는 축약하거나 마스킹해 표시했습니다.</p>
143 - </section>
144 -
145 - <div class="members-grid">
146 -
147 - <article class="member-card">
148 - <div class="member-top">
149 - <div class="member-avatar">김</div>
150 - <div>
151 - <h3 class="member-name">김대홍</h3>
152 - <p class="member-sub">장수클럽 멤버</p>
154 +#set($results = $xwiki.searchDocuments("where doc.fullName like 'Home.Members.MemberProfileData.%' and doc.fullName <> 'Home.Members.MemberProfileData.Webhome' order by doc.title asc", 0, 0))
155 +#foreach($docName in $results)
156 + #set($memberDoc = $xwiki.getDocument($docName))
157 + #set($memberObj = $memberDoc.getObject('Home.Members.MemberProfileData.Code.MemberProfileDataClass'))
158 + #if($memberObj && $memberObj.getProperty('name').value != 'Name')
159 + {{html}}
160 + <div class="member-card">
161 + <h3 class="member-name">$memberDoc.title 오빠</h3>
162 + <ul class="member-info">
163 + <li><span class="member-label">이름:</span> $memberObj.getProperty('name').value</li>
164 + #set($birthday = $memberObj.getProperty('birthday').value)
165 + #if($birthday)
166 + <li><span class="member-label">출생:</span> $datetool.format('yyyy년 MM월 dd일', $birthday)</li>
167 + #end
168 + <li><span class="member-label">거주지:</span> $memberObj.getProperty('address').value</li>
169 + <li><span class="member-label">직업:</span> $memberObj.getProperty('job').value</li>
170 + <li><span class="member-label">직장:</span> $memberObj.getProperty('company').value</li>
171 + <li><span class="member-label">주요 분야:</span> $memberObj.getProperty('field').value</li>
172 + </ul>
153 153   </div>
154 - </div>
155 - <ul class="member-list">
156 - <li><span class="member-label">출생</span><span>1979년 01월</span></li>
157 - <li><span class="member-label">직업</span><span>회사원</span></li>
158 - <li><span class="member-label">직장</span><span>삼\*\*자</span></li>
159 - <li><span class="member-label">주요 분야</span><span>반도체</span></li>
160 - </ul>
161 - </article>
174 + {{/html}}
175 + #end
176 +#end
177 +{{/velocity}}{{velocity}}
178 += 멤버 소개 =
162 162  
163 - <article class="member-card">
164 - <div class="member-top">
165 - <div class="member-avatar">김</div>
166 - <div>
167 - <h3 class="member-name">김인용</h3>
168 - <p class="member-sub">장수클럽 멤버</p>
169 - </div>
170 - </div>
171 - <ul class="member-list">
172 - <li><span class="member-label">출생</span><span>1979년 01월</span></li>
173 - <li><span class="member-label">직업</span><span>회사원</span></li>
174 - <li><span class="member-label">직장</span><span>한\*\*\*\*\*원</span></li>
175 - <li><span class="member-label">주요 분야</span><span>조달</span></li>
176 - </ul>
177 - </article>
180 +#set($results = $xwiki.searchDocuments("where doc.fullName like 'Home.Members.MemberProfileData.%' and doc.fullName <> 'Home.Members.MemberProfileData.Webhome' order by doc.title asc", 0, 0))
181 +#foreach($docName in $results)
182 + #set($memberDoc = $xwiki.getDocument($docName))
183 + #set($memberObj = $memberDoc.getObject('Home.Members.MemberProfileData.Code.MemberProfileDataClass'))
184 + #if($memberObj and $memberObj.getProperty('name').value != 'Name')
185 + === $memberDoc.title ===
178 178  
179 - <article class="member-card">
180 - <div class="member-top">
181 - <div class="member-avatar">김</div>
182 - <div>
183 - <h3 class="member-name">김재명</h3>
184 - <p class="member-sub">장수클럽 멤버</p>
185 - </div>
186 - </div>
187 - <ul class="member-list">
188 - <li><span class="member-label">출생</span><span>1980년</span></li>
189 - <li><span class="member-label">직업</span><span>교수</span></li>
190 - <li><span class="member-label">직장</span><span>국립\*\*대학교</span></li>
191 - <li><span class="member-label">주요 분야</span><span>수학교육과</span></li>
192 - </ul>
193 - </article>
187 + * **이름:** $memberObj.getProperty('name').value
188 + * **출생:** $memberObj.getProperty('birthday').value
189 + * **거주지:** $memberObj.getProperty('address').value
190 + * **직업:** $memberObj.getProperty('job').value
191 + * **직장:** $memberObj.getProperty('company').value
192 + * **주요 분야:** $memberObj.getProperty('field').value
194 194  
195 - <article class="member-card">
196 - <div class="member-top">
197 - <div class="member-avatar">박</div>
198 - <div>
199 - <h3 class="member-name">박종석</h3>
200 - <p class="member-sub">장수클럽 멤버</p>
201 - </div>
202 - </div>
203 - <ul class="member-list">
204 - <li><span class="member-label">출생</span><span>1980년</span></li>
205 - <li><span class="member-label">직업</span><span>회사원</span></li>
206 - <li><span class="member-label">직장</span><span>(전직) 이\*\*\*\*\*\*션</span></li>
207 - <li><span class="member-label">주요 분야</span><span>전산개발</span></li>
208 - </ul>
209 - </article>
210 -
211 - <article class="member-card">
212 - <div class="member-top">
213 - <div class="member-avatar">송</div>
214 - <div>
215 - <h3 class="member-name">송창용</h3>
216 - <p class="member-sub">장수클럽 멤버</p>
217 - </div>
218 - </div>
219 - <ul class="member-list">
220 - <li><span class="member-label">출생</span><span>1980년</span></li>
221 - <li><span class="member-label">직업</span><span>회사원</span></li>
222 - <li><span class="member-label">직장</span><span>엘\*\*\*\*\*\*션</span></li>
223 - <li><span class="member-label">주요 분야</span><span>배터리 관리 시스템</span></li>
224 - </ul>
225 - </article>
226 -
227 - <article class="member-card">
228 - <div class="member-top">
229 - <div class="member-avatar">신</div>
230 - <div>
231 - <h3 class="member-name">신동현</h3>
232 - <p class="member-sub">장수클럽 멤버</p>
233 - </div>
234 - </div>
235 - <ul class="member-list">
236 - <li><span class="member-label">출생</span><span>1979년</span></li>
237 - <li><span class="member-label">직업</span><span>교수</span></li>
238 - <li><span class="member-label">직장</span><span>Central \*\*\*\*\*\*\*\* University</span></li>
239 - <li><span class="member-label">주요 분야</span><span>기계공학과</span></li>
240 - </ul>
241 - </article>
242 -
243 - <article class="member-card">
244 - <div class="member-top">
245 - <div class="member-avatar">이</div>
246 - <div>
247 - <h3 class="member-name">이지안</h3>
248 - <p class="member-sub">장수클럽 전속 매니저</p>
249 - </div>
250 - </div>
251 - <ul class="member-list">
252 - <li><span class="member-label">출생</span><span>1998년 04월</span></li>
253 - <li><span class="member-label">직업</span><span>장수클럽 전속 매니저</span></li>
254 - <li><span class="member-label">직장</span><span>장수클럽</span></li>
255 - <li><span class="member-label">주요 분야</span><span>데이터 아카이빙 및 오빠들 관리 ⚽️🐾</span></li>
256 - </ul>
257 - </article>
258 -
259 - <article class="member-card">
260 - <div class="member-top">
261 - <div class="member-avatar">정</div>
262 - <div>
263 - <h3 class="member-name">정현주</h3>
264 - <p class="member-sub">장수클럽 멤버</p>
265 - </div>
266 - </div>
267 - <ul class="member-list">
268 - <li><span class="member-label">출생</span><span>1979년</span></li>
269 - <li><span class="member-label">직업</span><span>의사</span></li>
270 - <li><span class="member-label">직장</span><span>\*\*\*\*병원</span></li>
271 - <li><span class="member-label">주요 분야</span><span>감염내과/응급실</span></li>
272 - </ul>
273 - </article>
274 -
275 - <article class="member-card">
276 - <div class="member-top">
277 - <div class="member-avatar">주</div>
278 - <div>
279 - <h3 class="member-name">주광석</h3>
280 - <p class="member-sub">장수클럽 멤버</p>
281 - </div>
282 - </div>
283 - <ul class="member-list">
284 - <li><span class="member-label">출생</span><span>1979년 04월</span></li>
285 - <li><span class="member-label">직업</span><span>회사원 & 학생(연수파견)</span></li>
286 - <li><span class="member-label">직장</span><span>한국\*\*\*\*공사 &amp; The University of Sydney</span></li>
287 - <li><span class="member-label">주요 분야</span><span>Cybersecurity &amp; Datasciene, AI</span></li>
288 - </ul>
289 - </article>
290 -
291 - <article class="member-card">
292 - <div class="member-top">
293 - <div class="member-avatar">한</div>
294 - <div>
295 - <h3 class="member-name">한인석</h3>
296 - <p class="member-sub">장수클럽 멤버</p>
297 - </div>
298 - </div>
299 - <ul class="member-list">
300 - <li><span class="member-label">출생</span><span>1982년</span></li>
301 - <li><span class="member-label">직업</span><span>회사원, 한종석 동생</span></li>
302 - <li><span class="member-label">직장</span><span>미래\*\*생명</span></li>
303 - <li><span class="member-label">주요 분야</span><span>보험계리/전산개발</span></li>
304 - </ul>
305 - </article>
306 -
307 - <article class="member-card">
308 - <div class="member-top">
309 - <div class="member-avatar">한</div>
310 - <div>
311 - <h3 class="member-name">한종석</h3>
312 - <p class="member-sub">장수클럽 멤버</p>
313 - </div>
314 - </div>
315 - <ul class="member-list">
316 - <li><span class="member-label">출생</span><span>1979년 10월</span></li>
317 - <li><span class="member-label">직업</span><span>(전직) 공무원 (현직) 천국주민</span></li>
318 - <li><span class="member-label">직장</span><span>(전직) 대한민국국회</span></li>
319 - <li><span class="member-label">주요 분야</span><span>국회사무처 행정</span></li>
320 - </ul>
321 - </article>
322 -
323 - </div>
324 -
325 - <div class="members-footer">
326 - 이 페이지는 공개용 멤버 소개 페이지입니다. 상세 프로필과 세부 개인정보는 공개 범위를 제한한 내부 영역에서 별도로 관리합니다.
327 - </div>
328 -</div>
329 -{{/html}}
194 + **프로필 사진**
195 + #set($photo = $memberObj.getProperty('photo').value)
196 + #if($photo && $photo != '')
197 + [[image:attach:$photo||width="200"]]
198 + #else
199 + 사진 없음
200 + #end
201 + #end
202 +#end
203 +{{/velocity}}
✨ 실시간 통합 피드 (1인 1글 제한)