팝업오프너 에러 해결 방법 문의
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
팝업애드온+모듈을 사용하고 있는데, 라이믹스 디버그 기능으로 확인해보면,
아래와 같은 2개의 에러가 보입니다.
저의 까막눈으로 보자면,
popup_opener.addon.php 파일의
81행과 86행이 문제인 것 같은데, 까막눈이라서 뭘 어떻게 해야할지 모르겠네요. ^^
Errors (2)
01. Warning: Creating default object from empty value
addons/popup_opener/popup_opener.addon.php:81
files/cache/addons/pc.php:95
classes/module/ModuleObject.class.php:724
classes/module/ModuleHandler.class.php:701
index.php:52
02. Deprecated: mktime(): You should be using the time() function instead
addons/popup_opener/popup_opener.addon.php:86
files/cache/addons/pc.php:95
classes/module/ModuleObject.class.php:724
classes/module/ModuleHandler.class.php:701
index.php:52
<?php
if(!defined("__XE__")) exit();
if(Context::get('module') == 'admin') return;
if($called_position == 'before_module_proc') {
// 팝업 스크립트 처리
function getPopupScript($val) {
if($val->content) {
$order = array("\r\n", "\n", "\r");
$replace = '';
$val->content = str_replace($order, $replace, $val->content);
$val->content = str_replace("'", ''', $val->content);
}
$popup_content = "{id:'".$val->popup_srl."'"
.($val->popup_type?",popup_type:'".$val->popup_type."'":"")
.($val->content?",content:'".$val->content."'":"")
.($val->popup_url?",url:'".$val->popup_url."'":"")
.($val->popup_link?",link:'".$val->popup_link."'":"")
.($val->popup_link_type?",link_type:'".$val->popup_link_type."'":"")
.($val->open_type?",open_type:'".$val->open_type."'":"")
.($val->top?",top:'".$val->top."'":"")
.($val->left?",left:'".$val->left."'":"")
.($val->width?",width:'".$val->width."'":"")
.($val->height?",height:'".$val->height."'":"")
.($val->exp_days?",exp_days:'".$val->exp_days."'":"")
.($val->popup_style?",popup_style:'".$val->popup_style."'":"")
.($val->popup_checkbox?",popup_checkbox:'".$val->popup_checkbox."'":"")
.($val->element_id?",element_id:'".$val->element_id."'":"")
."}";
return $popup_content;
}
// jQuery로 팝업 열기
function setPopupScript($popupList) {
Context::addCssFile('./addons/popup_opener/popup_opener.css');
Context::addJsFile('./addons/popup_opener/jquery.popup_opener.1.5.4.3.js');
Context::loadLang(_XE_PATH_.'modules/popup/lang');
$msg_xe_popup = Context::getLang('msg_popup_do_not_display');
$addPopupScript = '<script type="text/javascript">//<![CDATA['."\n";
$addPopupScript .= "var msg_popup_do_not_display = '".$msg_xe_popup."';\n";
$addPopupScript .= 'jQuery(function(){'."\n";
if($popupList) {
if(!is_array($popupList)) $popupList = array($popupList);
foreach($popupList as $val){
$addPopupScript .= "jQuery('<div></div>',{id:'xe_popup".$val->popup_srl."'})";
$addPopupScript .= ".css({'position':'absolute','width':'".$val->width."px'})";
$addPopupScript .= ".xe_popup(".getPopupScript($val).");\n";
}
}
$addPopupScript .= '});'."\n";
$addPopupScript .= '//]]></script>'."\n";
Context::addHtmlFooter($addPopupScript);
}
// 팝업 본문 구하기
function getPopupContent($document_srl) {
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
return $oDocument->get('content');
}
if($this->module_info->module_srl) {
$oModuleModel = &getModel('module');
$isActionPopupOpen = false;
// 팝업 모듈 확인
$args->site_srl = $this->module_info->site_srl;
$popup_module_info = $oModuleModel->getModuleInfoByMid('popup', $args->site_srl);
if(!$popup_module_info) return;
// 유효일자 팝업 목록 구하기
$args->curdate = date("Ymd", mktime());
$output = executeQueryArray('popup.getPopupValidDate', $args);
if(!$output->toBool()) return;
if(count($output->data) > 0) {
foreach($output->data as $k => $pop) {
$pop->element_id = $addon_info->element_id;
if($pop->target_type == 'action' && $this->act == $pop->target_actions) {
$pop->content = getPopupContent($pop->document_srl);
$actionPopupList[$k] = $pop;
$isActionPopupOpen = true;
} else if ($pop->target_type == 'module') {
if ($this->module_srl == $pop->target_srl || $popup_module_info->module_srl == $pop->target_srl) {
$pop->content = getPopupContent($pop->document_srl);
$modulePopupList[$k] = $pop;
}
}
}
}
// 팝업 세팅
if($isActionPopupOpen) setPopupScript($actionPopupList);
else setPopupScript($modulePopupList);
}
}
?>
if(!defined("__XE__")) exit();
if(Context::get('module') == 'admin') return;
if($called_position == 'before_module_proc') {
// 팝업 스크립트 처리
function getPopupScript($val) {
if($val->content) {
$order = array("\r\n", "\n", "\r");
$replace = '';
$val->content = str_replace($order, $replace, $val->content);
$val->content = str_replace("'", ''', $val->content);
}
$popup_content = "{id:'".$val->popup_srl."'"
.($val->popup_type?",popup_type:'".$val->popup_type."'":"")
.($val->content?",content:'".$val->content."'":"")
.($val->popup_url?",url:'".$val->popup_url."'":"")
.($val->popup_link?",link:'".$val->popup_link."'":"")
.($val->popup_link_type?",link_type:'".$val->popup_link_type."'":"")
.($val->open_type?",open_type:'".$val->open_type."'":"")
.($val->top?",top:'".$val->top."'":"")
.($val->left?",left:'".$val->left."'":"")
.($val->width?",width:'".$val->width."'":"")
.($val->height?",height:'".$val->height."'":"")
.($val->exp_days?",exp_days:'".$val->exp_days."'":"")
.($val->popup_style?",popup_style:'".$val->popup_style."'":"")
.($val->popup_checkbox?",popup_checkbox:'".$val->popup_checkbox."'":"")
.($val->element_id?",element_id:'".$val->element_id."'":"")
."}";
return $popup_content;
}
// jQuery로 팝업 열기
function setPopupScript($popupList) {
Context::addCssFile('./addons/popup_opener/popup_opener.css');
Context::addJsFile('./addons/popup_opener/jquery.popup_opener.1.5.4.3.js');
Context::loadLang(_XE_PATH_.'modules/popup/lang');
$msg_xe_popup = Context::getLang('msg_popup_do_not_display');
$addPopupScript = '<script type="text/javascript">//<![CDATA['."\n";
$addPopupScript .= "var msg_popup_do_not_display = '".$msg_xe_popup."';\n";
$addPopupScript .= 'jQuery(function(){'."\n";
if($popupList) {
if(!is_array($popupList)) $popupList = array($popupList);
foreach($popupList as $val){
$addPopupScript .= "jQuery('<div></div>',{id:'xe_popup".$val->popup_srl."'})";
$addPopupScript .= ".css({'position':'absolute','width':'".$val->width."px'})";
$addPopupScript .= ".xe_popup(".getPopupScript($val).");\n";
}
}
$addPopupScript .= '});'."\n";
$addPopupScript .= '//]]></script>'."\n";
Context::addHtmlFooter($addPopupScript);
}
// 팝업 본문 구하기
function getPopupContent($document_srl) {
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($document_srl);
return $oDocument->get('content');
}
if($this->module_info->module_srl) {
$oModuleModel = &getModel('module');
$isActionPopupOpen = false;
// 팝업 모듈 확인
$args->site_srl = $this->module_info->site_srl;
$popup_module_info = $oModuleModel->getModuleInfoByMid('popup', $args->site_srl);
if(!$popup_module_info) return;
// 유효일자 팝업 목록 구하기
$args->curdate = date("Ymd", mktime());
$output = executeQueryArray('popup.getPopupValidDate', $args);
if(!$output->toBool()) return;
if(count($output->data) > 0) {
foreach($output->data as $k => $pop) {
$pop->element_id = $addon_info->element_id;
if($pop->target_type == 'action' && $this->act == $pop->target_actions) {
$pop->content = getPopupContent($pop->document_srl);
$actionPopupList[$k] = $pop;
$isActionPopupOpen = true;
} else if ($pop->target_type == 'module') {
if ($this->module_srl == $pop->target_srl || $popup_module_info->module_srl == $pop->target_srl) {
$pop->content = getPopupContent($pop->document_srl);
$modulePopupList[$k] = $pop;
}
}
}
}
// 팝업 세팅
if($isActionPopupOpen) setPopupScript($actionPopupList);
else setPopupScript($modulePopupList);
}
}
?>

마음의빈자리
Lv. 6
마음에는 꼭 빈자리를 남겨두어야 합니다.
댓글 2
$args = new stdClass();
라고 먼저 선언을 해줘야 할 거예요.
86행은
mktime() 대신 time()을 쓰라고 하네요 :)
감사 감사 합니다. ㅠㅠ