Drupal 8では、Gallery Hours
コンテンツタイプに組み込まれているすべてのノードを収集するビューがあります。コンテンツタイプには、View Order
ギャラリー時間のリストをその順序で表示する別のビューに使用するというフィールドがあります。私がやろうとしているのは、今日のギャラリー時間をチェックする別のビューを作成することです。たとえば、今日は火曜日なので、火曜日のギャラリー時間をビューに表示したいと思います。
1 =日曜日、2 =月曜日などに設定されている[ビューの順序]フィールドなどのフィールドの数値をと比較するカスタムフィルターオプションを作成するのが私の考えでしたDATE_FORMAT(NOW(),"%N")
。これはカスタムDrupalモジュール開発への私の最初の進出であり、私の車輪を回転させています。あらゆる提案を歓迎します。
私が正しいと思うのは、yamlファイルです。
todaysdate.info.yml
name: Todays Date Filter module
description: 'Creates a filter to search by todays day of the week.'
type: module
core: 8.x
package: SMA Modules
todaysdate.routing.yml
todaysdate:
defaults:
_controller: Drupal\todaysdate\Plugin\Filter\todays_date_handler_filter_numeric::operators
requirements:
_permission: 'access content'
私が本当に混乱しているのは、そこからどこへ行くかです。私はを拡張するクラスをつなぎ合わせてNumericFilter
、新しい演算子を追加し、探している日付形式でWHERE式に追加しようとしています。
とにかく、これは私のフィルター作成の試みです。エラーは発生していませんが、ビューの数値フィールドに新しい演算子が表示されていません。
todays_date_handler_filter_numeric.php
<?php
/**
* @file
* Provides views filter option for the Todays Date module.
*/
namespace Drupal\todaysdate\Plugin\Filter;
use Drupal\views\Plugin\views\display\DisplayPluginBase;
use Drupal\views\Plugin\views\filter\NumericFilter;
use Drupal\views\Plugin\views\filter\InOperator;
class todays_date_handler_filter_numeric extends NumericFilter {
function operators(){
$operators = parent::operators();
$operators += array(
'todays date' => array(
'title' => $this->t('Is this day of the week'),
'short' => $this->t('todays date'),
'method' => 'op_day_of_week',
'values' => 0,
)
);
return $operators;
function op_day_of_week($field) {
$this->query->addWhereExpression($this->options['group'], 'DATE_FORMAT(NOW(),"%N")');
}
}
}
あなたが提供できるあらゆる援助を前もってすべてありがとう。StackOverflowが過去に何回助けてくれたのかはわかりません。