web-dev-qa-db-ja.com

ブロックごとの項目オプションを調整する方法はありますか?

Drupal 8では、ビューブロックを作成するたびに、そのビューブロックに表示されるアイテムの数を指定するオプションがあります。これはすばらしいことです。

現在、1、5、10、20の間で選択できます。これを1、2、3、4、5 "を含むように変更したり、手動で数値を入力したりする方法はありますか?

私はこの機能に本当に興奮し、それを使用する必要がありましたが、ブロックごとに1、2、または3アイテムを実際に選択する必要があります。

編集:ビュー設定画面ではなく、ブロック管理画面を参照しています。

3
discg0lfer

回答@Berdirが提供 のおかげで、制限的な選択フィールドをより柔軟な数値フィールドに置き換えることができました。

Mymodule.module

form_idblock_form(およびpanels_edit_block_formおよびpanels_add_block_form for Panelizer)。変更 #type to numberにして、数値を入力できるようにします。 #options検証エラーを回避する(無効な選択)。

/**
 * Implements hook_form_alter.
 *
 * Changes the input type of the "Items per block" setting of
 * a view-block in Blocks/Panelizer from 'select' to 'number',
 * so that amounts other than 5, 10, 20 and 40 can be chosen.
 */
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if (in_array($form_id, ['block_form', 'panels_edit_block_form', 'panels_add_block_form'])) {
    if (isset($form['settings']['override']['items_per_page'])) {
      $form['settings']['override']['items_per_page']['#type'] = 'number';
      unset($form['settings']['override']['items_per_page']['#options']);
    }
  }
}
3
user62892

解決策は実際には@codenextのスクリーンショットにあります。

ブロック設定では、3番目のエントリ行「許可された設定」を見ることができます。その概要は実際には壊れています(まだチェックされていないため表示されません)が、それをクリックすると、[許可されたアイテム]のチェックボックスが表示されます。

チェックマークを付けると、ブロックごとに許可されるアイテムを構成できます。問題が解決しました ;)

編集:質問を読むことができると役立ちます。

はい、オプションは\Drupal\views\Plugin\views\display\Block::blockForm()web/core/modules/views/src/Plugin/views/display/Block.phpにあります)にハードコードされています。フォームの変更でそれらをカスタマイズすることは比較的可能であるはずですが、そこ以外では、オプションは私が考えるそれらの値であることが期待される場所ではありません。

2
Berdir

私が正しく理解していれば、ビューブロックを作成するときに「ブロックごとのアイテム」について話していることになります。しかし、最初の画像に示すように、0、1、2、3、4 .....のオプションを取得しています。さらに、これが問題である場合は、ページごとの項目(ページ2の画像に示すように)のPAGERオプションでビューのユーザーインターフェースに入った後で、この設定を変更することもできます。 Block view page

Pager

1
CodeNext

目的のアイテム数が異なるという理由だけで表示コピーを作成する必要なしに、ビューブロックをいくつかの場所で再利用することは明らかに良い考えです。

このパッチがDrupal core 8.9: https://www.drupal.org/project/drupal/issues/3083379 になる可能性は十分にあります。

(ブロックごとに1、2、3、4、5、6、10、12、20、24、40、48項目を許可します)。

0
hexabinaer

私はこの問題を理解しており、ハードコーディングをしなくても問題を解決できると思います。残念ながら、経営陣がビューでの調整を望まない場合、これは機能しません。最初にデフォルト設定のブロックごとの項目のブロック構成を設定するだけです。次に、ビューに移動し、ページャーセットの下で、指定された数のアイテムを表示し、アイテムの数を実際の数に設定します。ビューを保存し、設定されているかどうかを確認するには、ブロック構成に戻ります。ブロックに設定されている番号が表示されます。

0
Leeanne