묻고답하기
확장변수 여부 체크 isExtraVarsExists() 오류?
2019.10.02 04:31
1) content.class.php에 위 내용 추가하고
function getExtraVars() {
$oDocumentModel = &getModel('document');
return $oDocumentModel->getExtraVars($this->get('module_srl'),$this->get('document_srl'));
}
function getExtraEidValue($eid) {
$extra_vars = $this->getExtraVars();
foreach($extra_vars as $idx =>$key) {
$extra_eid[$key->eid] =$key;
}
return $extra_eid[$eid]->value;
}
2) widgets/content/skins/default/normal.html에서
아래처럼 {$item->getExtraEidValue('customer')}을 추가해서 최근글 나오는 페이지에서 확인하면 잘나오고 있는데요....
<!--@foreach($widget_info->content_items as $key => $item)-->
<span class="customer">{$item->getExtraEidValue('customer')}</span>
3) 확장변수 여부 체크로 검색해 보니 아래 조건문으로 하면 될듯해서 normal.html에 넣어보면 오류나서 확인이 안되고 있는데요?
<!--@if($oDocument->isExtraVarsExists())-->
$oDocument... 이게 최근글에서도 가능한건지 혹은 사용하려면 위에
$oDocumentModel = &getModel('document'); 등 처럼 멀 선언해 줘야하는지 궁금하네요?
$oDocument 라는 XE 의 고정변수값이 있는게 아닙니다.
document.model.php 내부의
getDocument 라는 함수를 실행했을때의 결과를
$oDocument 라는 변수에 넣어 보통 board.view 등에서 Context::set('oDocument',$oDocument) 형태로 전달을해주는거죠
그러다보니 스킨만 볼때는 $oDocument 라는 변수가 저절로 제공되는 것처럼 느껴지는거예요
위젯에서 쓰시려면 getDocument 함수를 이용해 $oDocument 를 구해서 쓰셔야겠죠