위에 빨갛게 된 부분이 액션을 지정해준 부분이랍니다.
name : 은 액션의 이름
type : 액션의 타입과 어떤 파일에 액션이 정의 되는지
설정을 해주는 거랍니다.
이제 'index.php?module=joamemo&act=dispJoamemoWrite' 주소로 요청이 들어왔을 때 해야할 일을 만들어 줘볼게요.
type="view" 로 정의된 부분은
'모듈이름/모듈이름.view.php' 에 저장해주시면 된답니다.
파일 만들어 주시구요.
<?php
class JoamemoView extends joamemo{
function init(){
$template_path = sprintf("%sskins/%s/", $this->module_path, $this->module_info->skin);
if(!is_dir($template_path)||!$this->module_info->skin){
$this->module_info->skin = 'default';
$template_path = sprintf("%sskins/%s/", $this->module_path, $this->module_info->skin);
}
$this->setTemplatePath($template_path);
}
function dispJoamemoWrite(){
$this->setTemplateFile('memo_write');
}
}
?>
액션 이름으로 function 을 만들어 주면 된답니다.
위내용 처럼 저장하시고
index.php?module=joamemo&act=dispJoamemoWrite 를 실행해 주시면
Err : './modules/joamemo/skins/default/memo_write.html' template file does not exists.
에러가 발생한답니다.
템플릿 파일이 없어서죠.
function init() 를 살펴보면
'모듈이름/skins/default/'를 템플릿 폴더로 사용한다 정의해 주었고
dispJoamemoWrite 에서 memo_write를 텔플릿 파일로 사용한다 했는데 이 파일이 해당 폴더에 없어서 그렇답니다.
그럼 '모듈이름/skins/default/memo_write.html' 파일을 만들어 주세요
<div>
test
</div>
일단 이렇게 만들어서 다시
index.php?module=joa'memo&act=dispJoamemoWrite'
실행해 보시면 에러가 안나고 test 라는 글자가 나오는걸 확인하실 수 있을거에요..^^
자 그럼 정상적인 내용을 입력해 볼게요
<form ruleset="insertMemo" name="memo_write" method="post" action="./">
<input type="hidden" name="module" value="joamemo" />
<input type="hidden" name="act" value="procJoamemoInsert" />
<textarea name="memo_content" rows="10" cols="50"></textarea>
<input type="submit" value="등록" />
</form>
이렇게 입력하시고 저장하신후에 다시 페이지를 다시 실행해보세요.
이런 화면이 나온답니다.
메모를 입력할 부분이랑 등록 버튼이 생겼답니다~~
페이지 내용을 살펴 볼게요.
첫째줄
ruleset="insertMemo" : insertMemo 룰셋을 적용한다는 내용입니다. 룰셋은 유효성 검사를 해주는 거구요 잠시후에 다시 알아볼게요.
둘째줄은 joamemo 라는 모듈을 사용한다는거고
셋째줄은 procJoamemoInsert 라는 액트를 실행한다는 거랍니다.
그다음은 어떤건지 쉽게 아실 수 있으실거에요.
자 그럼 룰셋(ruleset) 에 대해 알아볼게요.
룰셋은 입력폼의 유효성을 검사해주는 기능이랍니다.
이메일 주소를 입력하는곳은 사용자가 이메일 주소로 잘 입력을 했는지,
숫자를 입력해야 하는부분에는 숫자를 입력했는지 등을 확인해주는 기능이죠~~
아직은 ruleset="insertMemo" 이라고 입력은 해주었지만 해당 내용을 정의 해주지 않았기 때문에 등록 버튼을 누르면 다음화면으로 넘어간답니다.
룰셋 파일은 '모듈이름/ruleset/정의해준룰셋이름.xml' 에 입력 해주시면 된답니다.
위에서는 insertMemo 라는 룰셋을 사용한다고 했으니
'모듈이름/ruleset/insertMemo.Xml' 파일을 만들어 주세요.
<?xml version="1.0" encoding="utf-8"?>
<ruleset version="1.5.0">
<customrules />
<fields>
<field name="memo_content" required="true" />
</fields>
</ruleset>
위에처럼 입력해주세요.
그리고 'index.php?module=joamemo&act=dispJoamemoWrite'를 다시 실행주시구요.
그리고 메모부분에는 아무 내용도 넣지 않고 등록을 눌러 보세요.
그럼 위처럼 "memo_content에 값을 입력해주세요." 라는 경고 창이 나오고 다음으로 진행이 안된답니다.
이제 룰셋 사용법을 조금 아시겠나요..^^
그런데 memo_content 라고 나오니 이상하죠??
이부분을 한글로 바꿔 볼께요~~
이 내용은 '모듈이름/lang/lang.xml' 파일에서 정의 해주면 된답니다.
<?xml version='1.0' encoding='UTF-8'?>
<lang>
<item name="memo_content">
<value xml:lang="ko"><![CDATA[메모내용]]></value>
</item>
</lang>
위 내용을 보시면 대충 감이 오실거에요..^^
memo_content 라는 항목은 "메모내용"이라는 값을 쓴다는 뜻이랍니다.
저장후에 관리자 화면에 설치된 모듈 제일 아래쪽에 보시면요.
캐시파일 재생성이라는 메뉴가 있답니다.
메뉴를 눌러주면 잠시기다린후 재생성 완료된 내용을 보실 수 있을거에요.
그런다음 메모 입력하는 페이지
'index.php?module=joamemo&act=dispJoamemoWrite'
를 다시 실행해준다음 메모 내용을 입력하지 않고 등록을 눌러보세요.
그럼 memo_content 가 미리 설정해놓은 메모내용으로 바뀐걸 확일하실 수 있으실거에요..^^
자 오늘은 메모입력 액션 만드는거랑 입력항목 만드는거 룰셋 언어설정에 대해 알아 보았구요.
다음번에 넘겨준 값을 가지고 DB에 저장하는 방법이랑 메모 리스트를 보는 방법을 알아 볼게요..^^