0

かなり大きなDrupalWebサイトの保守を始めたばかりです。このサイトには、曲をリストしたプレイリストがあります。各曲のコンテンツタイプには、ユーザーが曲の再生時間を入力するテキストフィールドがあります。はい、日付フィールドではなく、テキストフィールドです:(したがって、デフォルトでは、ビューでは、BETWEEN演算子を使用してフィルターを公開する方法がありません。うーん。

betweenこのフィールドを日付フィールドに変換して、演算子を使用できるようにする方法はありますか?または、他に回避策がありますか?助けてくれてありがとう。

4

1 に答える 1

0

最善の策は、ノードが保存/ロードされたときに実際の Drupal 日付フィールドにその値を格納するカスタム モジュールを使用することです。

function mymodule_node_presave($node) {
  if ($node->type == 'whatever_content_type') {
    $node->actualdatefield[LANGUAGE_NONE][0]['value'] = date('Y-m-d g:i:s', strtotime($node->userdatefield[LANGUAGE_NONE][0]['value']));
  }
}

そんな感じ。既存のノードを更新するために、パブリッシュ ノードなどのコンテンツ一覧ページから node_save イベントをトリガーする更新オプションの 1 つを起動する必要があります。

于 2012-08-16T15:20:00.473 に答える