Development Make Theme Template - Joungkyun/JSBoard GitHub Wiki

JSBoard Theme μ œμž‘

##1. κ°œμš”

일단 ν…Œλ§ˆλ₯Ό λ§Œλ“€λ €λ©΄ ν…Œλ§ˆμ˜ 이름은 λŒ€λ¬Έμžμ–Έμ–΄μ½”λ“œ-ν…Œλ§ˆμ΄λ¦„ (예λ₯Ό λ“€μ–΄ KO-default) 의 ν˜•μ‹μ„ κ°€μ Έμ•Ό ν•œλ‹€. λ˜ν•œ theme directory의 ν…Œλ§ˆλ“€μ€ ν…Œλ§ˆ μ΄λ¦„μ˜ 디렉토리λ₯Ό κ°€μ§€κ³  μžˆμ–΄μ•Ό ν•œλ‹€.

KO-default theme 에 μžˆλŠ” νŒŒμΌλ“€μ€ λͺ¨λ‘ μ‘΄μž¬ν•΄μ•Όν•˜λ©° imageλŠ” img 디렉토리 μ•„λž˜μ— admin.gif κ°€ κΌ­ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€. 각 html template μ—μ„œ *** ?>***둜 μŒ“μ—¬μ Έ μžˆλŠ” 뢀뢄은 κ²Œμ‹œνŒμ—μ„œ κΌ­ ν•„μš”ν•œ λΆ€λΆ„ 듀이기 λ•Œλ¬Έμ— λͺ¨λ‘ μ‚¬μš©μ„ ν•΄μ•Ό ν•œλ‹€. ν˜Ήμ‹œ λΉ μ§€λŠ” 것을 λŒ€λΉ„ ν•˜κΈ° μœ„ν•΄ κ²Œμ‹œνŒ κ΄€λ¦¬μžμ—μ„œ λͺ¨λ“  κΈ°λŠ₯을 ν™œμ„±ν™” ν•œ μƒνƒœμ—μ„œ theme λ₯Ό λ§Œλ“€κΈ° λ°”λž€λ‹€.

admin.gif λŠ” admin page link 이닀. admin page link λŠ” 각 κ²Œμ‹œνŒ κ΄€λ¦¬μžμ—μ„œ 보여주고 μ•ˆλ³΄μ—¬μ€„ 수 μžˆλ„λ‘ μ˜΅μ…˜ν™” λ˜μ–΄ μžˆμœΌλ―€λ‘œ 일단은 κΌ­ μ‘΄μž¬ν•˜λŠ” ν˜•νƒœλ‘œ λ§Œλ“œλŠ” 것을 ꢌμž₯ν•œλ‹€.

λ˜ν•œ 메뉴 μ—­μ‹œ image 둜 λ§Œλ“€μˆ˜ μžˆλŠ”λ° μ΄λ•Œμ—λŠ” img/ 디렉토리에 λ‹€μŒ ν‘œμ˜ 이미지 νŒŒμΌλ“€μ΄ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.

  • prev.gif : 이전글 λ˜λŠ” 이전 νŽ˜μ΄μ§€
  • next.gif : λ‹€μŒκΈ€ λ˜λŠ” λ‹€μŒ νŽ˜μ΄μ§€
  • list.gif : κΈ€ λͺ©λ‘
  • write.gif : κΈ€ μ“°κΈ°
  • today.gif : 졜근 12μ‹œκ°„λ‚΄ μ˜¬λΌμ˜¨κΈ€
  • delete.gif : μ‚­μ œ
  • edit.gif : μˆ˜μ •
  • reply.gif : λ‹΅μž₯
  • conj.gif : κ΄€λ ¨κΈ€
  • rep.gif : λŒ“κΈ€μ˜ ν™”μ‚΄ν‘œ 이미지
  • logout.gif : login μ‹œ logout 을 μœ„ν•œ 이미지 링크
  • admin.gif : admin page λ₯Ό μœ„ν•œ 이미지 링크

그리고 list.template 와 read.template μ—μ„œ list_cmd(0,1) κ³Ό read_cmd(0,1) 을 list_cmd(1,1), read_cmd(1,1) 둜 λ§Œλ“€μ–΄ μ£Όλ©΄ λœλ‹€.

λŒ“κΈ€μ˜ ν™”μ‚΄ν‘œ μ΄λ―Έμ§€λŠ” img/ 디렉토리에 rep.gif λΌλŠ” μ΄λ¦„μœΌλ‘œ λ‹€λ₯Έ 이미지λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

그리고 template μƒμ—μ„œ μˆ˜μ •ν• μˆ˜ μ—†λŠ” λͺ‡λͺ‡ 색상듀과 ν…Œμ΄λΈ” 길이 같은 것듀은 theme_name/config.php μ—μ„œ 지정을 ν• μˆ˜ 있게 λ˜μ–΄ μžˆλ‹€.

λ‚˜λ¨Έμ§€λŠ” λ§ˆμŒλŒ€λ‘œ ν•˜λ©΄ λœλ‹€.

##2. μ°Έκ³ 

default theme 의 각 νŒŒμΌμ— ν•„μš”ν•œ λ³€μˆ˜μ— λŒ€ν•œ 주석이 μžˆμœΌλ‹ˆ μ°Έμ‘°λ₯Ό ν•˜λ©΄ λœλ‹€. κΈ°λ³Έ μ΄λ―Έμ§€λŠ” theme/theme_name/img/ μ—μ„œ admin.gif, logout.gif 만 κΌ­ ν•„μš”ν•˜λ©° λ‚˜λ¨Έμ§€λŠ” μ˜΅μ…˜μ΄λΌκ³  생각을 ν•˜λ©΄ λ˜κ² λ‹€.

λ˜ν•œ theme 디렉토리에 μœ„μΉ˜ν•œ ν…Œλ§ˆλ“€μ€ μžλ™μœΌλ‘œ 각 κ²Œμ‹œνŒμ˜ κ΄€λ¦¬μžμ— 등둝이 λ˜λ‹ˆ, κ²Œμ‹œνŒ κ΄€λ¦¬μžμ—μ„œ μƒˆλ‘œ λ“±λ‘λœ ν…Œλ§ˆλ₯Ό μ„ νƒν•΄μ„œ μ‚¬μš©ν•˜λ©΄ λœλ‹€.

λ˜ν•œ KO-theme_name/config.php 의 $designer['ver'] 와 include/version.php 의 $theme['ver'] 의 값이 동일해야 ν…Œλ§ˆλ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. μ΄λŠ” 버젼별 ν…Œλ§ˆ μ‚¬μš©μ— ν˜Όλž€μ΄ 없도둝 ν•˜κΈ° μœ„ν•΄ ν‘œν˜„μ„ ν•œλ‹€. λ§Œμ•½ ν…Œλ§ˆμ˜ μˆ˜μ •μ΄ κ°€ν•΄μ§€λ©΄ include/version.php 의 $theme['ver'] 의 값이 변경이 λœλ‹€.

##3. Search FORM

검색 폼은 μ•„λž˜μ˜ 폼문을 기본으둜 κ°€μ§€κ³  μžˆμ–΄μ•Ό ν•œλ‹€. 이 폼문을 기본으둜 λ””μžμΈμ„ ν•˜λ©΄ λœλ‹€.

<form method="post" action="locate.php?table=<?=$table?>">
  <select name="o[sc]">
    <option value="t"<?=$sform[sc][t]?>>Title
    <option value="c"<?=$sform[sc][c]?>>Contents
    <option value="n"<?=$sform[sc][n]?>>Writer
    <option value="a"<?=$sform[sc][a]?>>All
  </select>
  <input type="text" name="o[ss]" size="<?=form_size(8)?>" maxlength="255" value="<?=$sform[ss]?>">
  <input type="submit" value="Search">

  <select "name=o[st]">
    <option value="m"<?=$sform[st][m]?>>A Month
    <option value="w"<?=$sform[st][w]?>>A Week
    <option value="a"<?=$sform[st][a]?>>All
  </select>

  <input type=checkbox name=o[er] value=y<?=$sform[er][y]?>> Regular Expression

  <input type="hidden" name="o[at]" value="s">
  <input type="hidden" name="o[go]" value="p">
  <input type="hidden" name="o[sct]" value="s">
  <input type="hidden" name="o[stt]" value="s">
</form>

주의 ν•  것은 ν•˜λ‹¨μ˜

  <input type="hidden" name="o[sct]" value="s">
  <input type="hidden" name="o[stt]" value="s">

λΆ€λΆ„μ˜ 값인데 이 뢀뢄은 2개의 select 문에 λŒ€ν•œ μ •μ˜λ₯Ό ν•΄ μ£ΌλŠ” λ³€μˆ˜μ΄λ‹€. 즉 처음 title, contents, writer, all 에 κ΄€λ ¨λœ 뢀뢄을 select 둜 μ²˜λ¦¬ν•  κ²½μš°μ—λŠ” o[sct] 의 값이 s κ°€ 되며 checkbox λ˜λŠ” radio 둜 ν–ˆμ„ κ²½μš°μ—λŠ” c 의 κ°’μœΌλ‘œ λ³€κ²½ν•΄ μ€˜μ•Ό ν•œλ‹€. μ΄λŠ” 검색후에 검색폼이 κ²€μƒ‰ν•œ 값을 μœ μ§€μ‹œν‚€κΈ° μœ„ν•΄ ν•„μš”ν•˜λ‹€.

검색 기간에 λŒ€ν•œ select μ—­μ‹œ o[stt] 의 값에 μœ„μ™€ 같이 λ™μΌν•˜κ²Œ μ μš©μ‹œν‚€λ©΄ λœλ‹€. λ§Œμ•½ select 문을 checkbox λ‚˜ radio button 으둜 λ³€κ²½ν•˜μ—¬ μ‚¬μš©ν•  κ²½μš°μ—λŠ” μ„œμΉ˜νΌ μœ„μ—

<?php
if( ! $o['at'] ) {
  $sform['sc']['t'] = " checked";
  $sform['st']['m'] = " checked";
}
?>

μ½”λ“œλ₯Ό λ„£μ–΄ μ€˜μ•Ό ν•œλ‹€.

<form method="post" action="locate.php?table=<?=$table?>">
  <?=$pform[post]?>
  <select name="o[go]">
    <option value="p" selected>Page No.
    <option value="n">Article No.
  </select>
  <input type="text" name="o[no]" size="<?=form_size(2)?>" maxlength="6" value="<?=$pform[value]?>">
  <input type="submit" value="Go!">
</form>

을 κ°€μ§€κ³  λ””μžμΈμ„ μ μš©μ‹œν‚€λ©΄ λœλ‹€.

##4. Comment Form

Comment Form 쀑 SORT link κ³Ό Delete link λŠ” 이미지λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€. 각 ν…Œλ§ˆ λ””λ ‰ν† λ¦¬μ˜ img 디렉토리에 cdelete.gif, csortup.gif, csortdn.gif λ₯Ό μœ„μΉ˜ μ‹œν‚΄μœΌλ‘œμ„œ ν…μŠ€νŠΈ 링크λ₯Ό image 링크둜 λ³€κ²½ν•  수 μžˆλ‹€.

⚠️ **GitHub.com Fallback** ⚠️