0

構築中のWebサイトのeコマースソリューションとしてSpreeを使用しており、レイアウトをカスタマイズする必要があります。改ざんオプションは素晴らしいですが、使用したい残りのアプリケーションのレイアウトがすでにあるので、変更はありません。私のサイトの主要部分とストアの間。

大量のソースコードを調べた結果、インフラストラクチャのほとんどを自分の新しいテンプレートに転送することができましたが、1つの障害にぶつかりました。検索ボックスの上のデフォルトのテンプレートには、ログイン/アカウントとログアウトのリンクがあり、コードの掘り下げに基づいて、検索バーを部分的にレンダリングするナビゲーションバーをレンダリングする「ヘッダー」パーシャルとメインのナビゲーションバーにレンダリングされます。これは、自宅とショッピングカートへのリンクを示していますが、ユーザーの出入りについてはどこにも言及されていません。ヘッダーの部分的なレンダリングをコメントアウトすると、これらすべてが削除されますが、ユーザー情報も削除されます。これは、私が知る限り、どこにも言及されていません...

ログイン/ログアウトアカウントのリンクを表示するために、デフォルトのSpreeレイアウトのどこにこのコードが実装されているかを知っている人はいますか?基本的なリンクを使用してこれを比較的簡単に行うことができますが、Spreeがこれ自体を実装する方法を理解したいので、コアコードの更新と互換性のあるレイアウト。

どんな助けでも大歓迎です、ありがとう!

編集:明確にするため

4

4 に答える 4

1

Spreeのバージョン3.0.1およびおそらく他の古いバージョンでは、ユーザー機能はコア自体によって処理されません。ユーザーは、Spree Auth(Devise) Spree拡張機能によって処理されます。この拡張機能は、新しいSpreeアプリにデフォルトで含まれています。拡張機能は、この機能を追加するためにdefaceオーバーライドを使用します。興味深いことに、このオーバーライドで使用される部分は、拡張機能自体ではなく、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 に答える