WYSIWYG Preprocessor ist eine PHP-Bibliothek ohne Abhängigkeiten . Es ist eine Art Toolbox zum Verarbeiten Ihrer HTML-Textbereiche .
Die Quellenverwaltung erfolgt mit Composer.
composer require akibatech/wysiwygpreprocessor " 0.* "
Für den angegebenen Textbereich gilt:
$ textarea = " Check my website http://website.com. Keep in touch at [email protected] ! " ;
Wir möchten den Link und die E-Mail-Adresse in HTML-Tags umwandeln
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 ();
Ergebnisse in:
Check my website < a href =" http://website.com " > http://website.com </ a > . Keep in touch at < a href =" mailto:[email protected] " > [email protected] </ a > !
Modifikatoren sind leicht anpassbar.
Stellen Sie sich vor, Sie möchten alle Links auf eine neue Seite verweisen oder ihr eine benutzerdefinierte Klasse hinzufügen.
$ 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 ();
Ergebnisse in:
Check out my new site: < a href =" personnal-website.com " class =" custom-link " target =" _blank " > personnal-website.com </ a >
Klasse: AkibatechWysiwygModifierBbCode
Beschreibung: Wenden Sie einen einfachen BBCode an, um Ihre Inhalte zu verbessern.
Beispieleingabe: [b]Hello[/b]
Beispielausgabe: <strong>Hello</strong>
Optionen:
Standard-Tags sind: b, i, u, left, right, center, quote, link, img, size und color.
Optionen sind Platzhalter-BBCode-Tags. Der Schlüssel ist das gewünschte BBCode-Tag und die Option ist der HTML-Ersatz.
Wenn das Muster als Array angegeben wird, kann es auf Tag-Optionen wie [link=http://github.com]my profile[/link]
als <a href="$1">$2</a>
zugreifen.
[
// New tag called [yellow]text in yellow[/yellow]
' yellow ' => ' <span style="color: yellow;">$1</span> ' ,
// Disable default "b" tag
' b ' => null
]
Klasse: AkibatechWysiwygModifierParseVariables
Beschreibung: Ersetzen Sie eine Voreinstellung von Variablen.
Beispieleingabe: Hello %name%!
Beispielausgabe: Hello John!
Optionen:
Sie können das Trennzeichen und die akzeptierten Variablen angeben.
[
// 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]
]
]
Klasse: AkibatechWysiwygModifierAbsolutePath
Beschreibung: Ersetzt die Attribute „href“ und „src“ durch absolute Werte.
Beispieleingabe: <img src="../../files/sea.jpg" />
Beispielausgabe: <img src="/files/sea.jpg" />
Optionen:
Sie können ein benutzerdefiniertes Präfix für Ihre Pfade angeben.
[
// Custom prefix. Default is '/'.
' prefix ' => ' http://site.com/ ' , // <img src="http://site.com/files/sea.jpg" />
]
Klasse: AkibatechWysiwygModifierWordsFilter
Beschreibung: Eine Wortliste aus einem Text entfernen. Als Zensursystem fungieren.
Beispieleingabe: Cunt!
Beispielausgabe: [censored]!
Optionen:
Die Liste und der Ersatz.
[
// Words list as an array.
' words ' => [ ' word1 ' , ' word2 ' ], // No defaults words.
// Replacement
' replace ' => ' [censored] ' // Wanted replacement, default to [censored]
]
Klasse: AkibatechWysiwygModifierEmptyParagraphs
Beschreibung: Löschen Sie leere Absätze aus Ihrem Inhalt.
Beispieleingabe: <p></p><p>Hello</p><p> </p>
Beispielausgabe: <p>Hello</p>
Optionen:
Keiner.
Klasse: AkibatechWysiwygModifierMailToLink
Beschreibung: Wandelt E-Mail-Adressen in anklickbare Link-Tags um.
Beispieleingabe: [email protected]
Beispielausgabe: <a href="mailto:[email protected]">[email protected]</a>
Optionen:
[
// Will replace "@" by "<at>", set to false to disable...
' at ' => ' <at> ' ,
]
Klasse: AkibatechWysiwygModifierNlToBr
Beschreibung: Zeilenumbrüche durch HTML-Zeilenumbrüche ersetzen. Ähnlich der nativen PHP-Funktion nl2br().
Beispieleingabe: hello world
Beispielausgabe: hello<br>world
Optionen:
[
// Linebreak symbol to search. Defaults to "n"
' search ' => "n" ,
// HTML to replace. Defaults to "<br>"
' replace ' => ' <br /> '
]
Klasse: AkibatechWysiwygModifierStripTags
Beschreibung: HTML-Tags aus der Eingabe entfernen. Ähnlich der nativen PHP-Funktion strip_tags().
Beispieleingabe: <p>hello world</p>
Beispielausgabe: hello world
Optionen:
[
// Allowed HTML tags (see strip_tags documentation). Defaults, none.
' allow ' => " <a> " ,
]
Klasse: AkibatechWysiwygModifierUrlToLink
Beschreibung: Wandelt Webadressen in anklickbare Link-Tags um.
Beispieleingabe: https://www.github.com
Beispielausgabe: <a href="https://www.github.com">https://www.github.com</a>
Optionen:
[
// Add a custom class to all generated tags. No defaults.
' class ' => ' link ' ,
// Customize the link target. No defaults.
' target ' => ' _blank '
]
Klasse: AkibatechWysiwygModifierYoutubeLinkToIframe
Beschreibung: Wandelt YouTube-Links (lang und kurz) in einen eingebetteten Videoplayer (Iframe) um.
Beispieleingabe: My new video: https://youtu.be/wBqM2ytqHY4
Beispielausgabe: 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>
Optionen:
[
// 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
]
Sie können den Präprozessor problemlos erweitern, indem Sie Ihre eigenen Modifikatoren hinzufügen.
Sie müssen lediglich eine Klasse erstellen, die ModifierInterface implementiert. Wir empfehlen Ihnen auch, AbstractModifier zu erweitern, um auf gängige Methoden zuzugreifen (setOptions, getOptions, ...).
Grundsätzlich erhält ein Modifikator die zu transformierende Eingabe über eine öffentliche Methode handle($input) .
Optionen werden von einer öffentlichen Methode defaultOptions() verarbeitet, die ein Array verfügbarer Optionen zurückgibt. Und in Ihrem Modifikatorkörper können Sie mit dem Instanzattribut „ options “ auf diese Optionen zugreifen.
Sie haben auch die Möglichkeit, einen dynamischen Modifikator hinzuzufügen.
Die Methode „addModifier“ akzeptiert auch eine Callback-Funktion.
Beispiel :
$ processor -> addModifier ( function ( $ input ) {
return str_rot13 ( ' hello ' ); // Will return "uryyb"
});
WYSIWYG Preprocessor wurde mit PHPUnit getestet.
Stellen Sie sicher, dass Composer-Entwicklungsabhängigkeiten installiert sind, und geben Sie Folgendes ein:
vendor/bin/phpunit
Autor: Marceau Casals und alle Mitwirkenden
Lizenz: MIT