【问题标题】:Expression Engine template variable passing表达式引擎模板变量传递
【发布时间】:2011-10-28 18:05:54
【问题描述】:

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

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

问题是这样做会使我的网址过于精确。我不能让用户转到 /users,他们必须转到 /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 中的用户 ID 用于用户消息传递和设置页面等内容。但我尝试的任何方法似乎都不起作用。

【问题讨论】:

    标签: expressionengine


    【解决方案1】:

    我相信{logged_in_member_id} 是一个延迟解析的变量,这意味着在处理它们时它可能在您的某些标签中不可用 - 因此它按字面意思@987654322 传递@。

    尝试改用CURRENT_USER 常量。

    【讨论】:

    • 这行得通。还有一个问题......在我的嵌入式模板中,我有这个:&lt;a href="{site_url}users/sendmessage/{embed:uid}" class="bt_orange short"&gt;Send a Message&lt;/a&gt;。 URI 被评估为http://mysite.com/users/sendmessage/CURRENT_USER。有没有办法在那里打印真实的用户ID?我假设CURRENT_USER 用于标签和条件而不是打印,对吗?
    • 在这种情况下您可能可以使用{logged_in_member_id},因为它没有被评估,只是被打印出来。在没有看到嵌入和条件的完整层次结构的情况下,很难就应该在哪里使用什么给出明确的答案。这可能会变得很棘手。
    • 问题是,模板可以使用的用户 ID 的唯一引用是它通过 {embed:uid} 获得的内容。如果那个嵌入变量是CURRENT_USER,那么这就是我必须使用的。我不能使用{logged_in_member_id},因为我必须在引用当前登录用户以外的用户的页面上使用相同的模板。
    • 但是CURRENT_USER{logged_in_member_id}是同一个东西——只是一个解析早,一个解析晚。
    • 根据 Solspace 文档:“您可以硬编码成员 ID,通过嵌入传递它,从 URI 中获取它,或者指定“CURRENT_USER”以显示当前登录用户的配置文件。 "看起来给标签提供实际的字符串“CURRENT_USER”会产生你想要的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2015-11-08
    相关资源
    最近更新 更多