if(!$module_config->point_record_way){ if(version_compare(__XE_VERSION__, '1.7.4', '<')){ $module_config->point_record_way = 'realtime'; }else{ $module_config->point_record_way = 'trigger'; } }
을 처리하는 구분 확인해보면, $module_config 에 뭔가를 주입하는 과정이 보이는데 이 부분에 주입하기전에, 아에 $module_config 라는 함수에 아무값이 들어가지 않으면 초기화 하지 않은 상태로 인식하기 때문에 해당 부분이 오류가 납니다.(오류가 나도 나타나지 않고 이 오류로 인해 로그인이 페이지가 백지현상이 보이게 됩니다. 일부 사이트에서는)
그래서, 해당 부분의 초기화가 필요합니다.
/** *@brief 모듈설정 **/ function getModuleConfig() { $oModuleModel = &getModel('module'); $module_config = $oModuleModel->getModuleConfig('pointhistory'); if(!$module_config) { $module_config = new stdClass(); } if(!$module_config->point_record_way){ if(version_compare(__XE_VERSION__, '1.7.4', '<')){ $module_config->point_record_way = 'realtime'; }else{ $module_config = new stdClass(); $module_config->point_record_way = 'trigger'; } } if(!isset($module_config->member_menu_name)){ $module_config->member_menu_name = Context::getLang('pointhistory_list'); } if(!$module_config->point_unit_char){ $module_config->point_unit_char = 'P'; } return $module_config; }
수정부탁드려요.
포인트 히스토리뿐만 아니라 대부분의 모듈이 모듈설정부분에서 stdClass를 적용하지않아 경고를 뿜고 있는 상태입니다.
그래서 라이믹스에서는 모듈설정이 없으면 stdClass를 반환하도록 했습니다. 그게 맞는 듯합니다.