Extra Form
PHP PHP 7.4
CMS XpressEngine1

스케치북5 용으로 된걸 사용하려고 했는데 오류가 나면서 아예 열리지가 않네요

지금은 https://xe1.xpressengine.com/index.php?mid=download&package_id=22301990 

이 게시판을 사용하려고 하는데 오류부분 수정하라는대로 했는데도 계속 오류 메세지가 나옵니다. 썸네일 생성도 안되구요.

 

2024-01-18_1-36-06.jpg

 

의뢰자측에서 유튜브 링크 게시판을 요청하는데 한번도 사용 해 본적이 없어 답답해서요.

혹시나 유료라도 좋으니 좋은 게시판 있으면 좀 알려주세요.

 

문제부분은 여기인것 같습니다.

_read.html

    <!-- 유투브 -->
    {@
$extras = $oDocument->getExtraVars();
$youtube_url = $extras[1]->value;
}

<!--  <iframe class="youtube-player" type="text/html" width="1000" height="600" src="{str_replace('http://youtu.be/', 'http://www.youtube.com/embed/',$youtube_url)}?rel=0&wmode=opaque" frameborder="0" allowfullscreen="true"></iframe> -->

<iframe class="youtube-player" type="text/html" width="1000" height="700" src="{str_replace('http://youtu.be/','https://www.youtube.com/embed/',$youtube_url)}?rel=0&wmode=opaque" frameborder="0" allowfullscreen="true"></iframe>

    <!--// 유투브 -->

 

  • ?
    <!-- 유투브 -->
    <!--//확장변수값 중에 첫번째 값을 유튜브 주소값으로 사용한다는 뜻입니다.-->
    {@
    $extras = $oDocument->getExtraVars();
    $youtube_url = $extras[1]->value;
    }
    
    <!--//유튜브 주소에서  http://youtu.be/ 나 https://youtu.be/ 를 없애고 뒤에 값만 $youtube_id 변수에 넣어줍니다. -->
    {@
    $youtube_id = str_replace('http://youtu.be/','',$youtube_url);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    }
    
    
    <!--// 유튜브 동영상 퍼기기 소스를 넣어주고, 각 유튜브 영상에 해당하는 코드 값인 $youtube_id 값을 변수로 넣어주면 됩니다.-->
    <!--@if($youtube_url)-->
    <iframe width="100%" height="655" src="https://www.youtube.com/embed/{$youtube_id}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
    <!--@end-->
    <!--// 유투브 -->

     

    웹진형 목록에서 썸네일을 유튜브 썸네일로 대체하고자 할때는

    <!--// 유투브 썸네일 -->
    <span cond="!$document->getExtraValueHTML(1)" >
    <span cond="!$document->thumbnailExists()" class="no_img tmb">No Image</span>
    <block cond="$document->thumbnailExists()">
    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="{$document->getThumbnail($mi->zine_thumb_width,$mi->zine_thumb_height,$mi->zine_thumb_type)}" alt="" />
    </block>
    </span>
    <block cond="$document->getExtraValueHTML(1)">
    
    {@
    $youtube_code = $document->getExtraValueHTML(1);
    $youtube_id = str_replace('http://youtu.be/','',$youtube_code);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    }
    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="http://img.youtube.com/vi/{$youtube_id}/maxresdefault.jpg" width="{$mi->zine_thumb_width}" height="{$mi->zine_thumb_height}" border="0" alt="" />
    </block>

     

    이런식으로 해주시면 될듯 합니다.

  • ? profile

    감사합니다.

    똑띠님 알려주신 코드로 대체했더니 이번에는 이런 오류가 납니다. 

     

    2024-01-18_14-36-54.jpg

    2024-01-18_14-37-04.jpg

    그리고 웹진형이 아닌 갤러리형으로 합니다.

    조금만 더 도와주시면 감사하겠습니다.

     

     

  • profile ?

    https://www.youtube.com/watch?v=HV2n6Hze8sQ 이 동영상에서 공유버튼 눌렀을때 나오는 주소값이
    https://youtu.be/HV2n6Hze8sQ?si=0yQNpv4v82E2DaQs 이와 같습니다.

    이 주소를 넣어 보세요.

  • ? profile
    감사합니다. 말씀대로하니 본문보기는 제대로 설정되었습니다.
    다만 갤러리형으로 했을경우 썸네일 생성이 안되고 본문으로 링크도 되질 않는데 코드 어디를 고쳐야할지 한번만 더 봐주시면 안될런지요.
    바쁘신데 귀찮게 해 드려 죄송합니다.
  • profile ?
    <!--//썸네일 -->
    <span cond="!$document->getExtraValueHTML(1)" >
    <span cond="!$document->thumbnailExists()" class="no_img tmb">No Image</span>
    <block cond="$document->thumbnailExists()">
    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="{$document->getThumbnail($mi->zine_thumb_width,$mi->zine_thumb_height,$mi->zine_thumb_type)}" alt="" />
    </block>
    </span>
    
    <!--// 유투브 썸네일 -->
    <block cond="$document->getExtraValueHTML(1)">
    {@
    $youtube_code = $document->getExtraValueHTML(1);
    $youtube_id = str_replace('http://youtu.be/','',$youtube_code);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    }
    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="http://img.youtube.com/vi/{$youtube_id}/maxresdefault.jpg" width="{$mi->zine_thumb_width}" height="{$mi->zine_thumb_height}" border="0" alt="" />
    </block>

     

    갤러리형 스킨에서 썸네일 출력하는 부분을 이렇게 수정해 보세요. 

  • ? profile
    <!--// 썸네일 -->
    
    <!--  똑띠님 코드삽입  -->
    <span cond="!$document->getExtraValueHTML(1)" >
    <span cond="!$document->thumbnailExists()" class="no_img tmb">No Image</span>
    <block cond="$document->thumbnailExists()">
    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="{$document->getThumbnail($mi->zine_thumb_width,$mi->zine_thumb_height,$mi->zine_thumb_type)}" alt="" />
    </block>
    </span>
     
    <!--// 유투브 썸네일 -->
    <block cond="$document->getExtraValueHTML(1)">
    {@
    $youtube_code = $document->getExtraValueHTML(1);
    $youtube_id = str_replace('http://youtu.be/','',$youtube_code);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    }
    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="http://img.youtube.com/vi/{$youtube_id}/maxresdefault.jpg" width="{$mi->zine_thumb_width}" height="{$mi->zine_thumb_height}" border="0" alt="" />
    </block>
    
    <!-- // 똑띠님 코드삽입  -->
    
    <span cond="!$document->thumbnailExists()" class="no_img tmb">No Image</span>
    <block cond="$document->thumbnailExists()"><span cond="$mi->tmb_effect=='2'" class="no_img loading"></span><img class="tmb" src="{$document->getThumbnail($mi->thumbnail_width, $mi->thumbnail_height, $mi->thumbnail_type)}" alt="" /></block>
    
    
    <!--// 제목 : 액자 스타일 -->

     

    위와같이 똑띠님 코드를 삽입하고

    아래쪽

    <span cond="!$document->thumbnailExists()" class="no_img tmb">No Image</span>
    <block cond="$document->thumbnailExists()"><span cond="$mi->tmb_effect=='2'" class="no_img loading"></span><img class="tmb" src="{$document->getThumbnail($mi->thumbnail_width, $mi->thumbnail_height, $mi->thumbnail_type)}" alt="" /></block>
    
    
    <!--// 제목 : 액자 스타일 -->

    이부분을 주석처리하였습니다만 그래도 썸네일이 나오딜 않습니다.

    제가 코드적용을 잘못한거 같은데 대단히 죄송하고 염치없지만

    _list_gallery.html 전체를 올려봐주실수 있을까요? 

    날짜는 다가오고 코드를 이해하지못해 답답해 미치겠습니다.

     

    2024-01-19_14-42-28.jpg

  • ?

    코드만 참고해보세요. css파일이 정리가 안되어서  화면이 반응형으로 작동을 잘 안하는 부분이 있을 수 있습니다. 

  • ? profile
    실례지만 쪽지 드렸습니다.
    정말 죄송합니다.
  • profile ?

    유튜브 주소에 따라 문제가 있는거였네요.
    https://youtu.be/ZbNpj3L5yJ4 이런형태의 경우 ZbNpj3L5yJ4 이 값만 {$youtube_id}에 저장되는데
    https://youtu.be/LxYdtpx2C9I?si=BIh52TPJBg64w8Y5 이런주소의 경우
    LxYdtpx2C9I?si=BIh52TPJBg64w8Y5 이 값이 {$youtube_id} 저장되네요.

    제가 드린 팁에서 별도로 ?이하 코드는 없애는 코드를 추가해 처리해 놓았습니다.

    <!--// 유투브 썸네일 -->
    <block cond="$document->getExtraValueHTML(1)">
    {@
    $youtube_code = $document->getExtraValueHTML(1);
    $youtube_id = str_replace('http://youtu.be/','',$youtube_code);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    $youtube_id = explode("?",$youtube_id);
    }

    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="http://img.youtube.com/vi/{$youtube_id[0]}/maxresdefault.jpg" style="max-width:350px;" width="{$mi->zine_thumb_width}" height="{$mi->zine_thumb_height}" border="0" alt="" />
    </block>

     

     

    사용하시는 스킨이 별도로 수정을 해서 사용하시는 스킨인듯해서...다른 작업은 하지 않고 유튜브 썸네일 이미지만 나오도록 처리해 드렸습니다. 

  • ? profile

    감사합니다.
    테스트 해 보느라 답신이 늦었습니다. 스킨은 xe 사이트에 있는것으로 그냥 다운로드 해서 사용중입니다.
    테스트 결과
    쓰기 할때 동영상이 가끔 한번에 올라가지않는 현상이 있고,
    올라가더라도 목록에서 가끔 썸네일이 생성되지 않는 경우가 있네요.
    제가 해본 테스트 옹영상에서 수고스럽더라도 한번 테스트 해 주실 수 있을까요?

  • profile ?
    유튜브 주소가 다양한 형태로 존재를 하니 그에 맞게 조건문을 수정해서 사용하셔야 할듯 합니다.
    확인해보니 ?si= 을 포함하는 형태도 있고, live 주소를 포함한 형태도 있네요.

    <!--// 유투브 썸네일 -->
    <block cond="$document->getExtraValueHTML(1)">
    {@
    $youtube_code = $document->getExtraValueHTML(1);
    $youtube_id = str_replace('http://youtu.be/','',$youtube_code);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    $youtube_id = str_replace('https://www.youtube.com/live/','',$youtube_id);
    $youtube_id_type1 = explode("?",$youtube_id);
    $youtube_id_type2 = explode("?si=",$youtube_id);

    }
    <!--@if($youtube_id_type2[0])-->

    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="http://img.youtube.com/vi/{$youtube_id_type2[0]}/0.jpg" style="max-width:350px;" width="{$mi->zine_thumb_width}" height="{$mi->zine_thumb_height}" border="0" alt="" />
    <!--@else-->

    <span cond="$mi->tmb_effect=='2'" class="no_img loading"></span>
    <img class="tmb" src="http://img.youtube.com/vi/{$youtube_id_type1[0]}/0.jpg" style="max-width:350px;" width="{$mi->zine_thumb_width}" height="{$mi->zine_thumb_height}" border="0" alt="" />
    <!--@end-->


    </block>


    기존에 maxresdefault.jpg로 썸네일이 안나오는 영상도 있어서 0.jpg 형태를 출력을 시켜 놓았습니다.

    유튜브 주소에서 해당 유튜브의 id값을 찾는것이 관거이며, 어떤값이 id값으로 지정되는지 확인하신다음 썸네일 이미지 경로로 배경을 해주시면 될듯 합니다.

    그리고 유튜브에 썸네일 출력하는 이미지 파일명 형태도 여러가지 인듯 하니 검색해 보셔서 상황에 맞게 적용해 보시기 바랍니다.

    소스 봐 드리는건 여기까지 하겠습니다. ^^
  • ? profile
    수고하셨고 감사했습니다.
    쪽지 드리겠습니다.
  • profile

    _read.html에서 알려주신 내용들을 토대로 아무리 적용해봐도 안되어서 염치없지만 한번 더 문의드립니다.

     

    유튜브공유 소스코드가

     

    http://youtu.be/... 로 되어있으면 정상적으로 업로드되고 재생되는데

    http://www.youtube.com/.. 으로된것은 업로드, 재생이 되질않고 썸네일만 생성됩니다.

     

    아이디 찾는것이 관건인것 같은데 제 능력으로는 불가능 하네요.

     

    바쁘시겠지만 귀찮은놈 만났다 생각하시고 꼭 한번 만 더 봐주시면 감사하겠습니다.

     

    참고로 제가 적용해본 _read.html 코드는 아래와 같읍니다

     

    <!-- 유투브 -->
    <!--//확장변수값 중에 첫번째 값을 유튜브 주소값으로 사용한다는 뜻입니다.-->
    {@
    $extras = $oDocument->getExtraVars();
    $youtube_url = $extras[1]->value;
    }
     
    <!--//유튜브 주소에서  http://youtu.be/ 나 https://youtu.be/ 를 없애고 뒤에 값만 $youtube_id 변수에 넣어줍니다. -->
    {@
    $youtube_id = str_replace('http://youtu.be/','',$youtube_url);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    $youtube_id = str_replace('https://www.youtube.com/live/','',$youtube_id);
    $youtube_id_type1 = explode("?",$youtube_id);
    $youtube_id_type2 = explode("?si=",$youtube_id);
    }
     
      
    <!--// 유튜브 동영상 퍼기기 소스를 넣어주고, 각 유튜브 영상에 해당하는 코드 값인 $youtube_id 값을 변수로 넣어주면 됩니다.-->
    
    
    <!--@if($youtube_id_type2[0])-->
    <!--@if($youtube_url)-->
    <iframe width="100%" height="710" src="https://www.youtu.be/{$youtube_id}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
    <!--@end-->
    <!--@else-->
    <iframe width="100%" height="710" src="https://www.youtube.com/embed/{$youtube_id}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
    <!--@end-->
    
    <!--// 유투브 -->

     

  • profile
    아, 어찌어찌하다보니 되네요!
    더 테스트 해 봐야겠지만 두가지 소스링크다 되는것 같습니다.
    감사합니다!!!!