FriendsOfREDAXO / redactor

Integriert den Redactor WYSIWYG-Editor in aktueller Version
Other
28 stars 5 forks source link
redactor redaxo redaxo-addon wysiwyg

Redactor Editor

Bindet den WYSIWYG-Editor Redactor in Version 3 im Backend ein.

Screenshot

Funktionen

Redactor Plugins

Profil

Ein Profil wird entsprechend wie folgt angelegt:

html,undo,|,redo,h1,h2,h3,h4,bold,italic,|,image,blockquote,lists[indent],ol,ul,linkExternal,linkInternal,hr,linkYForm[rex_yform_test=last_name|rex_yform_news=title],table,widget

Weitere Einstellungen können hinterlegt werden, dazu die Parameter des Vendors beachten: https://imperavi.com/redactor/docs/settings/overview/

Modulbeispiel

Eingabe

Der in der Profilverwaltung erstellte Selector wird der Textarea als css-class zugeordnet.

<textarea class="form-control redactor-editor--full" name="REX_INPUT_VALUE[1]">REX_VALUE[1]</textarea>

Ausgabe

REX_VALUE[id="1" output="html"]

Hinweise

Plugin linkYForm

Um die fiktiven generierten Urls wie rex-yf-news://1 zu ersetzen, muss folgendes Skript in die boot.php des project AddOns. Dazu müsste der Code für die Urls angepasst werden.

\rex_extension::register('OUTPUT_FILTER', function(\rex_extension_point $ep) {
    return preg_replace_callback(
        '@(rex-yf-(news|person))://(\d+)(?:-(\d+))?/?@i',
        function ($matches) {
            // table = $matches[1]
            // id = $matches[3]
            $url = '';
            switch ($matches[1]) {
                case 'rex-yf-news':
                    // Beispiel, falls die Urls via Url-AddOn generiert werden 
                    $object = News::get($matches[3]);
                    if ($object) {
                        $url = $object->getUrl();

                        // die getUrl Methode könnte so aussehen
                        // public function getUrl()
                        // {
                        //     return rex_getUrl('', '', ['news-id' => $this->id]);
                        // }
                    }
                    break;
                case 'rex-yf-person':
                    // ein anderes Beispiel 
                    $url = '/index.php?person='.$matches[3];
                    break;
            }
            return $url;
        },
        $ep->getSubject()
    );
}, rex_extension::NORMAL);

Migration von redactor2 zu redactor (3, diese Version)

https://github.com/FriendsOfREDAXO/redactor/issues/11