私はSolspaceのユーザーとフレンドモジュールを使ってExpression Engine 2.3のユーザープロファイルシステムを構築しています。彼らは正常に動作しますが、私は埋め込まれた変数を渡すと信じられないほど困難な時間を過ごしています。Expression Engineテンプレート変数の受け渡し
各テンプレートから呼び出される.profile_head
テンプレートがあります。プロファイルページ、フレンドページ、プライベートメッセージングページなど。ユーザーナビゲーションを構築し、アバター、すべての一般的なユーザーのものを表示します。これらのすべては、{segment_3}
によって渡されたユーザーIDに基づいています。これにより、このセグメントを変更して別のユーザーの情報を表示することができます。
問題が発生しているため、URLが非常に正確になります。ユーザーは/ usersに行くことができず、/ users/profile/UIDに移動する必要があります。あるいは、可能な限り最良のシナリオがエラーページであるか、ホームページにリダイレクトされます。
私は、テンプレート内の変数を通じて、この問題を解決しようとした:私は{embed:uid}
ちょうど罰金をプリントアウトすることができ、.profile_head
テンプレートファイルで
{embed="https://stackoverflow.com/users/.profile_head" uid="{segment_3}"}
or......
{embed="https://stackoverflow.com/users/.profile_head" uid="{logged_in_member_id}"}
、私は何も(すなわちループに割り当てしようとすると、または別のテンプレートが)、それが壊れる:
012:例えば<!-- /users/.profile_head -->
{exp:friends:members member_id="{embed:uid}" dynamic="off" limit="1"}
or.....
{embed="users/.profile_column" uid="{embed:uid}"}
、{embed:uid}
が{logged_in_member_id}
として設定されている場合、私は次のエラーを取得します
Parse error: syntax error, unexpected T_LNUMBER in /var/www/system/expressionengine/libraries/Functions.php(656) : eval()'d code on line 9
これは9行目です:
{if logged_in_member_id == "{embed:uid}"} <span class="this_is_you">This is you!</span>{/if}
私は本当に私の知恵の最後にしています。私はテンプレートでこのプロファイルヘッダーを使用できるようにする必要があります。ユーザーメッセージングや設定ページなどのURLにユーザーIDを必要としません。しかし、私が試してみるものは何も最低限で働いているようです。
これは機能します。しかしもう1つの質問...私の埋め込まれたテンプレートでは、私はこれを持っています: 'Send a Message'。 URIは 'http:// mysite.com/users/sendmessage/CURRENT_USER'に評価されます。そこに実際のユーザーIDを印刷する方法はありますか? 'CURRENT_USER'は、印刷ではなくタグや条件文での使用を前提としています。 – jdp
そのような状況では、 '{logged_in_member_id}'を評価するのではなく、単に印刷しているので、おそらく '{logged_in_member_id} 'を使うことができます。埋め込みと条件文の完全な階層を見ることなく、どこで何を使うべきかについて明確な答えを出すのは難しいです。それは難しいことがあります。 –
問題は、使用するユーザーIDが '{embed:uid} 'を介して取得したものだけテンプレートが持つことができる唯一の参照です。その埋め込みvarが 'CURRENT_USER'なら、それは私が扱うべきものです。 '{logged_in_member_id}'を使用することはできません。現在ログインしているユーザー以外のユーザーを参照しているページで同じテンプレートを使用する必要があるからです。 – jdp