<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[유튜브 iframe 문의]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/5065</link>
		<description><![CDATA[<p><span style="line-height:1.6em;">ㅎㅎ kborad를 쓰고 있는 유저 입니다. 다름이 아니라 게시판에 유튜브 영상을 게시하는데</span></p>

<p>iFrame 작성후 글을 남겼을때 전체화면이 안되는 현상이 계속됩니다.</p>

<p>나중에 글 수정할때 찾아보니  iFrame 속성중에서allowfullscreen 이 속성이 계속 사라지는 것 같습니다. </p>

<p>이문제를 어떻게 해결해야 할지 알려주시면 감사하겠습니다. </p>
]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[http://stackoverflow.com/questions/4739284/htmlpurifier-iframe-vimeo-and-youtube-video

이쪽 참고...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/5066</link>
			<description><![CDATA[<p><a href="http://stackoverflow.com/questions/4739284/htmlpurifier-iframe-vimeo-and-youtube-video" target="_blank">http://stackoverflow.com/questions/4739284/htmlpurifier-iframe-vimeo-and-youtube-video</a></p>

<p>이쪽 참고 해서 파일을 수정해주셔야 합니다.</p>

<p>/kbaord/helper/Security.helper.php 파일 하단에 아래 클래스를 추가해주시고</p>

<p>kboard_xssfilter() 함수에 설정을 추가 해주세요.</p>

<p><strong>$HTMLPurifier_Config-&gt;set('Filter.Custom', array(new HTMLPurifier_Filter_MyIframe()));</strong></p>

<p> </p>

<p> </p>

<p>/**<br />
 * Based on: http://sachachua.com/blog/2011/08/drupal-html-purifier-embedding-iframes-youtube/<br />
 * Iframe filter that does some primitive whitelisting in a somewhat recognizable and tweakable way<br />
 */<br />
class HTMLPurifier_Filter_MyIframe extends HTMLPurifier_Filter<br />
{<br />
    public $name = 'MyIframe';</p>

<p>    /**<br />
     *<br />
     * @param string $html<br />
     * @param HTMLPurifier_Config $config<br />
     * @param HTMLPurifier_Context $context<br />
     * @return string<br />
     */<br />
    public function preFilter($html, HTMLPurifier_Config $config, HTMLPurifier_Context $context)<br />
    {<br />
        $html = preg_replace('#&lt;iframe#i', '&lt;img class="MyIframe"', $html);<br />
        $html = preg_replace('#&lt;/iframe&gt;#i', '&lt;/img&gt;', $html);<br />
        return $html;<br />
    }</p>

<p>    /**<br />
     *<br />
     * @param string $html<br />
     * @param HTMLPurifier_Config $config<br />
     * @param HTMLPurifier_Context $context<br />
     * @return string<br />
     */<br />
    public function postFilter($html, HTMLPurifier_Config $config, HTMLPurifier_Context $context)<br />
    {<br />
        $post_regex = '#&lt;img class="MyIframe"([^&gt;]+?)&gt;#';<br />
        return preg_replace_callback($post_regex, array($this, 'postFilterCallback'), $html);<br />
    }</p>

<p>    /**<br />
     *<br />
     * @param array $matches<br />
     * @return string<br />
     */<br />
    protected function postFilterCallback($matches)<br />
    {<br />
        // Domain Whitelist<br />
        $youTubeMatch = preg_match('#src="https?://www.youtube(-nocookie)?.com/#i', $matches[1]);<br />
        $vimeoMatch = preg_match('#src="http://player.vimeo.com/#i', $matches[1]);<br />
        if ($youTubeMatch || $vimeoMatch) {<br />
            $extra = ' frameborder="0"';<br />
            if ($youTubeMatch) {<br />
                $extra .= ' allowfullscreen';<br />
            } elseif ($vimeoMatch) {<br />
                $extra .= ' webkitAllowFullScreen mozallowfullscreen allowFullScreen';<br />
            }<br />
            return '&lt;iframe ' . $matches[1] . $extra . '&gt;&lt;/iframe&gt;';<br />
        } else {<br />
            return '';<br />
        }<br />
    }<br />
}</p>
]]></description>
			<author>스레드봇</author>
			<pubDate>Fri, 20 Mar 2015 09:26:08 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>