web-dev-qa-db-ja.com

ノードコンテンツではないサイト上のテキストを管理するにはどうすればよいですか?

次のように、ノードコンテンツではないテキストがサイトにあります。

  • フッターの法的テキスト
  • "ニュースレターを購読する"
  • 「カテゴリを参照」
  • 等.

開発作業をFeatureとして保存する必要がありますが、テキストを編集できるようにコンテンツエディターも必要です。しかし、私は彼らにすべてのブロックを編集する許可を与えたくありません。それほど遠くない将来、このサイトは別の地域に拡張されるため、このコンテンツも翻訳する必要があります。

このデータを格納するために設計された技術/ソリューションはありますか?

新しいコンテンツタイプを作成し、テキストごとに新しいフィールドを作成できます。 TPLファイルでフィールドを簡単に印刷できましたが、ブロックで印刷するのが少し難しいかもしれません。これを行うのにパフォーマンスが非効率的であるかどうかもわかりません。単一のフィールドを印刷すると、ノードオブジェクト全体が読み込まれますか?

Nodeblock モジュールについて聞いたことがあります(使用されていません)。これはうまくいくように見えますが、 Features モジュールで作業するのがどれほど簡単かわかりません(ノードをフィーチャーできるとは思いません)。

最初の方法の良い点の1つは、フィールドラベルが「Footerリーガルテキスト」などの説明的なものになり、翻訳が容易になることです。

3
Evanss

Bean モジュールの使用を検討してください。ここにそのプロジェクトページについての引用があります:

Beanを新しいタイプを提供するメソッドと考えてください(ノードと比較すると、これはコンテンツタイプになります)。必要な数のブロックを作成するための追加コンテンツインターフェースを提供します(下のスクリーンショットを参照)。 Beanのコンテンツは、他のブロックと同じようにサイトの周りに配置できます。

コンテンツエディターに適切なBean権限を付与すると、表示されますあなたが探しているものに対して可能な解決策に近いかもしれないと私に。

ビデオチュートリアル Drupal Beanモジュールチュートリアル-Bean管理UIの使用 は、このモジュールの能力と、(サイト構築テクニックのみを使用して)モジュールで実行できることを実際に理解するための優れた入門を提供します。カスタムコーディングは含まれません)。また、BeanモジュールがDrupalブロックをフィールド化可能なエンティティに変換する方法も示しています。

PS:このモジュールはD7でのみ開始され、D8のコアにすでに統合されています...

5
Pierre.Vriens

カスタムブロックを作成するか(構造>ブロック>ブロックを追加)、または新しいカスタムメニューを作成(構造>メニュー>追加メニュー)し、(構造>ブロック)に移動して、目的の領域に保持することができます。

既存の領域を使用したくない場合は、新しい領域を作成し、コンテンツを他の場所に印刷し、.tplファイルに印刷して表示場所を割り当てることもできます。そしてそれにメニュー/ブロックを割り当てます

印刷ブロック

カスタムリージョンを作成するには、次のURLにアクセスしてください。 https://www.drupal.org/node/1088718#comment-4194802テーマにカスタムリージョンを作成するにはどうすればよいですか?

1
Dev

私が得たものから、特定のブロックにいくつかの特権を付与する必要がありますが、それらのすべてを一部のユーザーまたはロールに付与する必要はありません。

そのためには、 block_access モジュールを使用することをお勧めします。

このモジュールは、ブロックの作成、表示、移動、有効化、無効化、構成のための一連のグローバル権限と、個々のブロックレベルでの権限を追加します。これらの権限は管理インターフェイスにのみ影響し、フロントエンドのビューアクセスはコアで処理されます。

また、 Patchをblock_access-7.x-1.xに対してチェックして、ブロックごとにアクセス設定を構成できるようにする必要もあります 。このモジュールの詳細については、 特定のブロックでブロックアクセスを使用する方法をご覧ください

1
M a m a D

いくつかのビュータイトルも管理したいようです。サイトのコンテンツ管理者がこのモジュールで編集できる基本設定として、ビューのタイトルを開くことができます。 https://www.drupal.org/project/views_ui_basic

1

1つのブロックを作成することをお勧めします。同じことを試しましたか?ブロックの本体に、サイト全体に置きたいもののhtmlを置くだけです。そして、あなたのサイトを通じて利用できるフッターまたはヘッダーでこのブロックを有効にします。これで問題が解決すると思います。

1
Viraj