簡體   English   中英

如何使用API​​將CKEditor RTE添加到typo3后端模塊?

[英]How to add CKEditor RTE to typo3 Backend Module with the API?

這個問題類似於那個問題: 基於Extbase和Fluid的自己的后端模塊中的RTE,但不完全相同,因此我創建了一個新問題。


我為typo3版本8.7.7創建注釋擴展。

我在BackendModule中的textarea字段中添加了RTE編輯器(CKEditor)。

因此,我的評論模型中具有以下TCA:

'text' => [
    'exclude' => true,
    'label' => 'LLL:EXT:rmcomment/Resources/Private/Language/locallang_db.xlf:tx_rmcomment_domain_model_comment.text',
    'config' => [
        'type' => 'text',
        'enableRichtext' => true,
        'richtextConfiguration' => 'minimal',
        'fieldControl' => [
            'fullScreenRichtext' => [
                'disabled' => false,
            ],
        ],
        'cols' => 40,
        'rows' => 15,
        'eval' => 'trim,required',
    ],
],

后端模板如下所示:

<f:form action="create" name="newComment" object="{newComment}" arguments="{author:beuser.username, email:beuser.email}">

    <strong>Eingeloggt als: {beuser.realname} (Username: {beuser.username}) (Email: {beuser.email})</strong><br>

    <label for="commentEmailCheckbox">Öffentliche E-Mail:</label>
        <f:form.checkbox id="commentEmailCheckbox" property="mailPublic" value="1" />
    <br><br>

    <label for="commentText" class="text{rm:hasError(property:'text',then:' text-danger')}">
        <f:translate key="tx_rmcomment_domain_model_comment.text" />
        <span class="small">( <f:translate key="tx_rmcomment_domain_model_comment.required" /> )</span>
    </label><br>
        <f:form.textarea id="commentText" property="text" cols="120" rows="6" /><br>

    <f:form.submit value="{f:translate(key:'tx_rmcomment_domain_model_comment.saveComment')}" class="btn btn-default" />
</f:form>

有沒有一種更好的方法可以使RTE在我的Backend-Module中工作,而在我的流體模板中沒有“臟javascript”(**我的回答 )?

編輯

我認為這是唯一的解決方案,所以我現在將工作部分移到一個答案。

在新表格下,我添加以下javascript:

<script src="https://cdn.ckeditor.com/4.7.3/standard/ckeditor.js" type="text/javascript"></script>
<script src="/typo3conf/ext/rmcomment/Resources/Public/Backend/RTE/ckcomment.js" type="text/javascript"></script>

我的ckcomment.js看起來像這樣:

// Configure New Comment CKEditor-Form
CKEDITOR.config.customConfig = '/typo3conf/ext/rmcomment/Resources/Public/Backend/RTE/backendRTEconfig.js';
CKEDITOR.replace( 'commentText' );
$('.text').click(function(){
    CKEDITOR.instances.commentText.focus();
});

backendRTEconfig.js具有以下內容:

CKEDITOR.editorConfig = function( config ) {
    config.toolbar = [
        { name: 'basicstyles', items: [ 'Bold', 'Italic' ] },
        { name: 'paragraph', items: [ 'NumberedList', 'BulletedList', '-', 'Blockquote', ] },
        { name: 'document', items: [ 'Source' ] },
    ];
};

現在,我為我的后端模塊有了一個帶有自定義編輯器按鈕的CKEditor。 到目前為止,這是我發現的唯一方法。

在另一個擴展中,我的自定義內容元素不必加載ckeditor的“庫”或我的configuration-javascript 在那里,我只需要添加TCA: 'richtextConfiguration' => 'minimal'

如果有人知道如何在我的模板中沒有javascirpt“ loader”的情況下激活ckeditor,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM