Drupal 8では、ビューブロックを作成するたびに、そのビューブロックに表示されるアイテムの数を指定するオプションがあります。これはすばらしいことです。
現在、1、5、10、20の間で選択できます。これを1、2、3、4、5 "を含むように変更したり、手動で数値を入力したりする方法はありますか?
私はこの機能に本当に興奮し、それを使用する必要がありましたが、ブロックごとに1、2、または3アイテムを実際に選択する必要があります。
編集:ビュー設定画面ではなく、ブロック管理画面を参照しています。
回答@Berdirが提供 のおかげで、制限的な選択フィールドをより柔軟な数値フィールドに置き換えることができました。
form_id
はblock_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']);
}
}
}
解決策は実際には@codenextのスクリーンショットにあります。
ブロック設定では、3番目のエントリ行「許可された設定」を見ることができます。その概要は実際には壊れています(まだチェックされていないため表示されません)が、それをクリックすると、[許可されたアイテム]のチェックボックスが表示されます。
チェックマークを付けると、ブロックごとに許可されるアイテムを構成できます。問題が解決しました ;)
編集:質問を読むことができると役立ちます。
はい、オプションは\Drupal\views\Plugin\views\display\Block::blockForm()
(web/core/modules/views/src/Plugin/views/display/Block.php
にあります)にハードコードされています。フォームの変更でそれらをカスタマイズすることは比較的可能であるはずですが、そこ以外では、オプションは私が考えるそれらの値であることが期待される場所ではありません。
目的のアイテム数が異なるという理由だけで表示コピーを作成する必要なしに、ビューブロックをいくつかの場所で再利用することは明らかに良い考えです。
このパッチがDrupal core 8.9: https://www.drupal.org/project/drupal/issues/3083379 になる可能性は十分にあります。
(ブロックごとに1、2、3、4、5、6、10、12、20、24、40、48項目を許可します)。
私はこの問題を理解しており、ハードコーディングをしなくても問題を解決できると思います。残念ながら、経営陣がビューでの調整を望まない場合、これは機能しません。最初にデフォルト設定のブロックごとの項目のブロック構成を設定するだけです。次に、ビューに移動し、ページャーセットの下で、指定された数のアイテムを表示し、アイテムの数を実際の数に設定します。ビューを保存し、設定されているかどうかを確認するには、ブロック構成に戻ります。ブロックに設定されている番号が表示されます。