PHP 소스 수정한 것 좀 봐주실 수 있나요?
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.4 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
라이믹스에서 첨부파일이 그림파일이 아닐 때는 파일아이콘이 뜨지 않게 수정하려고 합니다.
(파일첨부 아이콘을 사용하지만 그림파일은 제외)
인터넷을 열심히 뒤져봤는데 자료를 찾기 힘들어서 소스를 직접 수정해 봤습니다.
syntax error 에러가 나길래 몇 번 수정했더니 일단 작동을 하기는 하는데 프로그래밍을 배운적이 없어서 { } ; 요런거 개념을 잘 모릅니다.
혹시 잘못된 부분이나 수정할 부분이 있는지 알고 싶습니다.
(라이믹스 1.9.9.7) document.item.php 원본
function getExtraImages($time_interval = 43200)
{
if(!$this->document_srl) return;
--이하생략---
// Check the attachment
if($this->hasUploadedFiles()) $buffs[] = "file";
return $buffs;
}
document.item.php 수정내용
function getExtraImages($time_interval = 43200)
{
if(!$this->document_srl) return;
--이하생략---
// Check the attachment
if($this->hasUploadedFiles())
foreach($this->getUploadedFiles() as $file)
if(preg_match('/\.(jpg|png|gif)$/i', $file->source_filename)) continue;
else if($file->direct_download !== 'Y')
{$buffs[] = 'file';break;}
else
{return $buffs;break;}
return $buffs;
}

댓글 8
https://xetown.com/tips/117806
제가 원하는 건 이미 생성된 아이콘을 교체하거나 없애는게 아니라 아이콘이 표시되는 조건을 수정하는 겁니다.
파일아이콘을 사용하되 이미지파일은 파일아이콘 표시 조건에서 제외하고 싶어서요.
그리고 사이트 전체에 적용하고 싶습니다.
이미지 파일만 첨부 -> 파일아이콘 없음
pdf파일 첨부 -> 파일아이콘 있음
이미지 파일과 Pdf 첨부 -> 파일아이콘 있음
foreach($this->getUploadedFiles() as $file){
if(preg_match('/\.(jpg|png|gif)$/i', $file->source_filename)){
continue;
}
else if($file->direct_download !== 'Y'){
$buffs[] = 'file';
break;
}
else{
return $buffs;
break;
}
}
}
이 방법이 좋지 않은 이유는
1. 라이믹스가 배포하는 파일을 코어 파일이라고 하는데 이 코어파일을 수정하는 것입니다.
라이믹스가 가고자하는 원칙에 따라 저희가 배포하는 파일은 되도록이면 수정하지 않고 쓰셔야 합니다.
2. 라이믹스에서 스킨파일은 실제로 HTML파일이 아니라 php파일로 보셔야 합니다
스킨단에서 <!--@if($oDocument->hasUploadedFiles())-->
와 같이 PHP를 인식할 수 있습니다.
간단하게 윗부분에서 수정하신것 처럼 수정하실 필요도 없고
{@
// 내용
}
안에 모든 내용을 다 수정하실 수있어요 (실제로는 이미지 가져왔다가 백엔드에서 다시 이미지 숨겨지는 형태)
코어파일은 되도록이면 건드리지마시고 스킨도 라이믹스에서 배포하는 스킨을 사용하신다면 스킨폴더 통째로 복사 ->붙여넣어 새로운이름의 폴더에서 수정을 진행하시면 됩니다.