6-11.모듈 개발 미니 프로젝트 - action 파일 소스 분석

· 댓글 : 0 조회 : 1922 · 0
이번 장에서는 본 모듈에서 사용된 액션 파일들을 보겠습니다. 

본 모듈의 기능은 대부분 단순히 DB에 "입력, 수정, 삭제, 업데이트"하는 기능밖에 없기 때문에
액션 코드가 매우 짧고 단순합니다. 고로 어렵지 않게 이해하시리라 생각합니다. 

아래 폴더에서 보시듯이 본 모듈에서 사용되는 액션 파일은 총 5개입니다. 

1. a.deletePostAdmin.php
2. a.deletePostUser.php
3. a.modifyPost.php
4. a.updateSetting.php
5. a.writePost.php

맨 마지막 deletePost.php는 a.deletePostAdmin.php과 a.deletePostUser.php에서 공통적으로
사용되는 부분을 추출해서 별도의 파일에 저장한 것입니다. 

5860


그럼 하나하나 어디서 호출이 되었고 액션 내용은 어떤지 둘러보도록 하겠습니다. 


1. a.deletePostAdmin.php

- 설명: 어드민 페이지에서 포스트를 삭제할 때 실행되는 액션
- 호출 위치: lang.korean\admin\_pc\main.php (http://localhost/rb/?r=home&&module=miniplaza&front=main)
- 호출 방법: 어드민 페이지에서 포스트 출력란의 "삭제하기"버튼 클릭 (아래 이미지 참고)
5866

이 파일의 소스를 보면 아래와 같이 단순합니다. 
5858

여기서 checkAdmin(0)은 현재 접속자가 관리자인지 체크하고 관리자가 아니면 액션의 실행을 중단하고 
킴스큐 메인 페이지로 이동시킵니다. 

그 다음에 실제 포스트를 삭제하는 코드가 담긴 deletePost.php 파일을 인클루드하여 실행합니다. 

deletePost.php의 소스
5864

포스트를 삭제하기 전에 실제 DB에 존재하는지 한 번 체크해주고 DB에 존재하면 삭제를 합니다. 
DB 레코드를 삭제할 때는 getDbDelete 함수가 사용된다는 점 참고 바랍니다. 



2. a.deletePostUser.php

설명: 사용자 페이지에서 포스트를 삭제할 때 실행되는 액션
호출 위치: theme\_pc\default\main.php (http://localhost/rb/?r=home&m=miniplaza)
호출 방법: 사용자 페이지에서 포스트 출력란의 "삭제하기" 버튼 클릭 (아래 이미지 참고)

5867

이 파일의 소스를 보면 a.deletePostAdmin.php 과 한 가지를 빼고는 100% 동일합니다. 

5859

그 한 가지 다른 점은 관리자인지 아닌 지 체크하는 "checkAdmin(0);" 부분이 없다는 것입니다. 
실제 포스트를 삭제하는 로직이 담긴 deletePost.php를 인클루드하는 것은 동일합니다. 

deletePost.php의 소스
5864



3. a.modifyPost.php

설명: 사용자 페이지에서 포스트를 수정할 때 실행되는 액션
호출 위치: theme\_pc\default\modifyPost.php (http://localhost/rb/?r=home&iframe=Y&m=miniplaza&mode=modifyPost&postID=포스트ID)
호출 방법: 사용자 페이지에서 포스트 수정 팝업창의 "수정하기" 버튼 클릭 (아래 이미지 참고)

5869

글 목록에서 자기 글에 대해 "수정하기" 버튼 클릭하면 아래와 같이 포스트 수정 팝업창이 뜸

5868


이 파일의 소스는 아래와 같습니다.

5863

- 포스트를 수정할 때는 수정시간이 별도로 저장됩니다. ($d_modify)
- DB 업데이트시 getDbUpdate 함수가 사용되는 점 참고하시기 바랍니다. 
- 포스트가 정상적으로 수정이 되면 폰 액션을 호출한 포스트 수정 팝업창을 리프레시하는데 이때 URL에 
"q=1" 파라미터를 붙여줍니다. 이것은 포스트 수정이 정상적으로 수행이 되었다는 일종의 신호입니다. 
포스트 수정 팝업창에서 이 "q=1" 파라미터가 있는지 확인하고 있으면 팝업창을 닫고 사용자 메인 페이지를
리프레시합니다. 



4. a.updateSetting.php

설명: 어드민 "환경설정" 메뉴 페이지에서 모듈 환경설정을 업데이트할 실행되는 액션
호출 위치: lang.korean\admin\_pc\setting.php (http://localhost/rb/?r=home&&module=miniplaza&front=setting)
호출 방법:  어드민 "환경설정" 메뉴 페이지에서 "환경설정 업데이트하기" 버튼 클릭 (아래 이미지 참고)

5870

소스는 아래와 같습니다. 

5862

fopen 함수를 이용해 환경설정 파일인 var/var.php를 열어서 환경변수를 선언하는 실제 php 코드 내용을 write합니다. 



5. a.writePost.php

설명: 사용자 페이지에서 포스트를 작성할 때 실행되는 액션
호출 위치: theme\_pc\default\main.php (http://localhost/rb/?r=home&m=miniplaza&mode=main)
호출 방법:  사용자 페이지 포스트 작성란의 "포스트 작성" 버튼 클릭 (아래 이미지 참고)

5871

이 액션의 소스는 아래와 같습니다. 
5861

DB 레코드 삽입 시 getDbInsert함수가 사용되는 점 참고 바랍니다. 


이상 본 모듈의 액션 파일의 내용을 모두 둘러봤습니다. 

액션 파일에서 $msg 변수가 공통적으로 사용이 되었는데 이는 제가 form에서 액션으로 넘겨진 
파라미터들의 이름 및 값들을 저장합니다. 직접 눈으로 확인하시라고 액션 처리후 alert 메시지로 
화면에 뿌렸습니다. (아래 이미지 참고)

5872



이상으로 본 모듈에 대해서 모두 둘러보았습니다. 

도움이 되었기를 빌며 궁금하신 점은 댓글로 남겨주시기 바랍니다~

다음은 이 모듈을 만들면서 느꼈던 개인적인 생각을 간략하게 정리해 보겠습니다.  
통계분석을 위해 매체별 전용URL 사용해주세요.