我正在使用Spree作为我正在构建的网站的eCommerce解决方案,需要自定义布局,deface选项很棒,但我已经有了我想要使用的应用程序其余部分的布局,所以我的网站的主要部分和商店之间没有变化。
看过spree源代码后,我已经能够将大部分基础架构转移到我自己的新模板上,但我遇到了一个绊脚石。在搜索框上方的默认模板中有登录/帐户和注销链接,这些链接基于对代码的一些挖掘而呈现在“header”部分中,该部分本身呈现导航栏,导航栏呈现搜索栏的一部分,主导航栏显示到主页和购物车的链接,但没有提到用户进入/退出的内容。注释掉标题部分的呈现会删除所有这些内容,但也会删除用户信息,据我所知,这些信息在任何地方都没有提到……
有没有人知道在默认的spree布局中,它在哪里实现了显示登录/注销帐户链接的代码,我可以用基本的链接来相对简单地做到这一点,但我更愿意了解Spree本身是如何实现这一点的,我正在努力使我的布局与核心代码的任何更新保持兼容。
如有任何帮助,将不胜感激,谢谢!
编辑:为清楚起见
发布于 2013-01-16 19:19:59
在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 %>发布于 2015-07-17 00:58:12
在Spree的3.0.1版本上,也许在其他更老的版本上,用户功能不是由内核本身处理的。用户由Spree Auth (Devise) Spree扩展处理。默认情况下,新的Spree应用程序中包含此扩展。该扩展使用deface override来添加此功能。有趣的是,此覆盖使用的部分并不在扩展本身上,而是在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 %>发布于 2013-01-16 20:41:38
覆盖菜单,使用
<% 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 %>https://stackoverflow.com/questions/14302181
复制相似问题