/author/user はすべてのユーザーの個人情報を表示できることがわかっています。私の場合、各ユーザーにはコンテンツが含まれる個人用フォルダーがあります。私の目標は、ユーザーが各ユーザーの個人用フォルダーにアクセスしたときに、/author/user に情報を表示することです。この情報は、オプション「デフォルト ビューとしてコンテンツ アイテムを選択」を使用して最初に表示する必要があります。/author/user へのリンクと、「デフォルト ビューとしてコンテンツ アイテムを選択する」オプションを作成しました。問題は、ユーザーが /author/user にリダイレクトされ、個人用フォルダーに移動できないことです。この問題を解決するトリックはありますか?
2 に答える
ユーザーフォルダーのデフォルトビューの変更(それらのみ)と新しいビューの作成という2つの問題があります。
author.cpt のコードを使用して新しいスキン cpt を作成し (または、不要な場合はフィードバック フォームを削除する .pt のみ)、次のように変更します。
author python:(len(request.traverse_subpath) > 0 and url_unquote_plus(request.traverse_subpath[0])) or request.get('author', None);
ユーザー名または /Members/<> パスからユーザーを取得するものに。次に、portal_types のフォルダー タイプを新しい ID (新しいユーザー フォルダーなど) にコピーし、これをユーザーの portal_membership の既定のフォルダーとして割り当て、portal_types -> 新しいユーザー フォルダーで、既定のビューとして割り当てます。
次に、すべてのユーザーのホーム フォルダーをこの新しいフォルダー タイプに移行する必要があります。
別の方法は、別のビューをロードする index_html スクリプトを用意することです。おそらく、リクエストで author パラメーターを指定して author.cpt を呼び出すだけです。
context.author(author=<<this folder author>>)
ここで <> は以前と同じように取得されます。ユーザーのログイン後に行うことに関するこのヒントに従って、この index_html を追加できます。
http://collective-docs.readthedocs.org/en/latest/sessions/login.html#post-login-actions
コンテンツ アイテムをデフォルト ビューとしてこれを実現する代わりに、author.pt のカスタマイズされたコピーであるフォルダの新しいビューを登録するだけで済みます。