2012-08-13 2 views
0

일부 cms 기능을 사용하여 간단한 웹 사이트를 작성하고 있습니다. 모든 메뉴 항목과 페이지 내용을 데이터베이스에 보관하는 것이 좋습니다.데이터베이스의 모든 페이지 컨텐츠

나는 id, name, parent_idcontent 필드가있는 테이블이 있습니다. 미래에 나는테이블로 내용을 이동하여 fk로 메뉴 항목에 여러 내용을 넣을 수 있습니다. 그러나 여기서는 그렇지 않습니다.

질문 :

  1. 나는 메뉴 테이블의 URL 필드가 필요하십니까?
  2. 내가 더 이상 작동 시키려면 무엇이 필요합니까? 모든 페이지마다 자체 컨트롤러가 있어야합니까? 나, 초보자 zend framework와 함께. 그래서 나에게 약간의 지시를 해주세요. 미리 감사드립니다.

답변

0

질문 2부터 시작하십시오 : 모든 페이지에는 자체 컨트롤러가 필요 없습니다. 페이지가 정적 인 경우 단일 작업을 사용하여 모든 페이지를로드 할 수도 있습니다. 보다 동적 인 처리를 위해 각 페이지마다 별도의 작업을 사용할 수 있습니다.

어쨌든 코드를 컨트롤러 및 동작으로 구조가 올바른지 확인하십시오. 예를 들어 CMS 내부에서 사용자가 게시물을 편집, 작성 또는 삭제할 수 있습니다. 그 안에 PostController을 작성하면 editAction, createActiondeleteAction이라고 쓸 수 있습니다.

은 테이블에 URL을 저장할 수 있지만 반드시 그렇게 할 필요는 없습니다.

(주로 정적 콘텐츠에 대한)

싱글 액션 방식은 id 또는 name가 GET의 PARAM에 저장되어있는 페이지를 확인하십시오.

public function genericpageAction() 
{ 
    $thePageID = $this->_request->getParam('id'); 

    // fetch the page content from the db based on $thePageID 
    // and pass it to the view 
} 

은 물론, 여기, 당신은 또한 당신이 방법을 선택한 경우 테이블에 저장되어있는 URL에 대해 일치 수 : 당신은 다음 코드를 사용할 수 있습니다.

여러 액션 접근 방식 (동적 인 처리는, 가장 가능성이 당신이 CMS와 원하는)

는 각 페이지에 대한 경로를 정의하고 각 작업의 내용을로드 할 수 있습니다. 예를 들어 게시물을 편집 할 페이지의 경우 :

class MyCMS_PostController extends Zend_Controller_Action 
{ 
    public function editAction() 
    { 
     // fetch the home page content 
     // do any further processing if necessary 
    } 
} 
관련 문제