web-dev-qa-db-ja.com

日付順のビュー

記事の概要を投稿日で並べ替えたい(2007年に投稿される記事もある)。ただし、記事をリストの先頭に戻す可能性があるはずです(古いコンテンツをリサイクルしたい)。投稿日は手動で変更したくありません。これは貴重な情報であるため(投稿日は元の投稿日である必要があります)、更新した日付を使用したくない場合もあります。リストの先頭に戻ることのないノード。

私はウェイトモジュールと考えていましたが、もっと良い代替案があるかもしれません。ウェイトモジュールが提供するほどソートを制御する必要はありません。 Drupal APIを通じて適切にガイドされている場合、私は(小さな)カスタムモジュールの作成を恐れていません。

理想的には、次のようにします。1.コンテンツの概要ページのアクション「トップに移動」とノード編集ページのシンプルなチェックボックス:トップに移動。 2.アクションとチェックボックス:投稿日にリセットして、意図した順序に戻すことができるようにします...

「先頭に移動」アクションが呼び出されるたびにnow()に更新される日付フィールドを考えていました...「日付にリセット」を選択すると空になります...

これを行うモジュールを誰かが知っていますか?またはそれを作成する際に私を導くことができますか?

よろしくお願いします

私が行っているワークフロー

  1. カスタムモジュールを有効にする(モジュールを作成してアクティブ化する方法を知っています)
  2. この機能を使用したい各ノードタイプにオプションを追加します(おそらく公開オプションにあり、単純なチェックボックスで十分です)
  3. ノードには、「Move back to top」と「Reset order」のチェックボックスがあります。次に、両方が追加のノードフィールドのタイムスタンプを編集する必要があります(*下部の注釈)。ノードを再編集するときはチェックボックスをオンにしないでください。これはアクションのようになるためです(説明するのは難しいですが、私が言おうとしていることがはっきりしているはずです)。
  4. この追加の日付フィールドをビューで使用できるようにする

*注意:実際にノードテーブル自体にフィールドを追加できる場所を読んだところ、schema_alterフックを使用したと思います。タイムスタンプがこのテーブルにある場合、クエリはaxtraテーブルにあるときよりも高速になります(これは追加の結合を意味します)

edit2:ビュー、操作、アクションの統合を備えたカスタムモジュールに移動しました。モジュールが完成しました。おそらく公開します。これは他の人にとって興味深いかもしれないと誰かが思いますか?このモジュールのアップロードはdrupal.orgでどのように機能しますか?

3
Gregory

コンテンツタイプに単純なチェックボックスを追加して、「スティッキー」または多少と呼ぶことができます。次に、ビューに添付ファイルを追加し、デフォルトビューの前の位置を選択して、この添付ファイルに「スティッキー」がチェックされたノードのみを表示させ、デフォルトビューからスティッキーノードを除外します。

2番目のステップでは、ビューアタッチメント内のスティッキーノードのソートにロジックを追加できます。私はそのようなタスクのために DraggableViews が本当に好きです。しかし、多分それはすでに多すぎるので、コンテンツタイプに別の整数フィールドを追加して、スティッキーノードにそれをソートさせることができます。

1
leymannx

非常に簡単な解決策は、ノードタイプにグローバルフラグを追加することです。フラグはadminだけに公開します。

ビューでフラグを関係として追加します。結果を特定のフラグでフラグが付けられたエンティティのみに制限します。 [フラグ付きのコンテンツのみを含める]を選択しないようにしてください。必ず「すべてのユーザー」を選択してください

フィールドはオプションであるため、「フラグの表示/フラグ解除のリンク」を追加します。管理者に対してのみ表示されるため、心配する必要はありません。

次に、並べ替え条件を追加します。「エンティティにフラグが付けられているかどうかに基づいて並べ替え」と「フラグが最初に付けられる」を選択します。この並べ替え条件をリストの上に移動します。

これで、フラグが立てられたすべてのコンテンツがプロモートされ、投稿日による並べ替えが引き続き維持されます。

そして、この機能を「コンテンツ概要ページ」に含めるには、 Administration Views を追加し、フラグを関係、フィールド、およびソートとして追加します。

そしてもちろん、ノードビューページでもフラグを公開します。

さらに機能を高めるために、フラグにも日付フィールドを追加し、ビューでそれを使用して、必要に応じて並べ替えることができます。 フラグがフィールド可能になりました!有効にするには、確認フォームでリンクタイプとしてフラグを設定する必要があります。フラグはまた、「フラグ付き時間」をビューに公開します。これは、ソートにも役立ちます。

1
J. Reynolds