logologo
Úvod
Manuál
Vývoj
Pluginy
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Úvod
Manuál
Vývoj
Pluginy
API
logologo

Rychlý start

Úvod
Vytvoření pluginu pro bloky
Previous PageÚvod
TIP

Tento dokument byl přeložen umělou inteligencí. V případě nepřesností se prosím obraťte na anglickou verzi

#Vytvořte svůj první blokový plugin

Než začnete, doporučujeme si přečíst „Vytvořte svůj první plugin“, abyste se dozvěděli, jak rychle vytvořit základní plugin. Dále jej rozšíříme o jednoduchou funkci bloku.

#Krok 1: Vytvořte soubor modelu bloku

V adresáři pluginu vytvořte nový soubor: client/models/SimpleBlockModel.tsx

#Krok 2: Napište obsah modelu

V souboru definujte a implementujte základní model bloku, včetně jeho logiky vykreslování:

import { BlockModel } from '@nocobase/client';
import React from 'react';
import { tExpr } from '../utils';

export class SimpleBlockModel extends BlockModel {
  renderComponent() {
    return (
      <div>
        <h1>Hello, NocoBase!</h1>
        <p>This is a simple block rendered by SimpleBlockModel.</p>
      </div>
    );
  }
}

SimpleBlockModel.define({
  label: tExpr('Hello block'),
});

#Krok 3: Zaregistrujte model bloku

V souboru client/models/index.ts exportujte nově vytvořený model:

import { ModelConstructor } from '@nocobase/flow-engine';
import { SimpleBlockModel } from './SimpleBlockModel';

export default {
  SimpleBlockModel,
} as Record<string, ModelConstructor>;

#Krok 4: Aktivujte a vyzkoušejte blok

Po aktivaci pluginu uvidíte v rozbalovací nabídce „Přidat blok“ novou možnost Hello block.

Ukázka efektu:

20251102223200_rec_

#Krok 5: Přidejte bloku možnost konfigurace

Dále přidáme bloku konfigurovatelnou funkcionalitu pomocí pracovního postupu, což uživatelům umožní upravovat obsah bloku přímo v rozhraní.

Pokračujte v úpravách souboru SimpleBlockModel.tsx:

import { BlockModel } from '@nocobase/client';
import React from 'react';
import { tExpr } from '../locale';

export class SimpleBlockModel extends BlockModel {
  renderComponent() {
    return <div dangerouslySetInnerHTML={{ __html: this.props.html }} />;
  }
}

SimpleBlockModel.define({
  label: tExpr('Simple block'),
});

SimpleBlockModel.registerFlow({
  key: 'flow1',
  title: tExpr('Simple Block Flow'),
  on: 'beforeRender',
  steps: {
    editHtml: {
      title: tExpr('Edit HTML Content'),
      uiSchema: {
        html: {
          type: 'string',
          title: tExpr('HTML Content'),
          'x-decorator': 'FormItem',
          'x-component': 'Input.TextArea',
        },
      },
      defaultParams: {
        html: `<h3>This is a simple block</h3>
<p>You can edit the HTML content.</p>`,
      },
      handler(ctx, params) {
        ctx.model.props.html = params.html;
      },
    },
  },
});

Ukázka efektu:

20251102222856_rec_

#Shrnutí

Tento článek představil, jak vytvořit jednoduchý blokový plugin, včetně:

  • Jak definovat a implementovat model bloku
  • Jak zaregistrovat model bloku
  • Jak přidat konfigurovatelnou funkcionalitu bloku pomocí pracovního postupu

Kompletní zdrojový kód naleznete zde: Příklad jednoduchého bloku