Expression Engine模板变量传递

时间:2011-10-28 18:05:55

标签: expressionengine

我正在使用Solspace的用户和朋友模块在Expression Engine 2.3中构建一个用户配置文件系统。它们工作正常,但我在传递嵌入变量方面遇到了非常困难的时间。

我有一个从每个模板调用的.profile_head模板。配置文件页面,朋友页面,私人消息页面等。它构建用户导航,显示头像,所有常见用户的东西。所有这些都基于通过{segment_3}传递的用户ID。这允许我通过更改此段来显示不同用户的信息。

问题是这样做会使我的网址过于精确。我不能让用户访问/用户,他们必须转到/ users / profile / UID,或者最好的方案是错误页面或重定向到主页。

我试图通过模板中的变量来解决这个问题:

{embed="/users/.profile_head" uid="{segment_3}"}
 or......
{embed="/users/.profile_head" uid="{logged_in_member_id}"}

.profile_head模板文件中,我可以打印出{embed:uid},但是当我尝试将其分配给任何内容(即循环或其他模板)时,它会中断:

<!-- /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中的用户标识,例如用户消息和设置页面。但我尝试的任何事情似乎都没有起作用。

1 个答案:

答案 0 :(得分:3)

我认为{logged_in_member_id}是一个后期解析变量,这意味着它们在处理它们时可能无法在某些标记中使用 - 因此它按字面意思传递{logged_in_member_id}

请尝试使用CURRENT_USER常量。