스마트에디터에서 굵게 설정한 글자가 채택완료
고기조아
2년 전
조회 2,181
스마트에디터2 사용중이고,
글작성시 에디터 모드에서 글자를 굵게 하거나,
글머리기호(ul, li)를 적용해도
실제 글읽기에서는 적용안된 화면으로 나옵니다.
글색깔이나 배경색, 윗첨자, 아래첨자 등은 먹히구요,
아래 코드는 common.lib.php 설정 부분입니다.
</p>
<p>// 내용을 변환
function conv_content($content, $html, $filter=true)
{
global $config, $board;</p>
<p> if ($html)
{
$source = array();
$target = array();</p>
<p> $source[] = "//";
$target[] = "";</p>
<p> if ($html == 2) { // 자동 줄바꿈
$source[] = "/\n/";
$target[] = "
";
}</p>
<p> // 테이블 태그의 개수를 세어 테이블이 깨지지 않도록 한다.
$table_begin_count = substr_count(strtolower($content), "<table");
$table_end_count = substr_count(strtolower($content), "</table");
for ($i=$table_end_count; $i<$table_begin_count; $i++)
{
$content .= "</table>";
}</p>
<p> $content = preg_replace($source, $target, $content);</p>
<p> if($filter)
$content = html_purifier($content);
}
else // text 이면
{
// & 처리 : & 등의 코드를 정상 출력함
$content = html_symbol($content);</p>
<p> // 공백 처리
//$content = preg_replace("/ /", " ", $content);
$content = str_replace(" ", " ", $content);
$content = str_replace("\n ", "\n ", $content);</p>
<p> $content = get_text($content, 1);
$content = url_auto_link($content);
}</p>
<p> return $content;
}</p>
<p>function check_html_link_nofollow($type=''){
return true;
}</p>
<p>// <a href="http://htmlpurifier.org/" target="_blank" rel="noopener noreferrer">http://htmlpurifier.org/</a>
// Standards-Compliant HTML Filtering
// Safe : HTML Purifier defeats XSS with an audited whitelist
// Clean : HTML Purifier ensures standards-compliant output
// Open : HTML Purifier is open-source and highly customizable
function html_purifier($html)
{
$f = file(G5_PLUGIN_PATH.'/htmlpurifier/safeiframe.txt');
$domains = array();
foreach($f as $domain){
// 첫행이 # 이면 주석 처리
if (!preg_match("/^#/", $domain)) {
$domain = trim($domain);
if ($domain)
array_push($domains, $domain);
}
}
// 내 도메인도 추가
array_push($domains, $_SERVER['HTTP_HOST'].'/');
$safeiframe = implode('|', $domains);</p>
<p> include_once(G5_PLUGIN_PATH.'/htmlpurifier/HTMLPurifier.standalone.php');
include_once(G5_PLUGIN_PATH.'/htmlpurifier/extend.video.php');
$config = HTMLPurifier_Config::createDefault();
// data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다.
$config->set('Cache.SerializerPath', G5_DATA_PATH.'/cache');
$config->set('HTML.SafeEmbed', false);
$config->set('HTML.SafeObject', false);
$config->set('Output.FlashCompat', false);
$config->set('HTML.SafeIframe', true);
if( (function_exists('check_html_link_nofollow') && check_html_link_nofollow('html_purifier')) ){
$config->set('HTML.Nofollow', true); // rel=nofollow 으로 스팸유입을 줄임
}
$config->set('URI.SafeIframeRegexp','%^(https?:)?//('.$safeiframe.')%');
$config->set('Attr.AllowedFrameTargets', array('_blank'));
//유튜브, 비메오 전체화면 가능하게 하기
$config->set('Filter.Custom', array(new HTMLPurifier_Filter_Iframevideo()));
$purifier = new HTMLPurifier($config);
return run_replace('html_purifier_result', $purifier->purify($html), $purifier, $html);
}</p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인