Posted by mi041302 on February 18, 2013 at 3:49pm
こんばんは、
私、大学の研究室のページを作ろうとしている者です。
研究室の学生の研究成果を簡単に紹介していくためのページで、基本的な機能はできあがってきているのですが、
「登録したユーザーの情報を自動で生成するページを作れないか」という風に頼まれたことで、現在悩んでいます...。
現状、ユーザーを登録するごとに以下の4つの手順を踏んでいます。
[1]ユーザーを新規登録(プロフィールを入力)
[2]ページを新規作成、URLエイリアスを入力(連番)
[3]プロフィールを表示するブロック、投稿した記事一覧のブロックを作成、
表示するページを指定
[4]ユーザー一覧ページにて、htmlベタ書きでユーザーを追加
これを、[1]だけの作業で、各ユーザーのページを自動で作成してくれるようなシステムを作りたいのですが、
ユーザー登録のタイミングで新規のページを作成したり、ViewsとPanels、Blockを新規で作ったり...ということをどうやって自動化していいか検討がついていない状況です。
それともテンプレート的なページを作り、URLを見て表示するデータを変えるようにすればいいのでしょうか?
どなたか良いアイディア、方法をご存知の方、ご協力をお願いします!
Comments
自動生成というかプロフィールページの作り方です。
SNSみたいにユーザーページで良かったでしょうか。
以下、Drupal7におけるユーザーページで私のやっている方法です。
ユーザーごとの投稿履歴はViewで実現できます。
USER ACTIVITY PAGE USING VIEWS IN DRUPAL7.mov
http://www.youtube.com/watch?v=iWWMvMPFS1Q
これと同じ感じですが、各ユーザーのブロックに関しては、Context filterを使って「名前、アイコン、プロフィール」表示させます。ViewのContext filterの使い方が少し面倒ですが、投稿履歴と同じでユーザーごとにブロック表示が可能になります。
私の場合には、Display suitと組み合わせて各ユーザーのプロフィールページ(ページ、ブロックともに)を作っています。そうする事で、レイアウトが自由にできるだけでなくて、プロフィールページの方にブロックを入れられる(ここに投稿履歴を入れたりできる)ので、便利です。
プロフィールにどのモジュールを用いるかによるかもしれません。
私は、Profile UXを使ってプロフィールページ作っています。
http://drupal.org/project/pux
後の管理を考えても、シンプルな方法だと思います。
Drupal7をお使いでしたら
一応確認なのですが、各ユーザーのプロフィールページにすべての情報を集約させますか?
それか、別ページを作ってそこに研究成果などを表示させますか?
①ユーザーはプロフィールページのみを持っていて、そこにプロフィールと研究成果などの情報など
すべてを集約する場合。
②ユーザーはプロフィールページとは別に、研究成果などを表示するページを持っている場合。
①の方法でしたら、プロフィールに必要項目をフィールドで追加してpanelsでプロフィールページを書き換えて、そこにviewsのcontextual filter(urlを見て見せるコンテンツを動的に変える方法)で項目を
必要な形で見せてやる方法はいかがでしょうか?
②の方法でしたら、とりあえず新規登録のタイミングで自動的に別のNodeを作る必要がありそうですね。
そうなると、rulesモジュールを利用してNodeを自動作製するのはいかがでしょうか?
①、②どちらがご希望に近いでしょうか?
感謝です!
nobuyuki3さん、kenppxさん、
お返事ありがとうございます!
「Context filter」の使い方がよくわかっていないので、
勉強の必要がありそうです
Display suit、少し見てみたのですが便利そう! 使っていきたいです
ただ、今回の場合、
kenppxさんの
②ユーザーはプロフィールページとは別に、研究成果などを表示するページを持っている場合。
こちらが理想に近そうです。
Rulesモジュールって、何でもできそうですね。
まずRulesモジュールで、特定のアドレスを持つページを
自動生成するところまではいけました。
現状、
ユーザが投稿したファイルの一覧ブロックを作成し、表示したいと思って
奮闘していたのですが、
RulesのActionの「Add Vies loop」から、
事前にViewsで作っておいた一覧をページに組み込むやりかたがわかりません...
1.ユーザページに、Viewsのブロックを表示する方法
→Rulesモジュール、Viewsモジュールどちらを使えばいいのでしょうか?
2.ユーザーごとにViewsの内容を変える方法
→ユーザーごとに表示を変える条件分岐はどの画面の何をクリックすれば
いいのでしょうか...?
重ねての質問になりますが、ご協力をお願いします...
Rules使わなくても良いかもしれません。
②の様にプロフィールページを複数作る方法ですね。了解しました。
先日はRulesと書きましたがRulesを使わなくても、もっと簡単にできるのではないかと思いました。
すみません…。Rulesはとてもイケてるモジュールですが、忘れてください。
profile2モジュールを利用してはいかがでしょうか?
http://drupal.org/project/profile2
profile2モジュールを使うとプロフィールページが複数作れますので、簡単にご希望を実現出来そうです。
複数作ったプロフィールページに、お好みのフィールドを加えてあげればプロフィールページとは
別に研究成果のページも作れちゃいます。
profile2で作ったプロフィールページはnobuyuki3さんが挙げて下さった、
Display suitモジュールで操作できると思います。
まとめますと、profile2モジュールで作ったページをdisplay suiteモジュールでレイアウトする。
profile2モジュール + display suiteモジュールの組み合せを是非お試しください。
余談ですが、私は以前にdisplay sutieモジュールと似た機能を持つ、panelsモジュールで
profile2で作ったページのレイアウトを操作しようとしたのですが、できませんでした。
page managerモジュールの問題(?)で現時点ではどうもpanelsでは操作出来ないようです。
どなたか、panelsでprofile2モジュールで作ったプロフィールページを編集出来た方が
いましたら情報を頂けると幸いです。