Posted by Anonymous on September 2, 2010 at 3:04am
以下のモジュールを使わしていただいているんですが、
トップページに入力フォームが集まってしまい非常に見づらいです。
AutoAssignrole
AccountProfile
Legal
Contentsprofile
Profile
会員登録時にフォームの内容を複数に分けて登録したいですが、
何か良い方法、モジュール等はありますでしょうか?
以下のモジュールを使わしていただいているんですが、
トップページに入力フォームが集まってしまい非常に見づらいです。
AutoAssignrole
AccountProfile
Legal
Contentsprofile
Profile
会員登録時にフォームの内容を複数に分けて登録したいですが、
何か良い方法、モジュール等はありますでしょうか?
Comments
ユーザー登録フォームを複数のステップに分けるにはカスタムモ
ユーザー登録フォームを複数のステップに分けるにはカスタムモジュールが必要になります。あとはユーザー登録フォーム用のテンプレートを作成してレイアウトを変更したり、CSSでスペースを調整することも可能です。
設定だけで可能なのは、legalモジュールの表示方法をpage linkにすることが考えられます。
質問とは直接関係ありませんが、profileモジュールと content profileモジュールを併用するのは、特別な理由が無い限り避けた方が良いと思います。
ありがとうございます、dokumoriさん!
ありがとうございます、
よくよく見るとcontent profileはprofileへの依存関係が無いんですね。
multi page regist でグーグルから引っ張っていたんですが、
http://drupal.org/node/743606
を見つけました。
ここでhookが書かれているんですが、すぐ下のコメントで
WorldFallzさんがモジュールのみで表示する方法があるよ。と言ってる気がするんですが、これはできるのでしょうか?
これはコンテンツプロフィールをpagerouteで進めていくのでしょうか?
pagerouteもインストールしてみましたが、
pathの指定、add pageをしてもリンクが反映されず、悩んでいます・・・。
なるほど、pageroute
なるほど、pageroute モジュールがありましたね。pagerouteモジュールはノードフォームのみに利用可能なようです。content profileはノードを作成するので論理的に可能だと思いますが、僕自身はこの方法で組んだことがないので詳細は分かりません。
"pageroute multistep registration" で検索したら、このリンクが見つかりました:
http://drupalsn.com/learn-drupal/drupal-questions/question-4436
pageroute と profile_setupモジュールを組み合わせているとのことです。
英語ですが、pageroute モジュールの利用に関する説明があります。
http://drupalsn.com/learn-drupal/drupal-questions/question-4436#comment-...
これも英語ですが、pagerouteのドキュメンテーションはここにあります:
http://drupal.org/node/666504
pagerouteの使い方がわかりません
dokumoriさん、利用方法までありがとうございます。
ご紹介いただいたサイトの説明どおり、
profile_setup
pageroute
をインストールし、
pageroute -> add page から profile_setup を選び edit を選択しページ設定しましたが、
リンク先に行くと
「アクセスは拒否されました
このページにアクセスする権限がありません。」
と表示され、動作しません。
他の設定も試してみましたが、だめでした。
profile_setupの方でpagerouteの選択もしています。
http://drupalsn.com/learn-drupal/drupal-questions/question-4436#comment-...
この方も同じ問題かと思いましたが、解決策がわかりませんでした。
アクセスを拒否されたのは、どのロールでしたか? profi
アクセスを拒否されたのは、どのロールでしたか?
profile_setupとPage routeで設定したコンテンツタイプに、そのロールに対してアクセス権限を設定されているかを権限ページから確認してみてください。
また、content profile か コアのprofile モジュールのどちらかはEnableになっていますか?
ありがとうございます、qchanさん
ありがとうございます、
管理者権限でアクセスしてみました。
管理者権限だと全てアクセスできる認識なのですが、別に設定があるんでしょうか。
content profile はenableになっておりますー。
試しに、
node display にて どのロールでもアクセスできるノードを指定します。
直接ノードのURLをたたくと閲覧できますが
pagerouteのURLから飛ぶとアクセスが拒否されてしまいます。
http://example.com/node/1234
OK
http://example.com/pageroute/1234
403 error
User1だとしても、ログイン済みのユーザーがレジスターペ
User1だとしても、ログイン済みのユーザーがレジスターページを閲覧すると
アクセス拒否されてしまいます。
別のブラウザなどで未ログインユーザーとして試してみてはどうでしょうか。
ありがとうございます、qchanさん!
ありがとうございます、まさにその通りでした。
pageroute の
アクセスコントロールにて認証済みユーザーをONにして、
URLエイリアスを user/* から変更したところ、
無事アクセスができました。
実際に、Pagerouteを使って複数ページの登録ができるか試してみます。
Pagerouteから新規ユーザーの登録はできない?
以下の手順でpagerouteを使って新規ユーザーの複数ページの登録を実現しようとしましたが、
うまく新規アカウント追加ができませんでした。
・moduleのインストール
pageroute
profile_setup
team_of_use
content_profile
・pagerouteの設定
page1. term_of_useにて設定した利用規約を設定
page2. content_profile edit
or
page2. node add -> content_profile
page3. profile_setup edit
or
page3. user/registerへリダイレクト
1.2は行けますが、3でユーザー編集画面になり登録できませんでした。
また、リダイレクトした場合、2で投稿したプロフィールが関連付けされませんでした。
連続で質問申し訳ありません。
pageroute は諦めてhookで投稿する方法を模索していた所、
タブでフォームを複数に分けているサイトを発見いたしました。
http://artsfestivals.co.uk/user/register
確認したところ tabs を使用しているみたいでしたので
tabs
cck fieldgroupe tabs
quicktabs
form block
を使って試してみましたがうまく実装できません・・・。
page2. content_profile
の流れはモジュールのReadmeやTutorialに沿ったものでしょうか。
registerへ行ってからしかユーザー登録作業は始まらないので、
はたぶんそうなると思います。
モジュールのIssueページを検索して近い質問を探してみるとヒントが見つかるかもしれません。
日本語で使った方からの回答がすぐもらえるようにコミュニティを大きくしていきたいですね。
助かります、qchanさん
issueページなるものがあるんですね、
探してみます!
Drupalの知名度は日本ではかなり低いですが、
これほど洗練されたCMSは他に無いと思います。
徐々にコミュニティは広がっていくと思います!
WebofromとPanel
これはニーズはありそうですが、中々難しそうですね。
僕自身必要になったことがないもので実際に試したことはないのですが、
PHPを結構書くことになりますが、WebformとPanelsで出来るんじゃないのかなと思いますので
想像に基づく方法を描きます。
1.まずパネルを作りパスを設定しておく。コンテンツは後ほど。
2.Webformで規約用のフォーを作る。高度な設定に、
$_SESSION['nantoka'] = $form_state['values'];といったことを記述して、フォームの内容をセッションに記録する。
ジャンプさきURLは、上記のパネルに設定
3.Webformでプロフィール用のフォームを作り、高度な設定に
$_SESSION['nantoka'] = array_merge($_SESSION['nantoka'], $form_state['values']);で、さらにフォームの内容を記録
4.ユーザー登録用のフォームもWebformで作る。
5.汎用のコンテンツタイプにPHPフィルターを適用して、その中で、ユーザー登録をして、プロフィールを登録する・・・(user_save & node_save)保存後も上記のパネルにリダイレクト。
6.パネルの4個のバリアントを作って、それぞれのパネルコンテンツに上記のノードを格納
7.それぞれのバリアントに、コンテキストを作って、$_SESSIONに必要な情報が格納されているかどうかで、どのバリアントを表示するか決定
と、書いていてこりゃ大変だな・・・・と気付きました・・・
ご参考まで・・
追伸:
これの唯一の利点といえば、マイナーなモジュールを使わなくてもよいということぐらいです^^;
kykさん、ありがとうございます
kykさん、ありがとうございます。
せっかく回答を頂いたのに、ずいぶんとご無沙汰して申し訳ありません。
複数登録ページはModule群の組み合わせはあきらめ、
直接フォームをhookすることで対応しました。
http://drupal.org/node/825488
また、ひと段落しましたら
Multipage registration なる Moduleを作りたいと思います。