웹마스터 팁
관리자 페이지 날짜 검색과 스크랩.
2014.12.24 02:16
이슈라고 하긴 좀 그렇고, 질문도 아니고, 팁이라고 하기엔 작은 바람이고, 일반 사이트 얘기도 아닌 XE 얘기고.
그렇다고, 포럼에 쓰자니 에디터 위에 있는 주의사항이 좀 무섭고;;
어디다 써야 하나 한참 고민하고 돌아 다니다가 결국 여기에 씁니다.
1. 스크랩.
'이 게시물을' <- 요걸 버튼으로 빼려고 아이콘을 검색했습니다.
바로 스크랩 버튼.
font awesome도 뒤지고, bootstrap 콤포넌트도 뒤져 봤지만 마땅한게 없더군요.
구글에 물어보니 아이콘 모음만 잔뜩 나오는데, 특이한건 재활용 마크가 많다는 것입니다.
어렸을 때, 잡지 오려 모으고, 신문 기사 오려 모으던걸 스크랩한다며 지금껏 써 온 단어인데 뭔가 이상합니다.
scrap : (특히 종이・옷감 등의) 조각, 조금, (식사 때 먹고) 남은 음식, (재활용할 수 있는) 폐품 - 출처 : 네이버 사전
뭐, 이렇더군요.
게시판을 책이나 신문, 잡지 따위로 봤을 때, XE의 스크랩 기능은 북마크에 가깝지 않나 하는 생각이 들었습니다.
해당 게시물을 그대로 가져와서 내 계정에 담는게 아니라, 단지 링크만 가져오는 것이니까요.
그렇다면, '스크랩'이란 말 대신 '북마크' 또는 '책갈피'가 옳지 않을까 합니다.
그래서, font awesome에서 fa-bookmark를 선택하고,
<item name="cmd_view_scrapped_document"> <value xml:lang="ko"><![CDATA[스크랩 보기]]></value> <item name="msg_alreay_scrapped"> <value xml:lang="ko"><![CDATA[이미 스크랩된 게시물입니다.]]></value> line 1158 (cmd_view_scrapped_document) : 책갈피 보기 line 1206 (msg_alreay_scrapped) : 이미 책갈피를 꽂은 게시물입니다.
이렇게 수정 했습니다.
2. 관리자 페이지 날짜 검색.
회원 목록에서 가입한 날짜나 마지막 로그인 날짜를 검색할 때 약간 문제가 있습니다.
날짜를 따질 때 '이전', '이후'를 얘기하는데, 두 단어는 '이하<=', '이상>='과 같습니다.
곧, 기준 날짜를 포함하는 것이지요.
지금 XE에서 날짜 검색은, 검색하는 날짜 뒤에 '00000000000000'을 붙인 뒤 맨 앞에서부터 14개만 가져 옵니다.
'YYYYMMDDHHMMSS' 형태로 만드는 것이죠. (php : ymdhis)
이후를 검색할 때는 문제 없으나, 이전이 문제입니다.
예를들어, 2014년 12월 13일 이전을 검색하면 다음과 같이 검색 문자열이 만들어지죠.
'20141213000000'
이건 기준 날짜인 2014년 12월 13일을 포함하지 않고 그 전 날짜인 12일 이전만 검색하게 됩니다.
상식으로는 13일 23시 59분 59초 이전 것은 다 검색해야 하는데 말이죠.
그래서, 아래와 같이 수정하면 좀 더 정확한 검색이 되지 않을까 합니다.
case 'regdate_less' : $args->s_regdate_less = substr(preg_replace("/[^0-9]/","",$search_keyword) . '00000000000000',0,14); break; case 'regdate_less' : $dateless_tmp = preg_replace("/[^0-9]/","",$search_keyword); if( (strlen($dateless_tmp)%2) == 0 && (strlen($dateless_tmp)>=4 && strlen($dateless_tmp)<=12) ) { $args->s_regdate_less = $dateless_tmp . substr( '1231235959', -14 + strlen($dateless_tmp) ); } else { $args->s_regdate_less = substr($dateless_tmp . '00000000000000',0,14); } break;
조건은, 입력한 날짜의 글자 수가 짝수이면서, between 4 and 12 일 경우만 따집니다.
홀수이거나 4개 미만은 'YYYYMMDDHHMMSS' 규칙에 어긋나기 때문에 기존 방식으로 하고, 14개인 경우도 이미 완성된 것이기 때문에(또는 substr 함수 때문에) 기존 방식으로 합니다.
regdate_less 아래 쪽에 last_login_less 도 같은 방식으로 적용하면 되겠지요.
여기에 좀 더 친절하고자 한다면, modules/member/tpl/member_list.html의 <select name="search_target" ...>에 change 이벤트 하나 걸어서 날짜 검색일 경우 placeholder="YYYYMMDDHHMMSS" 하나 넣으면 아주 좋겠지요.
한동안 늦은 밤까지 일 하느라 지쳐 있던 터에 잠깐 주절 거렸습니다.
또 뵙겠습니다.
아. 팁게가 어울리는 곳이었군요.
옮겨주신 것 감사합니다.
글 내용 가운데, 11을 23으로 고쳤습니다.
비몽사몽에 썼더니 정신이 없었나 봅니다.