0

我正在使用 Spree 作为我正在构建并需要自定义布局的网站的电子商务解决方案,污损选项很棒,但我已经为我想要使用的应用程序的其余部分设置了布局,因此没有任何变化在我的网站的主要部分和商店之间。

在查看了 spree 源代码后,我已经能够将大部分基础架构转移到我自己的新模板中,但我遇到了一个绊脚石。在搜索框上方的默认模板中,有登录/帐户和注销链接,这些链接基于对代码的一些挖掘,呈现在“标题”部分中,该部分本身呈现导航栏,该导航栏呈现搜索栏部分,以及主导航栏它显示了指向主页和购物车的链接,但没有提到用户进/出的东西。注释掉标题部分的呈现会删除所有这些东西,但也会删除用户信息,据我所知,这些信息在任何地方都没有提到......

有谁知道它在默认狂欢布局中的哪个位置实现了此代码以显示登录/注销帐户链接,我可以通过基本链接相对简单地做到这一点,但宁愿了解 Spree 如何自己实现这一点,我试图保持我的布局与核心代码的任何更新兼容。

任何帮助将不胜感激,谢谢!

编辑:为清楚起见

4

4 回答 4

1

在Spree 的3.0.1版和其他旧版本上,用户功能不是由核心本身处理的。用户由Spree Auth (Devise) Spree 扩展处理。此扩展程序默认包含在新的 Spree 应用程序中。该扩展使用污损覆盖来添加此功能。有趣的是,此覆盖使用的部分不是在扩展本身上,而是在 Spree 前端文件上。如果您希望实现自定义用户模块,我假设使该组件可重用。这是部分的代码:

<% if spree_current_user %>
  <li><%= link_to Spree.t(:my_account), spree.account_path %></li>
  <li><%= link_to Spree.t(:logout), spree.logout_path %></li>
<% else %>
  <li id="link-to-login"><%= link_to Spree.t(:login), spree.login_path %></li>
<% end %>
于 2015-07-16T16:58:11.790 回答
0

在 RDR 主题中找到解释这一点的代码,仍然不确定为什么它没有出现在默认的狂欢代码中,也许是数据挂钩?

RDR 的做法:

<% if current_user %>
  <%= link_to t('logout'), destroy_user_session_path, :class => "cart" %>
  <%= link_to t('my_account'), account_path, :class => "cart" %>
<% else %>
  <%= link_to t('log_in'), login_path, :class => "cart" %>
<% end %>
于 2013-01-16T11:19:58.653 回答
0

覆盖菜单

<% if current_user %>
    <%= link_to t(:logout), spree.destroy_user_session_path %>
    <%= link_to t(:my_account), spree.account_path %>
<% else %>
   <%= link_to t(:login), spree.login_path %>
<% end %>
于 2013-01-16T12:41:37.770 回答
0

Spree 2.3.2开始,同样的事情可以通过以下方式完成:

          <h2>Your Account</h2>
          <ul>
            <% if spree_current_user %>            
              <li><%= link_to t('My Account'), account_path, :class => "cart" %></li>       
            <% else %>                
              <li><%= link_to t('Log In'), login_path, :class => "cart" %></li>
              <li><%= link_to t('Sign Up'), registration_path, :class => "cart" %></li>
            <% end %>              
          </ul>
于 2014-11-05T06:21:57.180 回答