WYSIWYG Preprocessor 종속성이 없는 PHP 라이브러리 입니다. 이는 HTML 텍스트 영역을 처리하기 위한 일종의 도구 상자 입니다.
소스는 Composer로 관리됩니다.
composer require akibatech/wysiwygpreprocessor " 0.* "
주어진 텍스트 영역에 대해,
$ textarea = " Check my website http://website.com. Keep in touch at [email protected] ! " ;
링크와 이메일 주소를 HTML 태그로 변환하고 싶습니다.
use Akibatech Wysiwyg Processor ;
use Akibatech Wysiwyg Modifier ;
$ processor = new Processor ();
$ processor -> addModifier ( new Modifier UrlToLink )
-> addModifier ( new Modifier MailToLink )
-> process ( $ textarea );
echo $ processor -> getOutput ();
결과 :
Check my website < a href =" http://website.com " > http://website.com </ a > . Keep in touch at < a href =" mailto:[email protected] " > [email protected] </ a > !
수정자는 쉽게 사용자 정의할 수 있습니다.
새 페이지에 대한 모든 링크를 타겟팅하거나 여기에 사용자 정의 클래스를 추가하고 싶다고 상상해 보세요.
$ textarea = ' Check out my new site: personnal-website.com ' ;
$ modifier = new Akibatech Wysiwyg Modifier UrlToLink ();
$ modifier -> setOptions ([
' class ' => ' custom-link ' ,
' target ' => ' _blank '
])
$ processor = new Akibatech Wysiwyg Processor ();
$ processor -> addModifier ( $ modifier )
-> process ( $ textarea );
echo $ processor -> getOutput ();
결과 :
Check out my new site: < a href =" personnal-website.com " class =" custom-link " target =" _blank " > personnal-website.com </ a >
클래스: AkibatechWysiwygModifierBbCode
설명: 콘텐츠를 향상하려면 기본 BBCode를 적용하세요.
입력 예: [b]Hello[/b]
출력 예: <strong>Hello</strong>
옵션:
기본 태그는 b, i, u, left, right, center, quote, link, img, size 및 color입니다.
옵션은 Wilcard BBCode 태그입니다. 키는 원하는 BBCode 태그이고 옵션은 HTML 대체입니다.
패턴을 배열로 지정하면 [link=http://github.com]my profile[/link]
과 같은 태그 옵션에 <a href="$1">$2</a>
로 접근할 수 있습니다.
[
// New tag called [yellow]text in yellow[/yellow]
' yellow ' => ' <span style="color: yellow;">$1</span> ' ,
// Disable default "b" tag
' b ' => null
]
클래스: AkibatechWysiwygModifierParseVariables
설명: 변수 사전 설정을 교체합니다.
입력 예: Hello %name%!
출력 예: Hello John!
옵션:
구분 기호와 허용되는 변수를 지정할 수 있습니다.
[
// My custom delimiter. Vars are parsed in this delimiter. Default is "%".
' in ' => ' % ' ,
// Accepted vars
' accept ' => [
' name ' => ' Joe ' , // %name% => Joe
' email ' => ' [email protected] ' // %email% => [email protected]
]
]
클래스: AkibatechWysiwygModifierAbsolutePath
설명: "href" 및 "src" 속성을 절대값으로 대체합니다.
입력 예: <img src="../../files/sea.jpg" />
출력 예: <img src="/files/sea.jpg" />
옵션:
경로에 대한 사용자 정의 접두사를 지정할 수 있습니다.
[
// Custom prefix. Default is '/'.
' prefix ' => ' http://site.com/ ' , // <img src="http://site.com/files/sea.jpg" />
]
클래스: AkibatechWysiwygModifierWordsFilter
설명: 텍스트에서 단어 목록을 제거합니다. 검열 시스템으로 작동합니다.
입력 예: Cunt!
출력 예: [censored]!
옵션:
목록과 교체.
[
// Words list as an array.
' words ' => [ ' word1 ' , ' word2 ' ], // No defaults words.
// Replacement
' replace ' => ' [censored] ' // Wanted replacement, default to [censored]
]
클래스: AkibatechWysiwygModifierEmptyParagraphs
설명: 콘텐츠에서 빈 단락을 삭제합니다.
입력 예: <p></p><p>Hello</p><p> </p>
출력 예: <p>Hello</p>
옵션:
없음.
클래스: AkibatechWysiwygModifierMailToLink
설명: 클릭 가능한 링크 태그에서 이메일 주소를 변환합니다.
입력 예: [email protected]
출력 예: <a href="mailto:[email protected]">[email protected]</a>
옵션:
[
// Will replace "@" by "<at>", set to false to disable...
' at ' => ' <at> ' ,
]
클래스: AkibatechWysiwygModifierNlToBr
설명: 줄바꿈을 HTML 줄바꿈으로 바꿉니다. PHP 기본 함수 nl2br()과 유사합니다.
입력 예: hello world
출력 예: hello<br>world
옵션:
[
// Linebreak symbol to search. Defaults to "n"
' search ' => "n" ,
// HTML to replace. Defaults to "<br>"
' replace ' => ' <br /> '
]
클래스: AkibatechWysiwygModifierStripTags
설명: 입력에서 HTML 태그를 제거합니다. PHP 기본 함수 Strip_tags()와 유사합니다.
입력 예: <p>hello world</p>
출력 예: hello world
옵션:
[
// Allowed HTML tags (see strip_tags documentation). Defaults, none.
' allow ' => " <a> " ,
]
클래스: AkibatechWysiwygModifierUrlToLink
설명: 클릭 가능한 링크 태그에서 웹 주소를 변환합니다.
입력 예: https://www.github.com
출력 예: <a href="https://www.github.com">https://www.github.com</a>
옵션:
[
// Add a custom class to all generated tags. No defaults.
' class ' => ' link ' ,
// Customize the link target. No defaults.
' target ' => ' _blank '
]
클래스: AkibatechWysiwygModifierYoutubeLinkToIframe
설명: YouTube 링크(긴 링크와 짧은 링크)를 삽입된 비디오 플레이어(iframe)로 변환합니다.
입력 예: My new video: https://youtu.be/wBqM2ytqHY4
출력 예: My new video: <iframe src="https://www.youtube.com/embed/wBqM2ytqHY4?controls=1&rel=0&showinfo=1" class="youtube-iframe" width="560" height="315" frameborder="0" allowfullscreen></iframe>
옵션:
[
// Custom class added to the player
' class ' => ' youtube-iframe ' ,
// Custom width (in px) or null
' width ' => 560 ,
// Custom height (in px) or null
' height ' => 315 ,
// Allow fullscreen
' allow_fullscreen ' => true ,
// Enable youtube suggestions when video ends
' with_suggestions ' => false ,
// Display video info
' with_infos ' => true ,
// Display video controls
' with_controls ' => true
]
자신만의 수정자를 추가하여 전처리기를 쉽게 확장할 수 있습니다.
ModifierInterface 를 구현하는 클래스를 생성하기만 하면 됩니다. 또한 일반적인 메소드(setOptions, getOptions, ...)에 액세스하기 위해 AbstractModifier를 확장하는 것이 좋습니다.
기본적으로 수정자는 공용 메서드인 handler($input) 을 통해 변환할 입력을 받습니다.
옵션은 사용 가능한 옵션 배열을 반환하는 public 메서드 defaultOptions() 에 의해 처리됩니다. 그리고 수정자 본문에서 인스턴스 속성 options 을 사용하여 이러한 옵션에 액세스할 수 있습니다.
동적 수정자를 추가할 수도 있습니다.
"addModifier" 메소드는 콜백 함수도 허용합니다.
예 :
$ processor -> addModifier ( function ( $ input ) {
return str_rot13 ( ' hello ' ); // Will return "uryyb"
});
WYSIWYG Preprocessor PHPUnit으로 테스트되었습니다.
Composer dev 종속 항목이 설치되어 있는지 확인하고 다음을 입력하세요.
vendor/bin/phpunit
작성자: Marceau Casals 및 모든 기여자
라이센스: MIT