Jet\Form_Renderer_Field_Input_WYSIWYG

Renderer WYSIWYG editoru. Třída dědí od Form_Renderer_Field_Input.

Výchozí view skripty

Název výchozího view skriptu je field/input/wysiwyg.

K hodnotě v systémové konfiguraci lze přistupovat takto:

$view_script_start SysConf_Jet_Form_DefaultViews::get($field->getType(), 'input'); SysConf_Jet_Form_DefaultViews::set$field_type 'input''my-view-script');

POZOR! WYSIWYG editor není součástí Jet! V ukázkové aplikaci je jeden konkrétní editor integrován, ale ten můžete vyměnit za editor jiný. Stačí si upravit příslušný view skript. (Samozřejmě není problém v jedné aplikaci používat více druhů editorů - pokud by to bylo třeba).

Renderer sám tedy není pevně spojen s žádným konkrétním editorem, ale pouze poskytuje vše potřebné, aby bylo možné editor integrovat.

Co renderer umožňuje je modifikovat konfiguraci editoru. Tedy můžete používat jeden druh editoru, ale mít jej na různých místech aplikace pro různé účely různě nastavený.

Přehled metod

Metoda Význam
public setEditorConfig(
array $editor_config
) : void
Nastaví konfiguraci editoru.
Podoba konfigurace závisí na tom jaký editor byl integrován.
Metody je možné volat například ve view zobrazujícím formulář s editorem a nastavovat tak specifické chování editoru pro jeho konkrétní použití.
public getEditorConfig(
) : array|null
Vrací konfiguraci editoru. Viz metoda setEditorConfig.
public appendEditorCSSFile(
string $URI,
string $media='screen'
) : void
Přidá adresu k CSS souboru, který editor potřebuje pro svou činnost.
public getEditorCSSFiles(
) : array
Vrátí adresy požadovaných CSS souborů.
public appendEditorJavaScriptFile(
string $URI
) : void
Přidá adresu JavaScript souboru, který editor potřebuje pro svou činnost.
public getEditorJavaScriptFiles(
) : array
Vrátí adresy požadovaných JavaScript souborů.
public setEditorInitializeCodeGenerator(
callable $editor_initialize_code_generator
) : void
Nastaví generátor, jehož úkolem je vygenerovat kus kódu (nejpravděpodobněji JavaScript), který aditor aktivuje a nastaví.
public getEditorInitializeCodeGenerator(
) : callable|null
Vrátí generátor inicializačního kódu. Viz metoda setEditorInitializeCodeGenerator.
public requireEditorCSSandJavaScriptFiles(
) : void
Postará se o vložení požadovaných CSS a JS souborů do layoutu.
public generateEditorInitializeCode(
) : string
Postará se o vygenerování inicializačního kódu. Automaticky volá metodu requireEditorCSSandJavaScriptFiles

Příklad integrace editoru

use Jet\MVC_View;
use 
Jet\Form_Renderer_Field_Input_WYSIWYG;
use 
Jet\Form_Field_WYSIWYG;

/**
 * @var MVC_View $this
 * @var Form_Renderer_Field_Input_WYSIWYG $r
 * @var Form_Field_WYSIWYG $field
 */
$r $this->getRaw'renderer' );
$field $r->getField();

//-----------------------------------------------------------------------------------

//$r->appendEditorCSSFile( '//cdn.tiny.cloud/1/no-api-key/tinymce/5/skins/lightgray/skin.min.css');
$r->appendEditorJavaScriptFile('//cdn.tiny.cloud/1/no-api-key/tinymce/5/tinymce.min.js',);
$r->setEditorInitializeCodeGenerator( function( Form_Field_WYSIWYG $field, array $editor_config ) : string {
    
    
$editor_config['selector'] = '#' $field->getId();
    
    if( 
$field->getIsReadonly() ) {
        
$editor_config['readonly'] = 1;
    }
    
    return 
'tinymce.init(' json_encode$editor_config ) . ')';
} );

if( !
$r->getEditorConfig() ) {
    
$r->setEditorConfig([
        
        
'mode'                    => 'exact',
        
'apply_source_formatting' => true,
        
'remove_linebreaks'       => false,
        
'entity_encoding'         => 'raw',
        
'convert_urls'            => false,
        
'verify_html'             => true,
        
        
'force_br_newlines' => false,
        
'force_p_newlines'  => false,
        
'forced_root_block' => '',
    
        
'plugins'       => 'advlist autolink lists link image ',
        
'paste_as_text'     => true,
    ]);
}

?>
<textarea <?=$r->renderTagAttributes()?>><?= $field->getValueRaw() ?></textarea>
Předchozí kapitola
Jet\Form_Renderer_Field_Input_Textarea
Další kapitola
Určování šířek elementů