IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
메인 컨텐츠로 가기

한국 developerWorks  >  오픈 소스  >

PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기, Part 2: 기본 위키 코드 개발하기 (한글)

크리키에 사용자 등록, 엔트리 스토리지, 맞춤 마크업 렌더링 추가하기

developerWorks
Go to the previous page14 페이지 중 6 페이지Go to the next page

문서 옵션

샘플 코드


제안 및 의견
피드백

튜토리얼 평가

이 컨텐츠를 개선하기 위한 도움을 주십시오.


엔트리 클린업

지금까지 원하는 방향으로 추가/편집을 해 왔다. 이제 엔트리와 관련된 다른 뷰와 동작을 클린업하겠다.

엔트리 컨트롤러 클린업

엔트리 컨트롤러에서 추가와 동작을 삭제하자. 추가 동작은 반드시 편집 동작으로 대체되어야 하고 삭제 동작은 지금 필요하지 않다. 사용자 권한을 다룰 때 또 다른 것을 추가할 것이다. 그외에도 뷰 동작도 변경해야 한다. 유효하지 않은 엔트리 제목을 위해 인덱스 동작으로 다시 보내는 대신에 사용자는 편집 동작으로 바로 보내져야 한다.

$this->redirect('/entries/edit/' . \
preg_replace("/[^a-z]/", , strtolower($title)));

모든 제목은 소문자로 바뀌어야 하고 알파벳이 아닌 글자는 없애야 함을 명심하자.




위로


엔트리 뷰 클린업

엔트리 뷰를 위해 사용하지 않을 추가 뷰를 삭제할 수 있다. 다른 뷰를 위해 위키는 ID가 아닌 위키 페이지의 제목을 넘겨 만들어짐을 기억하자.

인덱스 뷰

인덱스 뷰는 제목, 수정된 날짜, 사용자만을 보여주도록 편집되어야 한다. 대다수의 다른 정보는 이 단계에서는 보여줄 필요가 없다. 더 중요한 것은 편집과 뷰 링크는 ID가 아니라 제목으로 전달하기 위해 변경되어야 한다는 것이다. 이 작업을 다 하면 뷰는 Listing 13처럼 보일 것이다.


Listing 13. 인덱스 뷰
                    
<div class="entries">
<h2>List Entries</h2>
<table cellpadding="0" cellspacing="0">
<tr>
  <th>Title</th>
  <th>Modified Date</th>
  <th>Modified By</th>
  <th>Actions</th>
</tr>
<?php foreach ($entries as $entry): ?>
<tr>
  <td><?php echo $entry['Entry']['title']; ?></td>
  <td><?php echo $entry['Entry']['modified']; ?></td>
  <td><?php echo $entry['User']['username']; ?></td>
  <td class="actions">
    <?php echo $html->link('View','/entries/view/' . $entry['Entry']['title'])?>
    <?php echo $html->link('Edit','/entries/edit/' . $entry['Entry']['title'])?>
   </td>
</tr>
<?php endforeach; ?>
</table>
</div>

인덱스 뷰는 인덱스에서 보여줄 만한 기본 정보를 준다. 이제 엔트리를 보여줄 때 사용할 뷰를 수정해야 한다.




위로


뷰의 뷰

뷰의 기존 뷰는 지금 보여야 할 것보다 더 많은 정보를 담고 있다. app/views/entries/view.thtml를 Listing 14의 코드로 바꾸자.


Listing 14. 뷰의 뷰
                    
<div class="entry">
<h2><?php echo $entry['Entry']['title']?></h2>
<p>Modified on <?php echo $entry['Entry']['modified']?>
by <?php echo $html->link($entry['User']['username'], $entry['Entry']['user_id'])?>
 [ <?php echo $html->link('Edit Entry',   '/entries/edit/' . $entry['Entry']['title']) ?> 
]</p>
<?php echo $entry['Entry']['content']?>
</div>

이 새로운 뷰에는 페이지 제목, 내용, 마지막으로 수정한 사람, 마지막으로 수정한 시각, 페이지를 편집한 링크 등의 기본적으로 필요한 정보가 들어있다. 간단하다.

정보는 위키로 넘어갔다. 이제 어려운 부분을 다뤄보자. 바로 원하는 방식으로 바꾸는 것이다!




위로



Go to the previous page14 페이지 중 6 페이지Go to the next page
    IBM 소개 개인정보 보호정책 문의