タグ付けされた質問 「blocks」

Drupalでは、テーマ領域に表示されるコンテンツと機能の自己完結型のコレクションをブロックと呼びます。

2
ブロック内のフォーム
drupal_get_form('event_signup_form')カスタムフォームをブロック内に埋め込むために使用しています。フォームは意図したとおりにレンダリングされますが、フォームを送信しても何もトリガーされません。 フォーム関数自体が呼び出さevent_signup_form($form, &$form_state)れ、送信関数が呼び出されますが、呼び出されてevent_signup_form_submit($form, &$form_state)いません。 hook_block_viewを使用してフォームを表示しています。 function event_block_view($delta = '') { $blocks = array(); if ($delta ...) { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } } 私はこれをうまく動作させることができました-ここに方法(スタブ)があります: function hook_block_view($delta = '') { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } function event_signup_form() { // Register form submit handler, same goes for validation handler $form['#submit'][] = 'event_signup_form_submit'; return $form; …
15 7  blocks  forms 

1
地域に応じたブロックのテーマフックの提案を作成する方法は?
Drupal 8以降、テンプレートの命名規則では、配置されている地域に応じて特定のブロックテンプレートを読み込むことはできません(「地域ごとのブロックマークアップと地域ごとのブロックテンプレート機能が削除されました」)。しかし、特定の地域に配置する場合は、ブロック用に異なるhtmlが必要です。どうすればこれを達成できますか? MYMODULE_theme_suggestions_block_alterを使用することを考えましたが、現在のリージョンを取得する方法がわかりません。
14 blocks  8  regions  theming 

7
プログラムでブロックを配置しますか?
Drupal 7を使用しています。現在、Webサイトのヘッダーにメインメニューナビゲーションと言語切り替え機能があります。CMS> Structure> Blocksに移動し、ヘッダー領域にブロックをドラッグして、それらを配置しました。 これらのブロックをプログラムでヘッダーに配置するにはどうすればよいですか?
14 7  blocks 

3
機能のブロック設定のエクスポート(Drupal 7)
開発サイトと本番サイトの間に合理的なワークフローを作成する方法を学ぼうとしていますが、このタスクを達成するために機能モジュールを使用することにしました。 私のフロントページには、新しく追加され、トップレートのコンテンツを表示するいくつかのブロックがあります。これらのビューをエクスポートするために機能を使用しましたが、ブロック設定をエクスポートする機能モジュールの内部にはとにかく表示されません。ページのコンテンツセクションに表示されるように、新しいプロジェクトと最高評価のブロックを設定しました。ビュー内のフロントページにのみ表示されるようにフィルターします。 機能内でこれらのブロック設定をエクスポートして、各サイトでそれらを再構成する必要がないようにするにはどうすればよいですか?
13 7  blocks  features 

4
カスタムブロックにキャッシュコンテキストを設定する正しい方法は何ですか?
ページごとに固有でなければならないブロックがログアウトしたユーザーのものではないという問題に遭遇しました。問題は、カスタムフィルターを含むビュー検索ページにあるカスタムブロックプラグインです(公開されたフィルターのカスタム置換のようなものです。ブロックは/ admin / structure / blockを介して配置されます)。 Drupal 8について学んだことに基づいて、キャッシュコンテキストをビルドアレイに追加しました。 public function build() { $search_form = \Drupal::formBuilder()->getForm('Drupal\mymodule\Form\SearchForm'); return [ 'search_form' => $search_form, '#cache' => ['contexts' => ['url.path', 'url.query_args']] ]; } ただし、ログアウトするとブロックが最初のビューにキャッシュされ、URLが変更されてもブロックの新しいバージョンが表示されなかったため、これは正しくないようです。 問題の原因となっているのはビューページの可能性があると思いましたが、ビューページのキャッシュをオフにしても問題は解決しませんでした。 たとえば、preprocess_blockフックを使用して、問題をいくつかの方法で修正できました。 function mymodule_preprocess_block__mycustomsearchblock(&$variables) { $variables['#cache']['contexts'][] = 'url.path'; $variables['#cache']['contexts'][] = 'url.query_args'; } しかし、それは私が自分のブロックのビルド配列にキャッシュコンテキストを単に入れることができなかったことを気にしました。 私のブロックはBlockBaseを拡張しているので、特にコア内の一部のモジュールがこの方法で実行しているのを見たので、getCacheContexts()メソッドを試すことにしました。 public function getCacheContexts() { return Cache::mergeContexts(parent::getCacheContexts(), ['url.path', …
13 8  blocks  caching 

6
複数の地域にブロックを配置する
ユーザーが複数のリージョンに同じブロックを配置できるモジュールはありますか?そうすれば、同じViewブロックを2回作成する必要がなくなります。
12 blocks 

1
特定の地域のDrupal 7カスタムblock.tpl.php
私はdrupal 7が初めてで、これに本当に苦労しています。 http://drupal.org/node/104319 ナビゲーションという地域があります 私の.infoで regions[navigation] = Navigation bar この地域では、カスタムtpl.phpファイルを使用します。私が試してみました block-navigation.tpl.php 例のように、それをテーマのルートとテンプレートフォルダに運なく置いてください。キャッシュをクリアし、標準の作業block.tpl.phpが適切に配置されていることを保証しました。無駄に。 回答: 私は両方の領域で、navigation.tpl.phpとブロック-navigation.tpl.phpの両方が必要でした--。 この質問に対する1000回の視聴により、人気の質問バッジが獲得されました。しかし、あなたはあなたの心の中でそれを1回以上支持することはできません。ああ
12 7  blocks  theming 

2
PHPフィルターモジュールを使用せずにプログラムでブロックの可視性を設定する方法はありますか?
コアPHPフィルターモジュールを有効にすることで、PHPコードを使用してブロック構成ページでブロックの可視性を設定できます。 しかし、セキュリティ対策のためにPHPフィルターモジュールを有効にしたくありません。それで、カスタムモジュールでそれを行う方法はありますか?フックが見つかりません。また、クローズフックhook_block_view_alterはブロックの内容のみを変更できます。
11 7  blocks 

3
変数をカスタムブロックテンプレートファイルに渡す
Drupal 8でカスタムコンテンツを使用してカスタムブロックを作成したいのですが、最初に単純なテキストだけでブロックを作成し、正しく動作します。私の問題は、カスタム変数をそれに渡す方法ですか?私はそれについてのいくつかのチュートリアルを見ました、私のモジュール名はでtcdevあり、これは.moduleファイルの内容です。 function tcdev_theme($existing, $type, $theme, $path) { return array('tcdev' => array( 'variables' => array( 'title' => 'Default title', 'description' => null ), 'template' => 'block--sliderblock' ) ); } と私 SliderBlock.php namespace Drupal\tcdev\Plugin\Block; use Drupal\Core\block\BlockBase; /** * Provides a 'SliderBlock' block. * * @Block( * id = "slider_block", * admin_label …
11 theming  8  blocks 

3
コードでレンダリングしたブロックのコンテキストリンクをレンダリングするにはどうすればよいですか?
ブロックサブジェクトとコンテンツを読み込んで、それらをレンダリングするためにmodule_invoke()使用render()しました。このブロックにコンテキストリンクを使用したい。どうすればレンダリングできますか? これは、page--front.tpl.phpテンプレートと一緒に使用しているコードです。 $block = module_invoke('block', 'block_view', '4); print render($block); 代わりにどのコードを使用する必要がありますか?
11 7  blocks 

5
コードでブロックの可視性を制御するにはどうすればよいですか?
Drupal 6では、次のように、ブロックUI構成でPHPコードを使用してブロックの可視性を制御できます。 <?php return MYMODULE_abc() || MYMODULE_def() ; ?> これらの関数は、現在のノードや分類法などを調べて、ブロックを表示するかどうかを決定しました。このPHPオプションはDrupal 8ではなくなりましたが、には$visibilityフィールドがありBlockBaseます。これを使用して、実行時にプログラムで可視性を設定できますか?
11 8  blocks 

6
プログラムでブロックを配置するにはどうすればよいですか?
UIから、その方法でリージョンにブロックを追加できます。 [管理]-> [構造]-> [ブロックレイアウト](/ admin / structure / block)に移動します。 地域名の横にある「ブロックを配置」ボタンをクリックします。 同じことをプログラムで行いたいと思います。既存のブロックをリージョンに追加して保存するにはどうすればよいですか?このブロックは、その領域に表示され、ブロックレイアウトページで使用できるようになります。
10 8  blocks 

3
Drupalの特定のページに表示するブロックを表示する方法は?
モジュール砂漠について考えてみましょう: ページ1:- deserts/* ページ2:- deserts/*/* page3:- deserts/*/*/* ダイナミックなコンテンツ... 私は3つのブロック、すなわちa、b、cを持っています: ブロックaはページ1にのみ表示されます ブロックbはpage2にのみ表示されます ブロックaはpage3にのみ表示されます その制限はどのようにすべきですか?
10 blocks  7 


1
/ユーザープロフィールページにのみブロックを表示
ユーザーが/ userで自分のプロフィールページにアクセスしたときにブロックを表示したい。パブリックユーザープロファイルのパスは "/ member / [username]"です。 ブロックを「ユーザー」に制限すると、表示されません。「メンバー/ *」に制限すると、自分のプロファイルとパブリックプロファイルの両方に表示されます。 「ユーザー」のURLは特別なものですか?
10 7  users  blocks 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.