묻고답하기
xe_tags 테이블에 태그를 등록하는 방법 문의드립니다.ㅠㅠ
2017.07.12 20:26
게시물에 tag를 수동으로 달아주려고 xe_documents 테이블에서 일일이 태그를 입력했습니다.
phpMyAdmin에서 심플한 mysql 쿼리문을 사용해 검색해서 열심히 입력했죠.^^;;
그런데 태그 검색을 해보니 검색결과에 안나오더군요. OTL
xe_documents 테이블의 tags 컬럼을 검색하는게 아니라 xe_tags 테이블을 별도로 두고 거기에서 검색하는가 보더군요.
역시 성능을 위해서...
그럼 documents의 tags를 가져와서 xe_tags 테이블에 XE의 시스템에 적합하게 입력하려면 어떻게 해야할까요?ㅠㅠ
글 등록할 때 실행되는 명령어에 tag를 등록하는 명령이 딸려있을꺼 같은데 그걸 어케 응용하면 될듯하기도한데
힌트라도 좀 부탁드립니다.
- [2016/03/03] 묻고답하기 꼬리표(태그) 가나다 순으로 정렬 어떻게 하나요? *3
- [2015/11/29] 포럼 네이버 웹마스터도구 개편 *7
- [2015/09/17] 묻고답하기 태그에 제목을 넣을수 있을까요?
- [2015/05/12] 묻고답하기 태그 입력 필수
- [2014/05/02] 묻고답하기 게시판 글쓰기 후 태그를 숨기고 싶어요... *4
댓글 3
-
sejin7940
2017.07.13 13:18
-
씨지크
2017.07.13 14:31
아 그렇군요. 임시로나마 그렇게라도 해봐야겠네요.
<query id="getDocumentListWithinTag" action="select"> <tables> <table name="documents" alias="documents" /> <table name="tags" alias="tags" /> </tables> <columns> <column name="documents.document_srl" /> <column name="documents.list_order" /> </columns> <conditions> <condition operation="in" column="documents.module_srl" var="module_srl" filter="number" /> <condition operation="notin" column="documents.module_srl" var="exclude_module_srl" filter="number" pipe="and" /> <condition operation="equal" column="documents.document_srl" default="tags.document_srl" notnull="notnull" pipe="and" /> <condition operation="in" column="documents.category_srl" var="category_srl" filter="number" pipe="and" /> <condition operation="equal" column="documents.member_srl" var="member_srl" filter="number" pipe="and" /> <condition operation="like" column="tags.tag" var="s_tags" notnull="notnull" pipe="and" /> <condition operation="in" column="documents.status" var="statusList" pipe="and" /> </conditions> <navigation> <index var="sort_index" default="documents.list_order" order="order_type" /> <list_count var="list_count" default="20" /> <page_count var="page_count" default="10" /> <page var="page" default="1" /> </navigation> <groups> <group column="documents.document_srl" /> </groups> </query>
이걸...
<query id="getDocumentListWithinTag" action="select"> <tables> <table name="documents" /> </tables> <columns> <column name="document_srl" /> <column name="list_order" /> </columns> <conditions> <condition operation="in" column="module_srl" var="module_srl" filter="number" /> <condition operation="notin" column="module_srl" var="exclude_module_srl" filter="number" pipe="and" /> <condition operation="in" column="category_srl" var="category_srl" filter="number" pipe="and" /> <condition operation="equal" column="member_srl" var="member_srl" filter="number" pipe="and" /> <condition operation="like" column="tags" var="s_tags" notnull="notnull" pipe="and" /> <condition operation="in" column="status" var="statusList" pipe="and" /> </conditions> <navigation> <index var="sort_index" default="list_order" order="order_type" /> <list_count var="list_count" default="20" /> <page_count var="page_count" default="10" /> <page var="page" default="1" /> </navigation> <groups> <group column="document_srl" /> </groups> </query>
이렇게 고쳐보니 검색이 되긴됩니다 !
잘 한거 맞나요? ^^;;
뭔가 잘못 고친 부분이 있는건 아닌지... 조마조마 하지만..
스키마 수정을 스스로 해내다니 기특기특...정말 감사합니다.
태그 연관글 애드온이 작동을 안하는거 같아서 제대로 고치긴 고쳐야할것 같네요. ㅠㅠ
tag.controller.php에 triggerInsertTag라는 메소드가 있던데
특정 게시판의 document를 읽어와서 triggerInsertTag를 실행하는 php 페이지를 따로 하나 만들어봐야겠네요.
이러다 큰 사고 나는거 아닌지 모르겠어요.ㅎㅎㅎ -
sejin7940
2017.07.13 15:56
제가 알려드린 편법은...
태그 위젯 이나 태그 연관글 애드온 등에서는 정상 작동 안 할 거예요..
documents 테이블에는 적은 태그들이 전부 , 로 구별되어 들어있고
이게 저장될때 tags 테이블에 , 를 기준으로 구분해서 다 따로따로 등록을 해두거든요애드온이나 위젯등은 이 각각의 태그를 기준으로 행위를 하기에...
tags 테이블 자체를 안 쓰시는 이상 제대로 안 될거예요위젯이나 애드온까지 쓰려면, 태그 입력된 글 저장시
tags 테이블에도 저장되게 하셔야할거예요 ( 원래 XE 는 그렇게 되도록 되어있죠 )
현재 상황에서.
만약 게시판에서 태그검색 형태로만 사용하신다면 ( 통합검색 이나 태그위젯 이런거 말고 )
modules/document/queries/getDocumentListWithinTag.xml 파일을 직접 수정하시는 방법도 있습니다
documents 와 tags 테이블을 join 하게 되어있는데, 순수 documents 테이블만 이용하게 하는거죠