1

今回は、Orchard のカスタム ウィジェットに苦労しています。これは、2 つのフィールドを持つ単純なコンテンツ パーツです: - 背景色 - サイズ

このウィジェットに HTML コンテンツを追加できるようにしたいと考えています。だから私は体の部分を追加しました。この部分はウィジェット内に表示する必要があります。結果は次のようになります。

<div class="size-small bg-color-red"> BODY PART HTML CONTENT </div>

残念ながら、ボディ パーツは常にウィジェットの前後に表示されます。

<Placement>
    <Place Parts_ContentTile="Content"/>
    <Place Parts_ContentTile_Edit="Content:7.5"/>
</Placement>

あまり良くない「解決策」: これを解決する方法は、本文部分を削除して単純なテキスト フィールドに置き換えることです。このテキスト フィールドは、目的の位置にレンダリングされます。ただし、TinyMCE エディターは使用できません。

Ivan からのコメント後の更新:
両方 (Content Type と Content Part (個別)) を変更しようとしましたが、残念ながら、両方とも TextField コンテンツがウィジェットの後に表示されます。それは Placement.info で修正する必要がありますか?

もう 1 つのオプションは、ウィジェット モデルに String フィールドを追加することです。ただし、TinyMCE エディターを表示することはできません。私は正しいですか?

そのため、ウィジェット、コンテンツ パーツ、および配置に関する私の期待は間違っていると感じています。うまくいけば、ここの誰かが私を正しい方向に向けることができます.

4

2 に答える 2

2

を使用する場合は、フィールドの設定で指定することでTextField使用できます。TinyMCEHTML flavor

これを行うには、Content→(Content TypesまたはContent Parts変更しようとしているものに応じて)→ContentTypeまたはを選択→使用しているContentPartの定義を展開→ドロップダウンメニューから選択→ボタンをクリックします。TextFieldHTMLFlavorSave

于 2013-01-03T12:25:14.513 に答える
1

Mark Zの SO に関するこの投稿は、私にとって本当に役に立ちました。

モデルに String プロパティを追加し、新しいデータベース移行を追加しました。

public int UpdateFrom3()
{
   // Adds a new Content column
   SchemaBuilder.AlterTable("ContentTileRecord", table => table.AddColumn("Content", DbType.String));

   return 4;
}

その後、フィールドをエディター パーツ ビューに追加しました。

@Script.Require("OrchardTinyMce")

<div class="editor-label">
   @Html.LabelFor(model => model.Content)
</div>

<div class="editor-field">
   @Html.TextAreaFor(model => model.Content, new { @class = "html tinymce" }) 
</div>

Content プロパティが TextArea として表示されるようになりました。クラス「html および tinymce」により、TinyMCE エディターがインスタンス化されます。(Script.Require 呼び出しを忘れないでください)

Content プロパティには HTML が含まれているため、@Html.Raw ヘルパーを使用してこのプロパティの値を表示する必要があります。

@Html.Raw(Model.Content)
于 2013-01-07T11:32:27.690 に答える