Posted by kenkichi on September 25, 2014 at 6:07pm
MySQLデータベースにテーブルを作成しデータ登録、Drupal7上で閲覧する、というところまで構築できました(Dataモジュールでテーブルを作成し、MySQL直打ちでデータ登録、Viewモジュールで表示、1.PNG参照ください)。
次はデータ登録になりますが、運用ではデータ登録をSQL直打ちするわけにはいきませんので、D7上で構築できないか思案しているところです。
Feedsモジュールを使用し、CSVファイルからデータを一括入力する、といった情報はWeb上にいくつかあったのですが、Feedsモジュールをうまく扱えず手詰まりの状態です。
なにかよいモジュールがありますでしょうか。
もしくはカスタムモジュールを作成する、ということになりますでしょうか。
お知恵拝借ください、よろしくお願いします。
| Attachment | Size |
|---|---|
| 1.PNG | 8.23 KB |
Comments
Data
Data モジュールが私はあまり触ったことが無いのですが、
そのモジュールでデータ登録が出来ないのであれば、カスタムモジュールでその部分を行うことは、出来ると思います。
カスタムモジュールで作る場合なら、hook_menu() でデータ登録用のページを用意して、Form API を使って入力フォームを設置して、フォームのサブミット処理でテーブルにデータを挿入、となるでしょうか。
CSVファイルからデータをインポートするのも、カスタムモジュールでも出来ますよ。
そのデータは、ノードとして実装するのでは駄目ということでしょうか。
どのようなデータか分かりませんが、独自のエンティティ・タイプを作る方法もあります。この場合、Drupal のフィールドのしくみを使うので、テーブルは分かれてしまいますが、コードレスで入力フォームを設置できますよ。
独自のエンティティタイプを管理するモジュールを紹介しておきます。(ちょうど私のブログで紹介したところでした^^)
Entity Construction Kit (ECK)の紹介記事
これ、超使えると思いますヨ。
管理画面から簡単に独自のエンティティタイプを追加出来ます。
Drupal カスタマイズTips 更新中...
CMS自由自在!
http://customfield.jp/
ご返事、ありがとうございます。 そのデータは、ノードとして
ご返事、ありがとうございます。
カスタムモジュール作製はただいま勉強し始めたところです(初心者です。すみません)。
具体的には、Drupal7からMySQLへアクセスするときのDatabaseAPIの使い方を探っているところです。
Drupal.org上のドキュメントを見ていますが、そのAPI(もしくはPHP)コードをカスタムモジュール上で、どう組み込めば良いかわかっていないです。
参照いたしました。
エンティティという概念がありませんでしたが、
まさにその通りの状態です。
ECKモジュールでどこまでできるかチャレンジしてみます。
Drupal7上で生のデータベースを取り扱うということはあまりないのか、
http://msdn.microsoft.com/ja-jp/library/ee340709(v=vs.110).aspx
のように(リンクは思い切りVisual Studioですが・・・)できるモジュールを探しておりました。
ECKモジュールを含め、カスタムモジュール、DatabaseAPIをもう少し勉強してみます。
よろしければ(Drupal)APIコード、PHPコードの組み込み例があればと思っております。
ありがとうございます。
Drupal
Drupal のデータベース操作の記述例は、
db_query
db_insert
db_update
db_delete
にあります。それぞれコメント欄に Example が示されています。比較的分かりやすいのは db_query() ですね。
他は動的クエリなので、少し敷居が高いかもしれないです。
インサートとアップデートは、Drupal の様式で作成・管理されているテーブルであれば drupal_write_record() というのも使えます。これのほうが若干楽かもしれません。
テスト環境でクエリの動作を確認したいのであれば、カスタムモジュールを作って、hook_menu() を使ってページを作り、そのページのコールバック関数の中にコードを書くのが、手っ取り早いと思います。
Drupal カスタマイズTips 更新中...
CMS自由自在!
http://customfield.jp/