Extra Form
PHP PHP 7.2
CMS Rhymix 2.x

rssboard 모듈을 사용 중 입니다.

https://xe1.xpressengine.com/?mid=download&package_srl=19519188

 

사진, 글은 잘가져 오는데요.

동영상은 아래 사진처럼 영상 재생이 안됩니다.

캡처.JPG

게시글 본문에 들어가서 소스보기를 보면

 

캡처1.JPG

src 부분에 http가 빠져서 안됩니다.

http://사이트명을 넣어주면 영상을 제대로 불러오게 됩니다.

 

rssboard.controller.php 를 수정하면 될것 같은데요.

어디를 수정해야 될지 모르겠습니다.

 

* 소스

<?php
    /**
 * @file rssboard.controller.php
     * @class  rssboardController
     * @author ChoiHeeChul, KimJinHwan, ParkSunYoung
     * @brief  rssboard Controller
     **/

require_once('./modules/rssboard/simplepie.inc');


class rssboardController extends rssboard {


    /**
     * @brief 초기화 / 게시글 작성을 위한 관리자 정보를 저장
    **/
    function init() {
$oMemberModel = &getModel('member');
$this->admin_info = $oMemberModel->getMemberInfoByUserID('0000');
    }

    /**
     * @brief rss 업데이트 대상 목록을 가져와서 각각 업데이트
     **/
    function doCrawl() {

$output = executeQueryArray('rssboard.getRssboardAll');

// 실패시 처리
if(!$output->toBool()) return $output;

foreach ($output->data as $val) {
$this->doUpdateRss($val);
}

return new BaseObject(0,'success');
}

/**
 * @brief 각 개별 RSS 를 업데이트
 **/
function doUpdateRss($rssboard)
{
if( !isset($rssboard) || !isset($rssboard->rssurl) )
return ;

// 최종 업데이트 기준일 가져오기
$last_updatedate = 0;
if( $rssboard->updatedate!=0 )
{
$last_updatedate = $this->getRegdateTime($rssboard->updatedate);

// 최종 업데이트 시간이 10분 이내면 무시
if( time() < ($last_updatedate + 600) )
return ;
}

// document module의 controller 객체 생성
$oDocumentController = &getController('document');

// 현재 시간을 업데이트 시간으로 설정
$updatetime = date('YmdHis');

// SimplePie Library 를 이용해 RSS 가져오기
$feed = new SimplePie();
$feed->force_feed();
$feed->set_feed_url($rssboard->rssurl);
$feed->enable_cache(false);
$feed->init();
$items = $feed->get_items();

$link = $rssboard->rssurl;

// 최종 업데이트 일 이후에 작성된 글을 대상 게시판에 추가
foreach(array_reverse($items,true) as $item)
{
if ($last_updatedate > $item->get_date('U') )
continue;
$obj = null;
$obj->title = htmlspecialchars_decode($item->get_title());

// item link 를 가져오지 못할 경우 불가피하게 RSS 주소 사용
if($item->get_link())
$link = $item->get_link(); 

$obj->content =  $item->get_description(); //. "<br/><br/><br/> 원문출처 : <a href='" . $item->get_link() . "' target='_blank'>" . $item->get_link() . "</a>";
$obj->module_srl = $rssboard->module_srl;
$obj->member_srl = $this->admin_info->member_srl;
$obj->user_id =  $this->admin_info->user_id;
$obj->user_name =  $this->admin_info->user_name;
$obj->nick_name =  $this->admin_info->nick_name;
$obj->email_address =  $this->admin_info->email_address;
$obj->regdate = $item->get_date('YmdHis');
$obj->category_srl = $rssboard->category_srl;
$obj->allow_comment = 'Y';

$output=$oDocumentController->insertDocument($obj,true);
}

// 최종 업데이트 시간 저장
$args = null;
$args->updatetime = $updatetime;
$args->rssboard_srl = $rssboard->rssboard_srl;
$output = executeQuery('rssboard.updateRssboardDate',$args);
    }

    /**
    * @brief DB에 저장된 시간을 unixtimestamp 로 변환 /n
    * document.item.php 에서 차용
    */
    function getRegdateTime($regdate) {
        $year = substr($regdate,0,4);
        $month = substr($regdate,4,2);
        $day = substr($regdate,6,2);
        $hour = substr($regdate,8,2);
        $min = substr($regdate,10,2);
        $sec = substr($regdate,12,2);
        return mktime($hour,$min,$sec,$month,$day,$year);
    }
}
?>

 

rssboard 모듈을 사용 중이신분 계시면 도움 부탁드립니다 ㅠ

  • profile

    같은 사이트에 있는 주소라면 http://사이트명이 없어도 정상적으로 로딩되어야 합니다.

    혹시 다른 사이트에 있는 동영상 파일인가요?

  • profile profile

    네 맞습니다.
    제가 A,B 사이트를 운영 중입니다.
    A사이트에 게시글을 B사이트에서 rss로 긁어 오고 있습니다.

     

    A,B 둘다 서버도 다릅니다.

  • profile profile
    양쪽 모두 RXE로 만든 사이트라면 .../files/attach/images/... 경로가 동일한 구조로 되어 있어서
    사이트 내부 주소인 것으로 잘못 판단하고 앞부분을 지워버리는 것 같습니다.

    일반적인 경우에는 앞부분을 지워버리고 /files/attach/images/... 로 시작하는 부분만
    남기는 것이 맞습니다. 그래야 포트가 다르거나 SSL을 적용했을 때 오류가 나지 않거든요.
  • profile profile
    아.. 모듈에 문제는 아닌거군요.
    영상은 안되는걸로 그냥 써야겠네요 ㅜ