我正在使用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中的用户标识,例如用户消息和设置页面。但我尝试的任何事情似乎都没有起作用。
答案 0 :(得分:3)
我认为{logged_in_member_id}
是一个后期解析变量,这意味着它们在处理它们时可能无法在某些标记中使用 - 因此它按字面意思传递{logged_in_member_id}
。
请尝试使用CURRENT_USER
常量。