특정 모듈에서 비회원일 때 썸네일이 노출이 안되고 있습니다.
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 8.4 |
문제 페이지 주소 | 비공개 (검색로봇) |
해당 증상은 콘텐츠 모듈에서 발생되고 있습니다. 그동안 몰랐는데 비회원인 경우 썸네일 노출이 안되고 있네요.
일반적인 게시판 스킨과 동일하고 XE타운에서도 별다른 이런 현상은 없었는데 말이죠..
혹시 어디를 봐야된다거나 힌트를 주시면 좀 원인을 찾는데 도움이 될거 같습니다. ㅠ
1. 게시판 설정 > 권한 설정 > 열람 : 모든 사용자입니다.
2. 스킨 설정에서 썸네일 노출 관련된 건 따로 없습니다. 비회원일 땐 없는 이미지로 노출되다가, 로그인하면 썸네일이 보여집니다.
3. contents 모듈 설정에서 구매한 사용자에게만 썸네일 표시 옵션이 있어서 사용 안함을 설정을 했습니다.
modules/contents/tpl/contents_insert.html:299라인
<div class="x_control-group"> <label class="x_control-label" for="purchase_after_thumbnail">{$lang->purchase_after_thumbnail}</label> <div class="x_controls"> <select name="purchase_after_thumbnail" id="purchase_after_thumbnail"> <option value="N" selected="selected"|cond="$module_info->purchase_after_thumbnail=='N'">{$lang->no_use}</option> <option value="Y" selected="selected"|cond="$module_info->purchase_after_thumbnail=='Y'">{$lang->useo}</option> </select> <a href="#purchase_after_thumbnail_help" class="x_icon-question-sign" data-toggle>{$lang->help}</a> <p id="purchase_after_thumbnail_help" class="x_help-block" hidden>{$lang->about_purchase_after_thumbnail}</p> </div> </div>
이게 정확히 제대로 동작하는지 체크가 필요해보입니다.
4. modules/contents/contents.view.php:1100라인
//콘텐츠 썸네일 if(!$oDocument->copyright){ if(!$oDocument->adult || $oUser->certify_adult == 'Y' || $logged_info->is_admin == 'Y'){ if($oDocument->purchase || $this->module_info->purchase_after_thumbnail !== 'Y'){ if($oDocument->getThumbnail($this->module_info->thumbnail_size_width?$this->module_info->thumbnail_size_width:100,$this->module_info->thumbnail_size_height?$this->module_info->thumbnail_size_height:100,$this->module_info->thumbnail_type)){ $oDocument->thumbnail = $oDocument->getThumbnail($this->module_info->thumbnail_size_width?$this->module_info->thumbnail_size_width:100,$this->module_info->thumbnail_size_height?$this->module_info->thumbnail_size_height:100,$this->module_info->thumbnail_type); }else $oDocument->thumbnail = $this->skin_path.'img/no_image.gif'; }else $oDocument->thumbnail = $this->skin_path.'img/no_purchase.gif'; }else $oDocument->thumbnail = $this->skin_path.'img/19_img.gif'; }else $oDocument->thumbnail = $this->skin_path.'img/copyright_img.gif';
썸네일 노출 관련된 코드인거 같은데 주석 처리 후
$oDocument->thumbnail = $oDocument->getThumbnail($this->module_info->thumbnail_size_width?$this->module_info->thumbnail_size_width:100,$this->module_info->thumbnail_size_height?$this->module_info->thumbnail_size_height:100,$this->module_info->thumbnail_type);
이것만 넣어도 동일하게 썸네일이 표시되지 않습니다.
일단 3번 위주로 찬찬히 살펴봐야겠습니다. ㅠㅠ
5. 게시판 설정 목록설정에 '썸네일' 항목이 없습니다. (썸네일이란 항목이 없어도, 로그인하면 해당 썸네일이 보여지긴 합니다.)
6. 비회원이면 비밀글입니다 라고 뜹니다. 비밀글로 설정한게 아닌데 모든 글이 그러네요.
modules/document/lang/ko.php
$lang->msg_is_secret = '비밀글입니다.';
이게 뜨네요.

댓글 6
1. 같은 글이라도 읽기 권한이 없는 사람에게는 썸네일을 보여 주지 않습니다.
로그인했을 때와 비회원일 때 $oDocument->isAccessible() 결과가 다른지 확인해 보세요.
2. 로그인했을 때와 비회원일 때 $oDocument->variables 내용에 다른 점이 있는지 확인해 보세요.
특히 썸네일 생성과 관련 있을 만한 uploaded_count (업로드된 파일 수), content (본문삽입된 이미지 정보) 등...
[수정] 비회원일 때 비밀글이라고 뜬다면 isAccessible()에서 걸렸을 테니 당연히 썸네일이 나오지 않습니다.
1. 회원일 땐 true, 비회원일 땐 false로 뜨네요.
게시판 열람 권한은 모두인데 이상하네요.
1.1. 모듈 권한 설정: modules/contents/conf/module.xml 파일에서 view 권한이 guest로 설정되어 있는지 확인했습니다.
1.2. 문서 개별 설정: 각 문서의 개별 설정에서 비회원 접근이 허용되어 있는지 확인했는데 비밀글 설정은 안되어있습니다.
1.3. 코드 내 조건문: 코드 내에서 비회원 접근을 제한하는 조건문이 있는지 확인했는데 따로 설정한 부분은 없습니다.
2. $document->variables 내용은 회원, 비회원 둘다 동일합니다.
$oDocument->document_srl 은 있나요? variables 바깥에 중복으로 나와 있어야 하는 유일한 변수입니다.
$oDocument->variables['module_srl']은 정상인가요?
$oDocument->variables['status']는 PUBLIC인가요?
이 값이 NULL로 뜨네요. 아마 contents 모듈에서 어제 코멘트 정보를 넘길 때와 같이 status 값을 안 넘겨주고 있는거 같습니다.
거기에 status 값이 제대로 들어가도록 하면 아마 다 해결될 것 같습니다.
혹시 $oDocument->status가 있다면 $oDocument->variables['status']로 옮겨 주세요.
그냥 DB에서 모든 컬럼을 SELECT해서 variables에 그대로 때려박으면 그만인데,
이놈의 모듈은 자꾸 엉뚱한 곳에 데이터를 흘리고 다니는 것 같아요.
if(!$oDocument->get('status')) $oDocument->add('status', DocumentModel::getDefaultStatus());
네 추가해줬습니다. 감사합니다.
덕분에 오늘은 밤을 안샜네요!!