2011-10-28 17 views
0

私は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を必要としません。しかし、私が試してみるものは何も最低限で働いているようです。

答えて

3

私は{logged_in_member_id}が、それは彼らが処理している時点で、あなたのタグの一部では利用できない場合がありますを意味し、後期解析された変数であると信じている - ので、それは文字通り{logged_in_member_id}として渡されています。

代わりにCURRENT_USER定数を使用してみてください。

+0

これは機能します。しかしもう1つの質問...私の埋め込まれたテンプレートでは、私はこれを持っています: 'Send a Message'。 URIは 'http:// mysite.com/users/sendmessage/CURRENT_USER'に評価されます。そこに実際のユーザーIDを印刷する方法はありますか? 'CURRENT_USER'は、印刷ではなくタグや条件文での使用を前提としています。 – jdp

+0

そのような状況では、 '{logged_in_member_id}'を評価するのではなく、単に印刷しているので、おそらく '{logged_in_member_id} 'を使うことができます。埋め込みと条件文の完全な階層を見ることなく、どこで何を使うべきかについて明確な答えを出すのは難しいです。それは難しいことがあります。 –

+0

問題は、使用するユーザーIDが '{embed:uid} 'を介して取得したものだけテンプレートが持つことができる唯一の参照です。その埋め込みvarが 'CURRENT_USER'なら、それは私が扱うべきものです。 '{logged_in_member_id}'を使用することはできません。現在ログインしているユーザー以外のユーザーを参照しているページで同じテンプレートを使用する必要があるからです。 – jdp

関連する問題