본문 바로가기
재밌는 IT 개발/그누보드 테마 제작기(記)

그누보드 테마 제작 09 - 중간 정리

by 만수킴 2020. 6. 21.

6월 10일에 해보자 라고 맘을 먹었으니... 벌써 보름정도가 지나고 있네요.
이제 로그인 회원가입 정도 끝내고...  끝날려면 아직 한참 남았겠습니다.

(
   저 말고도 테마를 만들고 싶은 분들이 많이 있으실텐데,
   허접한 실력이지만 도움이 될까 하여 정리 글을 남겨봅니다.
)
라고 적고 싶지만, 큰 도움이 안될거란걸 알기에 ^^
저만의 메모장이라고 생각하고 남겨봅니다. ㅎㅎ

현재 그누사이트에서 "테마제작"으로 검색하면,
 - https://sir.kr/faq/58     - 그누보드5 테마 - 구조, 상수, 파일용도
 - https://sir.kr/faq/59     - 그누보드5 테마 - 테마제작

위 두개 글이 제일 좋은 것 같더라구요.
그누보드의 디렉토리 구조나, 전반적인 설명이 아주 잘 정리가 되어 있는 듯 합니다.
그러니 전...
걍 테마를 만들면서 어려웠던 점이나
추후 다른 테마를 만들때 참고가 되는 것들을 적어보겠습니다.

일단 테마 개발 순서부터 정해보겠습니다.

  1. 메인 페이지
    • 전 아무 생각없이 메인부터 했지만, 해보고 나니 사이트의 전체적인 형태를 잡게 되더라구요.
    • head.php, head.sub.php, tail.php, tail.sub.php에 어떤 코드까지 넣을지가 정해지게 되고,
    • 여러 CSS나, JS의 위치를 정하는데 시간이 많이 걸렸던걸로 기억됩니다. (특히 add_stylesheet 함수때문에 시간을 엄청 소비했습니다.)
    • 해외 템플릿이다보니 jquery가 없더군요... 뭐지 했습니다만, 걍 그누의 js도 같이 넣어버렸습니다. 별 문제는 없더군요.
  2. 회원가입 페이지
    • 기본 설정으로 가면 가입시 작성항목이 몇개 안되지만, 실제는 엄청 많더라구요
    • 꼭 관리자에서 모든 항목을 작성하도록 설정하신 뒤, 작업을 진행하세요.
    • SNS계정을 연동할거라면, SNS들에 가입부터 키값까지 다 받아야 하는 번거로움이... 미리 해두시면 좋을 것 같아요. 걍 나중에 처리하시는것도 방법일 듯요.
  3. 로그인/아웃 페이지
    • 전체 화면에 대한 틀을 다시 한 번 확인할 수 있습니다.
    • 전체화면이기에 head.php와 head.sub.php 를 한 번 더 정리하게 됩니다.
  4. 회원정보 찾기 (이하는 이제 저도 해야 하는 작업이라서요 ^^ 계속 정리해보겠습니다.)
  5. 회원비밀번호 확인
  6. 메뉴 리스트 (템플릿과 상이하여 어케 맞출 지 고민되네요.)
  7. 정보수정 페이지
  8. 포인트 (위까지 고생했으니, 쉬어가는 타임으로 간단한 것들 진행)
  9. 쪽지
  10. 스크랩
  11. 게시판
    • 일반 게시판 (자유게시판)
    • 갤러리 게시판
  12. 새글 (전체검색과 새글 중 어떤 걸 먼저하는 것이 좋을까?)
  13. 전체 검색
  14. 새글
  15. 1:1 문의(Q&A)
  16. FAQ
  17. 접속자
  18. 투표(POLL)
  19. 위젯 (회원정보, 접속자집계, 투표)
  20. 회사소개/개인정보처리방침/서비스이용약관
  21. 메일 발송 폼
    • 회원가입, 회원정보찾기, 게시글 등록 등...
  22. SNS 계정 연동
    • 회원가입, 로그인/아웃
  23. 뭐가 더 있을 것 같은데....
    • 최종 정리나 중간 중간에 채워넣을게요.

 

  

 

그 다음 테마 제작하면서 얻은 것들?

  1. add_stylesheet() 함수가 먹히지 않을 때
  2. 우편번호 찾기 레이어 위치 잡아주기.
    • 기본 그누보드 테마는 "주소검색"을 누르면 기본 주소 위에 팝업이 뜨게 되어 있더라구요.
    • 원하는 위치에 띄우려면 아래 코드를 원하는 곳에 넣으시면 고정이 됩니다.
      그누보드 우편번호 팝업 위치 고정 팁
  3. 자동등록방지와 같은 기본 그누보드 템플릿에 맞춰진 함수들
    • 이런것들은 테마 디렉토리에 있는 것들이 아니라서, 수정해버리면 다른 테마 적용시에 문제가 생기더라구요.
    • 그래서 전 테마 내에서만 어떻게든 해보려고 했습니다.
    • thmem.config.php를 아래와 같이 바꾸고
      그누보드 테마 theme.config.php 수정 코드
    • 신규 테마에서 사용할 자동등록방지 함수를 새로 만들었습니다.(별도의 lib 파일을 만들어서요.) 그래서 위에 보시면 별도 상수를 만들었습니다.
    • /theme/mt703/lib/mt703.lib.php
      그누보드 captcha html 생선 함수 변경
  4. 어쩔 수 없이 테마 디렉토리가 아닌 기본 파일을 건드려야 하는 경우
    • 이때 다른 테마 또는 관리자에 영향을 주지 않기 위하여 IF문을 꼭 삽입하자.
    • 예) 전체화면이 아닌 기본 화면을 전체화면으로 사용해야 하는 경우
      그누보드 테마 별 전체화면 변경 적용 위한 수정
  5. 로그인한 유저의 포인트, 스크랩수, 읽지 않은 쪽지 수를 가져오는 로직은 outlogin.lib.php의 outlogin함수에 있다.
    • 새로 만드는 테마에서 저 함수를 호출하지 않는 이상, 출력할 수 없음.
    • 전 호출하지 않고, 일부 코드만 가져와서 처리했어요.
      그누보드 outlogin.lib.php 함수 변경
  6. 무언가 계속 더 나오겠죠? 중간 중간 채워나갈게요~ 아니면 마지막에 최종 정리라던가...

 

자 이제 개발 순서도 정했고,
삽질했던 거 정리도 했으니...
다음 개발로 넘어가도록 하겠습니다. ^^

시간날때 서버 셋팅해서
댓글 달아주시는 고마우신 분들이 볼 수 있도록 해드려야 할텐데요~
(혹시 제가 못잡은 버그도 알려주실지도 모르고요 ^^)

댓글