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 and color.
الخيارات هي علامة البدل 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 . ننصحك أيضًا بتوسيع AbstractModifier للوصول إلى الطرق الشائعة (setOptions، getOptions، ...).
في الأساس، يتلقى المُعدِّل المدخلات للتحويل من خلال مقبض الأسلوب العام ($input) .
يتم التعامل مع الخيارات من خلال الطريقة العامة defaultOptions() التي تُرجع مجموعة من الخيارات المتاحة. وفي نص التعديل الخاص بك، يمكنك الوصول إلى هذه الخيارات باستخدام خيارات سمة المثيل.
لديك أيضًا إمكانية إضافة معدل ديناميكي.
تقبل الطريقة "addModifier" أيضًا وظيفة رد الاتصال.
مثال :
$ processor -> addModifier ( function ( $ input ) {
return str_rot13 ( ' hello ' ); // Will return "uryyb"
});
يتم اختبار WYSIWYG Preprocessor باستخدام PHPUnit.
تأكد من تثبيت تبعيات Composer dev واكتب:
vendor/bin/phpunit
المؤلف: مارسو كاسالس وجميع المساهمين
الترخيص: معهد ماساتشوستس للتكنولوجيا