묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
확장변수를 계산해서 출력할 수 있나요?
2009.07.09 08:38
위의 그림처럼...
- 확장변수1 기간 (라디오 버튼) 30일, 60일, 90일 을 선택하고
- 확장변수2 IP (전화번호)
- 확정변수3 IP (전화번호)
- ....<중략>.....
- 마지막 변수 금액 (textarea)
이런식으로 구성을 해서...마지막 변수 = (확장3-확장2) * (30일이묜 1, 60일이면 2 90일이면 3) 이런식 확장변수로 출력하고 싶습니다. 아니면 내용쓰는 부분에라도 값을 출력했으면 좋겠습니다.
예를들면 확장1에 90일을 클릭하고, 확장2에 001, 확장3에 100을 넣었으면, 마지막 확장변수에서는
(100-1) * ( 3 ) = 297. 이런식으로 출력을 해보고 싶습니다. 제가 뭘 잘못했는지....출력이 안됩니다...ㅠㅠ 도와주세요..
댓글 2
-
개돌
2009.07.09 09:47
-
June Oh
2009.07.09 16:47
기본 모듈 파일을 수정하는 것은 제로보드4에서 쓰이던 방식이나 판올림시마다 다시 수정해야하기 때문에 XE에서는 권장하지 않는 방시입니다. 그보다 사용하시는 스킨을 하나 복사해서 새 스킨을 만들고 view_document.html 최상단에 다음 코드를 넣으신 후,
{@ $data1 = $oDocument->getExtraValue(1); }
{@ $data2 = $oDocument->getExtraValue(2); }
{@ $data3 = $oDocument->getExtraValue(3); }
{@ $dataOutput = (int)($data3-data2) * (int)($data1); }
결과가 출력될 위치에 {$dataOutput} 해보세요.
/modules/document/document.controller.php
파일에서 insertDocument() 라는 함수를 보시면
217 라인쯤에 아래와 같은 소스가 있습니다.
// 등록 성공시 확장 변수 등록
$extra_keys = $oDocumentModel->getExtraKeys($obj->module_srl);
if(count($extra_keys)) {
foreach($extra_keys as $idx => $extra_item) {
$value = '';
if(isset($obj->{'extra_vars'.$idx})) $value = trim($obj->{'extra_vars'.$idx});
elseif(isset($obj->{$extra_item->name})) $value = trim($obj->{$extra_item->name});
if(!isset($value)) continue;
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid);
}
}
대충 이렇게 고치면 되겠네요
// 등록 성공시 확장 변수 등록
$extra_keys = $oDocumentModel->getExtraKeys($obj->module_srl);
if($obj->module_srl==모듈번호){
if(count($extra_keys)) {
foreach($extra_keys as $idx => $extra_item) {
$value = '';
if(isset($obj->{'extra_vars'.$idx})) $value = trim($obj->{'extra_vars'.$idx});
elseif(isset($obj->{$extra_item->name})) $value = trim($obj->{$extra_item->name});
if(!isset($value)) continue;
if($idx==1) $data1 = $value; // 첫번째 기간 값을 data1로 저장
if($idx==2) $data2 = $value; // 두번째 값을 data2로 저장
if($idx==3) $data3 = $value; // 세번째 값을 data3로 저장
if($idx==8) $value = (int)($data3-$data2) * (int)($data1); // 마지막 8번째 값은 (data3 - data2) * (data1) 으로 저장
$this->insertDocumentExtraVar($obj->module_srl, $obj->document_srl, $idx, $value, $extra_item->eid);
}
}
대충 위와 같은 형식으로 확장변수값을 저장하면 되지 않을까 싶네요