전체 게시판을 지원하도록 꼬리표 목록 출력 위젯 수정하기

<

div class=”xe_content”>기본 위젯으로 존재하는 꼬리표 목록 출력(tag_list) 위젯은 게시물에 등록되어 있는 꼬리표의 리스트를 출력해 주는 위젯이다.

레이아웃 편집화면에서 꼬리표 목록 출력 위젯을 등록해 보도록 하자.

taglist_001.png

기본 스킨을 사용하여 코드를 생성한 후 생성된 코드를 복사하여 레이아웃 편집창에 붙여 넣는다.

taglist_002.png

저장을 누르면 화면에 표시되는 꼬리표 목록 출력 위젯을 볼 수 있다.

taglist_003.png

화면에 나타난 꼬리표를 클릭하면 정상적으로 잘 동작하는 것을 확인 할 수 있다.

그렇다면 하나의 게시판이 아닌 전체 게시판에 대한 꼬리표 목록을 출력해주도록 하려면 어떻게 해야하는지 알아보도록 하자.

일단 꼬리표 목록 출력 위젯 설정화면을 다시 살펴보도록 하자.

taglist_004.png

대상 모듈을 선택하는 항목이 다른 위젯처럼 복수개를 선택하거나 하나도 선택하지 않을 수 있게 되어있지 않다. 즉, 무조건 1개의 모듈을 선택해야 한다는 뜻이다.

그렇다면 레이아웃 편집화면을 다시 살펴보도록 하자.

taglist_005.png

위젯에 mid 라는 이름의 속성으로 선택한 모듈의 이름이 출력되고 있음을 확인할 수 있다. 그렇다면 이 mid 속성을 지우면 어떻게 될까?

taglist_006.png

위 화면처럼 mid 속성을 지운다음 저장하고 화면을 새로고침 해 보도록 하겠다.

taglist_007.png

화면을 새로고침하니 위의 화면처럼 모든 게시판에 대한 꼬리표 목록이 출력되는 것을 확인 할 수 있다. 이제 하나의 꼬리표를 클릭해 보도록 하자.

화면은 새로고침 되지만,  아무런 반응이 없을 것이다. 이것은 기존의 1개의 게시판에 대한 검색 코드가 다중 게시판에 맞지 않아 나타나는 현상이다. 하나의 게시판일 경우에는 게시판 목록 화면에서 선택한 꼬리표가 존재하는 리스트만 보여주도록 되어 있다. 그러나 다중 게시판일 경우에는 기준 게시판이 어디이며, 어느 항목을 기준으로 꼬리표를 검색할 것인지를 알 수 없게 되는 것이다.

그렇다면, 어떻게 보여줘야 제대로 보여줄 수 있을까?

꼬리표 목록에서 하나를 클릭하면 해당 꼬리표가 존재하는 게시물을 전체 검색하여 화면에 표시해주는 방법이 가장 적절할 것이다. 또한 꼬리표를 검색하여 리스트를 보여주는 기능은 이미 제로보드XE에 구현되어 있다.

기본으로 지원하는 검색기능을 수행해보도록 하자.

taglist_008.png

사용하는 레이아웃 스킨에 의해 틀릴 수 있으나 검색을 수행하니 기본으로 제목을 기준으로 검색하여 결과를 화면에 출력해주고 있다.

여기서 가장 중요한 것이 주소표시줄에 표시되는 검색변수들이다.

taglist_009.png

우리는 궁극적으로 태그를 통한 검색 리스트가 필요하므로 검색종류를 '태그' 로 변경한 후 다시 검색을 수행해 보도록 하자.

taglist_010.png

검색 결과는 잘 표시되나 주소표시줄에 표시되던 변수들이 다 보이질 않는다. 그렇다면 변수를 직접찾기위해 소스보기를 해보도록 하겠다.

taglist_011.png

소스코드에서 위와 같이 검색종류를 선택하는 부분을 발견 할 수 있다.

지금까지의 조사를 기반으로 우리가 원하는 목록표시를 위한 검색URL은

taglist_012.png

위의 화면과 같이 'mid=모듈명&act=IS&is_keyword=검색어&search_target=tag' 임을 발견하게 된다.

그러면 이제 꼬리표 클릭시 위의 URL로 연결되도록 수정해보도록 하자. 울트라 에디트(UltraEdit)를 사용하여 바로 수정하거나, 알FTP같은 FTP클라이언트 프로그램을 이용하여 파일을 다운받은다음 수정후 다시 업로드 하는 방법을 사용하면 된다. 여기에서는 울트라에디트를 이용해서 바로 수정해 보도록 하겠다.

울트라 에디트를 실행 한다음 FTP연결 메뉴로 이동한다.

taglist_013.png

제로보드XE가 설치되어 있는 계정을 이용하여 FTP로 접속한 후 '제로보드설치루트/widgets/tag_list/skins/blog_tag_list/tags.html' 파일을 오픈한다.

taglist_014.png

파일을 열어 코드를 보면 아래와 같은 코드를 볼 수 있다.

<!–@if($layout_info->mid)–>
    <a href=”{getUrl('','mid',$widget_info->module_name?$widget_info->module_name:$layout_info->mid,'search_target','tag','search_keyword',$val->tag)}”>{htmlspecialchars($val->tag)}</a>
<!–@else–>
    <a href=”{getUrl('','mid',$widget_info->mid?$widget_info->mid:$layout_info->mid,'search_target','tag','search_keyword',$val->tag)}”>{htmlspecialchars($val->tag)}</a>
<!–@end–>

$layout_info->mid 변수를 왜 비교하는지는 내 능력상 분석이 불가능 하였다. ㅠㅠ (아시는분 계시면 설명좀 부탁드리겠습니다.)

여기에서 중요한 부분은 <a> 태그의 href 속성에 전달되는 값 부분

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply