WCMS는 (주)워드앤코드에서 제공하는 콘텐츠 관리 솔루션이다

================================================================================

 

그럼 이제부터 게시판 스타일에 따르는 옵션들을 살펴보자

먼저 일반형 게시판 옵션이다.

 

 

 

옵션에는 공지사항을 게시물 목록 상단에 고정할지 여부를 묻는기능이 들어가 있으며 공지 고정개시물 갯수를 설정하게 된다.

공지게시물은 게시물 목록 상단에 항상 선택된 갯수만큼 따라 다닌다.

 

관리자 답변기능 - 관리자가 게시물에 대한 답변을 하는 기능이다. 관리자만이 답변이 가능하게 되어 있다

 

본인작성글만 읽기 - 회원제 게시판인 경우 본인 작성글에 대한 읽기 권한을 본인만 가지고자 할때 사용한다. 즉 관리자와 작성자만 글을 공유하게 된다

비밀글 사용여부 - 글을 작성시에 비밀번호를 입력하게 하여 비밀번호를 아는 경우만 글을 읽을 수 있게 하는 기능이다.

이 경우는 글목록에서 제목을 클릭하면 비밀번호 입력칸이 나타난다.

 

 

메인노출이미지 사용 - 메인페이지에 이미지를 노출하고자 할때 선택하면된다.

목록이미지 사용 - 목록에 이미지를 포함하는 경우 사용하면 되니다.

상기 모두 크기를 설정하면 그 크기에 해당하는 썸네일이 생성된다.

업로드는 무료업로드프로그램인 freeaspupload를 사용하였다

본문상단이미지 사용 - 본문에 별도로 상단 이미지를 사용하고자 하는 경우 사용한다.

총 5개까지 업로드가 가능하며 이 경우 롤링형태로 상단에 보여진디ㅏ.

기간사용여부 - 기간사용여부는 사용을 하게 되는 경우 모든 목록을 다보여주고 기간내의 게시물만 클릭이 되도록 하는 경우와 설정기간내 게시물만 보여주는 경우, 사용하지 않는 경우 이렇게 나누어진다

첨부파일은 일반업로드는 Input 박스에 타입을 파일로 해서 업로드 하는 것을 말하고

멀티 업로드는 플레시를 이용하여 한번에 정해진 파일갯수 만큼 업로드가 가능하도록 하는 것이다

 

 

첨부파일의 옵션을 이미지로 한경우는 첨부파일을 이미지(JPG, GIF, BMP, PNG)만 가능하도록 되어 있다.

목록연변 표시방법은 게시물 연번을 순차적으로 할것인지 역순으로 할것인지를 결정하는 것이다.

첨부파일목록본문노출 - 이경우 이미지파일을 본문에 쓰기 위해 사용한 경우 이미지 파일을 첨부파일에 보이지 않게 하기 위한 옵션이다.

 

목록정렬순서는 기본 등록일, 연번, 제목으로 구성되어 있지만 필드정보에서 목록에 노출되는 필드를 선택하면 목록정렬 필드를 그 목록에 나타나는 필드로 변경이 가능하다.

리스트 검색옵션은 통합검색인경우 제목, 이름, 내용, 설명에서만 검색을 하는것이고 필드검색은 검색필드를 필드정보에서 옵션으로 정의하면 그 필드에서 검색이 되도록 해주는 것이고 목록에는 검색필드 선택항목이 나타난다.

사이트 통합검색 적용하기 를 선택하면 생성게시판에 대한 게시물이 풀텍스트인덱싱 검색에 포함되어지게 되는것을 의미한다.

 

상기 내용이 일반적인 옵션설정기능이다

지금까지 여러군데(성남시청, 예술경영, 마리나, 연극센터, 패션협회) 등에 적용해본 결과 가장 이상적인 옵션이라서 현재 여기까지 적용을 하고 있다.

 

그럼 기능설정을 살펴보자

 

기능설정을 살펴보면

게시물 표시설정, 페이징 사용, 게시물표시갯수 등 기본적인 것들을 포함하고 있다

제목글자수 제한은 목록에 표현되는 글자수 갯수를 의미한다. 제목을 설정글자수만큼만 입력가능하다는것이 아니다. 요약글 또한 목록에 보여지는 글자수를 의미하는 것이고 제목은 250바이트 요약글은 제한이 없이 입력이 가능하다

그리고 본문에 이전글 다음글 표시여부와 목록과 본문에 보여지는 날짜포맷을 정의하게 되어 있다

 

그리고 요즘 많이 사용하는 에디터 사용여부를 관리자와 사용자 글쓰기에 적용여부를 선택하게 되어 있다

그리고 회원제가 아닌경우 보안문자를 사용하여 스팸성 글 등록을 방지하는 기능도 옵션으로 주어져 있다

 

링크주소 바로연결은 제목에서 클릭을 하면 본문을 보는것이 아니라 바로 링크된 주소로 가는것을 말한다. 이때는 관련 URL을 입력한 경우만 해당된다.

첨부파일 본문 노출여부는 첨부파일이 이미지인경우 본문 상단에 이미지로 노출할것인지를 묻는것이고 그 크기를 지정하면 썸네일로 생성된다.

관리자 메일 주소는 새글 작성시 관리자에게 메일을 발송하기 위한 것이고 답변시 메일은 관리자가 답변을 남겼을때 사용자에게 메일로 그 결과를 알려주기 위한 옵션이다.

이때 메일 보내는 폼에 대한 URL을 지정하면 그 폼대로 글이 작성되어 보내어진다

 

그외 복사기능, 프린트기능, 이메일 전송기능을 옵션으로 제공하며 대표 SNS에 대한 글 보내기 기능이 추가 되어 있다.

새글 적용이미지와 적용기간을 선택할 수 있다.

 

이상이 일반형 게시판의 옵션설정 내용이다

 

다음 포스트에서는 유사하지만 각 스타일별 게시판에 대한 내용을 간략하게 설명하고자 한다.

 

top


WCMS는 (주)워드앤코드에서 제공하는 콘텐츠 관리 솔루션이다

================================================================================

 

이제 게시판 생성에 따른 설정화면을 살펴보자

 

 1. 게시판 일반설정

 

먼저 일반 설정을 살펴보자

게시판 코드는 게시판 테이블의 기본이름이 되는 정보이다.

따라서 DB에 테이블이 존재하는지를 체크해야 한다.

 

db명.information_schema.tables에서 table_name에 대한 검색을 하면 알수 있다

 

예를 들면

DB명을 CMS로 하고 만들려고 하는 테이블이 NOTICE이면

 

select table_name from CMS.information_schema.tables where table_name = 'NOTICE'

로 쿼리를 날리면 알수 있다.

 

다음에 게시판 이름을 영문이든 한글이든 적어준다.

만약 게시판 이름대신 이미지를 사용할겨우는 타이틀 이미지를 입력하면 된다

타이틀 이미지를 입력하면 게시판 표시시 게시판 이름이 아닌 이미지로 표현이 된다.

옵션으로 게시판에 대한 간략한 설명을 입력하면 된다.

 

이것이 가장 기본적인 설정이다

 

2. 게시판 권한설정

 

게시판 권한설정을 살펴보자

 

먼저 게시판 스타일을 선택해야 한다.

일반형, 컨텐츠형, 문의형, 링크형, 웹진형, 갤러리형으로 구성되어 있다

권한은 총 10개의 권한으로 구성되어 있다.

권한은 XML로 만들어져 있으며 XML을 수정하면 바로 반영된다

 

<Item>
  <xGrade>1</xGrade>
  <xTitle><![CDATA[일반사용자]]></xTitle>
  <xVisible>TRUE</xVisible>
 </Item>
 <Item>
  <xGrade>2</xGrade>
  <xTitle><![CDATA[준회원]]></xTitle>
  <xVisible>FALSE</xVisible>
 </Item>
 <Item>
  <xGrade>3</xGrade>
  <xTitle><![CDATA[회원]]></xTitle>
  <xVisible>TRUE</xVisible>
 </Item>
 <Item>
  <xGrade>4</xGrade>
  <xTitle><![CDATA[우수회원]]></xTitle>
  <xVisible>FALSE</xVisible>
 </Item>
 <Item>
  <xGrade>5</xGrade>
  <xTitle><![CDATA[특별회원]]></xTitle>
  <xVisible>FALSE</xVisible>
 </Item>
 <Item>
  <xGrade>6</xGrade>
  <xTitle><![CDATA[관리자]]></xTitle>
  <xVisible>TRUE</xVisible>
 </Item>
 <Item>
  <xGrade>7</xGrade>
  <xTitle><![CDATA[중간관리자]]></xTitle>
  <xVisible>FALSE</xVisible>
 </Item>
 <Item>
  <xGrade>8</xGrade>
  <xTitle><![CDATA[특별관리자]]></xTitle>
  <xVisible>FALSE</xVisible>
 </Item>
 <Item>
  <xGrade>9</xGrade>
  <xTitle><![CDATA[부최고관리자]]></xTitle>
  <xVisible>FALSE</xVisible>
 </Item>
 <Item>
  <xGrade>10</xGrade>
  <xTitle><![CDATA[최고관리자]]></xTitle>
  <xVisible>TRUE</xVisible>
 </Item>

 

기본적으로 상기와 같이 적용되어 있다

여기서 xVisible를 TRUE로 한것만 권한보기에서 나타난다.

 

권한설정은 목록보기, 글읽기, 글쓰기, 덧글(답글)쓰기로 구성되어 있으며 회원권한을 사용할시에는 로그인URL에 로그인주소를 적으면된다.

예) /member/login.asp?returnurl={RETURNURL}

로그인 URL에서 리턴값으로 게시판URL을 받고자 할시에는 리턴 변수에 {RETURLURL}를 붙여주면된다.

 

일반게시판, 웹진형, 갤러리형은 목록보기, 글읽기, 글쓰기, 덧글(답글)쓰기가 모두 활성화되며 권한입력을 해야 한다.

컨텐츠형게시판인경우 사용자에게는 글읽기만 존재하기 때문에 글읽기 권한만 활성화가 되고 나머지는 비활성화가 된다

문의형은 글쓰기만 활성화가 된다

링크형은 목록보기와 글쓰기가 활성화된다.

 

다음 포스트에서는 각 게시판스타일에 따른 옵션과 기능설정에 대해서 살펴보자

 

 

 

top


WCMS는 (주)워드앤코드에서 제공하는 콘텐츠 관리 솔루션이다

================================================================================

 

게시판을 생성하고 그 목록을 관리하는 초기 화면을 만들고자 한다.

먼저 그림을 보고 이해하는게 빠를것 같다.

 

 

 

위의 그림에서 보듯이 게시판 종류에 따른 게시판 생성목록을 보여준다.

게시판 아이디, 게시판 이름, 그리고 게시판에 대한 주소만 있으면 사이트 어디서든 사용할 수 있도록 주소복사기능, 게시판에 대한 수정, 게시판 사용상태 등을 목록으로 보여준다.

 

물론 이부분도 XML과 XSL로 처리한다.

 

게시판 목록은 DB대신 XML을 이용하기로 했다.

xSeq : 순차번호

xGubun : 게시판 구분,

             이것은 DB명을  입력하게 하여 DB정보를 따로 가져오는 번거로움을

             피하고자 한다.

xBoardCD : 게시판 코드,          

            여기 적히는 코드는 반드시 영문자로 해야 하면 이 코드로 게시판을

            생성할것이다

            예를들어 BBS_NOTICE_TB(기본테이블), BBS_NOTICE_HT(히스토리테이블),

            BBS_NOTICE_SUB(파일 테이블), BBS_NOTICE_RE(댓글테이블) 등을 생성할때

            사용되어 질 이름이다.

xBoardNm : 게시판 이름

xBoardStyle : 게시판의 스타일정보 ,

            1-일반형 게시판, 2-컨텐츠형 게시판, 3-문의형게시판, 4-링크형게시판,

            5-웹진형게시판, 6-갤러리형게시판

xBoardMode : 게시판 모드, 3가지로 구분된다. BOARD, WEBZINE, PHOTO

            웹진형, 갤러리형만빼고는 모두 게시판 1개의 형태를 변형하면 될것

            같아 3개로 구분했다

xBoardTitle : 게시판 타이틀 이미지,

            게시판 타이틀 이미지가 있는 경우는 게시판 이름대신 타이틀 이미지를 보여준다.

xBoardRegdate : 게시판 생성일자

xBoardDeldate : 게시판 삭제일자

xBoardDelflag : 게시판 삭제 여부

 

이렇게 게시판 생성목록을 XML로 표시해준다

 

예)

 <Item>
  <xSeq>1</xSeq>
  <xGubun>wncode_code0113</xGubun>
  <xBoardCD>NOTICE</xBoardCD>
  <xBoardNm>NOTICE</xBoardNm>
  <xBoardStyle>1</xBoardStyle>
  <xBoardMode>BOARD</xBoardMode>
  <xBoardTitle></xBoardTitle>
  <xBoardRegdate>2013-04-08</xBoardRegdate>
  <xBoardDeldate></xBoardDeldate>
  <xBoardDelflag>N</xBoardDelflag>
 </Item>

 

 

그리고 위의 게시판목록 XML을 이용하여 그림처럼 스타일이 나오도록 XSLT를 만들어줘서

서로 연결시킨다.

 

 

XSLT는 table테그를 써서 게시물 목록을 표현해준다.

상단에는 목록이름을 정의해주고 하단에는 XML에서 가져온 데이타를 조건에 따라 뿌려주는 작업을 해주면 된다

 

소스를 살펴보면 아래와 같아.

 

    <table class="bbsListA" summary="게시판 관리 게시물 입니다.">
     <caption>게시판 관리</caption>
     <colgroup>
      <col width="6%" />
      <col width="15%" />
      <col width="24%" />
      <col width="9%" />
      <col width="10%" />
      <col width="10%" />
      <col width="12%" />
      <col width="6%" />
      <col width="8%" />
     </colgroup>
     <thead>
      <tr>
       <th scope="col" class="no">번호</th>
       <th scope="col">게시판ID</th>
       <th scope="col">게시판이름</th>
       <th scope="col">주소복사</th>
       <th scope="col">생성일</th>
       <th scope="col">삭제일</th>
       <th scope="col">정보수정</th>
       <th scope="col">상태</th>
       <th scope="col">비고</th>
      </tr>
     </thead>
     

여기서 부터는 게시판 목록을 뿌려준다.
     <xsl:for-each select="//Item">
      <xsl:sort select="xSeq" data-type="number" order="descending"/>
      <tr>
       <td><xsl:value-of select="(//totalcnt + 1) - ((//curpage - 1) * 10 + position())" /></td>       
       <td class="aL">
        <xsl:value-of select="xBoardCD" disable-output-escaping="yes"/>
       </td>
       <td class="aL"><xsl:value-of select="xBoardNm" disable-output-escaping="yes"/>
       </td>
       <td>
        <xsl:element name="a">
         <xsl:attribute name="href">#</xsl:attribute>
         <xsl:attribute name="onclick">getCopyContent('게시물목록주소?gubun=<xsl:value-of select="xGubun"/>&amp;board_cd=<xsl:value-of select="xBoardCD"/>')</xsl:attribute>
         <span class="aw_fh btnPd"><![CDATA[복사]]></span>
        </xsl:element>
       </td>
       <td><xsl:value-of select="xBoardRegdate" disable-output-escaping="yes"/></td>
       <td><xsl:value-of select="xBoardDeldate" disable-output-escaping="yes"/></td>
       <td>
        <xsl:element name="a">
         <xsl:attribute name="href">게시판 정보수정주소?mode=modify&amp;gubun=<xsl:value-of select="xGubun"/>&amp;board_cd=<xsl:value-of select="xBoardCD"/>&amp;curpage=<xsl:value-of select="//curpage"/></xsl:attribute>
         <span class="aw_fh btnPd"><![CDATA[정보수정]]></span>
        </xsl:element>
       </td>
       <td>
        <xsl:choose>
         <xsl:when test="xBoardDelflag = 'Y' ">
          <![CDATA[비활성]]>
         </xsl:when>
         <xsl:otherwise>
          <![CDATA[활성]]>
         </xsl:otherwise>
        </xsl:choose>
       </td>
       <td>
        <xsl:element name="a">
         <xsl:attribute name="href">#</xsl:attribute>
         <xsl:attribute name="onclick">fnDelBoard('<xsl:value-of select="xGubun"/>','<xsl:value-of select="xBoardCD"/>','<xsl:value-of select="xBoardDelflag"/>')</xsl:attribute>
         <xsl:choose>
          <xsl:when test="xBoardDelflag = 'Y' ">
           <span class="aw_fh btnPd"><![CDATA[복구]]></span>
          </xsl:when>
          <xsl:otherwise>
           <span class="aw_fh btnPd"><![CDATA[비활성]]></span>
          </xsl:otherwise>
         </xsl:choose>
        </xsl:element>
       </td>
      </tr>
     </xsl:for-each>
     

여기는 게시판 목록이 많을 경우 페이징 처리를 해준다.     
    <!--paginate -->
    <div class="paginate"><xsl:value-of select="//paging"  disable-output-escaping="yes"/></div>
    <!--//paginatet -->
 </xsl:template>    
 <xsl:template name="DisplayPage">
 
  [<xsl:for-each select="//boardlist/pages/page">
   <xsl:choose>
    <xsl:when test="@start = '-1'">
     <xsl:value-of select="@no"/>
    </xsl:when>
    <xsl:otherwise>
     <a><xsl:attribute name="href">현재페이지주소?gubun=<xsl:value-of select="@gubun"/>&amp;curpage=<xsl:value-of select="@no"/>&amp;start=<xsl:value-of select="@start"/></xsl:attribute>
     <xsl:value-of select="@no"/></a><xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;&nbsp;]]></xsl:text>
    </xsl:otherwise>
   </xsl:choose>
  </xsl:for-each>]
 

위와 같이 게시판 테이블 스타일을 정의해 줬다

 

이제 다음글에서 게시판 생성에 대한 부분을 살펴보자

 

top