라이믹스 현재 페이지의 module_extra_vars 테이블의 값을 불러오려면 어떻게 코드를 짜야 하나요?
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.2 |
module_extra_vars 테이블에 저장된 각 값들을 이용하려고 하는데요.
ex) ->meta_description 이 값을 가져와서 사용하려고 합니다.
사용하려는 곳은 애드온이구요.
$called_position == "before_display_content" 여기서 사용하려고 합니다.
댓글 8
일반적으로
$args = new stdClass;
$args->module_srl = $module_srl;
executeQuery('module.getModuleExtraVars', $args);
이렇게 하면 해당 모듈의 extra_vsars를 복수로 가져옵니다.
그렇지만 이렇게 보통하는 경우는 없죠. $module_srl 을 가져올 수 잇는 상황만 확실하다면
getModel('module')->getModuleInfoByModuleSrl($module_srl);
으로만으로 해당 모듈의 확장변수까지 함께 포함해서 나옵니다.
$module_srl 을 가져올 수 잇는 방법으로는
$mid 만 알경우 getModel('module')->getModuleInfoByMid($mid) 이렇게 사용하시면 똑같은 효과를 가져옵니다.
를 쓴다면
이후 meta_description 값만 담는다면 어떻게 담나요?
meta_description 을 담는다는게 해당 모듈의 확장변수로 담는건가요?
moduleinfo 가져온다음 해당 모듈인포를 가지고
$module_info->meta_description = 'data';
getController('module')->updateModule($module_info);
근데 이건 서드파티에서 따로 넣는거니까, 일반 게시판 모듈같이 해당 옵션이 없는 모듈에서 설정저장시 에러가 날 수 있습니다.
충돌이 나서 동작이 애매해질 수 있어요. (해당동작은 한번만 실행될 수 있어야 합니다.)
그런다음 다시 getModuleInfo~~~ 으로 가져와서 $module_info->meta_description 하시면 나와요.
getModel('module')->getModuleInfoByMid($mid);
변수 = $module_info->meta_description = 'data';
이렇게 하면 되는거가요?
$module_info 가져온 곳에서 따로 지정해주시면 되요
getModel('module')->getModuleInfoByMid($mid);
변수 = $module_info->meta_description
요렇게 해서 성공한줄 알았는데 아니네요. 빈 값이 나오네요....
$mid는 제대로 값 인식되게 했습니다.
$module_info = $oModuleModel->getModuleInfoByMid(Context::get('mid'));
$meta_des = $module_info->meta_description;
요렇게 해서 최종 성공했습니다.
사용하려는 애드온은 트위터카드 메타태그 만들어주는 애드온에 상요했습니다.
else
{
$oModuleModel = getModel('module');
$module_info = $oModuleModel->getModuleInfoByMid(Context::get('mid'));
$meta_des = $module_info->meta_description;
$title = $module_info->browser_title;
$filePath = $addon_info->logo;
if($meta_des){
$content = $meta_des;
}else{
$content = $addon_info->content;
}
요렇게 수정해서 모듈의 SEO 정보와 모듈의 브라우저타이틀을 먼저 참조하게 하고 그 후에 입력된게 없다면 애드온에 입력된 것을 사용하게 고쳤습니다.