web-dev-qa-db-ja.com

カスタムデータソースのビュー

大量のカスタムAJAXのフロントエンドと豪華なJSコントロールを備えたアプリがあります。

これらのコントロールはすべて、特定の形式でJSONを返すURLからプルします。

既存のシステムからすべての選択コードを削除して、drupalと統合したいと思います。

  1. Drupalが直接管理していないテーブルにビューをリンクできますか?
  2. HTMLの代わりにJSONをサポートするようにビューの出力をオーバーライドできますか?

私はググっていくつかのプロジェクトを見つけましたが、あまりアクティブではないようです-私はこのプロジェクトにD7かD8を使用しています:)

ポインタ、フックの提案などはありますか?

4
Alex.Barylski

hook_views_data() を使用してカスタムテーブル/フィールドを宣言した後、 custom Viewsハンドラ を使用して出力を上書きまたは再フォーマットします。

2
beth

答え:

Drupalが直接管理していないテーブルにビューをリンクできますか?

これは、データモジュールによって行われます- これはヘッドアップです

HTMLの代わりにJSONをサポートするようにビューの出力をオーバーライドできますか?

views datasource プロジェクトをインストールしてから、views_jsonモジュールを有効にします。これにより、ビューフィールドがJSONとして出力されます。出力形式をJSONに設定して構成すると、すべてのフィールドがJSONとして出力されます。

Views Datasources JSON settings

単にJSONファイルが必要な場合は、ビューAPIモードをオフにしてください。

新しい「ページ」タイプの表示へのパスを追加すると、JSON出力が表示されます。

私はフィールド名を変更できない(非表示にするだけ)ため、多少制限がありました。多分あなたは解決策を持っていますか?

2
Druvision

モジュール Forena は、任意のMySQLデータベーステーブルのクエリ(更新ではない)に使用できます。また、Forenaはビュースタイルとして使用できます。したがって、これら2つのForena機能の組み合わせは、質問の最初の部分に完全に対処する必要があります。

Forenaの詳細については、2種類のドキュメントを利用できます。

  • コミュニティのドキュメント
  • Forenaに付属のドキュメント。モジュールをインストールして有効にするとすぐにアクセスできます。現在のオンライン例については、 デモサイト を確認してください。

    • Forenaのドキュメント-「レポートドキュメント」のリンクを使用するか、相対リンク/ reports/helpにアクセスしてください。
    • Forenaサンプル-「レポートサンプル」のリンクを使用するか、相対リンク/ reports/samplesにアクセスします(これらのサンプルは完全に機能するため、少し実験してください) SVGグラフサンプルで利用可能なドリルダウンなど)。

最新の7.x-4.xバージョンには、レポートの作成(WYSIWYGレポートエディター)やSQLクエリの作成(クエリビルダー)のための驚くべき(私は思う)UIも含まれています。

質問のmysqlデータベースの一部のバリエーションを次に示します。

  1. MySQLデータベースの代わりにSQLiteを使用する:Forenaサンプルは実際には(Tiny)SQLiteデータベースを含めて出荷されます。 デモサイト で確認してください。そこに示されているデータは、SQLite形式のsampledbに含まれているデータです。
  2. Forenaには サポートされているデータベース接続 ...の完全なスイートが付属しています(MS SQL、Oracle、Postgress、PDO準拠のバリエーションなど)。

Forenaを試してみるのに十分な理由はありますか?そうしている間は、あらゆるタイプのサポート/ドキュリクエストに発行キューを使用してください。

注意:私はForenaの共同メンテナです。

1
Pierre.Vriens