질문/조언질답게시판
Extra Form
PHP PHP 7.4
CMS Rhymix

라이믹스에서 첨부파일이 그림파일이 아닐 때는 파일아이콘이 뜨지 않게 수정하려고 합니다.

(파일첨부 아이콘을 사용하지만 그림파일은 제외)

인터넷을 열심히 뒤져봤는데 자료를 찾기 힘들어서 소스를 직접 수정해 봤습니다.

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;
    }

  • profile
    php를 수정하시는거보다 css로 감추신는걸 추천드려요

    https://xetown.com/tips/117806
  • profile profile
    제가 잘 이해를 못한 걸수도 있는데 저 방법은 이미 아이콘이 생성된 이후의 처리 아닌가요?
    제가 원하는 건 이미 생성된 아이콘을 교체하거나 없애는게 아니라 아이콘이 표시되는 조건을 수정하는 겁니다.
    파일아이콘을 사용하되 이미지파일은 파일아이콘 표시 조건에서 제외하고 싶어서요.
    그리고 사이트 전체에 적용하고 싶습니다.

    이미지 파일만 첨부 -> 파일아이콘 없음
    pdf파일 첨부 -> 파일아이콘 있음
    이미지 파일과 Pdf 첨부 -> 파일아이콘 있음
  • profile profile
    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;
    }
    }
    }
  • profile profile

    이 방법이 좋지 않은 이유는
    1. 라이믹스가 배포하는 파일을 코어 파일이라고 하는데 이 코어파일을 수정하는 것입니다.

    라이믹스가 가고자하는 원칙에 따라 저희가 배포하는 파일은 되도록이면 수정하지 않고 쓰셔야 합니다.

    2. 라이믹스에서 스킨파일은 실제로 HTML파일이 아니라 php파일로 보셔야 합니다

    스킨단에서 <[email protected]($oDocument->hasUploadedFiles())-->
    와 같이 PHP를 인식할 수 있습니다.

    간단하게 윗부분에서 수정하신것 처럼 수정하실 필요도 없고
    {@
    // 내용
    }

    안에 모든 내용을 다 수정하실 수있어요 (실제로는 이미지 가져왔다가 백엔드에서 다시 이미지 숨겨지는 형태)

    코어파일은 되도록이면 건드리지마시고 스킨도 라이믹스에서 배포하는 스킨을 사용하신다면 스킨폴더 통째로 복사 ->붙여넣어 새로운이름의 폴더에서 수정을 진행하시면 됩니다.

  • profile profile
    감사합니다. 적용해 볼게요.
  • profile profile
    네 참고하겠습니다.
  • profile profile
    더 좋은 방법은 깃허브에 이슈를 등록하시는 거죠. ㅎㅎ
  • profile profile
    기진곰님 리플 보고 나름 아이디어를 짜내서 이슈등록 했습니다. 감사합니다.