만약 글 목록을 SNS 스타일로 글제목+글요약+이미지 등의 정보를 모두 제공하는 것으로 하고 있다면 게시글의 정보중 중요한 것을 목록에서 보여주는 것도 좋습니다.
컨셉 자체가 그러한 컨셉이라면 말이죠.
이런 스타일로 꾸미기 좋게 만들어진 스킨이 바로 저희 라이믹스 꿀팁에서 사용하고 있는 flexstagrm 테마의 게시판 스킨 sns 스타일 일 것입니다.
요건 저희 라이믹스 꿀팁에 적용되어 태그가 입력되어 있는 글이 목록에서 부터 태그를 출력해 주고 있습니다. 글의 주제나 핵심을 파악하기 좋죠.
요건 동일한 스킨을 사용하고 있는 제가 운영하는 SNS 스타일의 커뮤니티에도 적용한 모습입니다.
flexstgram 스킨을 기준으로 설명을 해드리면
https://github.com/calvinsnax/rx-flextagram/blob/main/modules/board/skins/rx-flextagram/templates/sns/sns.html#L6
<li loop="$document_list=>$no,$document">
이런 게시글을 반복해서 목록을 출력하는 코드 안쪽(아래)에 각 게시글이 가지고 있는 태그를 가져오는 코드를 추가로 작성해 줍니다.
{@
$args = new stdClass();
$args->document_srls = $document->document_srl;
$tag_list = executeQuery('document.getDocumentTags', $args)->data->tags;
$tag_lists = [];
if ($tag_list) $tag_lists = explode(',', $tag_list);
}
위와 같이 작성해 주면 각 목록의 게시글들이 가지는 태그를 가져오게 됩니다.[1]
--> 라이믹스 2.0.18 버전 이상 사용자는 위 쿼리가 아닌 하단부의 설명된 코드로 사용하시기 바랍니다.
그리고 이제 저 가져온 태그를 출력해 주면 됩니다.
저의 경우는 글 요약부분이 끝나는 다음 줄에 출력을 해주었습니다.
https://github.com/calvinsnax/rx-flextagram/blob/main/modules/board/skins/rx-flextagram/templates/sns/sns.html#L40
위 부분이 요약을 출력하는 부분인데 요약 바로 아래로 문서가 가지는 태그를 출력할 수 있도록 코드를 추가합니다.
{nl2br($document->getSummary(200))}
<!--@if(count($tag_lists) > 0)--><br>
<block loop="$tag_lists=>$tag">
<span class="tag-list">#{$tag}</span>
</block>
<!--@end-->
위와 같이 코드를 추가해 주면 글요약 아래에 태그가 출력이 되는데 글자 색상등의 효과를 주기 위해 span 요소에 class를 부여 했습니다. 해당 class에 저는 글자 색상만 효과를 주었습니다.
지금 수정하는 파일에
<style>
span.tag-list {color: #649ed2;}
</style>
위와 같이 css style을 적당한 곳에 추가해 주면 글자 색상이 적용이 되는 것이죠.
일반적인 간단 목록에서는 필요가 없겠지만 저 처럼 SNS 형태로 목록을 제공한다면 추가해 볼만한 것 같습니다.
*참고사항 : 글 목록에서 글의 태그를 바로 가져올 수 없어 쿼리를 통해 가져오는 코드를 사용했습니다. 이부분 따로 쿼리 없이 바로 $document 에서 게시글의 태그도 포함해서 가질 수 있도록 이슈로 요청해 놓았습니다. 추후 이 이슈가 반영이 된다면 쿼리 없이 정보를 가져올 수 있을 것입니다.
https://github.com/rhymix/rhymix/issues/1867
해당 이슈는 처리가 되었네요.
https://github.com/rhymix/rhymix/commit/7e922cf2bc11e637822dc3b0edd1dfee0414c413
마스터버전으로 배포는 다음 버전에 될 것으로 예상됩니다.
[1] 위 패치를 미리 적용하시거나 혹은 정식으로 배포된 버전으로 라이믹스를 사용하게 되실 경우
위 설명중 태그를 가져오기 위해 쿼리하는 부분 없이 바로 태그를 가져오는 코드로 변경하시면 됩니다.
--> 라이믹스 2.0.18에서 패치가 적용되었습니다. 라이믹스 2.0.18 버전 사용자는 아래 변경된 코드로 사용하시면 됩니다.
{@
$args = new stdClass();
$args->document_srls = $document->document_srl;
$tag_list = executeQuery('document.getDocumentTags', $args)->data->tags;
$tag_lists = [];
if ($tag_list) $tag_lists = explode(',', $tag_list);
}
를 아래 코드로 변경하시면 됩니다.
↓↓↓↓↓
{@
$tag_lists = $document->get('tag_list') ?? array();
}