Bindet den WYSIWYG-Editor Redactor in Version 3 im Backend ein.
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/
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>
REX_VALUE[id="1" output="html"]
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);
redactor2
zu redactor
(3, diese Version)